diff --git a/ChangeLog b/ChangeLog index 1afa5e7c228557a31b963c8c507f26e0ea4a4a9b..2f1ba7da840598344b72c8a126b92373d3b936a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,9 @@ -=== release 1.0.8 === +=== release 1.1.2 === -2013-07-12 Tim-Philipp Müller <tim@centricular.net> +2013-07-11 Sebastian Dröge <sebastian.droege@collabora.co.uk> * configure.ac: - releasing 1.0.8 + releasing 1.1.2 2013-07-09 15:34:04 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> @@ -30,16 +30,16 @@ should be started only once and shared across all the instances running -2013-06-05 17:02:49 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> +2013-07-09 19:10:17 +0200 Matej Knopp <matej.knopp@gmail.com> - * sys/osxvideo/cocoawindow.m: - * sys/osxvideo/osxvideosink.m: - osxvideosink: fix support in VM's without hardware acceleration + * gst/isomp4/qtdemux.c: + qtdemux: correct argument order in gst_util_uint64_scale_int_round + https://bugzilla.gnome.org/show_bug.cgi?id=703350 -2013-04-15 14:32:46 +0000 Andoni Morales Alastruey <ylatuya@gmail.com> +2013-07-09 17:42:59 -0400 Olivier Crête <olivier.crete@collabora.com> - * sys/osxvideo/osxvideosink.m: - osxvideosink: fix segfault accessing osxwindow when not set yet + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Keep caps order from the peer or the filter 2013-07-09 12:42:17 +0200 Sebastian Dröge <slomo@circular-chaos.org> @@ -63,6 +63,27 @@ matroskademux: Unlock stream lock after use Stream lock of sink pad was not unlocked after non-updating seek. +2013-06-27 13:26:31 +0200 Ognyan Tonchev <ognyan@axis.com> + + * gst/multipart/multipartmux.c: + multipartmux: Re-set need_segment flag after FLUSH_STOP + https://bugzilla.gnome.org/show_bug.cgi?id=703182 + +2013-07-05 11:51:04 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: bufferpool: don't forget to release buffer on error + If the pool is stopped while gst_v4l2_buffer_pool_dqbuf() waits for a + buffer then the return value is GST_FLOW_FLUSHING. In this case the buffer + to queue must also be released. Otherwise is will never be deleted or + returned to its pool. + https://bugzilla.gnome.org/show_bug.cgi?id=703764 + +2013-07-08 14:15:10 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * tests/check/elements/rtp-payloading.c: + rtp: Fail payloading unit test if an error message is received + 2013-07-08 14:09:37 +0200 Sebastian Dröge <slomo@circular-chaos.org> * gst/rtp/gstrtph263ppay.c: @@ -71,6 +92,82 @@ so we would always get an empty intersection here. https://bugzilla.gnome.org/show_bug.cgi?id=702632 +2013-07-05 22:00:37 +0200 Piotr DrÄ…g <piotrdrag@gmail.com> + + * po/POTFILES.in: + po: update POTFILES.in + https://bugzilla.gnome.org/show_bug.cgi?id=703685 + +2013-07-02 11:13:25 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: avoid some strdup + +2013-07-02 10:37:50 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: add select-stream signal + Add a signal to let the app select what streams will be selected. + See https://bugzilla.gnome.org/show_bug.cgi?id=634419 + +2013-07-02 10:37:35 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: avoid strdup + +2013-07-02 10:12:17 +0200 J. Rick Ramstetter <rick.ramstetter@gmail.com> + + * gst/rtp/README: + * gst/rtpmanager/gstrtpbin.c: + rtp: Fix documentation and comments to use rtpbin instead of old gstrtpbin + https://bugzilla.gnome.org/show_bug.cgi?id=703426 + +2013-07-01 16:55:01 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2object.c: + v4l2: don't extract data from caps twice + gst_video_info_from_caps() always extract width, height, interlace mode and + framerate now. It is no longer necessary to do it again for encoded + formats. + https://bugzilla.gnome.org/show_bug.cgi?id=703399 + +2013-06-20 09:41:48 -0300 Andoni Morales Alastruey <ylatuya@gmail.com> + + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + souphttpsrc: also consider stop positions in seeks + Use seek stop position as range end for requests + https://bugzilla.gnome.org/show_bug.cgi?id=702206 + +2013-06-19 14:06:40 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> + + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + souphttpsrc: allow seeks in ready + On is_seekable, check if the server's headers have already been + received. If not, do a HEAD request to get them before responding + to basesrc. + https://bugzilla.gnome.org/show_bug.cgi?id=702206 + +2013-07-01 17:28:55 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: add signal to notify of the SDP + This way, the app can look and modify the SDP. + +2013-06-21 18:10:28 +0200 Kishore Arepalli <kishore.arepalli@gmail.com> + + * ext/gdk_pixbuf/gstgdkpixbufoverlay.c: + gdkpixbufoverlay: Allow negative offsets to specify offset from bottom/right + https://bugzilla.gnome.org/show_bug.cgi?id=702826 + +2013-06-30 21:01:20 +0200 Matej Knopp <matej.knopp@gmail.com> + + * gst/isomp4/Makefile.am: + * gst/isomp4/qtdemux.c: + qtdemux: compute framerate from average sample duration + https://bugzilla.gnome.org/show_bug.cgi?id=703350 + 2013-06-25 21:16:38 +0200 Alban Browaeys <prahal@yahoo.com> * gst/flv/gstflvdemux.c: @@ -80,12 +177,206 @@ right now. https://bugzilla.gnome.org/show_bug.cgi?id=703076 +2013-07-01 11:37:00 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * gst/interleave/deinterleave.c: + deinterleave: Don't hold object lock while sending events downstream + Based on a patch by Kishore Arepalli <kishore.arepalli@gmail.com> + https://bugzilla.gnome.org/show_bug.cgi?id=703114 + +2013-07-01 10:59:07 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * gst/matroska/matroska-demux.c: + matroskademux: Add MPEG4 video profile/level to the caps + +2013-07-01 10:56:28 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * gst/matroska/matroska-demux.c: + matroskademux: Add AAC profile/level to the caps + https://bugzilla.gnome.org/show_bug.cgi?id=703312 + +2013-06-28 15:21:56 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpvorbispay.c: + * gst/rtp/gstrtpvorbispay.h: + vorbispay: add support for config-interval + Align code with the theora payloader and add support for the config-interval to + periodically send out the config headers. + +2013-06-28 15:21:12 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtptheorapay.c: + theorapay: small cleanups + +2013-06-28 12:08:19 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtptheorapay.c: + theorapay: handle streamheaders as well + +2013-06-28 12:06:21 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpvorbispay.c: + vorbispay: always collect headers on data + When we see a data packet, always check if we need to collect any previous + headers. + +2013-06-28 11:43:17 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpvorbispay.c: + vorbispay: handle streamheader as well + Take config strings from the streamheader when we can + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=664312 + 2013-06-27 07:40:29 +0200 David Svensson Fors <davidsf@axis.com> * gst/rtp/gstrtph264pay.c: rtph264pay: avoid double buffer unmap on error Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703171 +2013-06-27 17:02:14 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: reset-sync before play + Call reset-sync on the rtpbin before we go to playing. This makes us require SR + packets for all streams again before we attempt to sync them. If we don't reset, + it might be that we combine SR packets from before and after the PAUSE/PLAYING + state change and end up with huge bogus offsets. + +2013-06-27 16:23:20 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: improve sync on first packets + Don't throw away the first RTCP packet if it arrives before the first + RTP packet but remember and use it to signal sync once we get the + RTP packet. + See https://bugzilla.gnome.org/show_bug.cgi?id=691400 + +2013-06-27 16:15:45 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: only signal loop when active + Only signal the loop function when it is active. + +2013-06-27 16:13:37 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: signal timestamp discont + We can now use the RESYNC buffer flag to mark a timestamp discont when we update + the ts-offset property. + +2013-06-26 20:49:41 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpjpegpay.c: + jpegpay: turn some errors into warnings + Turn some errors into warnings, we can continue processing so this should + not be fatal. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=657079 + +2013-06-26 14:58:53 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: avoid some flushes + +2013-06-26 14:41:00 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: handle data message when waiting for reply + When we are waiting for a server reply, handle data messages instead of + ignoring them. + +2013-06-26 14:27:34 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: handle data messages in separate method + Refactor and make a method to handle a data message. + +2013-06-25 20:36:18 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: add some more docs to handle-request signal + See https://bugzilla.gnome.org/show_bug.cgi?id=702705 + +2013-06-10 17:20:30 -0400 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + Send a clock_provide message on the bus when we get a netclock + +2013-06-10 17:20:14 -0400 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: Expose use-pipeline-clock property + +2013-06-24 17:11:35 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/udp/gstmultiudpsink.c: + udpsink: bind to the given interface + Actually call BINDTODEVICE to bind to the interface as given by the + property. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702819 + +2013-06-22 10:59:17 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * ext/vpx/gstvp8dec.c: + vp8dec: Error out gracefully if we get an unsupported color format + In theory we can only get I420 though, just to be on the safe side. + +2013-06-22 10:57:41 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * ext/vpx/gstvp9dec.c: + * ext/vpx/gstvp9enc.c: + vp9: Add support for YV12, Y42B and Y444 color formats + The encoder does not work with Y42B and Y444 yet it seems. + +2013-06-22 10:26:18 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * ext/vpx/gstvp9dec.c: + vp9dec: Update default postproc settings from vp9_dx_iface.c + +2013-06-21 13:11:32 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.h: + * gst/matroska/matroska-mux.c: + * gst/matroska/webm-mux.c: + matroska: Add initial VP9 support + +2013-06-21 13:07:30 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * configure.ac: + * ext/vpx/Makefile.am: + * ext/vpx/gstvp9dec.c: + * ext/vpx/gstvp9dec.h: + * ext/vpx/gstvp9enc.c: + * ext/vpx/gstvp9enc.h: + * ext/vpx/plugin.c: + vpx: Add initial, experimental VP9 support + +2013-06-21 10:32:30 +0200 Youness Alaoui <youness.alaoui at collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtsp: go back into the loop after doing pause + After we do a pause request, go back to loop mode so that we can listen + for server messages again. + See https://bugzilla.gnome.org/show_bug.cgi?id=702705 + +2013-06-20 23:16:17 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpptdemux.c: + rtpptdemux: Wait after the caps to forward the other events + First forward the stream-start, then the caps, then the rest + +2013-06-21 00:42:02 +0100 Tim-Philipp Müller <tim@centricular.net> + + * sys/ximage/gstximagesrc.c: + ximagesrc: clear dts on buffer acquired from pool + When setting timestamps on outgoing buffers, clear the + dts explicitly, otherwise it may end up being set to a + bogus value from last time it was used. Avoids every + second or so buffer's dts being set to 0. Not that it + should matter for raw video. + 2013-06-20 15:35:11 +0200 Wim Taymans <wim.taymans@collabora.co.uk> * sys/v4l2/gstv4l2.c: @@ -103,6 +394,70 @@ waiting before issuing the paused or playing request. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702705 +2013-06-20 11:31:22 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + qtdemux: handle SEGMENT query + +2013-06-19 12:37:31 +0200 Sjoerd Simons <sjoerd.simons@collabora.co.uk> + + * sys/v4l2/gstv4l2src.c: + v4l2: Optimize negotiation by removing the query filter + As cameras tend to have a quite specific set of capabilities (specific + framerates for each resolution), getting the peer caps filtered by our + probed caps can cause a big increase in the caps size which slows down + things quire a bit. + As for negotiation v4l2 iterates through the caps of the peer to find the + first intersection with the probed caps, getting the fully expanded + intersection of capabilities is not useful. + Using the same testcase as for bug #702632, adding this patch on top of + the patches suggested there speeds up getting the inital frame from + around ~14-15 seconds to around ~3-4 seconds. + https://bugzilla.gnome.org/show_bug.cgi?id=702638 + +2013-06-19 10:30:56 +0200 Kishore Arepalli <kishore.arepalli@gmail.com> + + * gst/avi/gstavidemux.c: + avidemux: duration query returns zero for DV video in avi + https://bugzilla.gnome.org/show_bug.cgi?id=702625 + +2013-06-19 11:06:37 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * gst/isomp4/qtdemux.c: + qtdemux: Disable usage of allocation queries + This can only reliably work if demuxers have a + separate streaming thread per srcpad. This should be + done in a demuxer base class, which integrates parts + of multiqueue + https://bugzilla.gnome.org/show_bug.cgi?id=701856 + +2013-06-11 15:02:21 +0100 Alex Ashley <bugzilla@ashley-family.net> + + * gst/isomp4/qtdemux.c: + Avoid skipping moov atoms for fragmented MP4 files. + bug #700505 + Following a representation change that causes a resolution change, + the video decoder fails to decode correctly. Dashdemux detects the + representation change and pushes a new caps event and an + initialization segment (a new moov atom) to the downstream qtdemux, + but it doesn't handle this new moov yet, it will only parse the + first one it receives. + This commit changes qtdemux to accept a new moov in a dash bitstream + switching scenario. + +2013-06-19 00:42:54 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> + + * gst/isomp4/qtdemux.c: + qtdemux: send stream-start only once for each stream + Do not send stream start again when reconfiguring a pad for new caps. + That is common for adaptive streams + +2013-06-05 17:02:49 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> + + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.m: + osxvideosink: fix support in VM's without hardware acceleration + 2013-06-15 12:29:31 +0200 Jens Georg <mail@jensge.org> * gst/rtp/gstrtpmp2tdepay.c: @@ -110,193 +465,307 @@ The mp2t payloader in 0.10 mislabelled the streams as MP2T-ES instead of MP2T, so accept that as well for compatibility reasons. https://bugzilla.gnome.org/show_bug.cgi?id=702457 - Conflicts: - gst/rtp/gstrtpmp2tdepay.c -2013-06-07 15:38:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-16 05:40:13 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * ext/libpng/Makefile.am: - png: Link with libgstbase for GstByteReader and GstAdapter + * gst/rtsp/gstrtspsrc.c: + rtspsrc: manage element state ourselves + Lock the state of the all our elements and manage their states + outselves. Because we are working async, we can't rely on the state + change function to set the state at the right time or to return the + right return value from the state change function. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702046 -2013-06-14 14:07:42 +0200 Bruno Gonzalez <stenyak@gmail.com> +2013-06-14 14:09:50 +0200 Bruno Gonzalez <stenyak@gmail.com> * gst/matroska/matroska-demux.c: matroskademux: Don't unlock stream lock without locking it first https://bugzilla.gnome.org/show_bug.cgi?id=702167 -2013-06-11 12:25:46 +0200 Sebastian Dröge <slomo@circular-chaos.org> +2013-06-13 16:00:33 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * gst/flv/gstflvdemux.c: - flvdemux: Don't forward CAPS events from upstream - Just use the default pad event handler. - https://bugzilla.gnome.org/show_bug.cgi?id=701976 + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + rtpsession: Use the right hashtable to calculate bandwidth + Don't use an unused hashtable to iterate source to calculate bandwidth. + Remove unused code. -2013-06-05 12:12:53 +0200 Wim Taymans <wim.taymans@collabora.co.uk> +2013-06-12 16:27:24 -0600 Brendan Long <b.long@cablelabs.com> - * gst/udp/gstudpsink.c: - udpsink: avoid leaking the host - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701586 + * configure.ac: + pulsesink: Require PulseAudio >= 2.0 + This is needed for pa_format_info_get_prop_* functions. + https://bugzilla.gnome.org/show_bug.cgi?id=686459 -2013-04-24 16:24:25 +0200 Wim Taymans <wim.taymans@collabora.co.uk> +2013-06-13 14:23:08 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk> - * gst/rtp/gstrtpvrawdepay.c: - vrawdepay: return output buffer from process - Return the output buffer from the process function instead of pushing - it ourselves. This way, the subclass can actually deal with the return - value of the push. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693727 + * configure.ac: + * ext/pulse/pulsesink.c: + * ext/pulse/pulseutil.c: + Revert "pulsesink: Make 2.0 dependency optional" + This reverts commit 01457027e0d384aca3e551ae684e0aa074ee5498. + We'll just depend on PulseAudio 2.0 or above instead of having the bug + partially fixed based on the installed libpulse version. -2013-05-27 22:43:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> +2013-06-13 12:40:15 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk> + + * configure.ac: + * ext/pulse/pulsesink.c: + * ext/pulse/pulseutil.c: + pulsesink: Make 2.0 dependency optional + The getcaps function we added uses some pa_format_info_get_prop... + accessor functions that were only added in 2.0, so we only have our + getcaps implementation exist if we're compiling against libpulse 2.0 or + above. + Eventually, we could bump the minimum requirement to 2.0 or above. + https://bugzilla.gnome.org/show_bug.cgi?id=686459 + +2013-06-12 18:23:46 +0200 Sebastian Dröge <slomo@circular-chaos.org> * gst/videomixer/videomixer2.c: - videomixer: Maintain z-order when new pad are added - https://bugzilla.gnome.org/show_bug.cgi?id=701109 + Revert "videomixer: When all sinkpads are eos, update output segment stop and forward it" + This reverts commit 2d3910fc7901b5f29e16c0fdd4e9067a6d7f66fe. + It's not solving any problem and instead causes code to fall apart. + https://bugzilla.gnome.org/show_bug.cgi?id=701519 -2013-05-28 14:31:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-01-09 09:39:33 +0000 Tim-Philipp Müller <tim@centricular.net> - * ext/jpeg/gstjpegenc.c: - jpegenc: Fix for single-includes that are not in 1.0 yet + * gst/matroska/matroska-demux.c: + matroskademux: mark subtitle streams as sparse in stream-start event + And also mark the streams that should be selected by default if + marked so in the headers. + https://bugzilla.gnome.org/show_bug.cgi?id=600648 -2013-02-14 14:13:27 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> +2013-06-11 22:12:58 +0200 Stefan Sauer <ensonic@users.sf.net> - * ext/jpeg/gstjpegdec.c: - jpegdec: remove sof-marker from template caps for now - Now that the subset check actually works, this breaks - things with demuxers that don't put a "sof-marker" - in their jpeg caps, and we don't have a good parser - to plug either yet. + * gst/audiofx/audiopanoramaorc-dist.c: + * gst/audiofx/audiopanoramaorc-dist.h: + audiopanorama: add prebuilt files -2013-02-13 12:32:10 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-11 20:27:51 +0200 Stefan Sauer <ensonic@users.sf.net> - * ext/jpeg/gstjpegenc.c: - * ext/jpeg/gstjpegenc.h: - jpegenc: Put the SOF marker into the caps + * tests/check/elements/audiopanorama.c: + audiopanorama: cleanup and expand the tests + Split out two more tests. Extract more common code into helpers. Add coverage for float. -2013-02-13 12:02:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-10 21:15:20 +0200 Stefan Sauer <ensonic@users.sf.net> - * gst/rtp/gstrtpamrdepay.c: - * tests/check/elements/rtp-payloading.c: - rtp-payloading: Fix unit test caps and AMR depayloader sink template caps - Fields were missing from the actual caps, or too many fields - existed in the template caps. + * gst/audiofx/audiopanorama.c: + audiopanorama: cleanup of transform() + Only map input if we are reading it. Cleanup the logging and the comments a bit. -2013-02-13 11:53:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-09 20:35:18 +0200 Stefan Sauer <ensonic@users.sf.net> - * tests/check/elements/aacparse.c: - aacparse: Fix caps used in the unit test - The AAC caps passed were incomplete. + * gst/audiofx/Makefile.am: + * gst/audiofx/audiopanorama.c: + * gst/audiofx/audiopanorama.h: + * gst/audiofx/audiopanoramaorc.orc: + audiopanorama: use orc to speedup processing + Use special variants for the case when we don't change the panorama (pan=0.0). + Simplify the processing functions by passing the panorama value directy instead + of the instance. Use orc for clearing buffers too. -2013-02-13 11:49:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-11 19:24:49 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu> - * tests/check/elements/wavpackenc.c: - * tests/check/elements/wavpackparse.c: - wavpack: Fix unit tests, width is now called depth in the caps in 1.0 + * gst/videomixer/videomixer2.c: + videomixer: check last end_time after conversion to running segment + The last end_time was saved after conversion, so the comparison + had to be made after conversion for it to make sense. + https://bugzilla.gnome.org/show_bug.cgi?id=701385 -2013-05-23 18:10:10 +0200 Sebastian Dröge <slomo@circular-chaos.org> +2013-06-11 19:22:20 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu> - * gst/udp/gstdynudpsink.c: - * gst/udp/gstmultiudpsink.c: - (dyn|multi)udpsink: Bind socket before using it - https://bugzilla.gnome.org/show_bug.cgi?id=700878 + * gst/videomixer/videomixer2.c: + videomixer: add mix->segment.start to output_end_time + When the segment start is not 0, this created a situation where + the output_end_time is inferior to output_start_time, and the duration + of the next buffer ended up underflowing. + https://bugzilla.gnome.org/show_bug.cgi?id=701385 -2013-05-17 12:37:59 +0200 Michael Olbrich <m.olbrich@pengutronix.de> +2013-06-11 13:54:53 +0200 Sebastian Dröge <slomo@circular-chaos.org> - * gst/rtp/gstrtpmp4apay.c: - rtpmp4apay: clear config buffer before using it - This is necessary because parts of the memory are only modified with "|=" - https://bugzilla.gnome.org/show_bug.cgi?id=700514 + * gst/matroska/matroska-demux.c: + matroskademux: Send stream headers after the segment event + https://bugzilla.gnome.org/show_bug.cgi?id=700799 -2013-05-14 15:23:08 +0200 Arnaud Vrac <avrac@freebox.fr> +2013-06-11 12:26:24 +0200 Sebastian Dröge <slomo@circular-chaos.org> * gst/isomp4/qtdemux.c: - qtdemux: set alac caps using info from codec buffer - The samplerate field in the STSD atom is not right for some ALAC files - (usually when audio is 96kHz/24bits), so the audio caps must be - extracted from the codec data. - https://bugzilla.gnome.org/show_bug.cgi?id=700382 + qtdemux: Do allocation query after exposing all pads and no-more-pads + Also configure video streams as early as possible. + Related https://bugzilla.gnome.org/show_bug.cgi?id=701856 + but not fixing that. -2013-05-15 11:13:12 +0200 Arnaud Vrac <avrac@freebox.fr> +2013-06-11 12:25:46 +0200 Sebastian Dröge <slomo@circular-chaos.org> - * gst/avi/gstavidemux.c: - avidemux: do not push discont buffers if they aren't discont - https://bugzilla.gnome.org/show_bug.cgi?id=682110 + * gst/flv/gstflvdemux.c: + flvdemux: Don't forward CAPS events from upstream + Just use the default pad event handler. + https://bugzilla.gnome.org/show_bug.cgi?id=701976 -2013-04-17 16:54:22 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> +2013-05-26 08:18:04 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk> - * gst/isomp4/qtdemux.c: - qtdemux: do not push discont buffers if they aren't discont - qtdemux takes its buffers from a GstAdapter. Those buffers are created - from the larger buffer that it obtained from upstream and they carry - the same flags, including DISCONT if it is set. In these cases, all - buffers that qtdemux is going to push would be marked as DISCONT. - This scenario can make parsers/decoders flush on every buffer leading - to no decoding at all hapenning. This patch prevents this by unsetting - the flag if it shouldn't be set. + * ext/pulse/pulsesink.c: + pulsesink: Cache the getcaps/acceptcaps probe stream + getcaps is called frequently during stream setup, and creating a new + stream each time is very inefficient. There's some more room for + optimisation by caching the queried sink formats as well, but this needs + some more changes to listen for format changes on the sink (for when + supported formats change between probe stream creation and sink + querying). + https://bugzilla.gnome.org/show_bug.cgi?id=686459 -2013-04-15 17:37:01 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> +2013-05-23 21:39:08 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk> - * sys/osxvideo/osxvideosink.h: - * sys/osxvideo/osxvideosink.m: - osxvideosink: fix setting window handle after transition - The destroyed flag was not reset properly and it's also not needed - as we can check osxwindow != NULL + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesink.h: + * ext/pulse/pulseutil.c: + * ext/pulse/pulseutil.h: + pulsesink: Add a getcaps function + This allows us to have more fine-tuned caps in READY or above. However, + this is _really_ inefficient since we create a new stream and query sink + for every getcaps in READY, which on a simple gst-launch line happens + about 35 times. The next step is to cache getcaps results. + https://bugzilla.gnome.org/show_bug.cgi?id=686459 -2013-05-07 16:32:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-05-10 11:32:44 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk> - * ext/jpeg/gstjpegdec.c: - jpegdec: By default assume that we're working on non-packetized input - Only detecting this in set_format() does not work because we might - not get any caps at all, e.g. from filesrc. + * ext/pulse/pulsesink.c: + pulsesink: Take a lock on the ringbuffer in acceptcaps + This is needed as a concurrent state change could pull the context or + stream out from under our feet. + https://bugzilla.gnome.org/show_bug.cgi?id=686459 -2013-05-07 16:30:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-09 20:29:09 +0200 Stefan Sauer <ensonic@users.sf.net> - * ext/libpng/gstpngdec.c: - pngdec: Implement parsing functionality - This allows to plug pngdec directly without a parser if that - is desired. - Parsing code is based on pngparse. + * gst/audiofx/audiopanorama.c: + * gst/audiofx/audiopanorama.h: + audiopanorama: move the enum to the header and use instead of gint + Move the enum for the processing method to the header so that we can use the + type for the instance struct. -2013-05-01 15:49:45 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-09 20:32:22 +0200 Stefan Sauer <ensonic@users.sf.net> - * gst/rtp/gstrtph264pay.c: - rtph264pay: If the adapter is empty on EOS don't try to map its content - https://bugzilla.gnome.org/show_bug.cgi?id=699314 + * tests/check/elements/level.c: + level: rework the tests to cover other formats too -2013-04-30 14:36:38 +0200 Ognyan Tonchev <ognyan@axis.com> +2013-06-05 16:32:30 +0200 Michael Olbrich <m.olbrich@pengutronix.de> - * gst/matroska/matroska-demux.c: - matroskademux: add stream-format=raw to aac caps - https://bugzilla.gnome.org/show_bug.cgi?id=699303 + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: make sure the element is not deleted before the pool + The pool accesses data from the v4l2object so it must exist at least + as long as the pool. Refcount the element which controls the object + live-time. + https://bugzilla.gnome.org/show_bug.cgi?id=701650 -2013-03-04 15:49:06 -0800 David Schleef <ds@schleef.org> +2013-06-07 15:38:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * ext/libpng/gstpngenc.c: - pngenc: unmap source frame when done to fix memory leak - https://bugzilla.gnome.org/show_bug.cgi?id=699260 + * ext/libpng/Makefile.am: + png: Link with libgstbase for GstByteReader and GstAdapter -2013-04-27 11:16:54 +0100 Tim-Philipp Müller <tim@centricular.net> +2013-06-07 15:15:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * gst/udp/gstudpsrc.c: - udpsrc: add includes to get socklen_t defined on Windows - https://bugzilla.gnome.org/show_bug.cgi?id=692400 + * gst/wavenc/Makefile.am: + wavenc: Link with libgstbase for GstByteWriter -2013-02-15 14:11:36 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> +2013-06-07 13:26:35 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * gst/udp/gstudpsrc.c: - udpsrc: use g_socket_set_option() to set buffer size with newer GLib versions - So we have to worry less about portability. - https://bugzilla.gnome.org/show_bug.cgi?id=692400 - Conflicts: - gst/udp/gstudpsrc.c + * gst/wavparse/gstwavparse.c: + wavparse: Push stream-start event in pull mode before anything else + +2013-05-10 12:09:19 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk> + + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesink.h: + pulsesink: Get rid of acceptcaps side-effects + The sink info callback should not have side-effects on the GstPulseSink + object since we are sometimes using with a dummy stream in acceptcaps. + https://bugzilla.gnome.org/show_bug.cgi?id=686459 + +2013-06-05 18:36:40 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * configure.ac: + Back to development -=== release 1.0.7 === +=== release 1.1.1 === -2013-04-26 12:52:17 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-05 17:58:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> * ChangeLog: * NEWS: * RELEASE: + * common: * configure.ac: + * docs/plugins/gst-plugins-good-plugins.args: + * docs/plugins/gst-plugins-good-plugins.hierarchy: + * docs/plugins/gst-plugins-good-plugins.interfaces: + * docs/plugins/gst-plugins-good-plugins.signals: + * docs/plugins/inspect/plugin-1394.xml: + * docs/plugins/inspect/plugin-aasink.xml: + * docs/plugins/inspect/plugin-alaw.xml: + * docs/plugins/inspect/plugin-alpha.xml: + * docs/plugins/inspect/plugin-alphacolor.xml: + * docs/plugins/inspect/plugin-apetag.xml: + * docs/plugins/inspect/plugin-audiofx.xml: + * docs/plugins/inspect/plugin-audioparsers.xml: + * docs/plugins/inspect/plugin-auparse.xml: + * docs/plugins/inspect/plugin-autodetect.xml: + * docs/plugins/inspect/plugin-avi.xml: + * docs/plugins/inspect/plugin-cacasink.xml: + * docs/plugins/inspect/plugin-cairo.xml: + * docs/plugins/inspect/plugin-cutter.xml: + * docs/plugins/inspect/plugin-debug.xml: + * docs/plugins/inspect/plugin-deinterlace.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dv.xml: + * docs/plugins/inspect/plugin-effectv.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-flac.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-flxdec.xml: + * docs/plugins/inspect/plugin-gdkpixbuf.xml: + * docs/plugins/inspect/plugin-goom.xml: + * docs/plugins/inspect/plugin-goom2k1.xml: + * docs/plugins/inspect/plugin-icydemux.xml: + * docs/plugins/inspect/plugin-id3demux.xml: + * docs/plugins/inspect/plugin-imagefreeze.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-isomp4.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpeg.xml: + * docs/plugins/inspect/plugin-level.xml: + * docs/plugins/inspect/plugin-matroska.xml: + * docs/plugins/inspect/plugin-mulaw.xml: + * docs/plugins/inspect/plugin-multifile.xml: + * docs/plugins/inspect/plugin-multipart.xml: + * docs/plugins/inspect/plugin-navigationtest.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-ossaudio.xml: + * docs/plugins/inspect/plugin-png.xml: + * docs/plugins/inspect/plugin-pulseaudio.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rtp.xml: + * docs/plugins/inspect/plugin-rtpmanager.xml: + * docs/plugins/inspect/plugin-rtsp.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-shout2send.xml: + * docs/plugins/inspect/plugin-smpte.xml: + * docs/plugins/inspect/plugin-soup.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speex.xml: + * docs/plugins/inspect/plugin-taglib.xml: + * docs/plugins/inspect/plugin-udp.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-videobox.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-videofilter.xml: + * docs/plugins/inspect/plugin-videomixer.xml: + * docs/plugins/inspect/plugin-vpx.xml: + * docs/plugins/inspect/plugin-wavenc.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-wavparse.xml: + * docs/plugins/inspect/plugin-ximagesrc.xml: + * docs/plugins/inspect/plugin-y4menc.xml: * gst-plugins-good.doap: * gst/deinterlace/tvtime-dist.c: * gst/deinterlace/tvtime-dist.h: @@ -305,9 +774,9 @@ * gst/videomixer/blendorc-dist.c: * gst/videomixer/blendorc-dist.h: * win32/common/config.h: - Release 1.0.7 + Release 1.1.1 -2013-04-26 12:52:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-05 16:35:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> * po/af.po: * po/az.po: @@ -324,7 +793,6 @@ * po/fi.po: * po/fr.po: * po/gl.po: - * po/hr.po: * po/hu.po: * po/id.po: * po/it.po: @@ -352,1342 +820,5862 @@ * po/zh_TW.po: Update .po files -2013-03-06 13:17:54 +0000 Tom Greenwood <tgreenwood@Toms-MacBook-Pro.local> +2013-06-05 15:50:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * ext/vpx/gstvp8enc.c: - vp8enc: Fix for divide by zero when using 0/1 framerate - https://bugzilla.gnome.org/show_bug.cgi?id=695709 + * gst/wavenc/gstwavenc.c: + wavenc: Fix taglist ref handling that made the unit test fail -2012-10-01 09:29:21 -0300 Diogo Carbonera Luvizon <diogo.luvizon@ensitec.com.br> +2013-06-05 15:14:54 +0200 Sebastian Dröge <slomo@circular-chaos.org> - * sys/v4l2/gstv4l2object.c: - v4l2: save the format correctly - If TRY_FMT is not implemented, gst_v4l2_object_get_nearest_size will - use S_FMT and will change the device's operation mode. To save the - old device mode we need to set the type field or else it will fail - to save the previous format. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685209 + * common: + Automatic update of common submodule + From 098c0d7 to 01a7a46 -2013-04-22 10:19:29 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-03 09:17:43 +0200 Michael Olbrich <m.olbrich@pengutronix.de> - * gst/rtp/gstrtpjpegdepay.c: - rtpjpegdepay: Drop frame if it's less than 2 bytes large - https://bugzilla.gnome.org/show_bug.cgi?id=677560 + * sys/v4l2/v4l2_calls.c: + v4l2: iterate controls with V4L2_CTRL_FLAG_NEXT_CTRL if possible + In v2.6.18 control classes where added to the v4l2 API. + Iterating over CIDs starting with V4L2_CID_BASE will only find controls for + the first control class. + By iterating with V4L2_CTRL_FLAG_NEXT_CTRL all controls are found. + This is necessary to make controls from other control classes available in + the extra-controls property. + If V4L2_CTRL_FLAG_NEXT_CTRL is not defined at compile time or not supported + at runtime then the old mechanism for iterating is used. + https://bugzilla.gnome.org/show_bug.cgi?id=701540 -2013-04-18 09:37:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-05 12:12:53 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * sys/osxaudio/gstosxaudioringbuffer.h: - osxaudio: Include gstaudioringbuffer.h to fix compilation in 1.0 + * gst/udp/gstudpsink.c: + udpsink: avoid leaking the host + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701586 -2013-04-17 10:10:46 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-04 08:26:33 +0200 Michael Olbrich <m.olbrich@pengutronix.de> - * configure.ac: - osxaudio: Fix configure check for osxaudio plugin + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + v4l2: improve pixel aspect ratio handling + Instead of just assuming a aspect ratio of 1/1 use VIDIOC_CROPCAP to ask + the device. + This also add a pixel-aspect-ratio property to overwrite the value from the + driver and a force-aspect-ratio property to ignore it. + https://bugzilla.gnome.org/show_bug.cgi?id=700285 -2013-04-17 21:05:14 +0200 Philippe Normand <philn@igalia.com> +2013-06-04 17:04:11 +0200 Stirling Westrup <swestrup@gmail.com> - * sys/osxaudio/gstosxaudiosink.c: - osxaudiosink: channel-mask configuration fixes - Set channel-mask according to sink's layout in case of stereo layout. - Also initialize and reset the mask when an unrecognized channel is detected. - https://bugzilla.gnome.org/show_bug.cgi?id=698224 + * sys/v4l2/v4l2_calls.c: + v4l2: Fix compilation with older kernels + https://bugzilla.gnome.org/show_bug.cgi?id=701595 -2013-04-17 20:24:48 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-06-03 17:07:10 +0200 Michael Olbrich <m.olbrich@pengutronix.de> - * sys/osxaudio/gstosxcoreaudiocommon.h: - osxaudio: Fix merge conflicts + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: call VIDIOC_REQBUFS with count = 0 in pool_finalize + Without this the following sequence fails: + - set_caps() + - object_stop() (does nothing) + - set_format() -> VIDIOC_S_FMT + - set_config() -> VIDIOC_REQBUFS with count = N + - set_caps() + - object_stop() + - pool_finalize() + - set_format() -> VIDIOC_S_FMT => EBUSY + Usually the pool is started after set_config(), in which case object_stop() + will result in a pool_stop and therefore VIDIOC_REQBUFS with count = 0 but + that is not guaranteed. + Also calling VIDIOC_REQBUFS with count = 0 in pool_finalize() if necessary + fixes this problem. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701543 + +2013-05-28 19:14:15 +0200 Michael Olbrich <m.olbrich@pengutronix.de> -2013-04-17 09:50:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: rework sink buffer refcounting + This is a followup patch for #700781, which is not quite correct. + The buffer handling is quite complicated here. + The original code intended to the the following: + - gst_v4l2_buffer_pool_process() calls QBUF and adds the buffer to the + local list. + - The sink calls gst_buffer_unref() which returns the buffer to the pool + but not the 'free list'. + - Some time later DQBUF returns the buffer and + gst_v4l2_buffer_pool_release_buffer() puts in on the 'free list'. + If the buffer must be copied then (parent_class)->acquire_buffer() is + called directly to keep the buffer in the pool. + This has two problems: + 1. If gst_v4l2_buffer_pool_release_buffer() is called before the buffer is + returned to the pool, then the buffer is put on the 'free list' twice. + This can happen if a reference to the buffer is kept outside the sink, + of if DQBUF returns the buffer, that was just queued with QBUF. + 2. If buffers are copied, then all buffers are in the pool at all times. As + a result gst_v4l2_buffer_pool_stop() and gst_v4l2_buffer_pool_dqbuf() + can access pool->buffers at the same time, which can lead to memory + corruption. + The patch for #700781 fixes those problems, but with the side effect that + there are always buffers outside the pool (because they are queued) and + the pool is never stopped. + This patch fixes this by releasing the reference to the buffer after + handling it (to avoid problem 2.) so it can be returned to the pool. + gst_v4l2_buffer_pool_release_buffer() is only called if the buffer is + already in the pool (to avoid problem 1.). + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701375 + +2013-06-02 15:24:38 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> - * sys/osxaudio/gstosxaudioringbuffer.c: - osxaudioringbuffer: First check the type, then cast + * gst/isomp4/qtdemux.c: + qtdemux: make sure taglist is writable before adding tags + Avoids assertions -2013-04-16 22:46:00 +0900 Takashi Nakajima <ted.nakajima@gmail.com> +2013-05-30 19:24:13 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> - * sys/osxaudio/gstosxaudioringbuffer.c: - * sys/osxaudio/gstosxaudiosink.h: - osxaudio: use GST_IS_OSX_AUDIO_SINK in ring buffer. + * gst/isomp4/qtdemux.c: + qtdemux: effectively skip tracks that weren't listed on the 1st moov + Without this, stream is NULL and the code will try to access it, leading + to segfaults. -2013-04-10 21:06:16 +0900 Takashi Nakajima <ted.nakajima@gmail.com> +2013-05-30 19:23:50 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> - * sys/osxaudio/gstosxaudioringbuffer.c: - * sys/osxaudio/gstosxaudiosink.c: - * sys/osxaudio/gstosxaudiosink.h: - osxaudio: call set_channel_positions() in osxaudioringbuffer acquire() + * gst/isomp4/qtdemux.c: + qtdemux: skip redundant check + !got_moov is already checked the line above -2013-04-12 12:18:04 -0700 Todd Agulnick <todd@agulnick.com> +2013-06-02 13:03:40 +0200 Stefan Sauer <ensonic@users.sf.net> - * sys/osxaudio/gstosxaudioringbuffer.c: - osxaudio: use GST_AUDIO_INFO_* accessors - Changes include the following: - * Update classname references - * Replace GST_BOILERPLATE_FULL with G_DEFINE_TYPE - * Use new GstAudioInfo struct and methods - * Use new buffer memory allocation scheme - Conflicts: - sys/osxaudio/gstosxaudioringbuffer.c + * tests/check/elements/level.c: + tests: cleanup level tests + Split out a few more tests to avoid checking the same stuff over and over again. -2013-04-12 11:51:46 -0700 Todd Agulnick <todd@agulnick.com> +2013-06-01 21:33:46 +0200 Stefan Sauer <ensonic@users.sf.net> - * sys/osxaudio/gstosxcoreaudiocommon.h: - * sys/osxaudio/gstosxcoreaudiohal.c: - osxaudio: adjust for changes to glib mutex api. + * gst/level/gstlevel.h: + level: remove unused variables in instance struct -2013-04-10 01:21:49 +0900 Takashi Nakajima <ted.nakajima@gmail.com> +2013-05-31 18:13:02 +0200 Stefan Sauer <ensonic@users.sf.net> - * sys/osxaudio/gstosxaudiosink.c: - * sys/osxaudio/gstosxaudiosrc.c: - osxaudio: try to fix up according to Sebastian's comments + * tests/check/elements/level.c: + level: add a test for continous timestamps + A test that checks that msg[n].ts + msg[n].dur == msg[n+1].ts. -2013-04-05 10:02:38 +0200 Philippe Normand <philn@igalia.com> +2013-04-12 16:02:44 +0300 Anton Belka <antonbelka@gmail.com> - * configure.ac: - * sys/osxaudio/gstosxaudioringbuffer.h: - * sys/osxaudio/gstosxaudiosink.c: - * sys/osxaudio/gstosxaudiosink.h: - * sys/osxaudio/gstosxaudiosrc.h: - osxaudio: build fixes - Enable the osxaudio plugin build in configure.ac and fix some - include directive order issues. + * gst/wavenc/gstwavenc.c: + * gst/wavenc/gstwavenc.h: + wavenc: add tags & toc support + Write tags as LIST INFO chunk. Format the toc as cue + LIST adtl chunk. Remove + old #ifdef'ed code. -2013-04-02 22:28:09 +0900 ted-n <ted.nakajima@gmail.com> +2013-05-31 15:12:08 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * sys/osxaudio/gstosxaudiosrc.c: - osxaudio: fix layout for osxaudiosrc + * gst/rtp/gstrtph264pay.c: + Revert "rtph264pay: Restructuring to allow for adding optional caps" + This reverts commit 61666898cfe89a1b21d3e6850ab44f5b1633ed79. + This commit changes what the set_sps_pps() function does, not it doesn't + set caps anymore (and should have been renamed). The main problem is that + not all call sites are updated and thus leak the string. -2013-03-30 22:49:34 +0900 ted-n <ted.nakajima@gmail.com> +2013-05-31 15:11:12 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * sys/osxaudio/Makefile.am: - * sys/osxaudio/gstosxaudioelement.c: - * sys/osxaudio/gstosxaudioringbuffer.c: - * sys/osxaudio/gstosxaudioringbuffer.h: - * sys/osxaudio/gstosxaudiosink.c: - * sys/osxaudio/gstosxaudiosink.h: - * sys/osxaudio/gstosxaudiosrc.c: - * sys/osxaudio/gstosxaudiosrc.h: - * sys/osxaudio/gstosxcoreaudiocommon.c: - * sys/osxaudio/gstosxcoreaudiocommon.h: - * sys/osxaudio/gstosxringbuffer.c: - * sys/osxaudio/gstosxringbuffer.h: - osxaudio: port to v.1.0 + * gst/rtp/gstrtph264depay.c: + * gst/rtp/gstrtph264depay.h: + * gst/rtp/gstrtph264pay.c: + * tests/check/elements/rtp-payloading.c: + Revert "rtph264pay/depay: Add frame dimensions a payloaded caps" + This reverts commit 3dca756a5dba55266256f239e3e12a3d058e185a. + The H264 RTP spec has no attributes for width and height. -2013-03-10 17:17:17 +0000 Josep Torra <n770galaxy@gmail.com> +2013-05-31 15:09:51 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * sys/osxaudio/gstosxaudioelement.c: - * sys/osxaudio/gstosxcoreaudiocommon.h: - osxaudio: Fixes error: "GST_LEVEL_DEFAULT" redefined + * gst/rtp/gstrtph264depay.c: + * gst/rtp/gstrtph264depay.h: + * gst/rtp/gstrtph264pay.c: + Revert "rtph264pay/depay: Add optional framerate caps for use in SDP" + This reverts commit d8825e2a5c0bfb883ff88e2c9da499c800ebca0a. + There is no framerate attribute in the h264 RTP spec. -2013-03-10 17:27:30 +0000 Josep Torra <n770galaxy@gmail.com> +2013-05-31 15:08:16 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * sys/osxaudio/gstosxcoreaudiohal.c: - osxaudio: fixes implicit declaration of function 'getpid' + * gst/rtp/gstrtpjpegdepay.c: + * gst/rtp/gstrtpjpegpay.c: + Revert "rtpjpegpay/depay: Replace framesize caps with width/height" + This reverts commit 0075d111b475ca27895ee9476154260b6902940b. + Extra application/x-rtp are SDP fields, which are strings. -2013-03-05 21:22:18 +0100 Andoni Morales Alastruey <ylatuya@gmail.com> +2013-05-31 15:05:51 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * configure.ac: - * sys/osxaudio/Makefile.am: - * sys/osxaudio/gstosxaudioelement.h: - * sys/osxaudio/gstosxaudiosink.c: - * sys/osxaudio/gstosxcoreaudio.c: - * sys/osxaudio/gstosxcoreaudioremoteio.c: - osxaudio: add support for iOS using the RemoteIO AudioUnit - Conflicts: - sys/osxaudio/Makefile.am + * gst/rtp/gstrtpjpegdepay.c: + * gst/rtp/gstrtpjpegpay.c: + * tests/check/elements/rtp-payloading.c: + Revert "rtpjpegpay/depay: Replace framerate caps field with fraction" + This reverts commit 9fd25a810b859e0ec205176578735100d83de4af. + We deal with sdp attributes in application/sdp, which are always strings. -2013-03-05 21:17:52 +0100 Andoni Morales Alastruey <ylatuya@gmail.com> +2013-05-31 12:33:21 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * sys/osxaudio/Makefile.am: - * sys/osxaudio/gstosxaudiosink.c: - * sys/osxaudio/gstosxaudiosrc.c: - * sys/osxaudio/gstosxcoreaudio.c: - * sys/osxaudio/gstosxcoreaudio.h: - * sys/osxaudio/gstosxcoreaudiocommon.c: - * sys/osxaudio/gstosxcoreaudiocommon.h: - * sys/osxaudio/gstosxcoreaudiohal.c: - * sys/osxaudio/gstosxringbuffer.c: - * sys/osxaudio/gstosxringbuffer.h: - osxaudio: add a façade for the CoreAudio API + * gst/rtsp/gstrtspsrc.c: + rtspsrc: add extra TLS url protocols + We also support TLS protocols now. -2013-04-16 19:29:48 -0400 Olivier Crête <olivier.crete@collabora.com> +2013-05-30 14:48:42 +0200 Sebastian Dröge <slomo@circular-chaos.org> * gst/videomixer/videomixer2.c: - videomixer: Don't unref query, we don't own it - Fixes double-unref bug. Bug found by Youness Alaoui + videomixer: Add FIXME comment about the DURATION query from adder + Currently the code just takes with maximum upstream duration, which + is wrong. It should be the maximum upstream duration in running time. -2012-10-24 12:14:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-05-30 21:20:59 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu> - * configure.ac: - * ext/aalib/Makefile.am: - * ext/cairo/Makefile.am: - * ext/dv/Makefile.am: - * ext/flac/Makefile.am: - * ext/gdk_pixbuf/Makefile.am: - * ext/jack/Makefile.am: - * ext/jpeg/Makefile.am: - * ext/libcaca/Makefile.am: - * ext/libpng/Makefile.am: - * ext/mikmod/Makefile.am: - * ext/pulse/Makefile.am: - * ext/raw1394/Makefile.am: - * ext/shout2/Makefile.am: - * ext/soup/Makefile.am: - * ext/speex/Makefile.am: - * ext/taglib/Makefile.am: - * ext/vpx/Makefile.am: - * ext/wavpack/Makefile.am: - * gst/alpha/Makefile.am: - * gst/apetag/Makefile.am: - * gst/audiofx/Makefile.am: - * gst/audioparsers/Makefile.am: - * gst/auparse/Makefile.am: - * gst/autodetect/Makefile.am: - * gst/avi/Makefile.am: - * gst/cutter/Makefile.am: - * gst/debugutils/Makefile.am: - * gst/deinterlace/Makefile.am: - * gst/effectv/Makefile.am: - * gst/equalizer/Makefile.am: - * gst/flv/Makefile.am: - * gst/flx/Makefile.am: - * gst/goom/Makefile.am: - * gst/goom2k1/Makefile.am: - * gst/icydemux/Makefile.am: - * gst/id3demux/Makefile.am: - * gst/imagefreeze/Makefile.am: - * gst/interleave/Makefile.am: - * gst/isomp4/Makefile.am: - * gst/law/Makefile.am: - * gst/level/Makefile.am: - * gst/matroska/Makefile.am: - * gst/monoscope/Makefile.am: - * gst/multifile/Makefile.am: - * gst/multipart/Makefile.am: - * gst/replaygain/Makefile.am: - * gst/rtp/Makefile.am: - * gst/rtpmanager/Makefile.am: - * gst/rtsp/Makefile.am: - * gst/shapewipe/Makefile.am: - * gst/smpte/Makefile.am: - * gst/spectrum/Makefile.am: - * gst/udp/Makefile.am: - * gst/videobox/Makefile.am: - * gst/videocrop/Makefile.am: - * gst/videofilter/Makefile.am: - * gst/videomixer/Makefile.am: - * gst/wavenc/Makefile.am: - * gst/wavparse/Makefile.am: - * gst/y4m/Makefile.am: - * sys/directsound/Makefile.am: - * sys/oss/Makefile.am: - * sys/oss4/Makefile.am: - * sys/osxaudio/Makefile.am: - * sys/osxvideo/Makefile.am: - * sys/sunaudio/Makefile.am: - * sys/v4l2/Makefile.am: - * sys/waveform/Makefile.am: - * sys/ximage/Makefile.am: - gst: Add better support for static plugins - Conflicts: - gst/dtmf/Makefile.am - sys/osxaudio/Makefile.am - sys/v4l2/Makefile.am + * gst/videomixer/videomixer2.c: + videomixer: Set a reference to mix->current_caps as the QUERY_CAPS result. -2013-03-25 10:12:03 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> +2013-05-30 17:37:13 +0200 Stefan Sauer <ensonic@users.sf.net> - * gst/debugutils/gstcapssetter.c: - capssetter: Prevent unneeded caps copying and allocation + * gst/level/gstlevel.c: + level: misc cleanups + Fix some oudated comments. Sort out some confusion of interval_frames and num_frames. -2013-02-01 14:33:41 +0100 Dirk Van Haerenborgh <vhdirk@gmail.com> +2013-05-29 20:35:41 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * gst/debugutils/gstcapssetter.c: - capssetter: Pass any or filter caps upstream - capsetter accepts anything and just forwards different caps, - as such it should return ANY caps on the sinkpad. - https://bugzilla.gnome.org/show_bug.cgi?id=693005 + * sys/v4l2/v4l2_calls.c: + v4l2: Only conditionally use V4L2_CTRL_TYPE_INTEGER_MENU, it's not available in older versions -2013-04-14 12:32:06 +0100 Tim-Philipp Müller <tim@centricular.net> +2013-05-20 16:45:37 +0200 Michael Olbrich <m.olbrich@pengutronix.de> - * ext/soup/gstsouphttpsrc.c: - * ext/soup/gstsouphttpsrc.h: - souphttpsrc: add back "iradio-mode" property to disable sending of icecast request headers - In 1.0 we now always send the icecast request headers by default, which - makes the server send icecasts metadata inserted into the stream if it - supports that. However, there are some use cases where this is not - desirable, like when just saving a radio stream to disk, so add back - the "iradio-mode" property to allow people to disable this. - https://bugzilla.gnome.org/show_bug.cgi?id=697984 + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2_calls.h: + v4l2: add a property for arbitrary v4l2 controls + This makes it possible to set any controls that can be set with + VIDIOC_S_CTRL. + The controls are set when the property is set (if the device is open) + and when the device is opened. + https://bugzilla.gnome.org/show_bug.cgi?id=698837 -2013-04-08 17:53:09 -0700 David Schleef <ds@schleef.org> +2013-05-28 18:31:07 +0200 Stefan Sauer <ensonic@users.sf.net> - * gst/isomp4/qtdemux.c: - qtdemux: check value inside enda to set endianness + * gst/level/gstlevel.c: + level: fix discontinuities in timestamps -2013-04-08 11:38:33 +0200 Alexander Schrab <alexas@axis.com> +2013-05-28 15:46:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * gst/wavparse/gstwavparse.c: - wavparse: error out if we receive eos before any valid data - https://bugzilla.gnome.org/show_bug.cgi?id=696684 + * ext/gdk_pixbuf/gstgdkanimation.c: + * ext/gdk_pixbuf/gstgdkpixbufdec.c: + * ext/gdk_pixbuf/gstgdkpixbufdec.h: + gdkpixbufdec: Keep serialized events in order, and don't send SEGMENT before CAPS -2013-04-07 01:47:56 +0200 Matej Knopp <matej.knopp@gmail.com> +2013-05-28 15:45:49 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * gst/deinterlace/gstdeinterlace.c: - deinterlace: force deinterlacing in "interlaced" mode - https://bugzilla.gnome.org/show_bug.cgi?id=697467 + * gst/rtsp/gstrtspsrc.c: + rtspsrc: create and push stream-start in TCP mode -2013-04-05 09:34:23 +0100 Todd Agulnick <todd@agulnick.com> +2013-05-28 15:10:07 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * sys/osxvideo/osxvideosink.m: - osxvideo: include pthread.h to fix compiler warning - https://bugzilla.gnome.org/show_bug.cgi?id=697303 + * gst/rtsp/gstrtspsrc.c: + rtspsrc: remove some obsolete code + It is not needed to do a state change from the _play() function on + ourselves. The state change function already did that and we don't want to + interfere with that (or use hacks to avoid interference). -2013-04-03 11:09:50 +0200 Wim Taymans <wim.taymans@collabora.co.uk> +2013-05-28 12:24:37 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * sys/v4l2/gstv4l2bufferpool.c: - v4l2: free all queued buffers - Don't just loop over the first num_queued buffers but loop over - all the buffers and check if they need to be freed. It is possible that - not all buffers are queued and then the entry in our array will be NULL. - Those buffers that are not queued were freed in stop(). - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696651 + * gst/rtsp/gstrtspsrc.c: + rtspsrc: set RTCP caps on the RTCP pads -2012-08-29 17:24:00 +0200 Arnaud Vrac <avrac@freebox.fr> +2013-05-28 12:23:37 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * gst/matroska/matroska-demux.c: - * gst/matroska/matroska-ids.h: - matroskademux: handle TrueHD audio codec id - https://bugzilla.gnome.org/show_bug.cgi?id=697113 + * gst/rtpmanager/gstrtpsession.c: + rtpsession: send stream-start and segment events + Also send stream-start and segment event on the RTCP pad. + We don't need to send anything on the sync_src pad because we + already forwarded all incomming events. -2013-03-18 12:30:50 +0100 Nicola Murino <nicola.murino@gmail.com> +2013-04-25 15:25:06 +0200 Wim Taymans <wim.taymans@collabora.co.uk> - * gst/isomp4/gstqtmuxmap.c: - qtmux: expose mulaw caps - https://bugzilla.gnome.org/show_bug.cgi?id=696052 + * gst/rtsp/gstrtspsrc.c: + rtspsrc: add signal to handle server requests + Add a signal to be notified of a server request. The signal handler can then + construct the response message for the server. + See https://bugzilla.gnome.org/show_bug.cgi?id=632207 -=== release 1.0.6 === +2013-05-27 22:43:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> -2013-03-22 13:41:58 +0000 Tim-Philipp Müller <tim@centricular.net> + * gst/videomixer/videomixer2.c: + videomixer: Maintain z-order when new pad are added + https://bugzilla.gnome.org/show_bug.cgi?id=701109 - * ChangeLog: - * NEWS: - * RELEASE: - * configure.ac: - * docs/plugins/inspect/plugin-1394.xml: - * docs/plugins/inspect/plugin-aasink.xml: - * docs/plugins/inspect/plugin-alaw.xml: - * docs/plugins/inspect/plugin-alpha.xml: - * docs/plugins/inspect/plugin-alphacolor.xml: - * docs/plugins/inspect/plugin-apetag.xml: - * docs/plugins/inspect/plugin-audiofx.xml: - * docs/plugins/inspect/plugin-audioparsers.xml: - * docs/plugins/inspect/plugin-auparse.xml: - * docs/plugins/inspect/plugin-autodetect.xml: - * docs/plugins/inspect/plugin-avi.xml: - * docs/plugins/inspect/plugin-cacasink.xml: - * docs/plugins/inspect/plugin-cairo.xml: - * docs/plugins/inspect/plugin-cutter.xml: - * docs/plugins/inspect/plugin-debug.xml: - * docs/plugins/inspect/plugin-deinterlace.xml: - * docs/plugins/inspect/plugin-dv.xml: - * docs/plugins/inspect/plugin-effectv.xml: - * docs/plugins/inspect/plugin-equalizer.xml: - * docs/plugins/inspect/plugin-flac.xml: - * docs/plugins/inspect/plugin-flv.xml: - * docs/plugins/inspect/plugin-flxdec.xml: - * docs/plugins/inspect/plugin-gdkpixbuf.xml: - * docs/plugins/inspect/plugin-goom.xml: - * docs/plugins/inspect/plugin-goom2k1.xml: - * docs/plugins/inspect/plugin-icydemux.xml: - * docs/plugins/inspect/plugin-id3demux.xml: - * docs/plugins/inspect/plugin-imagefreeze.xml: - * docs/plugins/inspect/plugin-interleave.xml: - * docs/plugins/inspect/plugin-isomp4.xml: - * docs/plugins/inspect/plugin-jack.xml: - * docs/plugins/inspect/plugin-jpeg.xml: - * docs/plugins/inspect/plugin-level.xml: - * docs/plugins/inspect/plugin-matroska.xml: - * docs/plugins/inspect/plugin-mulaw.xml: - * docs/plugins/inspect/plugin-multifile.xml: - * docs/plugins/inspect/plugin-multipart.xml: - * docs/plugins/inspect/plugin-navigationtest.xml: - * docs/plugins/inspect/plugin-oss4.xml: - * docs/plugins/inspect/plugin-ossaudio.xml: - * docs/plugins/inspect/plugin-png.xml: - * docs/plugins/inspect/plugin-pulseaudio.xml: - * docs/plugins/inspect/plugin-replaygain.xml: - * docs/plugins/inspect/plugin-rtp.xml: - * docs/plugins/inspect/plugin-rtpmanager.xml: - * docs/plugins/inspect/plugin-rtsp.xml: - * docs/plugins/inspect/plugin-shapewipe.xml: - * docs/plugins/inspect/plugin-shout2send.xml: - * docs/plugins/inspect/plugin-smpte.xml: - * docs/plugins/inspect/plugin-soup.xml: - * docs/plugins/inspect/plugin-spectrum.xml: - * docs/plugins/inspect/plugin-speex.xml: - * docs/plugins/inspect/plugin-taglib.xml: - * docs/plugins/inspect/plugin-udp.xml: - * docs/plugins/inspect/plugin-video4linux2.xml: - * docs/plugins/inspect/plugin-videobox.xml: - * docs/plugins/inspect/plugin-videocrop.xml: - * docs/plugins/inspect/plugin-videofilter.xml: - * docs/plugins/inspect/plugin-videomixer.xml: - * docs/plugins/inspect/plugin-vpx.xml: - * docs/plugins/inspect/plugin-wavenc.xml: - * docs/plugins/inspect/plugin-wavpack.xml: - * docs/plugins/inspect/plugin-wavparse.xml: - * docs/plugins/inspect/plugin-ximagesrc.xml: - * docs/plugins/inspect/plugin-y4menc.xml: - * gst-plugins-good.doap: - * win32/common/config.h: - Release 1.0.6 +2013-03-06 13:17:54 +0000 Tom Greenwood <tcdgreenwood@hotmail.com> -2012-06-22 21:56:52 +0000 Norbert Waschbuesch <nwaschbu@opentv.com> + * ext/vpx/gstvp8enc.c: + * ext/vpx/gstvp8enc.h: + vp8enc: Add property to manually specify the timebase of the encoder + https://bugzilla.gnome.org/show_bug.cgi?id=695709 - * ext/soup/gstsouphttpsrc.c: - souphttpsrc: error out properly when receiving data along with an error status - When receiving an error code from the http server, such as 404, - data might be sent along with it, like a web page. We don't want - to output that data in this case, and we also want to pass the - FLOW_ERROR return back to the base class, so it can stop properly. - https://bugzilla.gnome.org/show_bug.cgi?id=678429 +2013-05-25 12:17:40 -0400 Thibault Saunier <thibault.saunier@collabora.com> -2013-03-22 08:47:17 +0000 Rodolfo Schulz de Lima <rodolfo@rodsoft.org> + * gst/videomixer/videomixer2.c: + videomixer: Always handle flush_stop_pending atomically + It is not protected with the COLLECT_PADS_STREAM_LOCK anymore - * gst/isomp4/qtdemux.c: - qtdemux: fix sample leak when processing private qt tags - https://bugzilla.gnome.org/show_bug.cgi?id=696355 +2013-05-23 18:14:17 -0400 Thibault Saunier <thibault.saunier@collabora.com> -2013-03-22 02:24:01 +0100 Matej Knopp <matej.knopp@gmail.com> + * tests/check/Makefile.am: + * tests/check/elements/videomixer.c: + tests: videomixer: Add a testsuite for videomixer + This is mostly copy pasted from -base/tests/check/elements/adder.c - * gst/isomp4/gstqtmux.c: - qtmux: set stream language code from tag - https://bugzilla.gnome.org/show_bug.cgi?id=696358 +2013-05-25 10:57:02 -0400 Thibault Saunier <thibault.saunier@collabora.com> -2013-03-19 18:09:31 -0700 Michael Smith <msmith@rdio.com> + * gst/videomixer/videomixer2.c: + videomixer: Do not take COLLECT_PADS_STREAM_LOCK when unnecessary + Collectpad takes the lock itself when receiving serialized events + and we should not take it for not serialized ones - * gst/isomp4/gstqtmux.c: - mp4mux: in faststart mode, don't output up to 4 kB of garbage at the end. +2013-05-24 19:34:05 +0200 Sebastian Dröge <slomo@circular-chaos.org> -2013-03-18 14:59:35 +0000 Bastien Nocera <hadess@hadess.net> + * gst/flx/gstflxdec.c: + flxdec: Properly skip non-frame chunks - * sys/v4l2/v4l2_calls.c: - v4l2: fix compilation against newer kernel headers as on FC19 +2013-05-24 19:31:14 +0200 Sebastian Dröge <slomo@circular-chaos.org> -2013-03-14 14:12:05 +0100 Kishore Arepalli <kishore.arepalli@gmail.com> + * gst/flx/gstflxdec.c: + flxdec: Flush data from adapter after reading it + Otherwise we're going in an infinite loop, reading the same data + over and over again. - * gst/deinterlace/gstdeinterlace.c: - deinterlace: fix infinite loop on EOS with non-default methods or fields - Fixes problem of infinite loop in gst_deinterlace_reset_history. - Last field in the history was never deinterlaced because idx becomes negative. - Happens e.g. with method=scalerbob fields=bottom or - method=greedyl fields=top - https://bugzilla.gnome.org/show_bug.cgi?id=695644 - https://bugzilla.gnome.org/show_bug.cgi?id=693173 +2013-04-24 15:39:54 +0000 Andoni Morales Alastruey <ylatuya@gmail.com> -2013-03-12 09:48:31 +0000 Kishore Arepalli <kishore.arepalli@gmail.com> + * gst/goom2k1/Makefile.am: + goom2k1: fix more duplicated symbols - * ext/dv/gstdvdemux.c: - dvdemux: don't return FALSE when dropping sink events - Fixes problem in conjunction with avidemux. - https://bugzilla.gnome.org/show_bug.cgi?id=695643 +2013-05-22 02:40:52 +0200 Sebastian Rasmussen <sebrn@axis.com> -2013-03-11 14:50:41 +0100 Ognyan Tonchev <ognyan@axis.com> + * gst/rtp/gstrtpjpegdepay.c: + * gst/rtp/gstrtpjpegpay.c: + * tests/check/elements/rtp-payloading.c: + rtpjpegpay/depay: Replace framerate caps field with fraction + The previous implementation had the formatting of SDP attributes happen + in each RTP payloader, now instead the constituent values are propagated + as caps fields. This allows for applications to do SDP offer/answer + based on caps negotiation. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748 + +2013-05-22 01:58:57 +0200 Sebastian Rasmussen <sebrn@axis.com> + + * gst/rtp/gstrtpjpegdepay.c: + * gst/rtp/gstrtpjpegpay.c: + rtpjpegpay/depay: Replace framesize caps with width/height + The previous implementation had the formatting of SDP attributes happen + in each RTP payloader, now instead the constituent values are propagated + as caps fields. This allows for applications to do SDP offer/answer + based on caps negotiation. + Keep parsing a-framerate, x-framerate and x-dimensions in rtpjpegdepay + to be backwards compatible with previous payloaders. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748 +2013-05-22 03:18:07 +0200 Sebastian Rasmussen <sebrn@axis.com> + + * gst/rtp/gstrtph264depay.c: + * gst/rtp/gstrtph264depay.h: * gst/rtp/gstrtph264pay.c: - rtph264pay: Don't use upstream caps with peer_query_caps () - Calling gst_pad_peer_query_caps () on the src pad with the caps - upstream can produce as a filter from gst_rtp_h264_pay_getcaps () - is wrong and makes caps negotiation fail if upstream caps are not - NULL. - https://bugzilla.gnome.org/show_bug.cgi?id=695629 + rtph264pay/depay: Add optional framerate caps for use in SDP + This allows for applications to format SDP attributes and still do SDP + offer/answer based on caps negotiation. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749 -2013-02-22 19:06:52 +0100 Arnaud Vrac <avrac@freebox.fr> +2013-05-22 03:09:44 +0200 Sebastian Rasmussen <sebrn@axis.com> - * gst/isomp4/qtdemux.c: - qtdemux: skip disabled tracks - ISO/IEC 14496-12 specifies disabled tracks should be completely - ignored, so just do it. - Avoids deadlock during prerolling for some files. - Also prevents 'chapter' subtitle tracks from showing up. - https://bugzilla.gnome.org/show_bug.cgi?id=693993 - https://bugzilla.gnome.org/show_bug.cgi?id=628790 + * gst/rtp/gstrtph264depay.c: + * gst/rtp/gstrtph264depay.h: + * gst/rtp/gstrtph264pay.c: + * tests/check/elements/rtp-payloading.c: + rtph264pay/depay: Add frame dimensions a payloaded caps + This allows for applications to format SDP attributes and still do SDP + offer/answer based on caps negotiation. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749 -2013-02-26 14:18:20 -0500 Olivier Crête <olivier.crete@collabora.com> +2013-05-20 22:14:44 +0200 Sebastian Rasmussen <sebrn@axis.com> - * gst/rtp/gstrtpmp4gdepay.c: - rtpmp4gdepay: streamtype is not put by all RTSP server, not make it optional - Specific case here is Wowza 3.5.0 + * gst/rtp/gstrtph264pay.c: + rtph264pay: Restructuring to allow for adding optional caps + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749 -2013-02-25 09:58:13 +0000 Tim-Philipp Müller <tim@centricular.net> +2013-05-23 18:42:09 +0200 Sebastian Dröge <slomo@circular-chaos.org> - * tests/check/elements/level.c: - tests: re-add suppression for GValueArray warnings to unit test as well + * gst/udp/gstdynudpsink.c: + * gst/udp/gstdynudpsink.h: + * gst/udp/gstmultiudpsink.c: + * gst/udp/gstmultiudpsink.h: + (dyn|multi)udpsink: Add properties to specify the bind address and port + By default we use the any addresses and a random port for binding the socket. -2013-02-25 00:35:18 +0100 Thomas Vander Stichele <thomas (at) apestaart (dot) org> +2013-05-23 18:05:07 +0200 Sebastian Dröge <slomo@circular-chaos.org> - * gst/level/gstlevel.c: - level: put back deprecation warnings + * gst/udp/gstdynudpsink.c: + * gst/udp/gstmultiudpsink.c: + (dyn|multi)udpsink: Bind socket before using it + https://bugzilla.gnome.org/show_bug.cgi?id=700878 -2013-02-24 19:05:07 +0100 Thomas Vander Stichele <thomas (at) apestaart (dot) org> +2013-05-23 17:25:29 +0200 Sebastian Dröge <slomo@circular-chaos.org> - * gst/level/gstlevel.c: - * tests/check/elements/level.c: - level: send last message on EOS + * gst/udp/gstmultiudpsink.c: + (multi)udpsink: Add missing getters for socket-v6 and used-socket-v6 properties -2013-02-23 14:34:35 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> +2013-05-22 21:01:48 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> - * gst/avi/gstavidemux.c: - avidemux: push mode: handle some more 0-size buffer cases - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684944 + * gst/videomixer/videomixer2.c: + videomixer: Don't hold stream-lock while pushing non-serialized events + https://bugzilla.gnome.org/show_bug.cgi?id=700868 -2013-02-13 10:46:54 +0100 Paul HENRYS <visechelle@gmail.com> +2013-05-22 21:00:45 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> - * gst/rtpmanager/rtpsession.c: - rtpsession: Fix wrong code organisation in case of collision - change_ssrc field of RTPSession should be set before calling - rtp_session_schedule_bye_locked () as this function will call reconsider function - that will wake up rtcp_thread which will call rtp_session_on_timeout () that will - check change_ssrc to change the ssrc. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=694184 + * gst/videomixer/videomixer2.c: + videomixer: Don't hold object lock while sending events + https://bugzilla.gnome.org/show_bug.cgi?id=700868 -2013-02-20 15:46:43 +0100 Ognyan Tonchev <ognyan@axis.com> +2013-05-22 17:32:33 +0200 Sebastian Dröge <slomo@circular-chaos.org> - * gst/auparse/gstauparse.c: - auparse: do not leak src_caps - https://bugzilla.gnome.org/show_bug.cgi?id=694275 + * gst/deinterlace/gstdeinterlace.c: + deinterlace: The return value of gst_pad_set_caps() is not relevant anymore + Caps can fail to be set because the pad is not linked yet for example. -2013-02-18 16:32:13 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> +2013-05-15 16:39:36 -0700 David Schleef <ds@schleef.org> * gst/isomp4/qtdemux.c: - qtdemux: fix potential crash on short MOOV atom - Don't unmap short MOOV atom buffer twice, which happened - in the case where we don't fix up the MOOV atom. - Fixes crashes when thumbnailing partial mp4 file where - the MOOV atom is still incomplete. - https://bugzilla.gnome.org/show_bug.cgi?id=694010 + qtdemux: Add error if file has playready drm -2013-02-15 16:21:21 +0100 Benjamin Gaignard <benjamin.gaignard@stericsson.com> +2013-05-18 15:06:49 -0400 Thibault Saunier <thibault.saunier@collabora.com> + + * gst/videomixer/videomixer2.c: + videomixer: Send a reconfigure event upstream if sinkpad caps are not usable + https://bugzilla.gnome.org/show_bug.cgi?id=684237 + +2013-05-21 12:02:51 +0200 Michael Olbrich <m.olbrich@pengutronix.de> * sys/v4l2/gstv4l2bufferpool.c: - v4l2: don't check stride for encoded formats - Don't try to check the stride for encoded formats. Some drivers output - something != 0 and then we don't want to fail on that. + v4l2: keep a reference to all queued buffers + Without this, a queued buffer may be required, filled and queued before it + is dequeued. + Calling gst_buffer_pool_acquire_buffer() ensures that the buffer is set up + correctly and gst_buffer_unref() calls buffer_release(). + https://bugzilla.gnome.org/show_bug.cgi?id=700781 -2013-02-07 22:51:45 +0000 Tim-Philipp Müller <tim@centricular.net> +2013-05-21 13:33:59 +0200 Alexander Schrab <alexas@axis.com> - * configure.ac: - build: fix build with automake 1.13 - AM_CONFIG_HEADER -> AC_CONFIG_HEADERS - https://bugzilla.gnome.org/show_bug.cgi?id=693373 + * gst/law/mulaw-decode.c: + mulawdec: Handle NULL buffers in handle_frame + https://bugzilla.gnome.org/show_bug.cgi?id=698894 -2013-01-29 10:48:17 +0100 Paul HENRYS <visechelle@gmail.com> +2013-05-20 21:44:13 +0200 Sebastian Rasmussen <sebrn@axis.com> - * gst/rtpmanager/gstrtpptdemux.c: - rtpptdemux: forward sticky events and then set caps - When a new src pad is added, first forward the sticky events and then - set the caps on the src pad - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692786 + * gst/rtp/gstrtpjpegdepay.c: + * gst/rtp/gstrtpjpegpay.c: + rtpjpegpay/depay: Add framesize caps for use in SDP + The format of the value adheres to RFC6064 and it is meant to be parsed + and included in the SDP sent by gst-rtsp-server to its clients. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748 -2013-02-07 14:32:26 +0100 Markovtsev Vadim <v.markovtsev at samsung.com> +2013-05-20 21:34:13 +0200 Sebastian Rasmussen <sebrn@axis.com> - * gst/rtpmanager/rtpjitterbuffer.c: - rtpjitterbuffer: improve debug output - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688935 + * gst/rtp/gstrtpjpegpay.c: + rtpjpegpay: Add optional framerate caps for use in SDP + The format of the value adheres to RFC4566 and it is meant to be parsed + and included in the SDP sent by gst-rtsp-server to its clients. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748 -2013-02-07 11:40:35 +0100 Tim 'mithro' Ansell <gnome at mithis.com> +2013-05-20 19:59:13 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu> * gst/videomixer/videomixer2.c: - videomixer2: avoid caps leak - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693307 + videomixer: When all sinkpads are eos, update output segment stop and forward it + https://bugzilla.gnome.org/show_bug.cgi?id=699793 -2013-02-06 13:52:26 +0100 Wim Taymans <wim.taymans@collabora.co.uk> +2013-05-20 19:51:07 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu> - * gst/rtsp/gstrtspsrc.c: - rtspsrc: only EOS when our source sends BYE - Only EOS when we receive a BYE event from the SSRC of our stream. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675453 + * gst/videomixer/videomixer2.c: + videomixer: Don't reset the output segment on flush stop + Only init it when getting from READY to PAUSED, and change it on seek events. + https://bugzilla.gnome.org/show_bug.cgi?id=699793 -2013-02-06 13:47:51 +0100 Wim Taymans <wim.taymans@collabora.co.uk> +2013-05-17 10:16:48 +0200 Michael Olbrich <m.olbrich@pengutronix.de> - * gst/rtsp/gstrtspsrc.c: - rtspsrc: save the stream SSRC - Conflicts: - gst/rtsp/gstrtspsrc.c + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2sink.c: + * sys/v4l2/gstv4l2src.c: + v4l2: Don't stop streaming when set_caps is called with unchanged caps + This can happen if other parts of the pipeline are reconfigured. + Stop streaming even for a short amount of time can be quite visible, so it + should be avoided if possible. + https://bugzilla.gnome.org/show_bug.cgi?id=700503 -2013-02-06 13:18:18 +0100 Wim Taymans <wim.taymans@collabora.co.uk> +2013-05-18 15:39:36 -0400 Thibault Saunier <thibault.saunier@collabora.com> - * gst/rtsp/gstrtspsrc.c: - rtspsrc: flush connection when stopping - When we stop, we can flush all pending commands so that we can stop and - join the task. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684924 + * tests/check/pipelines/simple-launch-lines.c: + tests: Re-enable videomixer test + https://bugzilla.gnome.org/show_bug.cgi?id=684237 -2013-02-03 13:14:50 +0100 Olivier Crête <olivier.crete@collabora.com> +2013-05-18 14:36:39 -0400 Thibault Saunier <thibault.saunier@collabora.com> - * gst/level/gstlevel.c: - level: Add missing coma between formats + * gst/videomixer/videomixer2.c: + * gst/videomixer/videomixer2.h: + videomixer: Send caps event from the streaming thread + This way we avoid races in caps negotiation and we make sure + that the caps are sent after stream-start. + https://bugzilla.gnome.org/show_bug.cgi?id=684237 -2013-01-31 22:55:18 +1100 Matthew Waters <ystreet00@gmail.com> +2013-05-05 20:25:20 +0100 Thibault Saunier <thibault.saunier@collabora.com> * gst/videomixer/videomixer2.c: - videomixer: fix eos timestamp check - fixes hang in videotestsrc num-buffers=20 ! videomixer ! fakesink - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692935 + videomixer: Do not send flush_stop when receiving a seek + There is no reason to send a flush-stop when receiving a seek event. + In the case of a flushing seek, we could eventually want to, but in + the code path were we check if the seek is "flushing", we have the + following comment that makes sense: + "we can't send FLUSH_STOP here since upstream could start pushing data + after we unlock mix->collect. + We set flush_stop_pending to TRUE instead and send FLUSH_STOP after + forwarding the seek upstream or from gst_videomixer_collected, + whichever happens first." + https://bugzilla.gnome.org/show_bug.cgi?id=684237 + +2013-05-05 20:24:49 +0100 Thibault Saunier <thibault.saunier@collabora.com> -2013-01-18 21:08:12 +0400 Alexey Chernov <achernov@neosphere.com> + * gst/videomixer/videomixer2.c: + videomixer2: Protect flush_stop_pending with the collectpad stream lock + And make sure to expect a flush-stop after a flush-start + https://bugzilla.gnome.org/show_bug.cgi?id=684237 - * sys/osxvideo/cocoawindow.h: - * sys/osxvideo/cocoawindow.m: - osxvideosink: Make GstNavigation key input events in osxvideosink compatible with x(v)imagesink ones +2013-05-17 12:37:59 +0200 Michael Olbrich <m.olbrich@pengutronix.de> -2013-01-27 12:54:15 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + * gst/rtp/gstrtpmp4apay.c: + rtpmp4apay: clear config buffer before using it + This is necessary because parts of the memory are only modified with "|=" + https://bugzilla.gnome.org/show_bug.cgi?id=700514 + +2013-05-14 17:30:07 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> * gst/isomp4/qtdemux.c: - qtdemux: push mode: only parse moov 1 once - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691570 + qtdemux: Do not expect EOS after a segment event if upstream is mss + In case qtdemux is handling a mss stream, do not mark the stream to wait + for EOS after a segment. Even if it seems to be the last one according to + the current streams information. + MSS handling is different here because there is another demuxer driving + the pipeline -2013-01-23 21:35:25 -0500 Olivier Crête <olivier.crete@collabora.com> +2013-05-14 16:32:51 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> - * sys/ximage/gstximagesrc.c: - * sys/ximage/ximageutil.c: - * sys/ximage/ximageutil.h: - ximagesrc: Set the pixel aspect ratio correctly in the caps + * gst/isomp4/qtdemux.c: + qtdemux: only set channels and rate if qtdemux knows it + Setting both of those to 0 is pointless and means that qtdemux + doesn't know the real value. Avoid setting it in this case. -2013-01-22 18:12:10 +0100 Benjamin Gaignard <benjamin.gaignard@st.com> +2013-05-14 15:23:08 +0200 Arnaud Vrac <avrac@freebox.fr> - * autogen.sh: - autogen.sh: allow calling from out-of-tree - Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> - https://bugzilla.gnome.org/show_bug.cgi?id=692309 + * gst/isomp4/qtdemux.c: + qtdemux: set alac caps using info from codec buffer + The samplerate field in the STSD atom is not right for some ALAC files + (usually when audio is 96kHz/24bits), so the audio caps must be + extracted from the codec data. + https://bugzilla.gnome.org/show_bug.cgi?id=700382 -2013-01-19 13:27:48 +0000 Tim-Philipp Müller <tim@centricular.net> +2013-05-15 11:13:12 +0200 Arnaud Vrac <avrac@freebox.fr> - * ext/pulse/pulsesink.c: - pulsesink: don't error out if pa_stream_proplist_update() with new tags fails - Shouldn't really happen these days, but if it does, it's not really - a problem either. - https://bugzilla.gnome.org/show_bug.cgi?id=656068 + * gst/avi/gstavidemux.c: + avidemux: do not push discont buffers if they aren't discont + https://bugzilla.gnome.org/show_bug.cgi?id=682110 -2013-01-11 19:24:43 +0400 Alexey Chernov <achernov@neosphere.com> +2013-05-15 10:51:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * sys/osxvideo/cocoawindow.m: - * sys/osxvideo/osxvideosink.m: - osxvideosink: Fix crash in osxvideosink with external window output + * common: + Automatic update of common submodule + From 5edcd85 to 098c0d7 -2013-01-16 12:04:59 +0400 Alexey Chernov <achernov@neosphere.com> +2013-05-14 10:28:10 -0400 Joshua M. Doe <oss@nvl.army.mil> - * sys/osxvideo/cocoawindow.m: - osxvideosink: Make GstGLView propagate input events to its parent view - Fixes bug #691832 + * gst/videocrop/gstaspectratiocrop.c: + * gst/videocrop/gstvideocrop.c: + videocrop: Add support for GRAY16_LE/GRAY16_BE + https://bugzilla.gnome.org/show_bug.cgi?id=700331 -=== release 1.0.5 === +2013-05-14 17:29:58 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2013-01-08 01:19:07 +0000 Tim-Philipp Müller <tim@centricular.net> + * gst/replaygain/gstrgvolume.c: + rgvolume: Send all events through the proxypads instead of just sending to the target + Otherwise the sticky events are missing on the proxypads. - * ChangeLog: - * NEWS: - * RELEASE: - * configure.ac: - * docs/plugins/inspect/plugin-1394.xml: - * docs/plugins/inspect/plugin-aasink.xml: - * docs/plugins/inspect/plugin-alaw.xml: - * docs/plugins/inspect/plugin-alpha.xml: - * docs/plugins/inspect/plugin-alphacolor.xml: - * docs/plugins/inspect/plugin-apetag.xml: - * docs/plugins/inspect/plugin-audiofx.xml: - * docs/plugins/inspect/plugin-audioparsers.xml: - * docs/plugins/inspect/plugin-auparse.xml: - * docs/plugins/inspect/plugin-autodetect.xml: - * docs/plugins/inspect/plugin-avi.xml: - * docs/plugins/inspect/plugin-cacasink.xml: - * docs/plugins/inspect/plugin-cairo.xml: - * docs/plugins/inspect/plugin-cutter.xml: - * docs/plugins/inspect/plugin-debug.xml: - * docs/plugins/inspect/plugin-deinterlace.xml: - * docs/plugins/inspect/plugin-dv.xml: - * docs/plugins/inspect/plugin-effectv.xml: - * docs/plugins/inspect/plugin-equalizer.xml: - * docs/plugins/inspect/plugin-flac.xml: - * docs/plugins/inspect/plugin-flv.xml: - * docs/plugins/inspect/plugin-flxdec.xml: - * docs/plugins/inspect/plugin-gdkpixbuf.xml: - * docs/plugins/inspect/plugin-goom.xml: - * docs/plugins/inspect/plugin-goom2k1.xml: - * docs/plugins/inspect/plugin-icydemux.xml: - * docs/plugins/inspect/plugin-id3demux.xml: - * docs/plugins/inspect/plugin-imagefreeze.xml: - * docs/plugins/inspect/plugin-interleave.xml: - * docs/plugins/inspect/plugin-isomp4.xml: - * docs/plugins/inspect/plugin-jack.xml: - * docs/plugins/inspect/plugin-jpeg.xml: - * docs/plugins/inspect/plugin-level.xml: - * docs/plugins/inspect/plugin-matroska.xml: - * docs/plugins/inspect/plugin-mulaw.xml: - * docs/plugins/inspect/plugin-multifile.xml: - * docs/plugins/inspect/plugin-multipart.xml: - * docs/plugins/inspect/plugin-navigationtest.xml: - * docs/plugins/inspect/plugin-oss4.xml: - * docs/plugins/inspect/plugin-ossaudio.xml: - * docs/plugins/inspect/plugin-png.xml: - * docs/plugins/inspect/plugin-pulseaudio.xml: - * docs/plugins/inspect/plugin-replaygain.xml: - * docs/plugins/inspect/plugin-rtp.xml: - * docs/plugins/inspect/plugin-rtpmanager.xml: - * docs/plugins/inspect/plugin-rtsp.xml: - * docs/plugins/inspect/plugin-shapewipe.xml: - * docs/plugins/inspect/plugin-shout2send.xml: - * docs/plugins/inspect/plugin-smpte.xml: - * docs/plugins/inspect/plugin-soup.xml: - * docs/plugins/inspect/plugin-spectrum.xml: - * docs/plugins/inspect/plugin-speex.xml: - * docs/plugins/inspect/plugin-taglib.xml: - * docs/plugins/inspect/plugin-udp.xml: - * docs/plugins/inspect/plugin-video4linux2.xml: - * docs/plugins/inspect/plugin-videobox.xml: - * docs/plugins/inspect/plugin-videocrop.xml: - * docs/plugins/inspect/plugin-videofilter.xml: - * docs/plugins/inspect/plugin-videomixer.xml: - * docs/plugins/inspect/plugin-vpx.xml: - * docs/plugins/inspect/plugin-wavenc.xml: - * docs/plugins/inspect/plugin-wavpack.xml: - * docs/plugins/inspect/plugin-wavparse.xml: - * docs/plugins/inspect/plugin-ximagesrc.xml: - * docs/plugins/inspect/plugin-y4menc.xml: - * gst-plugins-good.doap: - * po/ja.po: - * po/nb.po: - * po/sl.po: - * win32/common/config.h: - Release 1.0.5 +2013-05-14 17:29:18 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2013-01-04 13:53:45 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + * tests/check/elements/rgvolume.c: + rgvolume: Fix event handling in the unit test - * docs/plugins/gst-plugins-good-plugins-docs.sgml: - * docs/plugins/gst-plugins-good-plugins-sections.txt: - docs: add gdkpixbufoverlay element to docs +2013-05-14 16:34:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2013-01-01 12:19:23 +0000 Tim-Philipp Müller <tim@centricular.net> + * tests/check/elements/rglimiter.c: + rglimiter: Fix event handling in unit tests - * docs/plugins/Makefile.am: - * docs/plugins/gst-plugins-good-plugins-docs.sgml: - * docs/plugins/gst-plugins-good-plugins-sections.txt: - * docs/plugins/gst-plugins-good-plugins.hierarchy: - * docs/plugins/inspect/plugin-cairo.xml: - docs: fix docs build and update after removal of old cairo elements +2013-05-14 16:31:57 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2013-01-01 11:52:09 +0000 Tim-Philipp Müller <tim@centricular.net> + * tests/check/elements/rganalysis.c: + rganalysis: Fix event handling in unit test - * configure.ac: - * ext/cairo/.gitignore: - * ext/cairo/Makefile.am: - * ext/cairo/gstcairo-marshal.list: - * ext/cairo/gstcairo.c: - * ext/cairo/gstcairooverlay.c: - * ext/cairo/gstcairooverlay.h: - * tests/examples/Makefile.am: - * tests/examples/cairo/Makefile.am: - * tests/examples/cairo/cairo_overlay.c: - cairo: port cairooverlay to 0.11 - The other elements are not that interesting now that we're - using pangocairo in the pango plugin, and should probably - just be removed. +2013-05-14 16:08:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2012-12-31 18:59:18 +0000 Tim-Philipp Müller <tim@centricular.net> + * tests/check/elements/qtmux.c: + qtmux: Fix event handling in unit test - * tests/examples/rtp/server-decodebin-H263p-AMR.sh: - examples: check for uri argument in decodebin-h264p-amr server example - Otherwise people get a rather confusing error message. +2013-05-14 16:00:58 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2013-01-04 10:03:32 +0100 Robert Krakora <rob.krakora@messagenetsystems.com> + * tests/check/elements/multifile.c: + multifile: Fix event handling in unit test - * sys/v4l2/v4l2_calls.c: - v4l2: Also handle the new ENOENT return value of VIDIOC_QUERYCTRL - https://bugzilla.gnome.org/show_bug.cgi?id=691098 +2013-05-14 13:58:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2012-10-25 12:18:03 -0700 Michael Smith <msmith@rdio.com> + * tests/check/elements/mulawdec.c: + * tests/check/elements/mulawenc.c: + mulaw: Fix event handling in unit test - * gst/isomp4/qtdemux.c: - * gst/isomp4/qtdemux_fourcc.h: - qtdemux: read video format header fully (so we can find 'pasp' atoms) for more fourccs. Fixes aspect ratio of prores files. +2013-05-14 13:52:18 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2012-12-17 15:17:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/matroska/matroska-parse.c: + matroskaparse: Make sure to send a segment event before dataflow - * 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/gstwavpackparse.c: - audioparsers: Make sure the caps are actually writable before changing them +2013-05-14 10:52:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de> -2012-12-17 15:01:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * sys/v4l2/gstv4l2object.c: + v4l2: only add interlace-mode to the caps for raw formats + https://bugzilla.gnome.org/show_bug.cgi?id=700280 - * 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/gstwavpackparse.c: - audioparsers: Use the peer caps for restrictions instead of the srcpad allowed caps - Otherwise we will intersect with the srcpad template caps and add all the caps fields - that the parser will ever set, no matter if downstream restricts this field or not. - This requires upstream to set this field on the caps to successfully negotiate. - https://bugzilla.gnome.org/show_bug.cgi?id=690184 +2013-05-14 12:03:03 +0200 Michael Olbrich <m.olbrich@pengutronix.de> -2012-12-20 17:12:30 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * sys/v4l2/gstv4l2object.c: + v4l2: copy and set the actual size of the content + https://bugzilla.gnome.org/show_bug.cgi?id=700282 + +2013-05-14 10:25:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * tests/check/elements/interleave.c: + interleave: Fix event handling in unit test + +2013-05-14 09:45:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: Improve handling of min/max buffer numbers of the buffer pool + +2013-05-14 03:42:59 +0200 Matej Knopp <matej.knopp@gmail.com> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: set caps for buffer pool config + +2013-05-13 13:30:38 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/multifile/gstmultifilesink.c: + multifilesink: Let the base class do get_times + This will make sync=TRUE work, the default is still sync=FALSE + +2013-05-11 23:08:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * gst/interleave/interleave.c: + interleave: Send stream-start before caps event + +2013-05-11 23:24:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + * tests/check/elements/rtpmux.c: + rtpmux: Send stream-start before caps + +2013-05-11 23:28:12 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer-test: Send stream-start before caps followed by segment + +2013-05-11 23:34:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * tests/check/elements/rtpbin.c: + rtpbin-test: Send missing stream-start and segment events + +2013-05-13 15:36:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * tests/check/elements/level.c: + * tests/check/elements/matroskamux.c: + tests: Fix some more event handling in tests + +2013-05-13 15:19:36 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * tests/check/elements/icydemux.c: + icydemux: Fix event handling in unit test + +2013-05-13 15:19:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/icydemux/gsticydemux.c: + icydemux: Fix sticky event handling + +2013-05-13 15:06:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/flv/gstflvmux.c: + flvmux: Push sticky events in the right order + +2013-05-13 14:55:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * tests/check/elements/deinterleave.c: + deinterleave: Fix event handling in test + +2013-05-13 14:07:11 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/interleave/deinterleave.c: + deinterleave: Fix sticky event handling + +2013-05-13 13:55:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/interleave/deinterleave.c: + deinterleave: Code style fixes + +2013-05-13 10:43:32 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/rtp/gstrtpgstpay.c: + rtpgstpay: First let baseclass handle events, then put them into the stream + Fixes handling of sticky events. + https://bugzilla.gnome.org/show_bug.cgi?id=700213 + +2013-05-09 22:05:24 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * tests/check/elements/shapewipe.c: + shapewipe-test: Send inital events + https://bugzilla.gnome.org/show_bug.cgi?id=700033 + +2013-05-09 18:32:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tests/check/elements/spectrum.c: + spectrum-test: Send inital events + https://bugzilla.gnome.org/show_bug.cgi?id=700033 + +2013-05-09 18:25:17 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tests/check/elements/videofilter.c: + videofilter-test: Send inital events + https://bugzilla.gnome.org/show_bug.cgi?id=700033 + +2013-05-09 18:23:30 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tests/check/elements/wavpackparse.c: + wavpackparse-test: Send inital events + https://bugzilla.gnome.org/show_bug.cgi?id=700033 + +2013-05-09 18:21:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tests/check/elements/y4menc.c: + y4menc-test: Send inital events + https://bugzilla.gnome.org/show_bug.cgi?id=700033 + +2013-05-10 14:00:33 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/multipart/multipartdemux.c: + multipartdemux: fix example pipeline + Need jpegparse. + +2013-05-10 13:34:16 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * tests/check/elements/alphacolor.c: + * tests/check/elements/aspectratiocrop.c: + * tests/check/elements/audioamplify.c: + * tests/check/elements/audiochebband.c: + * tests/check/elements/audiocheblimit.c: + * tests/check/elements/audiodynamic.c: + * tests/check/elements/audioecho.c: + * tests/check/elements/audioinvert.c: + * tests/check/elements/audiopanorama.c: + * tests/check/elements/audiowsincband.c: + * tests/check/elements/audiowsinclimit.c: + * tests/check/elements/avimux.c: + * tests/check/elements/avisubtitle.c: + * tests/check/elements/capssetter.c: + * tests/check/elements/deinterlace.c: + * tests/check/elements/dtmf.c: + * tests/check/elements/equalizer.c: + tests: Fix some more unit tests + +2013-05-10 13:10:29 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * tests/check/elements/parser.c: + tests: Fix parser tests + +2013-05-09 22:20:28 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Can't map twice the same buffer for writing + I took the opportunity to simplify that code a bit. We now use + gst_buffer_make_writable() to make the buffer writable and map twice the + same buffer, with first map being read/write, and second read only. This + get rid of the critical: + GStreamer-CRITICAL **: gst_structure_set_name: assertion `IS_MUTABLE + https://bugzilla.gnome.org/show_bug.cgi?id=700044 + +2013-05-09 22:15:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Ensure caps are writable + The exist one case where that we endup with original caps in ret, in which + case we are not guaratied to have writable caps. Simply ensure this is the + caps are writable before entering the loop. + https://bugzilla.gnome.org/show_bug.cgi?id=700044 + +2013-05-09 22:13:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Fix sample pipeline in documentation + https://bugzilla.gnome.org/show_bug.cgi?id=700044 + +2013-05-09 18:05:02 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tests/check/elements/jpegenc.c: + jpegenc-test: Send inital events + https://bugzilla.gnome.org/show_bug.cgi?id=700033 + +2013-05-09 17:49:03 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tests/check/elements/vp8enc.c: + vp8enc-test: Send inital events + https://bugzilla.gnome.org/show_bug.cgi?id=700033 + +2013-05-09 17:20:18 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tests/check/elements/vp8dec.c: + vp8dec-test: Send inital events + https://bugzilla.gnome.org/show_bug.cgi?id=700033 + +2013-05-09 17:19:53 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tests/check/elements/wavpackdec.c: + wavpackdec-test: Send initial events + https://bugzilla.gnome.org/show_bug.cgi?id=700033 + +2013-05-09 16:26:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/videomixer/videomixer2.c: + Revert "videomixer2: Take into account new segments" + This reverts commit 84ae670ab40b258a10e1e21471e6dc9d786bf086. + Actually this is not how it is supposed to work. videomixer + creates a [0,-1] segment and then puts frames of the different + streams there based on their running times in their own segments. + +2013-05-06 23:43:03 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu> + + * gst/videomixer/videomixer2.c: + videomixer2: Take into account new segments + Also forward the event downstream on the next opportunity. + https://bugzilla.gnome.org/show_bug.cgi?id=699793 + +2013-05-09 09:07:38 +0100 Tim-Philipp Müller <tim@centricular.net> * gst/rtsp/gstrtspsrc.c: - rtspsrc: fix cmd comparison - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690476 + Revert "gstrtspsrc: set buffer-size for multicast buffers" + This reverts commit 2481e95d038b42297a016f1d2dc1af26d2175b42. + This is already done five lines above, it was added a year + ago in commit 561b131e. -2012-12-20 17:12:20 +0100 Wim Taymans <wim.taymans@collabora.co.uk> +2013-05-08 19:54:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * tests/check/elements/videofilter.c: + videofilter: Unit test send SEGMENT before CAPS + https://bugzilla.gnome.org/show_bug.cgi?id=699966 + +2013-05-08 19:22:31 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * tests/check/elements/avimux.c: + avimux: Unit test sends SEGMENT before caps + https://bugzilla.gnome.org/show_bug.cgi?id=699966 + +2013-05-08 19:08:24 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * tests/check/elements/audiowsincband.c: + audiowsincband: Test should send segment after CAPS + This makes the unit test pass again. + https://bugzilla.gnome.org/show_bug.cgi?id=699966 + +2013-05-08 19:00:28 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * tests/check/elements/audiowsinclimit.c: + audiowsinclimit: Test should send segment after CAPS + This makes the unit test pass again. + https://bugzilla.gnome.org/show_bug.cgi?id=699966 + +2013-05-08 18:44:32 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * gst/audiofx/audiowsinclimit.c: + audiowsinclimit: Frequence property renamed cutoff + Updating the documentation to reflect this change. + See: https://bugzilla.gnome.org/show_bug.cgi?id=699964 + +2013-05-08 15:25:58 -0300 Aha Unsworth <aha.unsworth@gmail.com> * gst/rtsp/gstrtspsrc.c: - rtspsrc: add some more debug + gstrtspsrc: set buffer-size for multicast buffers + For receiving video data via RTSP when the video is sent via + multicast there is no way to specify the udpsrc buffer-size. + On windows the native network buffer is not large and with video + i-frames being huge the buffer is to small and you get i-frame corruption, + it looks terrible, and there is no (easy) way to set the udpsrc buffer-size. + https://bugs.freedesktop.org/show_bug.cgi?id=52264 -2012-12-20 15:55:02 +0100 Wim Taymans <wim.taymans@collabora.co.uk> +2013-05-08 16:02:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * ext/jpeg/gstjpegenc.c: - * ext/jpeg/gstjpegenc.h: - jpegenc: pass flowreturn upstream + * gst/videomixer/videomixer2.c: + videomixer2: Send stream-start before caps event + https://bugzilla.gnome.org/show_bug.cgi?id=699895 -=== release 1.0.4 === +2013-05-07 19:15:49 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> -2012-12-18 19:11:37 +0000 Tim-Philipp Müller <tim@centricular.net> + * ext/jpeg/gstjpegdec.c: + jpegdec: fix compiler warning on type check - * ChangeLog: - * NEWS: - * RELEASE: - * configure.ac: - * docs/plugins/inspect/plugin-1394.xml: - * docs/plugins/inspect/plugin-aasink.xml: - * docs/plugins/inspect/plugin-alaw.xml: - * docs/plugins/inspect/plugin-alpha.xml: - * docs/plugins/inspect/plugin-alphacolor.xml: - * docs/plugins/inspect/plugin-apetag.xml: - * docs/plugins/inspect/plugin-audiofx.xml: - * docs/plugins/inspect/plugin-audioparsers.xml: - * docs/plugins/inspect/plugin-auparse.xml: - * docs/plugins/inspect/plugin-autodetect.xml: - * docs/plugins/inspect/plugin-avi.xml: - * docs/plugins/inspect/plugin-cacasink.xml: - * docs/plugins/inspect/plugin-cutter.xml: - * docs/plugins/inspect/plugin-debug.xml: - * docs/plugins/inspect/plugin-deinterlace.xml: - * docs/plugins/inspect/plugin-dv.xml: - * docs/plugins/inspect/plugin-effectv.xml: - * docs/plugins/inspect/plugin-equalizer.xml: - * docs/plugins/inspect/plugin-flac.xml: - * docs/plugins/inspect/plugin-flv.xml: - * docs/plugins/inspect/plugin-flxdec.xml: - * docs/plugins/inspect/plugin-gdkpixbuf.xml: - * docs/plugins/inspect/plugin-goom.xml: - * docs/plugins/inspect/plugin-goom2k1.xml: - * docs/plugins/inspect/plugin-icydemux.xml: - * docs/plugins/inspect/plugin-id3demux.xml: - * docs/plugins/inspect/plugin-imagefreeze.xml: - * docs/plugins/inspect/plugin-interleave.xml: - * docs/plugins/inspect/plugin-isomp4.xml: - * docs/plugins/inspect/plugin-jack.xml: - * docs/plugins/inspect/plugin-jpeg.xml: - * docs/plugins/inspect/plugin-level.xml: - * docs/plugins/inspect/plugin-matroska.xml: - * docs/plugins/inspect/plugin-mulaw.xml: - * docs/plugins/inspect/plugin-multifile.xml: - * docs/plugins/inspect/plugin-multipart.xml: - * docs/plugins/inspect/plugin-navigationtest.xml: - * docs/plugins/inspect/plugin-oss4.xml: - * docs/plugins/inspect/plugin-ossaudio.xml: - * docs/plugins/inspect/plugin-png.xml: - * docs/plugins/inspect/plugin-pulseaudio.xml: - * docs/plugins/inspect/plugin-replaygain.xml: - * docs/plugins/inspect/plugin-rtp.xml: - * docs/plugins/inspect/plugin-rtpmanager.xml: - * docs/plugins/inspect/plugin-rtsp.xml: - * docs/plugins/inspect/plugin-shapewipe.xml: - * docs/plugins/inspect/plugin-shout2send.xml: - * docs/plugins/inspect/plugin-smpte.xml: - * docs/plugins/inspect/plugin-soup.xml: - * docs/plugins/inspect/plugin-spectrum.xml: - * docs/plugins/inspect/plugin-speex.xml: - * docs/plugins/inspect/plugin-taglib.xml: - * docs/plugins/inspect/plugin-udp.xml: - * docs/plugins/inspect/plugin-video4linux2.xml: - * docs/plugins/inspect/plugin-videobox.xml: - * docs/plugins/inspect/plugin-videocrop.xml: - * docs/plugins/inspect/plugin-videofilter.xml: - * docs/plugins/inspect/plugin-videomixer.xml: - * docs/plugins/inspect/plugin-vpx.xml: - * docs/plugins/inspect/plugin-wavenc.xml: - * docs/plugins/inspect/plugin-wavpack.xml: - * docs/plugins/inspect/plugin-wavparse.xml: - * docs/plugins/inspect/plugin-ximagesrc.xml: - * docs/plugins/inspect/plugin-y4menc.xml: - * gst-plugins-good.doap: - * win32/common/config.h: - Release 1.0.4 +2013-04-18 07:49:54 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> -2012-12-18 18:53:14 +0000 Tim-Philipp Müller <tim@centricular.net> + * gst/isomp4/qtdemux.c: + qtdemux: push new caps events when caps change + Whenever the demuxer has a new caps on a stream, it should set the + new_caps variable to true and a new caps event will be pushed before + the next buffer - * po/LINGUAS: - * po/da.po: - * po/de.po: - * po/el.po: - * po/gl.po: - * po/hr.po: - * po/hu.po: - * po/nb.po: - * po/nl.po: - * po/pl.po: - * po/ru.po: - * po/tr.po: - * po/uk.po: - * po/vi.po: - * po/zh_CN.po: - po: update translations +2013-04-17 16:54:22 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> -2012-12-18 15:56:59 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + * gst/isomp4/qtdemux.c: + qtdemux: do not push discont buffers if they aren't discont + qtdemux takes its buffers from a GstAdapter. Those buffers are created + from the larger buffer that it obtained from upstream and they carry + the same flags, including DISCONT if it is set. In these cases, all + buffers that qtdemux is going to push would be marked as DISCONT. + This scenario can make parsers/decoders flush on every buffer leading + to no decoding at all hapenning. This patch prevents this by unsetting + the flag if it shouldn't be set. - * ext/wavpack/gstwavpackenc.c: - wavpack: use appropriate printf format for gsize +2013-04-12 09:08:16 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> -2012-12-18 15:55:43 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: some code cleanup for mss handling code + * Explicitly init variables for fragmented formats at init + * Do not use GstClockTime type if the variable isn't a timestamp + * Fix a style/readability issue at an if block + * Group 2 mss mode conditional blocks together to improve readability + Conflicts: + gst/isomp4/qtdemux.c - * ext/taglib/gstid3v2mux.cc: - taglib: use appropriate printf format for gsize +2013-04-12 10:21:11 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> -2012-12-18 15:54:08 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + * gst/isomp4/qtdemux.c: + qtdemux: avoid storing non-time newsegments to push later + This can confuse downstream when they get a byte segment after receiving + the natural time segment from qtdemux that it sends when starting to + push buffers. This is specially the case with parsers that try to + convert the position from byte to time format and might miss the + correct position for playback to start. - * ext/gdk_pixbuf/gstgdkpixbufdec.c: - gdkpixbuf: use appropriate printf format for gsize +2013-04-10 18:02:28 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> -2012-12-18 15:46:56 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + * gst/isomp4/qtdemux.c: + qtdemux: avoid setting fields to non-writable caps - * gst/deinterlace/gstdeinterlace.c: - deinterlace: use appropriate printf format for gsize +2013-03-10 04:15:06 +0100 Wim Taymans <wim.taymans@collabora.co.uk> -2012-12-17 16:35:56 +0100 Philippe Normand <philn@igalia.com> + * gst/isomp4/qtdemux.c: + qtdemux: don't send so many segment events + Only send one segment event in the beginning of the stream, not + after each moov and moof atom. + Conflicts: + gst/isomp4/qtdemux.c - * gst/interleave/interleave.c: - * gst/interleave/interleave.h: - interleave: set src pad caps upon last sink pad CAPS event - Gather caps on all sink pads before setting the src pad caps. This is - specially needed when the audio channel mapping is set on the sink - pads and the element needs to preserve it on its src pad. - https://bugzilla.gnome.org/show_bug.cgi?id=690267 +2013-03-08 16:02:26 +0100 Wim Taymans <wim.taymans@collabora.co.uk> -2012-12-14 22:25:08 +0000 Koop Mast <kwm@rainbow-runner.nl> + * gst/isomp4/qtdemux.c: + qtdemux: place incomming timestamps on output + Place the incomming timestamp (if any) directly onto the outgoing buffers + and interpollate other timestamps. + Conflicts: + gst/isomp4/qtdemux.c - * configure.ac: - * sys/v4l2/gstv4l2object.h: - v4l2: Teach where the videodev2.h header lives on freebsd. - https://bugzilla.gnome.org/show_bug.cgi?id=690233 +2013-05-07 10:16:18 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> -2012-12-13 09:27:14 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/isomp4/qtdemux.c: + qtdemux: improve reset of internal status + Reset different variables on state changes to ready and when + handling a flush-stop. For handling flush stops we should check + if there is an upstream adaptive demuxer driving the pipeline as this + means that qtdemux will get a new moov atom. For 'standard' isomedia + streams this isn't true and qtdemux should keep the previous moov + information around. + Conflicts: + gst/isomp4/qtdemux.c - * gst/rtsp/gstrtspsrc.c: - rtspsrc: fix TCP reconnect - Ignore other commands when reconnecting, otherwise the loop function would pause - and the reconnection would not happen. Continue looping after doing a reconnect - so that we have a chance to actually read the new data. +2013-02-08 00:29:20 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> -2012-12-12 12:07:34 +0100 Philippe Normand <philn@igalia.com> + * gst/isomp4/qtdemux.c: + qtdemux: prepare qtdemux to accept multiple dash moovs in a row + Whenever dashdemux switches bitrates it sends a new moov with the + new stream configuration. qtdemux should now handle this by splitting + the exposing and configuration of streams into separate functions. When + the stream is new it is configured and exposed, when it is a new bitrate + of an existing stream it is only reconfigured. + Conflicts: + gst/isomp4/qtdemux.c - * gst/interleave/deinterleave.c: - deinterleave: properly set srcpad channel position - The src pad caps always describe a single audio channel so only the - first position matters if deinterleave is configured to keep channel - positions in its src pads. +2013-02-07 14:12:53 -0200 Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk> -2012-12-10 11:44:26 +0000 Alexey Chernov <4ernov@gmail.com> + * gst/isomp4/qtdemux.c: + qtdemux: Move FLUSH_STOP/PAUSED_TO_READY handling to a reset method. + Conflicts: + gst/isomp4/qtdemux.c + +2013-01-23 10:55:33 -0500 Louis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: Remove old pads when exposing streams and other general fixes. + Conflicts: + gst/isomp4/qtdemux.c + +2013-04-16 10:41:43 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: handle mss streams + smoothstreaming streams should be handled as a special kind of + fragmented isomedia. In MSS the fragments will not contain a + 'moov' atom with the media descriptions, this has to be extracted + from the caps. + Additionally, there should be another demuxer upstream that is likely + going to be the one to answer/act on queries and events, so qtdemux has + to forward those upstream. + +2013-05-06 16:54:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: request 0 buffers when stopping + Without this stopping the pool in *_set_caps() is useless. + S_FMT will still fail with EBUSY. + https://bugzilla.gnome.org/show_bug.cgi?id=699835 + +2013-05-07 16:32:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/jpeg/gstjpegdec.c: + jpegdec: By default assume that we're working on non-packetized input + Only detecting this in set_format() does not work because we might + not get any caps at all, e.g. from filesrc. + +2013-05-07 16:30:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/libpng/gstpngdec.c: + pngdec: Implement parsing functionality + This allows to plug pngdec directly without a parser if that + is desired. + Parsing code is based on pngparse. + +2013-05-07 15:54:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * ext/libcaca/gstcacasink.c: + cacasink: Fix support for RGB formats and add support for more of them + +2013-05-04 13:19:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Don't consider the content size from the HTTP headers as absolutely correct + The HTTP server could give wrong information, e.g. if the HTTP stream is + chunk-encoded or compressed, or if the server does not know the complete size + at the time when the file is requested by the client. + Also see + https://bugs.webkit.org/show_bug.cgi?id=115354 + +2012-08-20 09:52:32 +0200 Philipp Zabel <p.zabel@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: fill out v4l2_buffer.bytesused field for v4l2sink + When queuing a buffer for a sink, bytesused must contain the actual + amount of data. + For a source, the driver must overwrite this, so it doesn't matter + what is set here. + https://bugzilla.gnome.org/show_bug.cgi?id=699598 + +2013-05-03 23:43:26 +0200 Sebastian Rasmussen <sebras@gmail.com> + + * gst/rtp/gstrtpgstpay.c: + rtpgstpay: fix invalid memory access in event handler + First process event in payloader, then hand it to the + base class which takes ownership of the event. + https://bugzilla.gnome.org/show_bug.cgi?id=699637 + +2013-05-04 09:48:02 +0100 Tim-Philipp Müller <tim@centricular.net> + + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstdcaparse.c: + ac3parse, dcaparse: check buffer size before trimming + and unref old buffer as soon as possible. + +2013-05-02 15:00:22 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> + + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstdcaparse.h: + dcaparse: add support for "audio/x-private1-dts" + +2013-05-02 14:56:02 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> + + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstac3parse.h: + ac3parse: add support for "audio/x-private1-ac3" + +2013-05-03 12:46:37 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2object.c: + v4l2: always generate video info from caps + In the past gst_video_info_from_caps() only video/x-raw. Now it also + supports other video/* and image/* formats. + With this patch the format won't be GST_VIDEO_FORMAT_UNKOWN and + gst_v4l2_buffer_pool_set_config() handles strides correctly. + https://bugzilla.gnome.org/show_bug.cgi?id=699570 + +2013-05-02 09:41:01 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2bufferpool.h: + v4l2: try to allocate new buffers with VIDIOC_CREATE_BUFS if needed + If max_buffers is 0 then an arbitrary number of buffers (currently 4) is + allocated. If this is not enough v4l2src starts copying buffers. + With this patch VIDIOC_CREATE_BUFS is used to allocate a new buffer. If + this fails v4l2src falls back to copying buffers. + https://bugzilla.gnome.org/show_bug.cgi?id=699447 + +2013-04-15 17:37:01 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> + + * sys/osxvideo/osxvideosink.h: * sys/osxvideo/osxvideosink.m: - osxvideosink: Fix resizing the Cocoa window on receiving new caps - Fixes bug #689732. + osxvideosink: fix setting window handle after transition + The destroyed flag was not reset properly and it's also not needed + as we can check osxwindow != NULL -2012-09-27 12:17:58 -0700 Aleix Conchillo Flaque <aleix@oblong.com> +2013-05-02 13:45:55 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> - rtspsrc: do not change state to PLAYING if currently chaning state - * gst/rtsp/gstrtspsrc.c (gst_rtspsrc_play): state change might be - happening in the application thread, so we don't change the state to - PLAYING in the gstrtspsrc thread unless it is safe. - A specific case is when chaning the state to NULL from the application - thread. This will synchronously try to stop the task (with the element - state lock acquired), but we will try a gst_element_set_state from - gstrtspsrc thread which will block on the element state lock causing a - deadlock. - https://bugzilla.gnome.org/show_bug.cgi?id=684312 + * gst/rtp/Makefile.am: + rtp: fix duplicated symbols with libvpx -2012-11-30 17:22:59 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> +2013-04-29 10:58:08 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> - * ext/shout2/gstshout2.c: - shout2send: accept audio/webm as well as video/webm - https://bugzilla.gnome.org/show_bug.cgi?id=689336 + * gst/goom2k1/Makefile.am: + goom2k1: fix duplicated symbols with goom -2012-11-30 17:20:18 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> +2013-05-01 15:49:45 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * gst/matroska/matroska-mux.c: + * gst/rtp/gstrtph264pay.c: + rtph264pay: If the adapter is empty on EOS don't try to map its content + https://bugzilla.gnome.org/show_bug.cgi?id=699314 + +2013-04-30 14:36:38 +0200 Ognyan Tonchev <ognyan@axis.com> + + * gst/matroska/matroska-demux.c: + matroskademux: add stream-format=raw to aac caps + https://bugzilla.gnome.org/show_bug.cgi?id=699303 + +2013-04-30 13:07:37 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: fix and cleanup VIDIOC_EXPBUF handling + clear the struct, and provide a correct error message + https://bugzilla.gnome.org/show_bug.cgi?id=699337 + +2012-07-05 18:02:27 +0200 Philipp Zabel <p.zabel@pengutronix.de> + + * sys/v4l2/gstv4l2object.c: + v4l2: handle return value -ENOTTY for unimplemented VIDIOC_G_PARM + Newer kernels return -ENOTTY, older kernels return -EINVAL if the ioctl + is not implemented. With this patch, GStreamer handles both cases. + https://bugzilla.gnome.org/show_bug.cgi?id=698825 + +2013-04-30 09:16:07 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2object.c: + v4l2: fix broken boolean expression to detect non-frame buffers + https://bugzilla.gnome.org/show_bug.cgi?id=699294 + +2013-04-29 11:07:56 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk> + + * ext/pulse/pulsesink.c: + pulsesink: Better error message when server version is too old + We check for the library version at configure time, but the server + version can only really be checked at run-time. + https://bugzilla.gnome.org/show_bug.cgi?id=698768 + +2013-04-27 11:24:38 +0100 Tim-Philipp Müller <tim@centricular.net> + + * gst/udp/gstudp.c: + udp: log WARNING debug message if UDP multicast is likely to be broken + +2013-04-27 11:16:54 +0100 Tim-Philipp Müller <tim@centricular.net> + + * gst/udp/gstudpsrc.c: + udpsrc: add includes to get socklen_t defined on Windows + https://bugzilla.gnome.org/show_bug.cgi?id=692400 + +2013-04-27 09:39:45 +0100 Yury Delendik <async.processingjs@yahoo.com> + + * gst/isomp4/qtdemux.c: + qtdemux: add support for VP6F VP6 flash codec + https://bugzilla.gnome.org/show_bug.cgi?id=699010 + +2012-09-05 16:39:31 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/v4l2_calls.c: + v4l2: also poll for output devices + Note that the V4L2 API defines that for output devices POLLOUT + indicates that a buffer is ready to be dequeued. + https://bugzilla.gnome.org/show_bug.cgi?id=698992 + +2012-08-20 09:52:34 +0200 Philipp Zabel <p.zabel@pengutronix.de> + + * sys/v4l2/gstv4l2object.c: + v4l2: fix copying of encoded buffers + The existence of a GstVideoFormatInfo does not guarantee, that + the buffer contains video frames, so the format must be checked. + Also, for encoded buffers the length is variable and must be set. + https://bugzilla.gnome.org/show_bug.cgi?id=698949 + +2012-07-10 15:29:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2object.c: + v4l2: add support for mpeg4 and H.263 + https://bugzilla.gnome.org/show_bug.cgi?id=698826 + +2013-04-26 12:16:49 +0200 Edward Hervey <edward@collabora.com> + + * gst/monoscope/gstmonoscope.c: + monoscope: Fix debug statement + +2013-04-25 21:50:33 +0200 Alexander Schrab <meros@meros-desktop.(none)> + + * gst/law/mulaw-decode.c: + * gst/law/mulaw-decode.h: + * tests/check/Makefile.am: + * tests/check/elements/mulawdec.c: + mulawdec: change base class to GstAudioDecoder + https://bugzilla.gnome.org/show_bug.cgi?id=698894 + +2013-04-25 20:59:52 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu> + + * gst/videomixer/videomixer2.c: + * gst/videomixer/videomixer2.h: + videomixer: send stream-start event. + +2012-10-18 10:37:35 +0200 Philipp Zabel <p.zabel@pengutronix.de> + + * sys/v4l2/v4l2_calls.c: + v4l2: handle ENODATA return value for VIDIOC_ENUMSTD + In kernel v3.7-rc1, VIDIOC_ENUMSTD returns ENODATA if the current input + does not support the STD API. + https://bugzilla.gnome.org/show_bug.cgi?id=698827 + +2013-04-25 13:19:35 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * docs/plugins/gst-plugins-good-plugins-docs.sgml: + * docs/plugins/gst-plugins-good-plugins-sections.txt: + * gst/rtp/gstrtpL16depay.c: + * gst/rtp/gstrtpL16pay.c: + * gst/rtp/gstrtpac3depay.c: + * gst/rtp/gstrtpac3pay.c: + * gst/rtp/gstrtpamrdepay.c: + * gst/rtp/gstrtpamrpay.c: + * gst/rtp/gstrtpbvdepay.c: + * gst/rtp/gstrtpbvpay.c: + docs: add some pay/depayloaders + See https://bugzilla.gnome.org/show_bug.cgi?id=551631 + +2013-04-25 12:44:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/law/mulaw-encode.c: + * tests/check/elements/mulawenc.c: + mulaw: Some minor memleak fixes and cleanup + +2013-04-24 13:56:56 +0200 Alexander Schrab <alexas@axis.com> + + * gst/law/mulaw-encode.c: + * gst/law/mulaw-encode.h: + * tests/check/Makefile.am: + * tests/check/elements/mulawenc.c: + mulawenc: change to gstaudioencoder base, added bitrate tags + +2012-05-03 16:07:27 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: bufferpool: reset buffer size in release_buffer + The buffer might still be in use elsewhere when dequeuing buffers for + outputs. + https://bugzilla.gnome.org/show_bug.cgi?id=698822 + +2012-04-20 09:53:35 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: bufferpool: remove unused includes + The hacks that needed these are long gone. + https://bugzilla.gnome.org/show_bug.cgi?id=698821 + +2013-04-25 12:12:23 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/udp/gstmultiudpsink.c: + * gst/udp/gstmultiudpsink.h: + (multi)udpsink: Use separate sockets for IPv4 and IPv6 + https://bugzilla.gnome.org/show_bug.cgi?id=534243 + +2013-04-25 10:44:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/udp/gstdynudpsink.c: + * gst/udp/gstdynudpsink.h: + dynudpsink: Use separate sockets for IPv4 and IPv6 + https://bugzilla.gnome.org/show_bug.cgi?id=534243 + +2013-04-25 10:43:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/udp/Makefile.am: + udp: Don't include removed gstudp.h in noinst_HEADERS + +2013-04-17 16:47:31 -0700 Todd Agulnick <todd@agulnick.com> + + * sys/osxaudio/gstosxaudiosink.c: + osxaudio: Use gst_audio_channel_positions_to_mask() to create mask + https://bugzilla.gnome.org/show_bug.cgi?id=698807 + +2013-04-17 16:12:26 -0700 Todd Agulnick <todd@agulnick.com> + + * sys/osxaudio/gstosxaudiosink.c: + osxaudio: Remove unused code + +2013-04-25 09:16:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/udp/Makefile.am: + * gst/udp/gstdynudpsink.h: + * gst/udp/gstmultiudpsink.h: + * gst/udp/gstudp.h: + * gst/udp/gstudpsink.h: + * gst/udp/gstudpsrc.h: + udp: Remove unused enum type + +2013-04-25 09:13:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/udp/Makefile.am: + * gst/udp/gstdynudpsink.c: + * gst/udp/gstmultiudpsink.c: + * gst/udp/gstudp-marshal.list: + udp: Use the generic marshaller instead of generating marshallers + +2013-04-25 09:07:41 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/udp/gstudpsrc.c: + * gst/udp/gstudpsrc.h: + udpsrc: Rename instance variable from host to multi_group + This is more consistent as it's used for the multicast-group property. + +2013-04-25 09:03:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/udp/gstudpsrc.c: + udpsrc: Add bind-address property + This is equivalent to multicast-group currently for backwards compatibility. + In 2.0 this should be handled separately, the former only being the multicast + group and the latter always being the address the socket is bound to, even if + a multicast group is given. + +2013-04-24 16:24:25 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpvrawdepay.c: + vrawdepay: return output buffer from process + Return the output buffer from the process function instead of pushing + it ourselves. This way, the subclass can actually deal with the return + value of the push. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693727 + +2012-10-01 09:29:21 -0300 Diogo Carbonera Luvizon <diogo.luvizon@ensitec.com.br> + + * sys/v4l2/gstv4l2object.c: + v4l2: save the format correctly + If TRY_FMT is not implemented, gst_v4l2_object_get_nearest_size will + use S_FMT and will change the device's operation mode. To save the + old device mode we need to set the type field or else it will fail + to save the previous format. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685209 + +2013-04-24 15:38:50 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpL16depay.c: + * gst/rtp/gstrtpamrdepay.c: + * gst/rtp/gstrtpbvdepay.c: + * gst/rtp/gstrtpg722depay.c: + * gst/rtp/gstrtpg723depay.c: + * gst/rtp/gstrtpg726depay.c: + * gst/rtp/gstrtpg729depay.c: + * gst/rtp/gstrtpgsmdepay.c: + * gst/rtp/gstrtpilbcdepay.c: + * gst/rtp/gstrtpmpadepay.c: + * gst/rtp/gstrtppcmadepay.c: + * gst/rtp/gstrtppcmudepay.c: + rtp: a marker bit should translate to RESYNC + A marker bit on an audio packet does not mean a DISCONT (in the GStreamer sense + of missing data) but it means that the packet is the end of a talkspurt and thus + a good opportunity to resync to the clock. Use the RESYNC buffer flag to note + this. + Real discontinuities are marked with DISCONT still when the seqnum has a GAP or + when the input buffer has the DISCONT flag set. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=627204 + +2013-04-22 23:51:38 +0100 Tim-Philipp Müller <tim@centricular.net> + + * MAINTAINERS: + * README: + * README.static-linking: + * common: + Automatic update of common submodule + From 3cb3d3c to 5edcd85 + +2013-04-22 10:19:29 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/rtp/gstrtpjpegdepay.c: + rtpjpegdepay: Drop frame if it's less than 2 bytes large + https://bugzilla.gnome.org/show_bug.cgi?id=677560 + +2013-04-18 12:20:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> + + * gst/autodetect/gstautoaudiosink.c: + * gst/autodetect/gstautoaudiosrc.c: + * gst/autodetect/gstautovideosink.c: + * gst/autodetect/gstautovideosrc.c: + autodetect: use _plugin_feature_rank_compare API instead of duplicating the code. + +2013-04-18 09:37:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * sys/osxaudio/gstosxaudioringbuffer.h: + osxaudio: Include gstaudioringbuffer.h to fix compilation in 1.0 + +2013-04-17 21:05:14 +0200 Philippe Normand <philn@igalia.com> + + * sys/osxaudio/gstosxaudiosink.c: + osxaudiosink: channel-mask configuration fixes + Set channel-mask according to sink's layout in case of stereo layout. + Also initialize and reset the mask when an unrecognized channel is detected. + https://bugzilla.gnome.org/show_bug.cgi?id=698224 + +2013-04-15 19:53:28 -0400 Olivier Crête <olivier.crete@collabora.com> + + * sys/v4l2/gstv4l2src.c: + v4l2src: Disable renegotiation in the negotiate method + This way, we don't block the initial negotiation. + Thanks to Jeremy Whiting for doing all the testing. + https://bugzilla.gnome.org/show_bug.cgi?id=695981 + +2013-04-15 19:46:12 -0400 Olivier Crête <olivier.crete@collabora.com> + + * sys/v4l2/gstv4l2src.c: + Revert "v4l2: disable renegotiation" + This reverts commit d1b26e1d594ab2b63324e43a36330475e98cdf18. + This causes the initial negotiation to never happen if a reconfigure + event is received after gst_base_src_start_complete() but before the loop + starts. + https://bugzilla.gnome.org/show_bug.cgi?id=695981 + +2013-04-17 21:12:55 +0200 Stefan Sauer <ensonic@users.sf.net> + + * ext/flac/gstflactag.c: + flactag: forward caps event + This ensures that the downstream element will get the event and negotiates. Add + a FIXME for updating the streamheader field on th caps. + +2013-04-17 07:50:27 +0200 Stefan Sauer <ensonic@users.sf.net> + + * ext/flac/gstflacenc.c: + * ext/flac/gstflactag.c: + flac: add more logging + +2013-04-17 20:24:48 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * sys/osxaudio/gstosxcoreaudiocommon.h: + osxaudio: Fix merge conflicts + +2013-04-17 10:10:46 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * configure.ac: + osxaudio: Fix configure check for osxaudio plugin + +2013-04-17 09:50:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * sys/osxaudio/gstosxaudioringbuffer.c: + osxaudioringbuffer: First check the type, then cast + +2013-04-16 22:46:00 +0900 Takashi Nakajima <ted.nakajima@gmail.com> + + * sys/osxaudio/gstosxaudioringbuffer.c: + * sys/osxaudio/gstosxaudiosink.h: + osxaudio: use GST_IS_OSX_AUDIO_SINK in ring buffer. + +2013-04-10 21:06:16 +0900 Takashi Nakajima <ted.nakajima@gmail.com> + + * sys/osxaudio/gstosxaudioringbuffer.c: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosink.h: + osxaudio: call set_channel_positions() in osxaudioringbuffer acquire() + +2013-04-12 12:18:04 -0700 Todd Agulnick <todd@agulnick.com> + + * sys/osxaudio/gstosxaudioringbuffer.c: + osxaudio: use GST_AUDIO_INFO_* accessors + Changes include the following: + * Update classname references + * Replace GST_BOILERPLATE_FULL with G_DEFINE_TYPE + * Use new GstAudioInfo struct and methods + * Use new buffer memory allocation scheme + Conflicts: + sys/osxaudio/gstosxaudioringbuffer.c + +2013-04-12 11:51:46 -0700 Todd Agulnick <todd@agulnick.com> + + * sys/osxaudio/gstosxcoreaudiocommon.h: + * sys/osxaudio/gstosxcoreaudiohal.c: + osxaudio: adjust for changes to glib mutex api. + +2013-04-10 01:21:49 +0900 Takashi Nakajima <ted.nakajima@gmail.com> + + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosrc.c: + osxaudio: try to fix up according to Sebastian's comments + +2013-04-05 10:02:38 +0200 Philippe Normand <philn@igalia.com> + + * configure.ac: + * sys/osxaudio/gstosxaudioringbuffer.h: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosink.h: + * sys/osxaudio/gstosxaudiosrc.h: + osxaudio: build fixes + Enable the osxaudio plugin build in configure.ac and fix some + include directive order issues. + +2013-04-02 22:28:09 +0900 ted-n <ted.nakajima@gmail.com> + + * sys/osxaudio/gstosxaudiosrc.c: + osxaudio: fix layout for osxaudiosrc + +2013-03-30 22:49:34 +0900 ted-n <ted.nakajima@gmail.com> + + * sys/osxaudio/Makefile.am: + * sys/osxaudio/gstosxaudioelement.c: + * sys/osxaudio/gstosxaudioringbuffer.c: + * sys/osxaudio/gstosxaudioringbuffer.h: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosink.h: + * sys/osxaudio/gstosxaudiosrc.c: + * sys/osxaudio/gstosxaudiosrc.h: + * sys/osxaudio/gstosxcoreaudiocommon.c: + * sys/osxaudio/gstosxcoreaudiocommon.h: + * sys/osxaudio/gstosxringbuffer.c: + * sys/osxaudio/gstosxringbuffer.h: + osxaudio: port to v.1.0 + +2013-04-16 19:29:48 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/videomixer/videomixer2.c: + videomixer: Don't unref query, we don't own it + Fixes double-unref bug. Bug found by Youness Alaoui + +2013-04-16 20:41:10 +0200 Philippe Normand <philn@igalia.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: fix SCHEDULING query support + Chain the query up to parent before adding _BANDWIDTH_LIMITED flag, + so that all the other flags get set, and push mode gets added as + supported activation mode. + https://bugzilla.gnome.org/show_bug.cgi?id=693484 + https://bugzilla.gnome.org/show_bug.cgi?id=698156 + +2013-03-31 12:05:49 +0200 Philippe Normand <philn@igalia.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: basic scheduling query support + Answer to scheduling queries with default parameters and the new + _BANDWIDTH_LIMITED_FLAG so that downstream is advised to minimize seek + operations and perform on-disk buffering if possible. + Bug 693484 + +2013-04-15 14:32:46 +0000 Andoni Morales Alastruey <ylatuya@gmail.com> + + * sys/osxvideo/osxvideosink.m: + osxvideosink: fix segfault accessing osxwindow when not set yet + +2012-10-24 12:14:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * configure.ac: + * ext/aalib/Makefile.am: + * ext/cairo/Makefile.am: + * ext/dv/Makefile.am: + * ext/flac/Makefile.am: + * ext/gdk_pixbuf/Makefile.am: + * ext/jack/Makefile.am: + * ext/jpeg/Makefile.am: + * ext/libcaca/Makefile.am: + * ext/libpng/Makefile.am: + * ext/mikmod/Makefile.am: + * ext/pulse/Makefile.am: + * ext/raw1394/Makefile.am: + * ext/shout2/Makefile.am: + * ext/soup/Makefile.am: + * ext/speex/Makefile.am: + * ext/taglib/Makefile.am: + * ext/vpx/Makefile.am: + * ext/wavpack/Makefile.am: + * gst/alpha/Makefile.am: + * gst/apetag/Makefile.am: + * gst/audiofx/Makefile.am: + * gst/audioparsers/Makefile.am: + * gst/auparse/Makefile.am: + * gst/autodetect/Makefile.am: + * gst/avi/Makefile.am: + * gst/cutter/Makefile.am: + * gst/debugutils/Makefile.am: + * gst/deinterlace/Makefile.am: + * gst/dtmf/Makefile.am: + * gst/effectv/Makefile.am: + * gst/equalizer/Makefile.am: + * gst/flv/Makefile.am: + * gst/flx/Makefile.am: + * gst/goom/Makefile.am: + * gst/goom2k1/Makefile.am: + * gst/icydemux/Makefile.am: + * gst/id3demux/Makefile.am: + * gst/imagefreeze/Makefile.am: + * gst/interleave/Makefile.am: + * gst/isomp4/Makefile.am: + * gst/law/Makefile.am: + * gst/level/Makefile.am: + * gst/matroska/Makefile.am: + * gst/monoscope/Makefile.am: + * gst/multifile/Makefile.am: + * gst/multipart/Makefile.am: + * gst/replaygain/Makefile.am: + * gst/rtp/Makefile.am: + * gst/rtpmanager/Makefile.am: + * gst/rtsp/Makefile.am: + * gst/shapewipe/Makefile.am: + * gst/smpte/Makefile.am: + * gst/spectrum/Makefile.am: + * gst/udp/Makefile.am: + * gst/videobox/Makefile.am: + * gst/videocrop/Makefile.am: + * gst/videofilter/Makefile.am: + * gst/videomixer/Makefile.am: + * gst/wavenc/Makefile.am: + * gst/wavparse/Makefile.am: + * gst/y4m/Makefile.am: + * sys/directsound/Makefile.am: + * sys/oss/Makefile.am: + * sys/oss4/Makefile.am: + * sys/osxaudio/Makefile.am: + * sys/osxvideo/Makefile.am: + * sys/sunaudio/Makefile.am: + * sys/v4l2/Makefile.am: + * sys/waveform/Makefile.am: + * sys/ximage/Makefile.am: + gst: Add better support for static plugins + +2013-04-12 19:26:11 +0000 Andoni Morales Alastruey <ylatuya@gmail.com> + + * gst/goom2k1/Makefile.am: + goom2k1: fix duplicated symbol with goom + +2013-03-10 17:17:17 +0000 Josep Torra <n770galaxy@gmail.com> + + * sys/osxaudio/gstosxaudioelement.c: + * sys/osxaudio/gstosxcoreaudiocommon.h: + osxaudio: Fixes error: "GST_LEVEL_DEFAULT" redefined + +2013-03-10 17:27:30 +0000 Josep Torra <n770galaxy@gmail.com> + + * sys/osxaudio/gstosxcoreaudiohal.c: + osxaudio: fixes implicit declaration of function 'getpid' + +2013-04-14 17:55:02 +0100 Tim-Philipp Müller <tim@centricular.net> + + * autogen.sh: + * common: + Automatic update of common submodule + From aed87ae to 3cb3d3c + +2013-04-14 12:32:06 +0100 Tim-Philipp Müller <tim@centricular.net> + + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + souphttpsrc: add back "iradio-mode" property to disable sending of icecast request headers + In 1.0 we now always send the icecast request headers by default, which + makes the server send icecasts metadata inserted into the stream if it + supports that. However, there are some use cases where this is not + desirable, like when just saving a radio stream to disk, so add back + the "iradio-mode" property to allow people to disable this. + https://bugzilla.gnome.org/show_bug.cgi?id=697984 + +2013-04-12 16:16:41 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtp.c: + rtp: register tag image types + The rtpgstdepay needs the type to be available in order to deserialize the + event. + +2013-04-12 16:08:58 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpgstdepay.c: + rtpgstdepay: handle event parse failures better + +2013-04-11 22:25:05 +0300 Anton Belka <antonbelka@gmail.com> + + * gst/wavenc/gstwavenc.c: + wavenc: add TOC setter support + +2013-04-12 12:31:30 +0200 Stefan Sauer <ensonic@users.sf.net> + + * gst/wavenc/gstwavenc.c: + wavenc: small cleanups for toc handling + Don't add empty labl/note chunks. Always pass instance as the first param. Add more logging. + +2013-04-12 12:58:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: Proxy the ntp-sync property of rtpbin + +2013-04-12 12:51:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Give the manager always the name "manager" + This allows to use the GstChildProxy interface to adjust + properties on it. + +2013-04-11 22:53:28 +0100 Tim-Philipp Müller <tim@centricular.net> + + * tests/check/elements/alphacolor.c: + * tests/check/elements/apev2mux.c: + * tests/check/elements/id3v2mux.c: + * tests/check/pipelines/flacdec.c: + tests: fix some printf format issues in debug messages + +2013-04-11 19:27:15 +0300 Anton Belka <antonbelka@gmail.com> + + * gst/wavenc/gstwavenc.c: + * gst/wavenc/gstwavenc.h: + wavenc: add 'note' chunk support + +2013-04-11 20:46:26 +0200 Stefan Sauer <ensonic@users.sf.net> + + * ext/pulse/pulsesink.c: + pulsesink: add a little more docs to the audioclock + +2013-04-11 15:00:05 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/Makefile.am: + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: add support for NetClientClock + When the server suggests a GstNetTimeProvider in the SDP, set up a + GstNetClientClock that slaves to the remote clock and suggest this clock in + provide_clock. + +2013-04-11 14:57:11 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/udp/gstmultiudpsink.c: + * gst/udp/gstmultiudpsink.h: + udpsink: avoid alloc and free in render function + Avoid doing alloc and free in the render function for each buffer. Instead, + allocate the needed arrays in _init and use those. + +2013-04-10 08:36:00 +0200 Stefan Sauer <ensonic@users.sf.net> + + * gst/wavparse/gstwavparse.c: + waveparse: remove superfluous g_list_first() calls + The variables already point to the start of the list. + +2013-04-09 23:13:18 +0100 Andreas Fenkart <andreas.fenkart@streamunlimited.com> + + * gst/rtp/gstrtpsbcdepay.c: + rtpsbcdepay: fix sbc frame length calculation for mono and stereo modes + https://bugzilla.gnome.org/show_bug.cgi?id=697463 + +2013-03-25 14:35:02 +0300 Anton Belka <antonbelka@gmail.com> + + * gst/wavparse/gstwavparse.c: + * gst/wavparse/gstwavparse.h: + wavparse: add 'note' chunk support + Add 'note' chunk support in TOC as GST_TAG_COMMENT + https://bugzilla.gnome.org/show_bug.cgi?id=696549 + +2013-04-08 17:53:09 -0700 David Schleef <ds@schleef.org> + + * gst/isomp4/qtdemux.c: + qtdemux: check value inside enda to set endianness + +2013-04-09 21:00:12 +0200 Stefan Sauer <ensonic@users.sf.net> + + * common: + Automatic update of common submodule + From 04c7a1e to aed87ae + +2013-04-09 17:34:12 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/icydemux/gsticydemux.c: + icydemux: avoid copy when we can + +2013-04-09 16:52:21 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpgstpay.c: + gstpay: use bufferlist to avoid memcpy + +2013-04-09 16:50:56 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/udp/gstmultiudpsink.c: + udpsink: improve debug + +2013-04-09 00:28:54 +0100 Tim-Philipp Müller <tim@centricular.net> + + * tests/check/elements/wavparse.c: + tests: refactor new wavparse test a little + Use fakesrc instead of filesrc with /dev/null. + https://bugzilla.gnome.org/show_bug.cgi?id=696684 + +2013-04-08 11:38:33 +0200 Alexander Schrab <alexas@axis.com> + + * gst/wavparse/gstwavparse.c: + * tests/check/Makefile.am: + * tests/check/elements/wavparse.c: + wavparse: error out if we receive eos before any valid data + https://bugzilla.gnome.org/show_bug.cgi?id=696684 + +2013-04-07 01:47:56 +0200 Matej Knopp <matej.knopp@gmail.com> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: force deinterlacing in "interlaced" mode + https://bugzilla.gnome.org/show_bug.cgi?id=697467 + +2013-04-06 12:45:28 -0300 Thibault Saunier <thibault.saunier@collabora.com> + + * ext/gdk_pixbuf/gstgdkpixbufsink.c: + gdkpixbufsink: Add timestamp/running-time/stream-time to the emited message + +2013-04-05 14:38:43 +0200 Nicola Murino <nicola.murino@gmail.com> + + * gst/rtp/gstrtpsbcdepay.c: + rtpsbcdepay: fix printf format compiler warnings + https://bugzilla.gnome.org/show_bug.cgi?id=697343 + +2013-04-05 09:34:23 +0100 Todd Agulnick <todd@agulnick.com> + + * sys/osxvideo/osxvideosink.m: + osxvideo: include pthread.h to fix compiler warning + https://bugzilla.gnome.org/show_bug.cgi?id=697303 + +2013-04-04 22:48:45 +0200 Stefan Sauer <ensonic@users.sf.net> + + * gst/level/gstlevel.c: + * gst/level/gstlevel.h: + level: resync on discont + Drop pending data on discont and start a new cycle with a new base timestamp. + Cleanup some variables. + +2013-04-03 23:52:47 +0100 Tom Greenwood <tgreenwood@Toms-MacBook-Pro.local> + + * ext/vpx/gstvp8dec.c: + vp8dec: Improve logging when vpx_codec_peek_stream_info fails + Decode failures and missing keyframes should get different debug + output. + https://bugzilla.gnome.org/show_bug.cgi?id=697232 + +2013-04-03 18:24:29 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtp/gstrtpsbcdepay.c: + rtpsbcdepay: Rank as secondary + This way, it will be selected by decodebin + Bug reported by andreas.fenkart@streamunlimited.com + https://bugzilla.gnome.org/show_bug.cgi?id=697227 + +2013-04-03 19:05:38 +0200 Stefan Sauer <ensonic@users.sf.net> + + * gst/level/gstlevel.c: + * tests/check/elements/level.c: + level: subdivide buffers for sample accurate interval handling + Previously we would skip level message when processing buffers > the requested + interval. Also the message frequency would contain quite some jitter due to only + considering them at the end of buffers. + Cleanup the tests while we're at it. + +2013-03-19 08:23:25 +0100 Stefan Sauer <ensonic@users.sf.net> + + * ext/flac/gstflacenc.c: + flacenc: remove old since comments and update logging + Don't pretend that we have a timestamp on a buffer when we never set one. + +2013-03-18 20:59:23 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/spectrum/gstspectrum.c: + spectrum: remove old since comment + +2013-04-03 17:53:13 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: Proxy the multicast-iface property of udpsrc + +2013-04-03 11:09:50 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: free all queued buffers + Don't just loop over the first num_queued buffers but loop over + all the buffers and check if they need to be freed. It is possible that + not all buffers are queued and then the entry in our array will be NULL. + Those buffers that are not queued were freed in stop(). + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696651 + +2013-04-03 11:09:37 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: improve debug + +2013-04-02 23:42:23 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: Only forward stick events while holding the sinkpad stream lock + Otherwise we get a race where if the RTCP packet comes in first and while + it is added the pads, the segment event arrives on the RTP stream, the event + may be lost completely and never forwarded. + +2013-04-02 23:35:06 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: No need to explicitely forward the caps + They are forwarded with the other events + +2013-04-02 22:29:38 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtpmanager/gstrtpssrcdemux.h: + rtpssrcdemux: Remove unused GstSegment + +2013-04-02 22:26:02 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: Simplify event forwarding + Use the gst_pad_forward() mechanic, this way we won't miss pads that are + added while we are pushing + +2013-04-02 21:53:10 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: Don't cross the internal links + We had the wrong condition to check for the internal links, so RTP and RTCP + pads got crossed! + +2013-03-31 17:54:16 +0100 Tim-Philipp Müller <tim@centricular.net> + + * gst/matroska/matroska-demux.c: + matroskademux: fix some debug messages + +2013-04-02 23:36:22 +0100 Tim-Philipp Müller <tim@centricular.net> + + * sys/v4l2/v4l2_calls.c: + v4l2: fix printf format compiler warning in debug message + +2012-08-29 17:24:00 +0200 Arnaud Vrac <avrac@freebox.fr> + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.h: + matroskademux: handle TrueHD audio codec id + https://bugzilla.gnome.org/show_bug.cgi?id=697113 + +2013-03-31 19:14:04 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtptheoradepay.c: + theorapay: add delta-unit to output frames + +2013-03-23 05:22:23 +0100 Matej Knopp <matej.knopp@gmail.com> + + * gst/isomp4/gstqtmux.c: + qtmux: use timestamp delta as duration if possible + https://bugzilla.gnome.org/show_bug.cgi?id=696437 + +2013-03-30 09:44:41 +0100 Josep Torra <n770galaxy@gmail.com> + + * gst/rtp/gstrtpsbcdepay.c: + rtp: fixes debug message printf related compiler warnings in SBC depayloader + +2013-03-28 16:46:36 +0000 Arun Raghavan <arun.raghavan@collabora.co.uk> + + * gst/rtp/Makefile.am: + * gst/rtp/gstrtp.c: + * gst/rtp/gstrtpsbcdepay.c: + * gst/rtp/gstrtpsbcdepay.h: + rtp: Add an rtpsbcdepay element + Pretty straightforward - takes SBC encapsulated in RTP, depayloads, and + pushes out SBC buffers. + https://bugzilla.gnome.org/show_bug.cgi?id=690582 + +2013-03-27 22:18:34 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/rtp/gstrtpsbcpay.c: + rtp: fix SBC payloader + Init RTP buffer on stack correctly, so mapping it works + without criticals and the payloader actually works. + +2013-03-26 14:44:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * sys/directsound/gstdirectsoundsink.c: + directsoundsink: Check for a subset instead of non-empty intersection in accept-caps + +2013-03-26 14:39:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * sys/directsound/gstdirectsoundsink.c: + directsoundsink: Properly handle the filter caps in get_caps() + +2013-03-26 14:35:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * sys/directsound/gstdirectsoundsink.c: + directsoundsink: Don't unnecessarily get the parent class in class_init + The trampoline generated by G_DEFINE_TYPE does that already. + +2013-03-25 18:02:10 -0700 David Schleef <ds@schleef.org> + + * gst/avi/gstavidemux.c: + * gst/isomp4/qtdemux.c: + * gst/matroska/matroska-demux.c: + Use %03u for format in gst_pad_create_stream_id_printf() + +2013-03-25 10:12:03 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/debugutils/gstcapssetter.c: + capssetter: Prevent unneeded caps copying and allocation + +2013-02-01 14:33:41 +0100 Dirk Van Haerenborgh <vhdirk@gmail.com> + + * gst/debugutils/gstcapssetter.c: + capssetter: Pass any or filter caps upstream + capsetter accepts anything and just forwards different caps, + as such it should return ANY caps on the sinkpad. + https://bugzilla.gnome.org/show_bug.cgi?id=693005 + +2013-03-06 13:17:54 +0000 Tom Greenwood <tgreenwood@Toms-MacBook-Pro.local> + + * ext/vpx/gstvp8enc.c: + vp8enc: Fix for divide by zero when using 0/1 framerate + https://bugzilla.gnome.org/show_bug.cgi?id=695709 + +2013-03-24 17:55:55 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/wavparse/gstwavparse.c: + wavparse: expose CUE sheet items as tracks not chapter entries in TOC + https://bugzilla.gnome.org/show_bug.cgi?id=677306 + +2013-03-23 13:11:02 +0000 Tim-Philipp Müller <tim@centricular.net> + + * ext/flac/gstflacenc.c: + flacenc: add more example pipelines + +2013-03-23 12:59:26 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/wavenc/gstwavenc.c: + wavenc: add some example pipelines + +2013-03-20 21:38:40 +0300 Anton Belka <antonbelka@gmail.com> + + * gst/wavenc/gstwavenc.c: + * gst/wavenc/gstwavenc.h: + wavenc: add TOC support + https://bugzilla.gnome.org/show_bug.cgi?id=680998 + +2013-03-23 04:56:36 +0100 Matej Knopp <matej.knopp@gmail.com> + + * gst/isomp4/qtdemux.c: + qtdemux: make empty subtitle buffer recognition more robust + https://bugzilla.gnome.org/show_bug.cgi?id=696244 + +2013-03-04 15:49:06 -0800 David Schleef <ds@schleef.org> + + * ext/libpng/gstpngenc.c: + pngenc: unmap source frame when done + +2013-03-22 15:14:15 -0700 David Schleef <ds@schleef.org> + + * gst/isomp4/gstqtmux.c: + qtmux: Fix test regression with one buffer streams + +2013-03-05 17:00:17 -0800 David Schleef <ds@schleef.org> + + * gst/isomp4/qtdemux.c: + qtdemux: split large raw audio samples + In order to deal with a file that has samples that are 24 seconds + long. Seeking still doesn't work with such files. + +2013-03-22 11:54:08 -0700 David Schleef <ds@schleef.org> + + * gst/isomp4/gstqtmux.c: + qtmux: Remove documentation for dts-method + +2013-03-22 13:24:33 -0700 David Schleef <ds@schleef.org> + + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstqtmux.h: + qtmux: deprecate dts-method property + +2013-03-13 17:08:03 -0700 David Schleef <ds@schleef.org> + + * gst/isomp4/gstqtmux.c: + qtmux: Fix problems causing bad durations in file + - Fix up out-of-order incoming DTS values. + - Fix duration of initial sample. + +2013-03-12 19:08:26 -0700 David Schleef <ds@schleef.org> + + * gst/isomp4/gstqtmux.c: + qtmux: fix all timestamps once first_ts is determined + +2013-02-14 16:34:34 -0800 David Schleef <ds@schleef.org> + + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstqtmux.h: + qtmux: Use PTS/DTS from incoming buffers + Remove old DTS guessing code. + +2013-03-18 12:30:50 +0100 Nicola Murino <nicola.murino@gmail.com> + + * gst/isomp4/gstqtmuxmap.c: + qtmux: expose mulaw caps + https://bugzilla.gnome.org/show_bug.cgi?id=696052 + +2013-03-22 10:50:34 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * configure.ac: + Require Orc >= 0.4.17 + Orc 0.4.17 fixes a bunch crashes on i386 and RPi when orc + functions can't be compiled and the fallback function is + supposed to be used. Also fixes some issues on PowerPC. + https://bugzilla.gnome.org/show_bug.cgi?id=684399 + https://bugzilla.gnome.org/show_bug.cgi?id=693862 + +2013-03-22 08:47:17 +0000 Rodolfo Schulz de Lima <rodolfo@rodsoft.org> + + * gst/isomp4/qtdemux.c: + qtdemux: fix sample leak when processing private qt tags + https://bugzilla.gnome.org/show_bug.cgi?id=696355 + +2013-03-22 02:24:01 +0100 Matej Knopp <matej.knopp@gmail.com> + + * gst/isomp4/gstqtmux.c: + qtmux: set stream language code from tag + https://bugzilla.gnome.org/show_bug.cgi?id=696358 + +2013-03-21 02:55:06 +0100 Matej Knopp <matej.knopp@gmail.com> + + * gst/isomp4/qtdemux.c: + qtdemux: send GAP events for subtitle streams + https://bugzilla.gnome.org/show_bug.cgi?id=696244 + +2013-03-21 02:53:24 +0100 Matej Knopp <matej.knopp@gmail.com> + + * gst/isomp4/qtdemux.c: + qtdemux: ignore empty subtitle buffers + https://bugzilla.gnome.org/show_bug.cgi?id=696244 + +2013-03-21 02:52:07 +0100 Matej Knopp <matej.knopp@gmail.com> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux_fourcc.h: + qtdemux: recognize SBTL subtype for subtitles + https://bugzilla.gnome.org/show_bug.cgi?id=696244 + +2013-03-17 16:27:03 +0300 Anton Belka <antonbelka@gmail.com> + + * gst/audioparsers/gstflacparse.c: + flacparse: add support for the toc-select event + Select tracks from the CUE sheet by sending a toc-select + event based on the uid in the TOC. + https://bugzilla.gnome.org/show_bug.cgi?id=540891 + +2013-03-19 18:09:31 -0700 Michael Smith <msmith@rdio.com> + + * gst/isomp4/gstqtmux.c: + mp4mux: in faststart mode, don't output up to 4 kB of garbage at the end. + +2013-03-20 00:35:17 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/audioparsers/gstsbcparse.c: + sbcparse: pack multiple frames into one output buffer + Don't output a single buffer for every tiny SBC frame + +2013-03-18 14:59:35 +0000 Bastien Nocera <hadess@hadess.net> + + * sys/v4l2/v4l2_calls.c: + v4l2: fix compilation against newer kernel headers as on FC19 + +2013-03-14 14:12:05 +0100 Kishore Arepalli <kishore.arepalli@gmail.com> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: fix infinite loop on EOS with non-default methods or fields + Fixes problem of infinite loop in gst_deinterlace_reset_history. + Last field in the history was never deinterlaced because idx becomes negative. + Happens e.g. with method=scalerbob fields=bottom or + method=greedyl fields=top + https://bugzilla.gnome.org/show_bug.cgi?id=695644 + https://bugzilla.gnome.org/show_bug.cgi?id=693173 + +2013-03-12 09:48:31 +0000 Kishore Arepalli <kishore.arepalli@gmail.com> + + * ext/dv/gstdvdemux.c: + dvdemux: don't return FALSE when dropping sink events + Fixes problem in conjunction with avidemux. + https://bugzilla.gnome.org/show_bug.cgi?id=695643 + +2013-03-12 00:16:18 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/avi/gstavimux.c: + avimux: change raw video caps order so that GRAY8 is last + People like colours. + https://bugzilla.gnome.org/show_bug.cgi?id=695543 + +2013-03-11 14:50:41 +0100 Ognyan Tonchev <ognyan@axis.com> + + * gst/rtp/gstrtph264pay.c: + rtph264pay: Don't use upstream caps with peer_query_caps () + Calling gst_pad_peer_query_caps () on the src pad with the caps + upstream can produce as a filter from gst_rtp_h264_pay_getcaps () + is wrong and makes caps negotiation fail if upstream caps are not + NULL. + https://bugzilla.gnome.org/show_bug.cgi?id=695629 + +2013-03-10 09:10:18 +0100 Dirk Van Haerenborgh <vhdirk@gmail.com> + + * gst/avi/gstavimux.c: + avimux: support raw BGR + https://bugzilla.gnome.org/show_bug.cgi?id=695543 + +2013-03-10 09:25:34 +0100 Dirk Van Haerenborgh <vhdirk@gmail.com> + + * gst/avi/gstavidemux.c: + avidemux: support raw video with negative height + https://bugzilla.gnome.org/show_bug.cgi?id=695541 + +2013-03-05 14:40:56 +0100 Jonas Holmberg <jonashg@axis.com> + + * tests/check/elements/autodetect.c: + autodetect checktest: Do not fail without videosink + If there is no videosink available autovideosink will contain a + fakesink instead which needs special treatment in the unit test. + +2013-03-09 01:18:30 +0000 Tim-Philipp Müller <tim@centricular.net> + + * Android.mk: + * configure.ac: + * docs/plugins/Makefile.am: + * 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/gst-plugins-good-plugins.signals: + * docs/plugins/inspect/plugin-audiofx.xml: + * docs/plugins/inspect/plugin-avi.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-jpeg.xml: + * docs/plugins/inspect/plugin-level.xml: + * docs/plugins/inspect/plugin-rtp.xml: + * docs/plugins/inspect/plugin-shout2send.xml: + * gst-plugins-good.spec.in: + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstdtmfcommon.h: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + dtmf: move dtmf plugin from -bad to -good + https://bugzilla.gnome.org/show_bug.cgi?id=687416 + +2013-03-09 00:30:38 +0000 Tim-Philipp Müller <tim@centricular.net> + + Merge branch 'dtmf-moved-from-bad' + https://bugzilla.gnome.org/show_bug.cgi?id=687416 + +2013-03-05 21:22:18 +0100 Andoni Morales Alastruey <ylatuya@gmail.com> + + * configure.ac: + * sys/osxaudio/Makefile.am: + * sys/osxaudio/gstosxaudioelement.h: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxcoreaudio.c: + * sys/osxaudio/gstosxcoreaudioremoteio.c: + osxaudio: add support for iOS using the RemoteIO AudioUnit + +2013-03-05 21:17:52 +0100 Andoni Morales Alastruey <ylatuya@gmail.com> + + * sys/osxaudio/Makefile.am: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosrc.c: + * sys/osxaudio/gstosxcoreaudio.c: + * sys/osxaudio/gstosxcoreaudio.h: + * sys/osxaudio/gstosxcoreaudiocommon.c: + * sys/osxaudio/gstosxcoreaudiocommon.h: + * sys/osxaudio/gstosxcoreaudiohal.c: + * sys/osxaudio/gstosxringbuffer.c: + * sys/osxaudio/gstosxringbuffer.h: + osxaudio: add a façade for the CoreAudio API + +2013-03-07 00:00:41 +0000 Tim-Philipp Müller <tim@centricular.net> + + * common: + Automatic update of common submodule + From 2de221c to 04c7a1e + +2013-03-03 11:59:31 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/matroska/lzo.c: + matroska: Include config.h, it's needed for _stdint.h + +2013-03-03 11:53:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/audioparsers/gstflacparse.c: + flacparse: Fix (wrong) use of uninitialized variable compiler warning + +2013-03-02 13:59:52 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/isomp4/qtdemux.c: + qtdemux: add variant field to H.263 caps + avdec_h263 won't get plugged otherwise. + +2013-02-22 19:06:52 +0100 Arnaud Vrac <avrac@freebox.fr> + + * gst/isomp4/qtdemux.c: + qtdemux: skip disabled tracks + ISO/IEC 14496-12 specifies disabled tracks should be completely + ignored, so just do it. + Avoids deadlock during prerolling for some files. + Also prevents 'chapter' subtitle tracks from showing up. + https://bugzilla.gnome.org/show_bug.cgi?id=693993 + https://bugzilla.gnome.org/show_bug.cgi?id=628790 + +2013-02-25 09:58:13 +0000 Tim-Philipp Müller <tim@centricular.net> + + * tests/check/elements/level.c: + tests: re-add suppression for GValueArray warnings to unit test as well + +2013-02-28 13:25:06 +0100 Jonas Holmberg <jonashg@axis.com> + + * tests/check/elements/dtmf.c: + tests: use relative include for out-of-tree builds in dtmf test + +2013-02-28 08:46:59 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/spectrum/gstspectrum.c: + spectrum: remove the since doc-comment from 0.10 + +2013-02-28 08:44:18 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/level/gstlevel.c: + * gst/level/gstlevel.h: + * tests/examples/level/level-example.c: + level: add a "post-messages" property and deprecate "message" + In spectrum this was changed from 0.10 to 1.0, lets do this here too. + +2013-02-27 18:56:50 -0500 Olivier Crête <olivier.crete@collabora.com> + + * tests/check/elements/dtmf.c: + tests: Add tests for dtmfsrc + +2013-02-27 16:15:27 -0500 Olivier Crête <olivier.crete@collabora.com> + + * tests/check/elements/dtmf.c: + tests: Fix ref leak in dtmf test + +2013-02-26 14:18:20 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtp/gstrtpmp4gdepay.c: + rtpmp4gdepay: streamtype is not put by all RTSP server, not make it optional + Specific case here is Wowza 3.5.0 + +2013-02-25 00:35:58 +0100 Thomas Vander Stichele <thomas (at) apestaart (dot) org> + + * gst/level/gstlevel.c: + level: put back deprecation warnings + +2013-02-24 17:00:14 +0100 Thomas Vander Stichele <thomas (at) apestaart (dot) org> + + * gst/level/gstlevel.c: + * tests/check/elements/level.c: + level: send last message on EOS + +2013-02-23 14:34:35 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/avi/gstavidemux.c: + avidemux: push mode: handle some more 0-size buffer cases + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684944 + +2013-02-23 18:50:52 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/matroska/matroska-mux.c: + matroskamux: fix up example pipeline in docs + +2012-11-20 12:14:07 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk> + + * ext/pulse/pulsesink.c: + pulsesink: Update segdone periodically + This makes sure that we update segdone based on the read index received + during latency updates. As the comment notes, we make some compromises + to deal with the fact that segdone is a segment multiple, while the read + index offers finer granularity. The updates are also not very often + (100ms since that is how often automatic timing updates are provided). + All this is required for the baseaudiosink sample alignment code to work + at all. + https://bugzilla.gnome.org/show_bug.cgi?id=694257 + +2013-02-13 10:46:54 +0100 Paul HENRYS <visechelle@gmail.com> + + * gst/rtpmanager/rtpsession.c: + rtpsession: Fix wrong code organisation in case of collision + change_ssrc field of RTPSession should be set before calling + rtp_session_schedule_bye_locked () as this function will call reconsider function + that will wake up rtcp_thread which will call rtp_session_on_timeout () that will + check change_ssrc to change the ssrc. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=694184 + +2013-02-21 11:15:23 -0500 Jean-François Fortin Tam <nekohayo@gmail.com> + + * gst/alpha/gstalpha.c: + alpha: improve descriptions of chroma keying-related properties and enums + https://bugzilla.gnome.org/show_bug.cgi?id=694374 + +2013-02-21 15:01:15 -0500 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/alpha/gstalpha.c: + alpha: Do not override the method with custom r/g/b values + Depending on the order g_object_set() calls aare made, the + target r/g/b settings will override the method if set to + green/blue. Change that so we do not use the target-r/g/b values + unless the method is set to custom. + https://bugzilla.gnome.org/show_bug.cgi?id=694374 + +2013-02-20 15:46:43 +0100 Ognyan Tonchev <ognyan@axis.com> + + * gst/auparse/gstauparse.c: + auparse: do not leak src_caps + https://bugzilla.gnome.org/show_bug.cgi?id=694275 + +2013-02-20 21:03:27 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: only delay RTCP when we are a sender + Only delay the RTCP thread when we are a sender, which we can know because we + have a send_rtp_src pad. Otherwise we might delay the RTCP thread if we + are only a receiver and then there is no code path that wakes up the + RTCP thread and we end up without RTCP packets. + +2013-02-19 11:47:20 +0100 Benjamin Gaignard <benjamin.gaignard@linaro.org> + + * configure.ac: + * sys/v4l2/Makefile.am: + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: + v4l2: Add support of dmabuf + v4l has add a new IOCTL to export a buffer by using dmabuf. + This patch allow to use this new IOTCL if it has been defined in videodev2.h + I introduce a new IO mode (GST_V4L2_IO_DMABUF) to enable this way of working. + https://bugzilla.gnome.org/show_bug.cgi?id=693826 + +2013-02-18 20:04:05 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + qtdemux: fix up dodgy code that tries to fix up a broken moov atom + After gst_buffer_new_and_alloc() gst_buffer_copy_into() will likely + append to the already-existing memory instead of filling it. + +2013-02-18 16:32:13 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + qtdemux: fix potential crash on short MOOV atom + Don't unmap short MOOV atom buffer twice, which happened + in the case where we don't fix up the MOOV atom. + Fixes crashes when thumbnailing partial mp4 file where + the MOOV atom is still incomplete. + https://bugzilla.gnome.org/show_bug.cgi?id=694010 + +2013-02-16 16:49:22 +0000 Tim-Philipp Müller <tim@centricular.net> + + * ext/soup/Makefile.am: + souphttpsrc: set SOUP_VERSION_{MIN_REQUIRED,MAX_ALLOWED} to suppress deprecations with newer versions + https://bugzilla.gnome.org/show_bug.cgi?id=693911 + +2013-02-16 15:47:02 +0000 Tim-Philipp Müller <tim@centricular.net> + + * configure.ac: + * ext/soup/gstsouphttpsrc.c: + soup: use default proxy resolver instead of deprecated GNOME proxy resolver + Apparently there's no reason to use it any longer. Drop libsoup-gnome + dependency while at it, now that we don't need anything from it any + more (it only consists entirely of deprecated API now anyways). + https://bugzilla.gnome.org/show_bug.cgi?id=693911 + +2013-02-15 15:43:43 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * tests/check/pipelines/tagschecking.c: + tests: fix some h264 caps + Doesn't fix anything in particular, but is + still needed here for correctness. + +2013-02-15 08:19:24 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/audiofx/audiopanorama.c: + audiopanorama: remove channel-mask from caps + The channel-mask is only needed for channels>2 which we don't do. + +2013-02-15 16:21:21 +0100 Benjamin Gaignard <benjamin.gaignard@stericsson.com> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: don't check stride for encoded formats + Don't try to check the stride for encoded formats. Some drivers output + something != 0 and then we don't want to fail on that. + +2013-02-15 14:11:36 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/udp/gstudpsrc.c: + udpsrc: use g_socket_set_option() to set buffer size with newer GLib versions + So we have to worry less about portability. + https://bugzilla.gnome.org/show_bug.cgi?id=692400 + +2013-02-14 14:13:27 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * ext/jpeg/gstjpegdec.c: + jpegdec: remove sof-marker from template caps for now + Now that the subset check actually works, this breaks + things with demuxers that don't put a "sof-marker" + in their jpeg caps, and we don't have a good parser + to plug either yet. + +2013-02-13 12:32:10 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/jpeg/gstjpegenc.c: + * ext/jpeg/gstjpegenc.h: + jpegenc: Put the SOF marker into the caps + +2013-02-13 12:02:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/rtp/gstrtpamrdepay.c: + * tests/check/elements/rtp-payloading.c: + rtp-payloading: Fix unit test caps and AMR depayloader sink template caps + Fields were missing from the actual caps, or too many fields + existed in the template caps. + +2013-02-13 11:53:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * tests/check/elements/aacparse.c: + aacparse: Fix caps used in the unit test + The AAC caps passed were incomplete. + +2013-02-13 11:49:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * tests/check/elements/wavpackenc.c: + * tests/check/elements/wavpackparse.c: + wavpack: Fix unit tests, width is now called depth in the caps in 1.0 + +2013-02-12 23:31:22 +0000 Tim-Philipp Müller <tim@centricular.net> + + * tests/check/elements/souphttpsrc.c: + tests: make souphttpsrc unit test work even if http_proxy is set + We're testing with an http server on localhost, but don't support + an exception list for the http_proxy, so just unset the environment + variable to make sure we can run this test properly even if the + environment has http_proxy set. + Also, don't skip all tests if there is an issue with the SSL server, + just run the non-SSL tests then. + https://jenkins.qa.ubuntu.com/view/Raring/view/JHBuild%20Gnome/job/jhbuild-amd64-gst-plugins-good/ + +2013-02-12 12:53:52 -0800 Michael Smith <msmith@rdio.com> + + * gst/isomp4/qtdemux.c: + qtdemux: extract codec_data for ProRes + +2013-02-08 01:02:10 +1100 Tim 'mithro' Ansell <mithro@mithis.com> + + * gst/avi/gstavimux.c: + avimux: Fixing buffer leak in gst_avi_mux_do_buffer + gst_avi_mux_do_buffer was leaking data from gst_collect_pads_pop. + +2013-02-10 15:10:32 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/avi/gstavidemux.c: + avidemux: correct duration for audio VBR buffers in pull mode + +2013-02-08 21:28:02 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/avi/gstavidemux.c: + avidemux: proper position reporting and push mode timestamping + ... and align current_total semantics in push and pull mode, + which tracks bytes for CBR and blocks for VBR. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691481 + +2013-02-08 17:05:27 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: delay RTCP until first RTP packet + Delay sending the first RTCP packet until we have sent the first RTP packet. + Otherwise we will send out a Receiver Report instead of a sender report. + See https://bugzilla.gnome.org/show_bug.cgi?id=691400 + +2013-02-07 15:06:40 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/rtpsession.c: + rtpsession: remove dead code + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=668355 + +2013-01-29 10:48:17 +0100 Paul HENRYS <visechelle@gmail.com> + + * gst/rtpmanager/gstrtpptdemux.c: + rtpptdemux: forward sticky events and then set caps + When a new src pad is added, first forward the sticky events and then + set the caps on the src pad + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692786 + +2013-02-07 14:32:26 +0100 Markovtsev Vadim <v.markovtsev at samsung.com> + + * gst/rtpmanager/rtpjitterbuffer.c: + rtpjitterbuffer: improve debug output + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688935 + +2011-09-26 14:42:51 -0700 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: rework cleanup of streams + Move the work of cleaning up the client streams in the free_stream + function. This allows us to properly clean up the client streams when we + remove an RTP stream as well. + Based on patch by Sujay <sdatar@cisco.com> + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=660156 + +2013-02-07 11:40:35 +0100 Tim 'mithro' Ansell <gnome at mithis.com> + + * gst/videomixer/videomixer2.c: + videomixer2: avoid caps leak + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693307 + +2013-02-06 17:15:11 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/rtpjitterbuffer.c: + jitterbuffer: do skew estimation only for new timestamps + Only run the skew estimation code when we have a new RTP timestamp. If we have + the same RTP timestamp, we simply use the previous estimation. This works + because the new observation with the same RTP timestamp has to have a bigger + receiver time and is thus not going to influence the estimation except for + causing more jitter. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=640023 + +2013-02-06 13:52:26 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: only EOS when our source sends BYE + Only EOS when we receive a BYE event from the SSRC of our stream. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675453 + +2013-02-06 13:47:51 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: save the stream SSRC + Conflicts: + gst/rtsp/gstrtspsrc.c + +2013-02-06 13:18:18 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: flush connection when stopping + When we stop, we can flush all pending commands so that we can stop and + join the task. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684924 + +2013-02-05 22:02:13 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/spectrum/README: + spectrum: remove outdates readme + Lets remove the readme from pre-0.1.0 that is completely irrelevant now. + +2013-02-05 07:32:29 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/audiofx/audiopanorama.c: + audiopanorama: add more debug logging + +2013-02-05 08:26:14 +0100 Stefan Sauer <ensonic@users.sf.net> + + * tests/examples/level/level-example.c: + level-example. avoid taking the arrays again for each channel for clarity + Also introduce some blank lines for better readability and update the comments. + +2013-02-04 18:38:41 +0000 Rico Tzschichholz <ricotz@ubuntu.com> + + * gst/audioparsers/Makefile.am: + audioparsers: fix typo in noinst_headers + +2013-02-04 11:08:23 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/audiofx/audiopanorama.c: + audiopanorama: further port to 1.0 + Transformcaps is not called with caps containing single structures anymore. Also add missing filter handling. Still does not negotiate though. + +2013-02-03 22:45:52 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/audiofx/audiopanorama.c: + audiopanorama: fix caps + We don't turn float into 32bit pcm. Looks like a typo from updating the caps. + +2013-02-03 13:14:50 +0100 Olivier Crête <olivier.crete@collabora.com> + + * gst/level/gstlevel.c: + level: Add missing coma between formats + +2013-01-31 22:55:18 +1100 Matthew Waters <ystreet00@gmail.com> + + * gst/videomixer/videomixer2.c: + videomixer: fix eos timestamp check + fixes hang in videotestsrc num-buffers=20 ! videomixer ! fakesink + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692935 + +2013-01-31 11:35:09 +0100 Dirk Van Haerenborgh <vhdirk@gmail.com> + + * gst/avi/gstavimux.c: + avimux: add support for raw monochrome 8-bit video + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692932 + +2013-01-18 21:08:12 +0400 Alexey Chernov <achernov@neosphere.com> + + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + osxvideosink: Make GstNavigation key input events in osxvideosink compatible with x(v)imagesink ones + +2013-01-29 10:30:32 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: avoid '...is used uninitialized' + +2013-01-09 13:24:49 -0500 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + qtdemux: set interleaved layout correctly for LPCM audio + https://bugzilla.gnome.org/show_bug.cgi?id=663458 + +2013-01-08 20:45:21 -0500 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + qtdemux: add support for LPCM fourcc (uncompressed audio in Quicktime7) + https://bugzilla.gnome.org/show_bug.cgi?id=663458 + +2013-01-08 20:42:35 -0500 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + qtdemux: print all debug for sound sample description v2 + https://bugzilla.gnome.org/show_bug.cgi?id=663458 + +2013-01-08 20:14:17 -0500 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + qtdemux: sound sample description v2 doesn't override samples_per_packet + https://bugzilla.gnome.org/show_bug.cgi?id=663458 + +2013-01-08 19:57:50 -0500 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + qtdemux: pass stsd data to qtdemux_audio_caps() + We will need that later for LPCM format support. Disable + QDM2 parsing of stsd data which dead code before as well + because data was always NULL. + https://bugzilla.gnome.org/show_bug.cgi?id=663458 + +2013-01-08 19:56:46 -0500 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + qtdemux: add len check for sound sample descriptions v1 and v2 + https://bugzilla.gnome.org/show_bug.cgi?id=663458 + +2013-01-28 22:42:25 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpmanager: use C89-style comments + +2013-01-28 18:06:15 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpsession.c: + gstrtpsession: Fix double-declared variable + +2013-01-28 17:58:20 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/gstrtpssrcdemux.c: + rtp: Fix compilation errors in previous patches + +2011-04-28 22:59:28 +0200 Haakon Sporsheim <haakon.sporsheim@gmail.com> + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: Ensure MT safe event handling and plug event leak. + https://bugzilla.gnome.org/show_bug.cgi?id=667826 + +2011-10-17 23:45:37 +0200 Idar Tollefsen <itollefs@cisco.com> + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: mt-safe event-push + By taking a ref of the sink-pad under lock, it won't dissappear + while the push is taking place + https://bugzilla.gnome.org/show_bug.cgi?id=667816 + +2012-01-04 10:29:45 +0100 Pascal Buhler <pabuhler@cisco.com> + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: Safely push on pads that might be removed due to a RTCP BYE + https://bugzilla.gnome.org/show_bug.cgi?id=667815 + +2013-01-28 20:42:26 +0100 Stefan Sauer <ensonic@users.sf.net> + + * common: + Automatic update of common submodule + From a942293 to 2de221c + +2013-01-28 11:54:54 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/audioparsers/gstsbcparse.c: + sbcparse: init some variables to avoid bogus compiler warnings + +2013-01-28 12:41:04 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpL16depay.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/gstrtph263depay.c: + * gst/rtp/gstrtpilbcdepay.c: + * gst/rtp/gstrtpj2kdepay.c: + * gst/rtp/gstrtpjpegdepay.c: + * gst/rtp/gstrtpmp1sdepay.c: + * gst/rtp/gstrtpmp2tdepay.c: + * gst/rtp/gstrtpmp4adepay.c: + * gst/rtp/gstrtpmp4gdepay.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/gstrtpsirendepay.c: + * gst/rtp/gstrtpspeexdepay.c: + * gst/rtp/gstrtpsv3vdepay.c: + * gst/rtp/gstrtptheoradepay.c: + * gst/rtp/gstrtpvorbisdepay.c: + * gst/rtp/gstrtpvp8depay.c: + * gst/rtp/gstrtpvrawdepay.c: + rtpdepay: remove payload type restrictions + Remove the pt restrictions for all the depayloaders that have an + encoding-name. We can use this to autoplug decoders. + Remove the encoding-name for all the payloaders with a fixed payload + type. + We now either have an encoding-name or a pt in the sinkpad caps of + a depayloader. + See https://bugzilla.gnome.org/show_bug.cgi?id=639292 + +2013-01-28 12:23:41 +0100 Marc Leeman <marc.leeman@gmail.com> + + * gst/rtp/gstrtph263depay.c: + * gst/rtp/gstrtph263pdepay.c: + * gst/rtp/gstrtph264depay.c: + * gst/rtp/gstrtpmp4vdepay.c: + rtp: remove payload requirements from selected depayloaders + encoding name is required in the caps and is a better fit for autoplugging than + the pt value. Hardware manufacturers have a bad habit of skimming through RFCs + and in this case; use unassigned numbers for encoders instead of dynamic + numbers. + In essence, this patch will add support for a lot of Bosch hardware encoders + without breaking autoplugging. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639292 + +2013-01-27 10:17:59 +0530 B.Prathibha <bosslinux@cdac.in> + + * tests/examples/jack/jack_client.c: + * tests/examples/rtp/server-alsasrc-PCMA.c: + * tests/icles/ximagesrc-test.c: + tests: use g_timeout_add_seconds instead of g_timeout_add + https://bugzilla.gnome.org/show_bug.cgi?id=692615 + +2013-01-27 12:54:15 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/isomp4/qtdemux.c: + qtdemux: push mode: only parse moov 1 once + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691570 + +2013-01-26 22:58:29 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: fix compiler warning + gstrtpdtmfsrc.c: In function 'gst_dtmf_src_prepare_message.isra.1': + gstrtpdtmfsrc.c:669:3: error: 's' may be used uninitialized in this function + +2013-01-25 21:06:05 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstrtpdtmfdepay.c: + rtpdtmfdepay: Fix missing work in doc + +2013-01-24 21:00:08 -0500 Olivier Crête <olivier.crete@collabora.com> + + * tests/check/elements/dtmf.c: + tests: Add test for rtpdtmfdepay and rtpdtmfsrc + +2013-01-25 20:39:33 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Post the messages after the clock wait + This way, the messages will be closer in time to when the packets are sent out + +2013-01-25 20:37:53 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Only set the duration when starting to send + The duration depends on the clock rate, which could change due to renegotiation + +2013-01-25 20:37:09 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: remove "ssrc" from caps + ssrc is uint and we don't have a uint range type + +2013-01-24 21:08:51 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/isomp4/atoms.h: + qtmux: set language to 'undefined' instead of English by default + +2013-01-23 21:35:25 -0500 Olivier Crête <olivier.crete@collabora.com> + + * sys/ximage/gstximagesrc.c: + * sys/ximage/ximageutil.c: + * sys/ximage/ximageutil.h: + ximagesrc: Set the pixel aspect ratio correctly in the caps + +2013-01-08 08:56:45 +0100 Sjoerd Simons <sjoerd@luon.net> + + * sys/v4l2/gstv4l2src.c: + v4l2: Re-enable prepare-format emission + With the port to gstreamer 1.0 the prepare-format signal stopped being + emitted. Start emitting this again for use in uvch264src. While there + change the emission to include the caps for extra flexibility instead of + fource, width, height. + https://bugzilla.gnome.org/show_bug.cgi?id=692042 + +2013-01-22 18:12:10 +0100 Benjamin Gaignard <benjamin.gaignard@st.com> + + * autogen.sh: + autogen.sh: allow calling from out-of-tree + Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> + https://bugzilla.gnome.org/show_bug.cgi?id=692309 + +2013-01-22 19:26:09 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/audioparsers/gstsbcparse.c: + audioparsers: sbc: fix bogus compiler warning + gst-plugins-good/gst/audioparsers/gstsbcparse.c: In function 'gst_sbc_parse_handle_frame': + gst-plugins-good/gst/audioparsers/gstsbcparse.c:210:32: error: 'ch_mode' may be used uninitialized i + +2013-01-19 13:27:48 +0000 Tim-Philipp Müller <tim@centricular.net> + + * ext/pulse/pulsesink.c: + pulsesink: don't error out if pa_stream_proplist_update() with new tags fails + Shouldn't really happen these days, but if it does, it's not really + a problem either. + https://bugzilla.gnome.org/show_bug.cgi?id=656068 + +2013-01-16 18:01:23 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * tests/check/elements/souphttpsrc.c: + tests: skip souphttpsrc tests if there is no local http server to use + Skip tests if the server couldn't be started or we can't connect + to it for some reason (e.g. draconic build bot environments). + +2013-01-16 14:32:56 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + + * gst/audioparsers/gstsbcparse.c: + autoparsers: use appropriate printf format for gsize + +2013-01-15 15:05:43 +0100 Martin Pitt <martinpitt@gnome.org> + + * tests/check/Makefile.am: + tests: use _1_0 variants for the various registry variables + These override the variants without version suffix. Makes 'make check' work + properly in environments that set the suffixed variant for 1.0, such as + jhbuild. + +2013-01-11 19:24:43 +0400 Alexey Chernov <achernov@neosphere.com> + + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.m: + osxvideosink: Fix crash in osxvideosink with external window output + +2013-01-16 12:04:59 +0400 Alexey Chernov <achernov@neosphere.com> + + * sys/osxvideo/cocoawindow.m: + osxvideosink: Make GstGLView propagate input events to its parent view + Fixes bug #691832 + +2013-01-16 10:19:36 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: update some fields in the caps to their new name + and to match the parser. "mode" got renamed to "channel-mode" + and "allocation" to "allocation-method". + +2013-01-15 17:44:33 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * 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-audioparsers.xml: + * docs/plugins/inspect/plugin-rtp.xml: + docs: add sbcparse and rtpsbcpay to plugin docs + +2013-01-15 17:38:24 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/audioparsers/Makefile.am: + * gst/audioparsers/gstsbcparse.c: + * gst/audioparsers/gstsbcparse.h: + * gst/audioparsers/plugin.c: + audioparsers: add SBC audio parser + From-scratch rewrite, the bluez one was useless and broken. + https://bugzilla.gnome.org/show_bug.cgi?id=690582 + +2013-01-15 15:05:04 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * common: + Automatic update of common submodule + From a72faea to a942293 + +2013-01-10 12:38:13 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/rtp/Makefile.am: + * gst/rtp/gstrtp.c: + * gst/rtp/gstrtpsbcpay.c: + * gst/rtp/gstrtpsbcpay.h: + rtp: import rtpsbcpay from bluez and port to 1.0 + Compiles, but not tested yet (sbc elements still need to be ported). + https://bugzilla.gnome.org/show_bug.cgi?id=690582 + +2013-01-09 19:59:16 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/Makefile.am: + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfdetect.h: + * gst/dtmf/tone_detect.c: + * gst/dtmf/tone_detect.h: + dtmf/spandsp: Move dtmfdetect to use libspandsp + Remove our copy of the tone_detect.c file and use the original + from libspandsp. Also move the element to the spandsp plugin. + +2011-02-13 17:51:45 -0800 Marcel Holtmann <marcel@holtmann.org> + + * gst/rtp/gstrtpsbcpay.h: + rtpsbcpay: Remove workaround for compiler warnings + +2010-05-19 16:59:30 +0200 Marcel Holtmann <marcel@holtmann.org> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: Add pragma based workaround for GStreamer warnings + +2010-01-01 17:08:17 -0800 Marcel Holtmann <marcel@holtmann.org> + + * gst/rtp/gstrtpsbcpay.c: + * gst/rtp/gstrtpsbcpay.h: + rtpsbcpay: Update copyright information + +2009-01-30 00:31:15 +0100 Marcel Holtmann <marcel@holtmann.org> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: Fix signed/unsigned comparison issue within GStreamer plugin + +2009-01-01 19:33:20 +0100 Marcel Holtmann <marcel@holtmann.org> + + * gst/rtp/gstrtpsbcpay.c: + * gst/rtp/gstrtpsbcpay.h: + rtpsbcpay: Update copyright information + +2008-12-23 05:25:50 +0100 Marcel Holtmann <marcel@holtmann.org> + + * gst/rtp/gstrtpsbcpay.h: + rtpsbcpay: First attempt in fixing compiler warnings (still needs cleanup) + +2008-12-20 21:42:49 +0200 Johan Hedberg <johan.hedberg@nokia.com> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: More coding style fixes + +2008-02-29 19:37:15 +0000 Luiz Augusto von Dentz <luiz.dentz@openbossa.org> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: Remove possible extra memcpy for gstreamer plugin. + +2008-02-28 19:38:53 +0000 Luiz Augusto von Dentz <luiz.dentz@openbossa.org> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: Fix bug sending empty packages and remove a buffer copy. + +2008-02-20 13:37:00 +0000 Luiz Augusto von Dentz <luiz.dentz@openbossa.org> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: Fix runtime warnings of gstreamer plugin. + +2008-02-19 19:49:24 +0000 Luiz Augusto von Dentz <luiz.dentz@openbossa.org> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: Update gstreamer plugin to use new sbc API. + +2008-02-02 03:37:05 +0000 Marcel Holtmann <marcel@holtmann.org> + + * gst/rtp/gstrtpsbcpay.c: + * gst/rtp/gstrtpsbcpay.h: + rtpsbcpay: Update copyright information + +2008-01-30 14:21:43 +0000 Luiz Augusto von Dentz <luiz.dentz@openbossa.org> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: Fixes gstreamer caps and code cleanup. + +2008-01-24 14:25:29 +0000 Luiz Augusto von Dentz <luiz.dentz@openbossa.org> + + * gst/rtp/gstrtpsbcpay.c: + rtpsbcpay: Fix gtreamer payloader sending fragmented frames. + +2008-01-23 19:17:33 +0000 Luiz Augusto von Dentz <luiz.dentz@openbossa.org> + + * gst/rtp/gstrtpsbcpay.c: + * gst/rtp/gstrtpsbcpay.h: + rtpsbcpay: Fix use of gstreamer plugin with rhythmbox and banshee and rtp timestamps. + +2008-01-23 13:14:02 +0000 Luiz Augusto von Dentz <luiz.dentz@openbossa.org> + + * gst/rtp/gstrtpsbcpay.c: + * gst/rtp/gstrtpsbcpay.h: + rtpsbcpay: Make a2dpsink to act like a bin and split the payloader. + +2013-01-08 16:27:42 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpsession.c: + rtp: small improvements + +2013-01-07 15:50:33 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: refactor handle sync code + Move the code that combines the last SR packet and the current jitterbuffer sync + values into a sync structure, into its own function. We want to reuse this bit + later. + +2013-01-07 15:45:10 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpsession.c: + rtp: include downstream latency in SR calculations + When we make a mapping between an RTP timestamp and an NTP timestamp, include + the downstream latency applied to the sinks. This makes it possible to have + both sinks run with different latencies and still have correct sync on the + client. It also is more correct because the RTP timestamp in the SR report will + actually correspond more closely to the NTP time it was sent on the server. + For pipelines with high latency on the sender side, this actually allows a + GStreamer receiver to perform synchronisation instead of dropping the RTCP + packets. + +2013-01-07 14:25:14 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: don't cast event functions + There is no need to cast the event functions and only causes problems later when + we change the signature later and things silently compiles wrong code. + +2013-01-07 14:23:34 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpsession.c: + rtp: more debug + +2013-01-07 14:22:48 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/rtpsession.c: + rtpsession: improve debug + +2013-01-02 00:03:27 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/udp/gstudpsrc.c: + udpsrc: sanity check size of available packet data for reading to avoid memory waste + On Windows and OS/X, _get_available_bytes() may not return the size + of the next pending packet, but the size of all pending packets in + the kernel-side buffer, which might be rather large depending on + configuration. Sanity-check the size returned by _get_available_bytes() + to make sure we never allocate more memory than the max. size for + a packet, if it's an IPv4 socket. + https://bugzilla.gnome.org/show_bug.cgi?id=610364 + +2013-01-04 10:03:32 +0100 Robert Krakora <rob.krakora@messagenetsystems.com> + + * sys/v4l2/v4l2_calls.c: + v4l2: Also handle the new ENOENT return value of VIDIOC_QUERYCTRL + https://bugzilla.gnome.org/show_bug.cgi?id=691098 + +2013-01-01 19:14:36 +0000 Tim-Philipp Müller <tim@centricular.net> + + * tests/check/elements/souphttpsrc.c: + tests: add test for souphttpsrc error handling with data + https://bugzilla.gnome.org/show_bug.cgi?id=678429 + +2012-06-22 21:56:52 +0000 Norbert Waschbuesch <nwaschbu@opentv.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: error out properly when receiving data along with an error status + When receiving an error code from the http server, such as 404, + data might be sent along with it, like a web page. We don't want + to output that data in this case, and we also want to pass the + FLOW_ERROR return back to the base class, so it can stop properly. + https://bugzilla.gnome.org/show_bug.cgi?id=678429 + +2013-01-01 12:20:20 +0000 Tim-Philipp Müller <tim@centricular.net> + + * docs/plugins/gst-plugins-good-plugins.args: + docs: update for new rtspsrc proxy-id and proxy-pw properties + +2013-01-01 12:19:23 +0000 Tim-Philipp Müller <tim@centricular.net> + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-good-plugins-docs.sgml: + * docs/plugins/gst-plugins-good-plugins-sections.txt: + * docs/plugins/gst-plugins-good-plugins.hierarchy: + * docs/plugins/inspect/plugin-cairo.xml: + docs: fix docs build and update after removal of old cairo elements + +2013-01-01 12:12:02 +0000 Tim-Philipp Müller <tim@centricular.net> + + * ext/cairo/Makefile.am: + * ext/cairo/gstcairo.c: + * ext/cairo/gstcairorender.c: + * ext/cairo/gstcairorender.h: + * ext/cairo/gsttextoverlay.c: + * ext/cairo/gsttextoverlay.h: + * ext/cairo/gsttimeoverlay.c: + * ext/cairo/gsttimeoverlay.h: + cairo: remove old cairo-based text renderering element + They haven't worked well or at all in a very long time + and were rather bit-rotten, and there's no need for them + any more. + +2013-01-01 11:52:09 +0000 Tim-Philipp Müller <tim@centricular.net> + + * configure.ac: + * ext/cairo/.gitignore: + * ext/cairo/Makefile.am: + * ext/cairo/gstcairo-marshal.list: + * ext/cairo/gstcairo.c: + * ext/cairo/gstcairooverlay.c: + * ext/cairo/gstcairooverlay.h: + * tests/examples/Makefile.am: + * tests/examples/cairo/Makefile.am: + * tests/examples/cairo/cairo_overlay.c: + cairo: port cairooverlay to 0.11 + The other elements are not that interesting now that we're + using pangocairo in the pango plugin, and should probably + just be removed. + +2012-12-31 18:59:18 +0000 Tim-Philipp Müller <tim@centricular.net> + + * tests/examples/rtp/server-decodebin-H263p-AMR.sh: + examples: check for uri argument in decodebin-h264p-amr server example + Otherwise people get a rather confusing error message. + +2012-12-31 00:22:27 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: add "proxy-id" and "proxy-pw" properties + to match souphttpsrc. user/password passed via the URI + will still take precedence though. + https://bugzilla.gnome.org/show_bug.cgi?id=395427 + +2012-12-25 16:48:43 +0000 Tim-Philipp Müller <tim@centricular.net> + + * sys/oss4/oss4-sink.c: + oss4sink: notify "volume" property on open to make apps query initial volume + The initial volume might not be the property default, so + emit a notify on the volume property to make apps get + an up-to-date reading of the current volume. + https://bugzilla.gnome.org/show_bug.cgi?id=631053 + +2012-12-20 17:12:30 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: fix cmd comparison + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690476 + +2012-12-20 17:12:20 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: add some more debug + +2012-12-20 16:44:24 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * ext/raw1394/gst1394clock.c: + 1394clock: mark our clock type as OTHER + +2012-12-20 16:15:13 +0100 Jonas Holmberg <jonashg@axis.com> + + * tests/check/elements/rtp-payloading.c: + tests: add jpegpay unit test + See also https://bugzilla.gnome.org/show_bug.cgi?id=684955 + +2012-12-20 15:55:02 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * ext/jpeg/gstjpegenc.c: + * ext/jpeg/gstjpegenc.h: + jpegenc: pass flowreturn upstream + +2012-09-27 15:42:56 +0200 Jonas Holmberg <jonashg@axis.com> + + * gst/rtp/gstrtpjpegpay.c: + rtpjpegpay: handle width and height > 2040 + If width or height is greater than 2040 set width and height to zero in + the rtp header and add x-dimensions to outcaps. + Solves #684955 + +2012-12-20 13:03:41 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/avi/gstavidemux.c: + avidemux: cleanup in flag define + +2012-12-20 13:02:57 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/avi/gstavidemux.c: + avidemux: improve debug + +2012-12-18 15:56:59 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + + * ext/wavpack/gstwavpackenc.c: + wavpack: use appropriate printf format for gsize + +2012-12-18 15:55:43 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + + * ext/taglib/gstid3v2mux.cc: + taglib: use appropriate printf format for gsize + +2012-12-18 15:54:08 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + + * ext/gdk_pixbuf/gstgdkpixbufdec.c: + gdkpixbuf: use appropriate printf format for gsize + +2012-12-18 15:51:46 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + + * gst/rtp/gstrtpgstdepay.c: + rtp: use appropriate printf format for gsize + +2012-12-18 15:46:56 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: use appropriate printf format for gsize + +2012-12-17 16:35:56 +0100 Philippe Normand <philn@igalia.com> + + * gst/interleave/interleave.c: + * gst/interleave/interleave.h: + interleave: set src pad caps upon last sink pad CAPS event + Gather caps on all sink pads before setting the src pad caps. This is + specially needed when the audio channel mapping is set on the sink + pads and the element needs to preserve it on its src pad. + https://bugzilla.gnome.org/show_bug.cgi?id=690267 + +2012-12-17 22:55:12 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/matroska/matroska-read-common.c: + matroskademux: skip empty tags + instead of trying to add tags with empty strings, which + causes criticals at runtime. + https://bugzilla.gnome.org/show_bug.cgi?id=690358 + +2012-12-17 15:17:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * 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/gstwavpackparse.c: + audioparsers: Make sure the caps are actually writable before changing them + +2012-12-17 15:01:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * 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/gstwavpackparse.c: + audioparsers: Use the peer caps for restrictions instead of the srcpad allowed caps + Otherwise we will intersect with the srcpad template caps and add all the caps fields + that the parser will ever set, no matter if downstream restricts this field or not. + This requires upstream to set this field on the caps to successfully negotiate. + https://bugzilla.gnome.org/show_bug.cgi?id=690184 + +2012-12-14 22:25:08 +0000 Koop Mast <kwm@rainbow-runner.nl> + + * configure.ac: + * sys/v4l2/gstv4l2object.h: + v4l2: Teach where the videodev2.h header lives on freebsd. + https://bugzilla.gnome.org/show_bug.cgi?id=690233 + +2012-12-16 23:27:41 +0000 Alexey Fisher <bug-track@fisher-privat.net> + + * gst/matroska/matroska-mux.c: + matroskamux: set appropriate block header flag for VP8 invisible frames + Useful for debugging mostly. + https://bugzilla.gnome.org/show_bug.cgi?id=654259 + +2012-12-16 15:25:03 +0000 Tim-Philipp Müller <tim@centricular.net> + + * docs/plugins/Makefile.am: + * 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-rtpmanager.xml: + * gst/rtpmanager/gstrtpdtmfmux.c: + docs: add rtpmux and rtpdtmfmux to plugin docs + https://bugzilla.gnome.org/show_bug.cgi?id=629117 + +2012-12-16 15:13:38 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/rtpmanager/Makefile.am: + * gst/rtpmanager/gstrtpmanager.c: + * gst/rtpmanager/gstrtpmuxer.c: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + rtpmanager: move rtpmux and rtpdtmfmux elements from -bad + https://bugzilla.gnome.org/show_bug.cgi?id=629117 + +2012-11-03 20:38:00 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpdtmfmux.h: + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + * gst/rtpmanager/gstrtpmuxer.c: + * tests/check/elements/rtpmux.c: + rtpmux: Fix FSF address + https://bugzilla.gnome.org/show_bug.cgi?id=687520 + +2012-10-17 17:34:26 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Use gst_element_class_set_static_metadata() + where possible. Avoids some string copies. Also re-indent + some stuff. Also some indent fixes here and there. + +2012-09-10 20:38:14 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpmux.c: + * tests/check/elements/rtpmux.c: + rtpmux: Misc fix for 0.11 + Convert the incoming caps before proxying them + Clear the last_pad when going to ready + tests: Implement accept_caps, don't leak event + +2012-07-17 16:39:02 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: update for RTP buffer api changes + +2012-04-05 18:02:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/rtpmanager/gstrtpmuxer.c: + rtpmux: Update for GST_PLUGIN_DEFINE() API changes + +2012-04-02 11:07:18 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: fix compilation + +2012-03-11 19:06:59 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: fix for caps api changes + +2012-01-26 06:58:46 -0500 Matej Knopp <matej.knopp@gmail.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Fix compiler warnings + +2012-01-29 18:01:05 +0000 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Unref non-forwarded events + Also, don't unref forwarded ones + +2012-01-28 16:57:03 +0000 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: resync iterator on resync + +2012-01-27 12:08:52 +0100 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpmux: Re-push sticky events on input pad change + +2012-01-25 15:43:01 +0100 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Don't leak gvalue from iterator + +2012-01-25 16:46:44 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: more porting + +2012-01-24 14:20:52 +0100 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + * tests/check/elements/rtpmux.c: + rtpmux: port to 0.11 + +2011-11-04 12:22:37 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + rtpmux: make request pads take _%u + +2011-04-14 14:34:26 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpdtmfmux: Add last-stop to dtmf-event upstream events + Add the running time of the last outputted buffer to the + upstream "dtmf-event" events so that the dtmf source does not + leave a gap. + +2010-11-25 19:21:11 +0100 Edward Hervey <bilboed@bilboed.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Remove dead assignments + +2010-10-19 13:43:14 +0300 Stefan Kost <ensonic@users.sf.net> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: add missing G_PARAM_STATIC_STRINGS flags + Canonicalize property names as needed. + +2010-09-30 16:07:29 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Improve documentation + Add an example pipeline, and try to explain a bit more what it does. + +2010-09-24 13:29:55 +0300 Stefan Kost <ensonic@users.sf.net> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpdtmfmux: remove unused variable + +2010-09-24 13:25:22 +0300 Stefan Kost <ensonic@users.sf.net> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpdtmfmux: remove unused signal boilerplate + +2010-09-24 13:24:48 +0300 Stefan Kost <ensonic@users.sf.net> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: no need to ref pad in _chain() + +2010-08-25 22:56:03 -0400 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Unlock the right mutex + The mutex locked is for the 'mux' object, but we unlock the + pad, which means that if the rtpmux gets a flush, then the + object lock will stay locked forever, causing it to freeze + the next time it tries to take it. + Fixes bug #627991 + +2010-07-01 15:19:12 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpmux: Add support for GstBufferList + Factor out most of the buffer handling and implement a chain_list + function. Also, the DTMF muxer has been modified to just have a + function to accept or reject a buffer instead of having to subclass + both chain and chain_list. + +2010-07-01 15:15:49 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Don't leak invalid buffers + +2010-06-03 10:43:20 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpmux: fix missing debug log message argument + +2010-05-10 18:37:55 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpdtmfmux: Add some debug messages + +2010-05-07 18:56:57 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpdtmfmux.h: + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpdtmfmux: Remove stream-lock event handling + +2010-05-07 18:54:49 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpdtmfmux: Update doc for simplification + +2010-05-07 18:40:30 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * tests/check/elements/rtpmux.c: + tests: Change tests to not use the priority pads instead of the events + +2010-05-06 19:51:59 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpdtmfmux.h: + rtpdtmfmux: Drop buffers on non-priority sinks when something is incoming on the priority sink + +2010-05-06 18:11:40 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpdtmfmux: Add priority sink pads + +2010-05-07 17:15:47 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpdtmfmux: Cleanup event function + +2010-05-07 16:42:22 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + * tests/check/elements/rtpmux.c: + rtpmux: Aggregate incoming segments + +2010-05-06 19:09:48 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpdtmfmux: Update documentation + +2010-05-06 18:10:45 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpmux: Simplify request pad creation + +2010-03-21 21:39:18 +0100 Benjamin Otte <otte@redhat.com> + + * tests/check/elements/rtpmux.c: + Add -Wmissing-declarations -Wmissing-prototypes to configure flags + And fix all warnings + +2010-03-18 17:30:26 +0100 Benjamin Otte <otte@redhat.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + rtpmux: gst_element_class_set_details => gst_element_class_set_details_simple + +2009-11-18 16:38:33 +0100 unknown <havard.graff@.eu.tandberg.int> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: update the current_ssrc from the caps + Fixes #604101 + +2009-12-09 14:42:21 +0100 HÃ¥vard Graff <havard.graff@tandberg.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: release pads when disposing + Because of an allocated priv (GstRTPMuxPadPrivate), the element will + leak memory if not gst_rtp_mux_release_pad() is called. This would + previously only happen if release_request_pad() was called explicitly, + somthing that should not be neccesary. + Fixes #604099 + +2009-12-09 13:40:43 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + dtmfmux: method name cleanups + +2009-10-08 19:06:26 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * tests/check/elements/rtpmux.c: + tests: Add test for rtpdtmfmux locking + +2009-09-28 19:54:53 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * tests/check/elements/rtpmux.c: + tests: Add unit test for rtpmux + +2009-09-28 13:36:44 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Don't ignore requested pad name + +2009-07-29 17:23:31 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Remove empty finalize + +2009-07-21 15:31:33 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Free the pad private data on pad release + Free the pad private data on pad release instead of using a weak ref, + which is not thread safe. Also, lock the content of the pad private using the element's + object lock. + +2009-04-28 16:10:21 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Reject wrong caps + +2009-04-28 16:03:19 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Fix leak Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr> + +2009-04-28 15:58:41 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Fix leak + Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr> + +2009-04-22 18:01:07 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Fix warning + +2009-04-20 20:00:15 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Set different caps depending on the input + +2009-04-22 16:25:07 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Only free pad private when pad is disposed + +2009-04-20 18:41:39 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Remove useless caps mangling + +2009-04-20 18:36:42 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Rename variable for more clarity + +2009-04-20 17:43:39 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Use GST_BOILERPLATE + +2009-04-20 17:42:40 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpdtmfmux.h: + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Do the includes locally + +2009-04-15 13:23:01 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Add GST_DEBUG_FUNCPTRs + +2009-04-15 13:15:55 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpdtmfmux: Release locked pad on release_pad + Release the special pad if the pad is removed from the muxer. + +2009-04-15 13:09:27 -0400 Laurent Glayal <spglegle@yahoo.fr> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpdtmfmux: Release special on pad dispose + Fixes #577690 + +2009-02-25 11:45:05 +0200 Stefan Kost <ensonic@users.sf.net> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + docs: various doc fixes + No short-desc as we have them in the element details. + Also keep things (Makefile.am and sections.txt) sorted. + Reword ambigous returns. No text after since please. + +2009-02-10 17:02:24 +0000 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmuxer.c: + rtpmux: Move rtpmux from gst-plugins-farsight to -bad + +2009-02-20 17:45:50 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpdtmfmux.h: + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + * gst/rtpmanager/gstrtpmuxer.c: + rtpmux: Re-indent to Gst style + +2009-02-10 19:11:15 +0000 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Document rtp muxer a bit + +2009-02-20 13:30:49 -0500 Laurent Glayal <spglegle@yahoo.fr> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpdtmfmux.h: + rtpmux: Add signals before stream lock and after unlocking + +2009-02-18 20:18:46 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Let ssrc through getcaps + +2009-02-18 19:58:58 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Rename have_base to have_ts_base + +2009-02-18 18:14:52 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpmux: Protect the seqnum with object lock in rtpmux + +2009-02-18 18:07:44 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.h: + rtpmux: Remove unused sink_ts_base + +2009-02-18 15:20:58 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Have getcaps to force the same clockrate on all pads + +2009-02-18 17:05:13 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Validate RTP data in RTP Mux + +2009-02-18 14:16:00 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpmux: Remove unused clock-rate property + +2009-02-18 13:56:36 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpdtmfmux.h: + rtpmux: Clarify locking in rtpdtmfmux + +2009-02-18 13:32:56 -0500 Laurent Glayal <spglegle@yahoo.fr> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Missing format parameter + +2008-12-01 17:55:22 -0500 HÃ¥vard Graff <havard.graff@tandberg.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Update seqnum base in rtp muxer + With help from Wim + +2008-12-01 17:54:58 -0500 HÃ¥vard Graff <havard.graff@tandberg.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Fix some more leaks + +2008-12-01 17:48:29 -0500 HÃ¥vard Graff <havard.graff@tandberg.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpmux: Fix leak + +2008-09-29 15:03:05 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Don't unref caps we don't know (thanks Wim) + +2008-08-12 12:48:02 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Put per-buffer debug at level LOG + +2008-08-12 12:47:14 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Make debug print accurate + +2008-08-12 12:46:23 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Set our caps on the buffers + +2008-08-12 12:46:07 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Take the clock-base stored from the last setcaps + +2008-08-12 12:41:59 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Store the clock-base on setcaps + +2008-08-12 12:30:52 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Add padprivate to the request pads + +2008-08-11 21:20:06 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Make indentation more correct + +2008-08-11 21:05:34 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Fix typo + +2008-08-11 21:03:22 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Set seqnum-base and clock-base in caps from rtpmuxer + +2007-08-15 13:50:38 +0000 Zeeshan Ali <first.last@nokia.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpmux: more debug + 20070815135038-f3f1e-9c7a5490a525c6e8753cb1b8c03354df99132b5c.gz + +2007-08-20 18:50:32 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: missing comment + 20070820185032-4f0f6-0ab67b6ac40dd4e35a8fe53f3cb6daff65ce43b9.gz + +2007-07-12 19:53:36 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Make buffer writable before writing into it + 20070712195336-3e2dc-91a5fb797cfa4919d4e2f9a728c6d6fbd3b83d93.gz + +2007-07-06 20:24:59 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Set pads active when adding them to a potentially running element + 20070706202459-3e2dc-a3731f885725594def0a7be997fc7b3a739ee967.gz + +2007-06-07 12:01:21 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Fix multiple ref leaks (patches by SP GLE) + 20070607120121-3e2dc-061e9ef7a47b1b84fa8f8092f4b8bcc0e6db8c8c.gz + +2007-05-28 15:25:05 +0000 Zeeshan Ali <first.last@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: send event to all src pads + 20070528152505-f3f1e-039216c73dc93f64c49962c77a0253cb9cfec4d3.gz + +2007-05-28 12:37:49 +0000 Zeeshan Ali <first.last@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: print a warning if receive an error iterating sinkpads + 20070528123749-f3f1e-4c1eb3f511b5610143610a65a94d117f2c3d2580.gz + +2007-05-28 12:28:08 +0000 Zeeshan Ali <first.last@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: deal with all the gst_iterator_next() return values + 20070528122808-f3f1e-d301644c3be7633ec6dc5e28596e9346d2da6a50.gz + +2007-05-25 12:31:16 +0000 Zeeshan Ali <first.last@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Return correct value from the event handler + 20070525123116-f3f1e-131b37b5f4521618fe2f1320409a47e65b35ad2d.gz + +2007-05-25 10:27:09 +0000 Zeeshan Ali <first.last@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Ville's original patch to fix the traversal of dtmf event + 20070525102709-f3f1e-6c41d1ef934068a4f4e810e7e981b420075b0c98.gz + +2007-03-29 13:52:50 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Set the correct ts-offset on the get_prop value + 20070329135250-65035-a43e222d91d57c0a61cb3287586aaa29abf78674.gz + +2007-03-29 13:52:23 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Refactorize state_change + 20070329135223-65035-23a0107b2e397710f035c6e88cc0e49b65bb4d5d.gz + +2007-03-29 13:36:22 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpmux: set SSRC on the packets + 20070329133622-65035-1be6e0aa85a71389f7d257b9cd3e13a73d6b745b.gz + +2007-03-29 13:19:36 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Code clean-up and more debug output + 20070329131936-65035-9d499e209e0d7a409c3aa0d1040778babf076179.gz + +2007-03-28 11:22:19 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpmux: Use own clock-base + 20070328112219-65035-1ba5fefbc65059e9b0c860528a31062ceb6a7331.gz + +2007-03-23 16:31:39 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpmux: Only accept RTP streams that have the same clock-rate + 20070323163139-65035-fc0b17b0b8a7a041f48994c4f26e96568168bf95.gz + +2007-03-22 16:15:52 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpmux: Some more code-cleanups + 20070322161552-65035-bda96165e146b4f1d5fea1cc9576a7ab3abebc9e.gz + +2007-03-22 15:42:51 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: return newpad instead of NULL and warn if failed to create a pad + 20070322154251-65035-cdb6651e61c2eb0205cc8c24693b43f98a2da718.gz + +2007-03-22 12:41:32 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Refactorize the RTPMux code + 20070322124132-65035-0a3278147546e33f687097a43b775b3f6aa99f93.gz + +2007-03-22 12:14:53 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpmux: Some more doc fixing + 20070322121453-65035-12d602272217b51bd97df4e5790024c399622dd3.gz + +2007-03-22 11:32:28 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpmux: More Refactoring + 20070322113228-65035-bae34a79599e7de5293ed77b022361ccff822bb9.gz + +2007-03-22 11:31:54 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpmux: More documentation + 20070322113154-65035-624850541a5b5fc3df231204be5a83d07239db28.gz + +2007-03-21 16:33:11 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + rtpmux: Refactor the event handler function + 20070321163311-65035-987e7f25d1ab5335b79f44b277abf15e4e37d317.gz + +2007-03-21 14:52:44 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpdtmfmux.c: + * gst/rtpmanager/gstrtpdtmfmux.h: + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + * gst/rtpmanager/gstrtpmuxer.c: + rtpmux: Add RTPDTMFMux element + 20070321145244-65035-9a01390b0dee3398e53199a1fa1d9352004f338e.gz + +2007-03-21 12:31:49 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpmux.h: + rtpmux: Remove DTMF-specific code from RTP muxer and make it extendable + 20070321123149-65035-b8a8f55ff78eed8cbb0042e827885edfc5438242.gz + +2007-03-20 12:05:24 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Put more helpful description + 20070320120524-65035-db27a7cf6307b511aeb3d996d26e790e367a7bad.gz + +2007-03-16 15:16:41 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: remove the (commented-out) code for blocking the pads + 20070316151641-65035-0123af387951f88594797c722e882cfe70240aff.gz + +2007-03-16 13:14:44 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Drop buffers instead of blocking the sinkpads + 20070316131444-65035-9c1345ad96108881f455d4b55a7f623cd302d0ed.gz + +2007-03-14 17:16:18 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Implement stream locking, needed for DTMF + 20070314171618-65035-e4d24b1606ce0a3e2e739f01833f61e4d7555eac.gz + +2007-03-14 10:20:58 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: use GST_*_OBJECT instead of g_* + 20070314102058-65035-e2442888f2e3e5a3a7659ad7954a4fba34749ce2.gz + +2007-03-14 10:18:54 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: No need to manage pads, parent does that for us + 20070314101854-65035-ef5f4abde227102a1128835ab325905eae4c3726.gz + +2007-03-14 09:03:58 +0000 zeenix@gmail.com <zeenix@gmail.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: Fix copyright header + 20070314090358-d014a-3a6d3eeeaaf5cb8ca3bca6a33e99a551f598bd48.gz + +2007-03-07 08:53:07 +0000 zeeshan.ali@nokia.com <zeeshan.ali@nokia.com> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: The first implementation of RTP muxer + 20070307085307-65035-833402413f99cb3f8be4883e92bad4c8722510c9.gz + +2012-12-15 21:27:01 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/audiofx/gstscaletempo.c: + * gst/audiofx/gstscaletempo.h: + scaletempo: no need for a private struct + +2012-12-14 15:13:31 +0000 Tim-Philipp Müller <tim@centricular.net> + + * docs/plugins/inspect/plugin-rtp.xml: + * docs/plugins/inspect/plugin-shout2send.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-videofilter.xml: + docs: update plugin docs + +2012-12-14 15:13:19 +0000 Tim-Philipp Müller <tim@centricular.net> + + * docs/plugins/Makefile.am: + * 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-audiofx.xml: + docs: add scaletempo to docs + +2012-11-06 13:36:39 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/audiofx/Makefile.am: + * gst/audiofx/audiofx.c: + audiofx: move scaletempo element from -bad + https://bugzilla.gnome.org/show_bug.cgi?id=687262 + +2012-10-23 14:33:21 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/audiofx/gstscaletempo.c: + scaletempo: Fix event leak + +2012-10-23 14:32:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/audiofx/gstscaletempo.c: + scaletempo: Fix timestamp tracking + +2012-10-23 14:06:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/audiofx/gstscaletempo.c: + scaletempo: Implement LATENCY query + +2012-10-23 13:39:17 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/audiofx/gstscaletempo.c: + * gst/audiofx/gstscaletempo.h: + scaletempo: Store instance private data in the instance struct + Getting it over and over again via G_TYPE_INSTANCE_GET_PRIVATE() + is really slow. + +2012-10-17 17:34:26 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/audiofx/gstscaletempo.c: + scaletempo: use gst_element_class_set_static_metadata() + where possible. Avoids some string copies. Also re-indent + some stuff. Also some indent fixes here and there. + +2012-09-14 17:08:49 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> + + * gst/audiofx/gstscaletempo.c: + scaletempo: replace gst_element_class_set_details_simple with gst_element_class_set_metadata + +2012-09-14 16:45:34 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/audiofx/gstscaletempo.c: + scaletempo: ffmpegcolorspace is no more + +2012-04-05 18:02:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/audiofx/gstscaletempoplugin.c: + scaletempo: Update for GST_PLUGIN_DEFINE() API changes + +2012-03-18 18:32:55 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> + + * gst/audiofx/gstscaletempo.c: + scaletempo: port to 0.11 + +2011-07-07 10:52:50 -0700 Stefan Kost <ensonic@users.sf.net> + + * gst/audiofx/gstscaletempo.c: + scaletempo: improve the docs + Fix the syntax, add more explanation and xref the properties. + +2011-03-22 13:46:42 +0100 Chris E Jones <chris@chrisejones.com> + + * gst/audiofx/gstscaletempo.c: + scaletempo: Correctly handle newsegment events with stop==-1 + Fixes bug #645420. + +2010-10-19 13:43:14 +0300 Stefan Kost <ensonic@users.sf.net> + + * gst/audiofx/gstscaletempo.c: + scaletempo: add missing G_PARAM_STATIC_STRINGS flags + Canonicalize property names as needed. + +2010-03-18 17:30:26 +0100 Benjamin Otte <otte@redhat.com> + + * gst/audiofx/gstscaletempo.c: + scaletempo: gst_element_class_set_details => gst_element_class_set_details_simple + +2009-11-05 13:40:38 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk> + + * gst/audiofx/gstscaletempo.c: + scaletempo: properly update new segments + Scaletempo was missing an update of 'stop' in + new segment parameters when pushing it downstream, + which caused files to end earlier when rate < 1. + Fixes #599903 + Based on patch by: Bastian Hecht <hechtb@gmail.com> + +2009-06-14 20:00:51 +0200 Maximilian Högner <pbmaxi@hoegners.de> + + * gst/audiofx/gstscaletempo.c: + scaletempo: Explicitely cast to signed integers to fix a segfault + Fixes bug #585660. + +2009-02-13 12:18:48 -0800 Michael Smith <msmith@songbirdnest.com> + + * gst/audiofx/gstscaletempo.c: + scaletempo: Do not use void pointer arithmetic. + +2008-10-30 12:13:18 +0000 Stefan Kost <ensonic@users.sourceforge.net> + + scaletempo: Return the result of parent_class->event() + Original commit message from CVS: + * gst/audiofx/gstscaletempo.c: + Return the result of parent_class->event(). + +2008-08-31 12:20:33 +0000 Rov Juvano <rovjuvano@users.sourceforge.net> + + Add scaletempo plugin, which allows to scale the speed of audio without changing the pitch by handling seeks with a r... + Original commit message from CVS: + Patch by: Rov Juvano <rovjuvano at users dot sourceforge dot net> + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-scaletempo.xml: + * examples/scaletempo/Makefile.am: + * examples/scaletempo/demo-gui.c: (pop_status_bar), + (status_bar_printf), (demo_gui_seek_bar_format), (update_position), + (demo_gui_seek_bar_change), (demo_gui_do_change_rate), + (demo_gui_do_set_rate), (demo_gui_do_rate_entered), + (demo_gui_do_toggle_advanced), (demo_gui_do_toggle_disabled), + (demo_gui_do_seek), (demo_gui_do_play), (demo_gui_do_pause), + (demo_gui_do_play_pause), (demo_gui_do_open_file), + (demo_gui_do_playlist_prev), (demo_gui_do_playlist_next), + (demo_gui_do_about_dialog), (demo_gui_do_quit), + (demo_gui_request_set_stride), (demo_gui_request_set_overlap), + (demo_gui_request_set_search), (demo_gui_rate_changed), + (demo_gui_playing_started), (demo_gui_playing_paused), + (demo_gui_playing_ended), (demo_gui_player_errored), + (demo_gui_stride_changed), (demo_gui_overlap_changed), + (demo_gui_search_changed), (demo_gui_set_player_func), + (demo_gui_set_playlist_func), (build_gvalue_array), + (create_action), (demo_gui_show_func), (demo_gui_set_player), + (demo_gui_set_playlist), (demo_gui_show), (demo_gui_get_property), + (demo_gui_set_property), (demo_gui_init), (demo_gui_class_init), + (demo_gui_get_type): + * examples/scaletempo/demo-gui.h: + * examples/scaletempo/demo-main.c: (handle_error_message), + (handle_quit), (main): + * examples/scaletempo/demo-player.c: (no_pipeline), + (demo_player_event_listener), (demo_player_state_changed_cb), + (demo_player_eos_cb), (demo_player_build_pipeline), (_set_rate), + (demo_player_scale_rate_func), (demo_player_set_rate_func), + (_set_state_and_wait), (demo_player_load_uri_func), + (demo_player_play_func), (demo_player_pause_func), (_seek_to), + (demo_player_seek_by_func), (demo_player_seek_to_func), + (demo_player_get_position_func), (demo_player_get_duration_func), + (demo_player_scale_rate), (demo_player_set_rate), + (demo_player_load_uri), (demo_player_play), (demo_player_pause), + (demo_player_seek_by), (demo_player_seek_to), + (demo_player_get_position), (demo_player_get_duration), + (demo_player_get_property), (demo_player_set_property), + (demo_player_init), (demo_player_class_init), + (demo_player_get_type): + * examples/scaletempo/demo-player.h: + * gst/audiofx/Makefile.am: + * gst/audiofx/gstscaletempo.c: (best_overlap_offset_float), + (best_overlap_offset_s16), (output_overlap_float), + (output_overlap_s16), (fill_queue), (reinit_buffers), + (gst_scaletempo_transform), (gst_scaletempo_transform_size), + (gst_scaletempo_sink_event), (gst_scaletempo_set_caps), + (gst_scaletempo_get_property), (gst_scaletempo_set_property), + (gst_scaletempo_base_init), (gst_scaletempo_class_init), + (gst_scaletempo_init): + * gst/audiofx/gstscaletempo.h: + * gst/audiofx/gstscaletempoplugin.c: (plugin_init): + Add scaletempo plugin, which allows to scale the speed of audio without + changing the pitch by handling seeks with a rate!=1.0. + Integrate it into the docs and add the example application for it. + Fixes bug #537700. + +2012-12-13 12:36:20 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * tests/check/elements/rtpjitterbuffer.c: + check: add (but disable) more rtp jitterbuffer tests + Tests need to be ported to 1.0 before they can be enabled but added here so they + don't get forgotten. + See https://bugzilla.gnome.org/show_bug.cgi?id=667838 + +2012-01-13 01:11:31 +0100 Havard Graff <havard.graff@tandberg.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: bundle together late lost-events + The scenario where you have a gap in a steady flow of packets of + say 10 seconds (500 packets of with duration of 20ms), the jitterbuffer + will idle up until it receives the first buffer after the gap, but will + then go on to produce 499 lost-events, to "cover up" the gap. + Now this is obviously wrong, since the last possible time for the earliest + lost-events to be played out has obviously expired, but the fact that + the jitterbuffer has a "length", represented with its own latency combined + with the total latency downstream, allows for covering up at least some + of this gap. + So in the case of the "length" being 200ms, while having received packet + 500, the jitterbuffer should still create a timeout for packet 491, which + will have its time expire at 10,02 seconds, specially since it might + actually arrive in time! But obviously, waiting for packet 100, that had + its time expire at 2 seconds, (remembering that the current time is 10) + is useless... + The patch will create one "big" lost-event for the first 490 packets, + and then go on to create single ones if they can reach their + playout deadline. + See https://bugzilla.gnome.org/show_bug.cgi?id=667838 + +2012-12-13 09:27:14 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: fix TCP reconnect + Ignore other commands when reconnecting, otherwise the loop function would pause + and the reconnection would not happen. Continue looping after doing a reconnect + so that we have a chance to actually read the new data. + +2012-12-13 01:02:34 +0400 РуÑлан Ижбулатов <lrn1986@gmail.com> + + * sys/directsound/gstdirectsoundsink.c: + * sys/directsound/gstdirectsoundsink.h: + * sys/waveform/gstwaveformsink.h: + directsound, waveform: fix compilation errors caused by circular includes + https://bugzilla.gnome.org/show_bug.cgi?id=690124 + +2012-12-12 17:35:04 +0000 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/jack/gstjack.c: + * ext/jack/gstjack.h: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackutil.h: + * ext/libpng/gstpngenc.c: + * ext/pulse/pulseprobe.c: + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesink.h: + * ext/pulse/pulsesrc.c: + * ext/pulse/pulseutil.c: + * ext/vpx/gstvp8enc.c: + * sys/oss/common.h: + * sys/oss/gstossaudio.c: + * sys/oss/gstosssrc.c: + * sys/oss4/oss4-audio.h: + ext/sys: Fix some compilation errors caused by circular includes + +2012-12-12 12:07:34 +0100 Philippe Normand <philn@igalia.com> + + * gst/interleave/deinterleave.c: + deinterleave: properly set srcpad channel position + The src pad caps always describe a single audio channel so only the + first position matters if deinterleave is configured to keep channel + positions in its src pads. + +2012-12-12 11:09:42 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: timeout on udpsrc is in nanoseconds + +2012-12-12 11:08:13 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/udp/gstudpsrc.c: + udpsrc: improve timeouts + Make it possible to set the timeout after we went to the READY state by using + the timeout when checking the condition. This also makes it possible to set the + timeout with a higher granularity than seconds. + +2012-12-11 13:00:46 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/deinterlace/gstdeinterlace.c: + * gst/deinterlace/gstdeinterlace.h: + * gst/deinterlace/gstdeinterlacemethod.c: + * gst/deinterlace/gstdeinterlacemethod.h: + * gst/deinterlace/tvtime/greedy.c: + * gst/deinterlace/tvtime/greedyh.c: + * gst/deinterlace/tvtime/linear.c: + * gst/deinterlace/tvtime/linearblend.c: + * gst/deinterlace/tvtime/scalerbob.c: + * gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace/tvtime/vfir.c: + * gst/deinterlace/tvtime/weave.c: + * gst/deinterlace/tvtime/weavebff.c: + * gst/deinterlace/tvtime/weavetff.c: + deinterlace: add support for strides + Implement stride support correctly by taking it from the GstVideoFrame. + Propose a bufferpool upstream when not operating in passthrough. + +2012-09-27 12:17:58 -0700 Aleix Conchillo Flaque <aleix@oblong.com> + + rtspsrc: do not change state to PLAYING if currently chaning state + * gst/rtsp/gstrtspsrc.c (gst_rtspsrc_play): state change might be + happening in the application thread, so we don't change the state to + PLAYING in the gstrtspsrc thread unless it is safe. + A specific case is when chaning the state to NULL from the application + thread. This will synchronously try to stop the task (with the element + state lock acquired), but we will try a gst_element_set_state from + gstrtspsrc thread which will block on the element state lock causing a + deadlock. + https://bugzilla.gnome.org/show_bug.cgi?id=684312 + +2012-12-10 11:44:26 +0000 Alexey Chernov <4ernov@gmail.com> + + * sys/osxvideo/osxvideosink.m: + osxvideosink: Fix resizing the Cocoa window on receiving new caps + Fixes bug #689732. + +2012-11-30 20:37:47 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * configure.ac: + * sys/v4l2/Makefile.am: + v4l2src: link against -lrt for clock_gettime() + Need to explicitly link against -lrt for clock_gettime(), which + we don't get in the libs any more, because core moved the + gmodule-no-export-2.0 bit into Requires.Private. + Not required for newer glibc, but for older ones, so check for that. + +2012-11-30 17:22:59 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * ext/shout2/gstshout2.c: + shout2send: accept audio/webm as well as video/webm + https://bugzilla.gnome.org/show_bug.cgi?id=689336 + +2012-11-30 17:20:18 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/matroska/matroska-mux.c: + * tests/check/elements/matroskamux.c: + webmux: fix linking with shout2send element + Shout2send only accepts webm format, not matroska, but due + to a bug in matroskamux, webmmux's source pad is also created + with the matroska source pad template as pad template, which + makes the link function think it can't link webmmux to shout2send. + Also add unit test. + https://bugzilla.gnome.org/show_bug.cgi?id=689336 + +2012-11-27 11:13:37 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: use new option parser function + +2012-11-26 15:17:13 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/law/mulaw-conversion.c: + law: fix accidental file permissions change + https://bugzilla.gnome.org/show_bug.cgi?id=687469 + +2012-11-25 16:05:11 +0000 Tim-Philipp Müller <tim@centricular.net> + + * sys/v4l2/gstv4l2object.c: + v4l2: remove unused define + +2012-11-25 14:16:09 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/isomp4/qtdemux.c: + qtdemux: avoid criticals if unknown fourcc has space at beginning or end + https://bugzilla.gnome.org/show_bug.cgi?id=682936 + +2012-11-24 19:32:51 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/videobox/gstvideobox.c: + videobox: fix border filling for planar YUV formats + We would get a green border instead of a black one, for + example. + https://bugzilla.gnome.org/show_bug.cgi?id=684991 + +2012-11-24 14:27:33 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/law/mulaw-conversion.c: + mulaw: const-ify some arrays + +2012-11-02 12:38:44 -0400 Roland Krikava <rkrikava@gmail.com> + + * gst/law/mulaw-conversion.c: + mulawdec: fix integer overrun + There might be more than 65535 samples in a chunk of data. + https://bugzilla.gnome.org/show_bug.cgi?id=687469 + +2012-11-22 11:34:31 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: pause the task instead of spinning + Actually pause the loop task instead of spinning forever. + +2012-11-19 03:31:37 -0500 Joshua M. Doe <oss@nvl.army.mil> + + * gst/videofilter/gstvideoflip.c: + videoflip: Add gray 8/16 support + +2012-11-19 11:25:14 +0000 Tim-Philipp Müller <tim@centricular.net> + + * common: + Automatic update of common submodule + From b497c4f to a72faea + +2012-11-16 15:38:29 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: handle segment event + Make a segment event when we send a new range header to a client (first PLAY + request or after a seek). Send the segment event in interleaved mode. + Clean the segment event on cleanup + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688382 + +2012-11-16 15:18:07 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: fix check for active streams + A stream can be active without a srcpad yet and we want to send + events on those streams as well. + +2012-11-16 13:31:04 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: create and add pads outside of lock + Create and add the ghostpad for the new stream outside of the lock because it + is not needed and causes deadlocks. + +2012-09-12 22:11:20 -0700 Aleix Conchillo Flaque <aleix@oblong.com> + + rtspsrc: allow client to disable reconnection + * gst/rtsp/gstrtspsrc.[ch]: added new "udp-reconnect" property. Before, + rtspsrc always tried to reconnect to the server when the RTSP + connection was closed by the server. This property lets the user + decide whether it wants rtspsrc to reconnect or not. + https://bugzilla.gnome.org/show_bug.cgi?id=683912 + +2012-11-16 12:16:05 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: clear variables before retrying + Else we might unref an old udpsrc twice in cleanup. + +2012-11-16 12:00:14 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: propose ports in multicast + When the user configured a port-range, propose ports from this range + as the multicast ports. The server is free to ignore this request but if it + honours it, increment our ports so that we suggest the next port pair for the + next stream. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639420 + +2012-11-16 11:58:53 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: add more debug + +2012-11-16 09:09:38 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/multifile/gstmultifilesink.c: + multifilesink: post messages in max-size mode as well + No reason not to really. + +2012-11-15 14:37:44 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/udp/gstudpsrc.c: + udpsrc: post error before stopping + +2012-11-14 00:13:36 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/goom/gstgoom.c: + * gst/goom2k1/gstgoom.c: + * gst/rtp/gstrtpmp4adepay.c: + * gst/rtp/gstrtpmparobustdepay.c: + gst_adapter_prev_timestamp -> gst_adapter_prev_pts + https://bugzilla.gnome.org/show_bug.cgi?id=675598 + +2012-11-12 19:23:41 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * gst/videofilter/gstvideoflip.c: + videoflip: Add NV12/NV21 support + https://bugzilla.gnome.org/show_bug.cgi?id=688225 + +2012-11-12 13:01:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/vpx/gstvp8enc.c: + vp8enc: Don't leak GstVideoCodecFrames that cause the creation of invisible frames + Fixes bug #682714. + +2012-11-12 11:47:17 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/pulse/pulsesink.c: + pulse: Use new GType for GThread instead of just G_TYPE_POINTER + +2012-11-12 11:14:34 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/rtpsource.c: + rtpsource: protect against invalid RTP packets + +2012-11-12 10:44:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/libpng/gstpngdec.c: + pngdec: Actually use the stop() vfunc implementation + +2012-11-12 10:31:59 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/vpx/gstvp8dec.c: + vp8dec: Fix last commit + +2012-11-12 10:10:15 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/libpng/gstpngdec.c: + pngdec: Keep the input state in reset() + It's still valid after a flush and we might not get a new one. + +2012-11-12 10:08:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/vpx/gstvp8dec.c: + vp8dec: Also destroy decoder in set_format() if it was created already + Fixes a memory leak. + +2012-11-12 09:48:45 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * ext/vpx/gstvp8dec.c: + vp8dec: Don't clear input state in reset() + The input state is still valid after flushing until + new caps arrive. + Fixes bug #688092. + +2012-11-10 18:21:28 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/videocrop/gstvideocrop.c: + videocrop: add support for YV12 + We can do I420, so we can do YV12 as well. + +2012-11-10 12:39:08 +0100 Alessandro Decina <alessandro.d@gmail.com> + + * gst/multifile/gstmultifilesink.c: + multifilesink: don't write stream headers with key-unit-event + Don't write stream headers, let upstream elements insert them in the stream if + all_headers=true is set in key unit events. + +2012-11-09 13:27:16 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * gst/videocrop/gstvideocrop.c: + * gst/videocrop/gstvideocrop.h: + videocrop: Add NV12/NV21 support + https://bugzilla.gnome.org/show_bug.cgi?id=687964 + +2012-11-09 16:31:05 +0100 Debarshi Ray <rishi@gnu.org> + + * ext/vpx/gstvp8dec.c: + vp8dec: Don't give up so easily if failed to decode a frame + https://bugzilla.gnome.org/show_bug.cgi?id=687436 + +2012-11-09 11:22:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/udp/gstudpsrc.c: + udpsrc: Also clear GError + +2012-11-09 11:20:27 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/udp/gstudpsrc.c: + udpsrc: Don't error out if we get an ICMP destination-unreachable message when trying to read packets + See bug #529454 and #687782 and commit + 751f2bb3646f2beff3698c9f09900dbd0ea08abb + +2012-11-07 20:35:50 +0000 Tim-Philipp Müller <tim@centricular.net> + + * configure.ac: + configure.ac: update courtesy of autoupdate + +2012-11-07 18:48:49 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * common: + * configure.ac: + configure: let AG_GST_PLUGIN_DOCS check for python + And update common for move from AS_PATH_PYTHON to AM_PATH_PYTHON, + which as a side-effect should pick up newer python versions as + well. + https://bugzilla.gnome.org/show_bug.cgi?id=563903 + +2012-11-07 13:36:33 +0100 Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org> + + * gst/rtp/Makefile.am: + Fix vp8rtp header names in Makefile + +2012-11-06 15:03:55 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * gst/videocrop/gstvideocrop.c: + * gst/videocrop/gstvideocrop.h: + * tests/check/elements/videocrop.c: + videocrop: Add support for automatic cropping + This change enable automatic cropping using -1 set to left, top, right or + bottom property. In the case both side are set to automatic cropping, the + croping will be done equally on both side (in the odd case, right and + bottom cropping will be 1 pixel more). + https://bugzilla.gnome.org/show_bug.cgi?id=687761 + +2012-11-02 16:39:28 +0100 Debarshi Ray <rishi@gnu.org> + + * ext/speex/gstspeexdec.c: + speexdec: Don't unmap or finish_frame an invalid GstBuffer + https://bugzilla.gnome.org/show_bug.cgi?id=687464 + +2012-11-06 13:22:58 +0100 Marc Leeman <marc.leeman@gmail.com> + + * gst/rtsp/gstrtspsrc.c: + rtsp: the RTCP port number is inclusive + The configured port number pair has its upper bound set to the maximum + allowed RTCP port, inclusive. + See https://bugzilla.gnome.org/show_bug.cgi?id=639420 + +2012-11-03 20:38:00 +0000 Tim-Philipp Müller <tim@centricular.net> + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfdetect.h: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + Fix FSF address + https://bugzilla.gnome.org/show_bug.cgi?id=687520 + +2012-11-04 00:07:18 +0000 Tim-Philipp Müller <tim@centricular.net> + + * ext/aalib/gstaasink.c: + * ext/aalib/gstaasink.h: + * ext/cairo/gstcairo.c: + * ext/cairo/gstcairooverlay.c: + * ext/cairo/gstcairooverlay.h: + * ext/cairo/gstcairorender.c: + * ext/cairo/gstcairorender.h: + * ext/cairo/gsttextoverlay.c: + * ext/cairo/gsttimeoverlay.c: + * ext/cairo/gsttimeoverlay.h: + * ext/dv/gstdv.c: + * ext/dv/gstdvdec.c: + * ext/dv/gstdvdec.h: + * ext/dv/gstdvdemux.c: + * ext/dv/gstdvdemux.h: + * ext/dv/gstsmptetimecode.c: + * ext/dv/gstsmptetimecode.h: + * ext/flac/gstflac.c: + * ext/flac/gstflacdec.c: + * ext/flac/gstflacdec.h: + * ext/flac/gstflacenc.c: + * ext/flac/gstflacenc.h: + * ext/flac/gstflactag.c: + * ext/flac/gstflactag.h: + * ext/gdk_pixbuf/gstgdkanimation.c: + * ext/gdk_pixbuf/gstgdkanimation.h: + * ext/gdk_pixbuf/gstgdkpixbufdec.c: + * ext/gdk_pixbuf/gstgdkpixbufdec.h: + * ext/gdk_pixbuf/gstgdkpixbufoverlay.h: + * ext/gdk_pixbuf/gstgdkpixbufplugin.c: + * ext/gdk_pixbuf/gstgdkpixbufsink.c: + * ext/gdk_pixbuf/gstgdkpixbufsink.h: + * ext/gdk_pixbuf/pixbufscale.c: + * ext/gdk_pixbuf/pixbufscale.h: + * ext/jack/gstjack.c: + * ext/jack/gstjack.h: + * ext/jack/gstjackaudioclient.c: + * ext/jack/gstjackaudioclient.h: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosink.h: + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackaudiosrc.h: + * ext/jack/gstjackringbuffer.h: + * ext/jack/gstjackutil.c: + * ext/jack/gstjackutil.h: + * ext/jpeg/gstjpeg.c: + * ext/jpeg/gstjpeg.h: + * ext/jpeg/gstjpegdec.c: + * ext/jpeg/gstjpegdec.h: + * ext/jpeg/gstjpegenc.c: + * ext/jpeg/gstjpegenc.h: + * ext/jpeg/gstsmokedec.c: + * ext/jpeg/gstsmokedec.h: + * ext/jpeg/gstsmokeenc.c: + * ext/jpeg/gstsmokeenc.h: + * ext/jpeg/smokecodec.c: + * ext/jpeg/smokecodec.h: + * ext/jpeg/smokeformat.h: + * ext/libcaca/gstcacasink.c: + * ext/libcaca/gstcacasink.h: + * ext/libpng/gstpng.c: + * ext/libpng/gstpng.h: + * ext/libpng/gstpngdec.c: + * ext/libpng/gstpngdec.h: + * ext/libpng/gstpngenc.c: + * ext/libpng/gstpngenc.h: + * ext/mikmod/README: + * ext/mikmod/gstmikmod.c: + * ext/mikmod/gstmikmod.h: + * ext/mikmod/mikmod_types.c: + * ext/mikmod/mikmod_types.h: + * ext/pulse/plugin.c: + * ext/pulse/pulseprobe.c: + * ext/pulse/pulseprobe.h: + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesink.h: + * ext/pulse/pulsesrc.c: + * ext/pulse/pulsesrc.h: + * ext/pulse/pulseutil.c: + * ext/pulse/pulseutil.h: + * ext/raw1394/gst1394.c: + * ext/raw1394/gst1394clock.c: + * ext/raw1394/gst1394clock.h: + * ext/raw1394/gst1394probe.c: + * ext/raw1394/gst1394probe.h: + * ext/raw1394/gstdv1394src.c: + * ext/raw1394/gstdv1394src.h: + * ext/raw1394/gsthdv1394src.c: + * ext/raw1394/gsthdv1394src.h: + * ext/shout2/gstshout2.c: + * ext/shout2/gstshout2.h: + * ext/soup/gstsouphttpclientsink.h: + * ext/speex/gstspeex.c: + * ext/speex/gstspeexdec.c: + * ext/speex/gstspeexdec.h: + * ext/speex/gstspeexenc.c: + * ext/speex/gstspeexenc.h: + * ext/taglib/gstapev2mux.cc: + * ext/taglib/gstapev2mux.h: + * ext/taglib/gstid3v2mux.cc: + * ext/taglib/gstid3v2mux.h: + * ext/taglib/gsttaglibplugin.c: + * ext/vpx/gstvp8dec.c: + * ext/vpx/gstvp8dec.h: + * ext/vpx/gstvp8enc.c: + * ext/vpx/gstvp8enc.h: + * ext/vpx/gstvp8utils.c: + * ext/vpx/gstvp8utils.h: + * ext/vpx/plugin.c: + * ext/wavpack/gstwavpack.c: + * ext/wavpack/gstwavpackcommon.c: + * ext/wavpack/gstwavpackcommon.h: + * ext/wavpack/gstwavpackdec.c: + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackenc.c: + * ext/wavpack/gstwavpackenc.h: + * ext/wavpack/gstwavpackstreamreader.c: + * ext/wavpack/gstwavpackstreamreader.h: + * gst-libs/gst/gettext.h: + * gst-libs/gst/glib-compat-private.h: + * gst-libs/gst/gst-i18n-plugin.h: + * gst/alpha/gstalpha.c: + * gst/alpha/gstalpha.h: + * gst/alpha/gstalphacolor.c: + * gst/alpha/gstalphacolor.h: + * gst/apetag/gstapedemux.c: + * gst/apetag/gstapedemux.h: + * gst/audiofx/audioamplify.c: + * gst/audiofx/audioamplify.h: + * gst/audiofx/audiochebband.c: + * gst/audiofx/audiochebband.h: + * gst/audiofx/audiocheblimit.c: + * gst/audiofx/audiocheblimit.h: + * gst/audiofx/audiodynamic.c: + * gst/audiofx/audiodynamic.h: + * gst/audiofx/audioecho.c: + * gst/audiofx/audioecho.h: + * gst/audiofx/audiofirfilter.c: + * gst/audiofx/audiofirfilter.h: + * gst/audiofx/audiofx.c: + * gst/audiofx/audiofxbasefirfilter.c: + * gst/audiofx/audiofxbasefirfilter.h: + * gst/audiofx/audiofxbaseiirfilter.c: + * gst/audiofx/audiofxbaseiirfilter.h: + * gst/audiofx/audioiirfilter.c: + * gst/audiofx/audioiirfilter.h: + * gst/audiofx/audioinvert.c: + * gst/audiofx/audioinvert.h: + * gst/audiofx/audiokaraoke.c: + * gst/audiofx/audiokaraoke.h: + * gst/audiofx/audiopanorama.c: + * gst/audiofx/audiopanorama.h: + * gst/audiofx/audiowsincband.c: + * gst/audiofx/audiowsincband.h: + * gst/audiofx/audiowsinclimit.c: + * gst/audiofx/audiowsinclimit.h: + * gst/audiofx/math_compat.h: + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstaacparse.h: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstac3parse.h: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstamrparse.h: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstdcaparse.h: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + * gst/audioparsers/gstmpegaudioparse.c: + * gst/audioparsers/gstmpegaudioparse.h: + * gst/audioparsers/gstwavpackparse.c: + * gst/audioparsers/gstwavpackparse.h: + * gst/audioparsers/plugin.c: + * gst/auparse/gstauparse.c: + * gst/auparse/gstauparse.h: + * gst/autodetect/gstautoaudiosink.c: + * gst/autodetect/gstautoaudiosink.h: + * gst/autodetect/gstautoaudiosrc.c: + * gst/autodetect/gstautoaudiosrc.h: + * gst/autodetect/gstautodetect.c: + * gst/autodetect/gstautodetect.h: + * gst/autodetect/gstautovideosink.c: + * gst/autodetect/gstautovideosink.h: + * gst/autodetect/gstautovideosrc.c: + * gst/autodetect/gstautovideosrc.h: + * gst/avi/avi-ids.h: + * gst/avi/gstavi.c: + * gst/avi/gstavidemux.c: + * gst/avi/gstavidemux.h: + * gst/avi/gstavimux.c: + * gst/avi/gstavimux.h: + * gst/avi/gstavisubtitle.c: + * gst/cutter/gstcutter.c: + * gst/cutter/gstcutter.h: + * gst/debugutils/breakmydata.c: + * gst/debugutils/cpureport.c: + * gst/debugutils/cpureport.h: + * gst/debugutils/gstcapsdebug.c: + * gst/debugutils/gstcapsdebug.h: + * gst/debugutils/gstdebug.c: + * gst/debugutils/gstnavigationtest.c: + * gst/debugutils/gstnavigationtest.h: + * gst/debugutils/gstnavseek.c: + * gst/debugutils/gstnavseek.h: + * gst/debugutils/gstpushfilesrc.c: + * gst/debugutils/gstpushfilesrc.h: + * gst/debugutils/gsttaginject.c: + * gst/debugutils/gsttaginject.h: + * gst/debugutils/progressreport.c: + * gst/debugutils/progressreport.h: + * gst/debugutils/rndbuffersize.c: + * gst/debugutils/testplugin.c: + * gst/debugutils/tests.c: + * gst/debugutils/tests.h: + * gst/deinterlace/gstdeinterlace.c: + * gst/deinterlace/gstdeinterlace.h: + * gst/deinterlace/gstdeinterlacemethod.c: + * gst/deinterlace/gstdeinterlacemethod.h: + * gst/deinterlace/tvtime/greedy.c: + * gst/deinterlace/tvtime/greedyh.asm: + * gst/deinterlace/tvtime/greedyh.c: + * gst/deinterlace/tvtime/greedyhmacros.h: + * gst/deinterlace/tvtime/linear.c: + * gst/deinterlace/tvtime/linearblend.c: + * gst/deinterlace/tvtime/plugins.h: + * gst/deinterlace/tvtime/scalerbob.c: + * gst/deinterlace/tvtime/tomsmocomp.c: + * gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace/tvtime/vfir.c: + * gst/deinterlace/tvtime/weave.c: + * gst/deinterlace/tvtime/weavebff.c: + * gst/deinterlace/tvtime/weavetff.c: + * gst/deinterlace/tvtime/x86-64_macros.inc: + * gst/effectv/gstaging.c: + * gst/effectv/gstaging.h: + * gst/effectv/gstdice.c: + * gst/effectv/gstdice.h: + * gst/effectv/gstedge.c: + * gst/effectv/gstedge.h: + * gst/effectv/gsteffectv.c: + * gst/effectv/gsteffectv.h: + * gst/effectv/gstop.c: + * gst/effectv/gstop.h: + * gst/effectv/gstquark.c: + * gst/effectv/gstquark.h: + * gst/effectv/gstradioac.c: + * gst/effectv/gstradioac.h: + * gst/effectv/gstrev.c: + * gst/effectv/gstrev.h: + * gst/effectv/gstripple.c: + * gst/effectv/gstripple.h: + * gst/effectv/gstshagadelic.c: + * gst/effectv/gstshagadelic.h: + * gst/effectv/gststreak.c: + * gst/effectv/gststreak.h: + * gst/effectv/gstvertigo.c: + * gst/effectv/gstvertigo.h: + * gst/effectv/gstwarp.c: + * gst/effectv/gstwarp.h: + * gst/equalizer/gstiirequalizer.c: + * gst/equalizer/gstiirequalizer.h: + * gst/equalizer/gstiirequalizer10bands.c: + * gst/equalizer/gstiirequalizer10bands.h: + * gst/equalizer/gstiirequalizer3bands.c: + * gst/equalizer/gstiirequalizer3bands.h: + * gst/equalizer/gstiirequalizernbands.c: + * gst/equalizer/gstiirequalizernbands.h: + * gst/flv/amfdefs.h: + * gst/flv/gstflvdemux.c: + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvmux.c: + * gst/flv/gstflvmux.h: + * gst/flv/gstindex.c: + * gst/flv/gstindex.h: + * gst/flv/gstmemindex.c: + * gst/flx/flx_color.c: + * gst/flx/flx_color.h: + * gst/flx/flx_fmt.h: + * gst/flx/gstflxdec.c: + * gst/flx/gstflxdec.h: + * gst/goom/config_param.c: + * gst/goom/convolve_fx.c: + * gst/goom/drawmethods.c: + * gst/goom/drawmethods.h: + * gst/goom/filters.c: + * gst/goom/filters_mmx.s: + * gst/goom/flying_stars_fx.c: + * gst/goom/goom.h: + * gst/goom/goom_config.h: + * gst/goom/goom_config_param.h: + * gst/goom/goom_core.c: + * gst/goom/goom_filters.h: + * gst/goom/goom_fx.h: + * gst/goom/goom_graphic.h: + * gst/goom/goom_plugin_info.h: + * gst/goom/goom_tools.c: + * gst/goom/goom_tools.h: + * gst/goom/goom_typedefs.h: + * gst/goom/goom_visual_fx.h: + * gst/goom/graphic.c: + * gst/goom/gstgoom.c: + * gst/goom/gstgoom.h: + * gst/goom/lines.c: + * gst/goom/lines.h: + * gst/goom/mathtools.c: + * gst/goom/mathtools.h: + * gst/goom/motif_goom1.h: + * gst/goom/motif_goom2.h: + * gst/goom/plugin_info.c: + * gst/goom/ppc_drawings.h: + * gst/goom/ppc_drawings.s: + * gst/goom/ppc_zoom_ultimate.h: + * gst/goom/ppc_zoom_ultimate.s: + * gst/goom/sound_tester.c: + * gst/goom/sound_tester.h: + * gst/goom/surf3d.c: + * gst/goom/surf3d.h: + * gst/goom/tentacle3d.c: + * gst/goom/tentacle3d.h: + * gst/goom/v3d.c: + * gst/goom/v3d.h: + * gst/goom2k1/gstgoom.c: + * gst/goom2k1/gstgoom.h: + * gst/icydemux/gsticydemux.c: + * gst/icydemux/gsticydemux.h: + * gst/id3demux/gstid3demux.c: + * gst/id3demux/gstid3demux.h: + * gst/imagefreeze/gstimagefreeze.c: + * gst/imagefreeze/gstimagefreeze.h: + * gst/interleave/deinterleave.c: + * gst/interleave/deinterleave.h: + * gst/interleave/interleave.c: + * gst/interleave/interleave.h: + * gst/interleave/plugin.c: + * gst/interleave/plugin.h: + * gst/isomp4/atoms.c: + * gst/isomp4/atoms.h: + * gst/isomp4/atomsrecovery.c: + * gst/isomp4/atomsrecovery.h: + * gst/isomp4/descriptors.c: + * gst/isomp4/descriptors.h: + * gst/isomp4/fourcc.h: + * gst/isomp4/ftypcc.h: + * gst/isomp4/gstqtmoovrecover.c: + * gst/isomp4/gstqtmoovrecover.h: + * gst/isomp4/gstqtmux-doc.c: + * gst/isomp4/gstqtmux-doc.h: + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstqtmux.h: + * gst/isomp4/gstqtmuxmap.c: + * gst/isomp4/gstqtmuxmap.h: + * gst/isomp4/gstrtpxqtdepay.c: + * gst/isomp4/gstrtpxqtdepay.h: + * gst/isomp4/isomp4-plugin.c: + * gst/isomp4/properties.c: + * gst/isomp4/properties.h: + * gst/isomp4/qtatomparser.h: + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + * gst/isomp4/qtdemux_dump.c: + * gst/isomp4/qtdemux_dump.h: + * gst/isomp4/qtdemux_fourcc.h: + * gst/isomp4/qtdemux_lang.c: + * gst/isomp4/qtdemux_lang.h: + * gst/isomp4/qtdemux_types.c: + * gst/isomp4/qtdemux_types.h: + * gst/isomp4/qtpalette.h: + * gst/law/alaw-decode.c: + * gst/law/alaw-decode.h: + * gst/law/alaw-encode.c: + * gst/law/alaw-encode.h: + * gst/law/alaw.c: + * gst/law/mulaw-decode.c: + * gst/law/mulaw-decode.h: + * gst/law/mulaw-encode.c: + * gst/law/mulaw-encode.h: + * gst/law/mulaw.c: + * gst/level/gstlevel.c: + * gst/level/gstlevel.h: + * gst/matroska/ebml-ids.h: + * gst/matroska/ebml-read.c: + * gst/matroska/ebml-read.h: + * gst/matroska/ebml-write.c: + * gst/matroska/ebml-write.h: + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + * gst/matroska/matroska-ids.c: + * gst/matroska/matroska-ids.h: + * gst/matroska/matroska-mux.c: + * gst/matroska/matroska-mux.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-parse.h: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + * gst/matroska/matroska.c: + * gst/matroska/webm-mux.c: + * gst/matroska/webm-mux.h: + * gst/monoscope/convolve.c: + * gst/monoscope/convolve.h: + * gst/monoscope/gstmonoscope.c: + * gst/monoscope/gstmonoscope.h: + * gst/multifile/gstmultifile.c: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesink.h: + * gst/multifile/gstmultifilesrc.c: + * gst/multifile/gstmultifilesrc.h: + * gst/multifile/gstsplitfilesrc.c: + * gst/multifile/gstsplitfilesrc.h: + * gst/multifile/patternspec.c: + * gst/multifile/patternspec.h: + * gst/multipart/multipart.c: + * gst/multipart/multipartdemux.c: + * gst/multipart/multipartdemux.h: + * gst/multipart/multipartmux.c: + * gst/multipart/multipartmux.h: + * gst/rtp/fnv1hash.c: + * gst/rtp/fnv1hash.h: + * gst/rtp/gstasteriskh263.c: + * gst/rtp/gstasteriskh263.h: + * gst/rtp/gstrtp.c: + * gst/rtp/gstrtpL16depay.c: + * gst/rtp/gstrtpL16depay.h: + * gst/rtp/gstrtpL16pay.c: + * gst/rtp/gstrtpL16pay.h: + * gst/rtp/gstrtpac3depay.c: + * gst/rtp/gstrtpac3depay.h: + * gst/rtp/gstrtpac3pay.c: + * gst/rtp/gstrtpac3pay.h: + * gst/rtp/gstrtpamrdepay.c: + * gst/rtp/gstrtpamrdepay.h: + * gst/rtp/gstrtpamrpay.c: + * gst/rtp/gstrtpamrpay.h: + * gst/rtp/gstrtpbvdepay.c: + * gst/rtp/gstrtpbvdepay.h: + * gst/rtp/gstrtpbvpay.c: + * gst/rtp/gstrtpbvpay.h: + * gst/rtp/gstrtpceltdepay.c: + * gst/rtp/gstrtpceltpay.c: + * gst/rtp/gstrtpchannels.c: + * gst/rtp/gstrtpchannels.h: + * gst/rtp/gstrtpdvdepay.c: + * gst/rtp/gstrtpdvdepay.h: + * gst/rtp/gstrtpdvpay.c: + * gst/rtp/gstrtpdvpay.h: + * gst/rtp/gstrtpg722depay.c: + * gst/rtp/gstrtpg722depay.h: + * gst/rtp/gstrtpg722pay.c: + * gst/rtp/gstrtpg722pay.h: + * gst/rtp/gstrtpg723depay.c: + * gst/rtp/gstrtpg723depay.h: + * gst/rtp/gstrtpg723pay.c: + * gst/rtp/gstrtpg723pay.h: + * gst/rtp/gstrtpg726depay.c: + * gst/rtp/gstrtpg726pay.c: + * gst/rtp/gstrtpg729depay.c: + * gst/rtp/gstrtpg729depay.h: + * gst/rtp/gstrtpg729pay.c: + * gst/rtp/gstrtpg729pay.h: + * gst/rtp/gstrtpgsmdepay.c: + * gst/rtp/gstrtpgsmdepay.h: + * gst/rtp/gstrtpgsmpay.c: + * gst/rtp/gstrtpgsmpay.h: + * gst/rtp/gstrtpgstdepay.c: + * gst/rtp/gstrtpgstdepay.h: + * gst/rtp/gstrtpgstpay.c: + * gst/rtp/gstrtpgstpay.h: + * gst/rtp/gstrtph263depay.c: + * gst/rtp/gstrtph263depay.h: + * gst/rtp/gstrtph263pay.c: + * gst/rtp/gstrtph263pay.h: + * gst/rtp/gstrtph263pdepay.c: + * gst/rtp/gstrtph263pdepay.h: + * gst/rtp/gstrtph263ppay.c: + * gst/rtp/gstrtph263ppay.h: + * gst/rtp/gstrtph264depay.c: + * gst/rtp/gstrtph264depay.h: + * gst/rtp/gstrtph264pay.c: + * gst/rtp/gstrtph264pay.h: + * gst/rtp/gstrtpilbcdepay.c: + * gst/rtp/gstrtpilbcdepay.h: + * gst/rtp/gstrtpilbcpay.c: + * gst/rtp/gstrtpilbcpay.h: + * gst/rtp/gstrtpj2kdepay.c: + * gst/rtp/gstrtpj2kdepay.h: + * gst/rtp/gstrtpj2kpay.c: + * gst/rtp/gstrtpj2kpay.h: + * gst/rtp/gstrtpjpegdepay.c: + * gst/rtp/gstrtpjpegdepay.h: + * gst/rtp/gstrtpjpegpay.c: + * gst/rtp/gstrtpjpegpay.h: + * gst/rtp/gstrtpmp1sdepay.c: + * gst/rtp/gstrtpmp1sdepay.h: + * gst/rtp/gstrtpmp2tdepay.c: + * gst/rtp/gstrtpmp2tdepay.h: + * gst/rtp/gstrtpmp2tpay.c: + * gst/rtp/gstrtpmp2tpay.h: + * gst/rtp/gstrtpmp4adepay.c: + * gst/rtp/gstrtpmp4adepay.h: + * gst/rtp/gstrtpmp4apay.c: + * gst/rtp/gstrtpmp4apay.h: + * gst/rtp/gstrtpmp4gdepay.c: + * gst/rtp/gstrtpmp4gdepay.h: + * gst/rtp/gstrtpmp4gpay.c: + * gst/rtp/gstrtpmp4gpay.h: + * gst/rtp/gstrtpmp4vdepay.c: + * gst/rtp/gstrtpmp4vdepay.h: + * gst/rtp/gstrtpmp4vpay.c: + * gst/rtp/gstrtpmp4vpay.h: + * gst/rtp/gstrtpmpadepay.c: + * gst/rtp/gstrtpmpadepay.h: + * gst/rtp/gstrtpmpapay.c: + * gst/rtp/gstrtpmpapay.h: + * gst/rtp/gstrtpmparobustdepay.c: + * gst/rtp/gstrtpmparobustdepay.h: + * gst/rtp/gstrtpmpvdepay.c: + * gst/rtp/gstrtpmpvdepay.h: + * gst/rtp/gstrtpmpvpay.c: + * gst/rtp/gstrtpmpvpay.h: + * gst/rtp/gstrtppcmadepay.c: + * gst/rtp/gstrtppcmapay.c: + * gst/rtp/gstrtppcmudepay.c: + * gst/rtp/gstrtppcmupay.c: + * gst/rtp/gstrtpqcelpdepay.c: + * gst/rtp/gstrtpqcelpdepay.h: + * gst/rtp/gstrtpqdmdepay.c: + * gst/rtp/gstrtpqdmdepay.h: + * gst/rtp/gstrtpsirendepay.c: + * gst/rtp/gstrtpsirendepay.h: + * gst/rtp/gstrtpsirenpay.c: + * gst/rtp/gstrtpsirenpay.h: + * gst/rtp/gstrtpspeexdepay.c: + * gst/rtp/gstrtpspeexpay.c: + * gst/rtp/gstrtpsv3vdepay.c: + * gst/rtp/gstrtpsv3vdepay.h: + * gst/rtp/gstrtptheoradepay.c: + * gst/rtp/gstrtptheoradepay.h: + * gst/rtp/gstrtptheorapay.c: + * gst/rtp/gstrtptheorapay.h: + * gst/rtp/gstrtpvorbisdepay.c: + * gst/rtp/gstrtpvorbisdepay.h: + * gst/rtp/gstrtpvorbispay.c: + * gst/rtp/gstrtpvorbispay.h: + * gst/rtp/gstrtpvrawdepay.c: + * gst/rtp/gstrtpvrawdepay.h: + * gst/rtp/gstrtpvrawpay.c: + * gst/rtp/gstrtpvrawpay.h: + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpjitterbuffer.h: + * gst/rtpmanager/gstrtpmanager.c: + * gst/rtpmanager/gstrtpptdemux.c: + * gst/rtpmanager/gstrtpptdemux.h: + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/gstrtpsession.h: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtpmanager/gstrtpssrcdemux.h: + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.h: + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + * gst/rtpmanager/rtpsource.c: + * gst/rtpmanager/rtpsource.h: + * gst/rtpmanager/rtpstats.c: + * gst/rtpmanager/rtpstats.h: + * gst/rtsp/gstrtpdec.c: + * gst/rtsp/gstrtpdec.h: + * gst/rtsp/gstrtsp.c: + * gst/rtsp/gstrtsp.h: + * gst/rtsp/gstrtspext.c: + * gst/rtsp/gstrtspext.h: + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + * gst/shapewipe/gstshapewipe.c: + * gst/shapewipe/gstshapewipe.h: + * gst/smpte/barboxwipes.c: + * gst/smpte/gstmask.c: + * gst/smpte/gstmask.h: + * gst/smpte/gstsmpte.c: + * gst/smpte/gstsmpte.h: + * gst/smpte/gstsmptealpha.c: + * gst/smpte/gstsmptealpha.h: + * gst/smpte/paint.c: + * gst/smpte/paint.h: + * gst/smpte/plugin.c: + * gst/spectrum/gstspectrum.c: + * gst/spectrum/gstspectrum.h: + * gst/udp/gstdynudpsink.c: + * gst/udp/gstdynudpsink.h: + * gst/udp/gstmultiudpsink.c: + * gst/udp/gstmultiudpsink.h: + * gst/udp/gstudp.c: + * gst/udp/gstudp.h: + * gst/udp/gstudpnetutils.c: + * gst/udp/gstudpnetutils.h: + * gst/udp/gstudpsink.c: + * gst/udp/gstudpsink.h: + * gst/udp/gstudpsrc.c: + * gst/udp/gstudpsrc.h: + * gst/videobox/gstvideobox.c: + * gst/videobox/gstvideobox.h: + * gst/videocrop/gstaspectratiocrop.c: + * gst/videocrop/gstaspectratiocrop.h: + * gst/videocrop/gstvideocrop.c: + * gst/videocrop/gstvideocrop.h: + * gst/videofilter/gstgamma.c: + * gst/videofilter/gstgamma.h: + * gst/videofilter/gstvideobalance.c: + * gst/videofilter/gstvideobalance.h: + * gst/videofilter/gstvideoflip.c: + * gst/videofilter/gstvideoflip.h: + * gst/videofilter/gstvideomedian.c: + * gst/videofilter/gstvideomedian.h: + * gst/videofilter/gstvideotemplate.c: + * gst/videofilter/plugin.c: + * gst/videomixer/blend.c: + * gst/videomixer/blend.h: + * gst/videomixer/videomixer2.c: + * gst/videomixer/videomixer2.h: + * gst/videomixer/videomixer2pad.h: + * gst/wavenc/gstwavenc.c: + * gst/wavenc/gstwavenc.h: + * gst/wavparse/gstwavparse.c: + * gst/wavparse/gstwavparse.h: + * gst/y4m/gsty4mencode.c: + * gst/y4m/gsty4mencode.h: + * sys/directsound/gstdirectsoundplugin.c: + * sys/directsound/gstdirectsoundsink.c: + * sys/directsound/gstdirectsoundsink.h: + * sys/oss/common.h: + * sys/oss/gstossaudio.c: + * sys/oss/gstossdmabuffer.c: + * sys/oss/gstossdmabuffer.h: + * sys/oss/gstosshelper.c: + * sys/oss/gstosshelper.h: + * sys/oss/gstosssink.c: + * sys/oss/gstosssink.h: + * sys/oss/gstosssrc.c: + * sys/oss/gstosssrc.h: + * sys/oss4/oss4-audio.c: + * sys/oss4/oss4-audio.h: + * sys/oss4/oss4-property-probe.c: + * sys/oss4/oss4-property-probe.h: + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-sink.h: + * sys/oss4/oss4-source.c: + * sys/oss4/oss4-source.h: + * sys/osxaudio/gstosxaudio.c: + * sys/osxaudio/gstosxaudioelement.c: + * sys/osxaudio/gstosxaudioelement.h: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosink.h: + * sys/osxaudio/gstosxaudiosrc.c: + * sys/osxaudio/gstosxaudiosrc.h: + * sys/osxaudio/gstosxcoreaudio.h: + * sys/osxaudio/gstosxringbuffer.c: + * sys/osxaudio/gstosxringbuffer.h: + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + * sys/sunaudio/gstsunaudio.c: + * sys/sunaudio/gstsunaudiomixer.c: + * sys/sunaudio/gstsunaudiomixer.h: + * sys/sunaudio/gstsunaudiomixerctrl.c: + * sys/sunaudio/gstsunaudiomixerctrl.h: + * sys/sunaudio/gstsunaudiomixeroptions.c: + * sys/sunaudio/gstsunaudiomixeroptions.h: + * sys/sunaudio/gstsunaudiomixertrack.c: + * sys/sunaudio/gstsunaudiomixertrack.h: + * sys/sunaudio/gstsunaudiosink.c: + * sys/sunaudio/gstsunaudiosink.h: + * sys/sunaudio/gstsunaudiosrc.c: + * sys/sunaudio/gstsunaudiosrc.h: + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2bufferpool.h: + * sys/v4l2/gstv4l2colorbalance.c: + * sys/v4l2/gstv4l2colorbalance.h: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2radio.c: + * sys/v4l2/gstv4l2radio.h: + * sys/v4l2/gstv4l2sink.c: + * sys/v4l2/gstv4l2sink.h: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.c: + * sys/v4l2/gstv4l2tuner.h: + * sys/v4l2/gstv4l2videooverlay.c: + * sys/v4l2/gstv4l2videooverlay.h: + * sys/v4l2/gstv4l2vidorient.c: + * sys/v4l2/gstv4l2vidorient.h: + * sys/v4l2/tuner.c: + * sys/v4l2/tuner.h: + * sys/v4l2/tunerchannel.c: + * sys/v4l2/tunerchannel.h: + * sys/v4l2/tunernorm.c: + * sys/v4l2/tunernorm.h: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2_calls.h: + * sys/waveform/gstwaveformplugin.c: + * sys/waveform/gstwaveformsink.c: + * sys/waveform/gstwaveformsink.h: + * sys/ximage/gstximagesrc.c: + * sys/ximage/gstximagesrc.h: + * sys/ximage/ximageutil.c: + * sys/ximage/ximageutil.h: + * tests/check/elements/aacparse.c: + * tests/check/elements/ac3parse.c: + * tests/check/elements/alphacolor.c: + * tests/check/elements/amrparse.c: + * tests/check/elements/apev2mux.c: + * tests/check/elements/aspectratiocrop.c: + * tests/check/elements/audioamplify.c: + * tests/check/elements/audiodynamic.c: + * tests/check/elements/audioecho.c: + * tests/check/elements/audioinvert.c: + * tests/check/elements/audiopanorama.c: + * tests/check/elements/autodetect.c: + * tests/check/elements/avimux.c: + * tests/check/elements/avisubtitle.c: + * tests/check/elements/capssetter.c: + * tests/check/elements/deinterlace.c: + * tests/check/elements/deinterleave.c: + * tests/check/elements/flacparse.c: + * tests/check/elements/flvdemux.c: + * tests/check/elements/flvmux.c: + * tests/check/elements/gdkpixbufsink.c: + * tests/check/elements/icydemux.c: + * tests/check/elements/id3demux.c: + * tests/check/elements/id3v2mux.c: + * tests/check/elements/imagefreeze.c: + * tests/check/elements/interleave.c: + * tests/check/elements/jpegdec.c: + * tests/check/elements/jpegenc.c: + * tests/check/elements/level.c: * tests/check/elements/matroskamux.c: - webmux: fix linking with shout2send element - Shout2send only accepts webm format, not matroska, but due - to a bug in matroskamux, webmmux's source pad is also created - with the matroska source pad template as pad template, which - makes the link function think it can't link webmmux to shout2send. - Also add unit test. - https://bugzilla.gnome.org/show_bug.cgi?id=689336 + * tests/check/elements/matroskaparse.c: + * tests/check/elements/mpegaudioparse.c: + * tests/check/elements/multifile.c: + * tests/check/elements/parser.c: + * tests/check/elements/parser.h: + * tests/check/elements/qtmux.c: + * tests/check/elements/rtp-payloading.c: + * tests/check/elements/rtpbin.c: + * tests/check/elements/rtpbin_buffer_list.c: + * tests/check/elements/rtpjitterbuffer.c: + * tests/check/elements/shapewipe.c: + * tests/check/elements/souphttpsrc.c: + * tests/check/elements/spectrum.c: + * tests/check/elements/sunaudio.c: + * tests/check/elements/udpsink.c: + * tests/check/elements/udpsrc.c: + * tests/check/elements/videocrop.c: + * tests/check/elements/videofilter.c: + * tests/check/elements/vp8dec.c: + * tests/check/elements/vp8enc.c: + * tests/check/elements/wavpackdec.c: + * tests/check/elements/wavpackenc.c: + * tests/check/elements/wavpackparse.c: + * tests/check/elements/y4menc.c: + * tests/check/generic/states.c: + * tests/check/pipelines/effectv.c: + * tests/check/pipelines/flacdec.c: + * tests/check/pipelines/simple-launch-lines.c: + * tests/check/pipelines/tagschecking.c: + * tests/check/pipelines/wavenc.c: + * tests/check/pipelines/wavpack.c: + * tests/examples/audiofx/firfilter-example.c: + * tests/examples/audiofx/iirfilter-example.c: + * tests/examples/cairo/cairo_overlay.c: + * tests/examples/level/level-example.c: + * tests/examples/pulse/pulse.c: + * tests/examples/rtp/client-PCMA.c: + * tests/examples/rtp/server-alsasrc-PCMA.c: + * tests/examples/shapewipe/shapewipe-example.c: + * tests/examples/spectrum/demo-audiotest.c: + * tests/examples/spectrum/demo-osssrc.c: + * tests/examples/spectrum/spectrum-example.c: + * tests/examples/v4l2/camctrl.c: + * tests/icles/equalizer-test.c: + * tests/icles/gdkpixbufsink-test.c: + * tests/icles/test-oss4.c: + * tests/icles/v4l2src-test.c: + * tests/icles/videobox-test.c: + * tests/icles/videocrop-test.c: + * tests/icles/videocrop2-test.c: + * tests/icles/ximagesrc-test.c: + Fix FSF address + https://bugzilla.gnome.org/show_bug.cgi?id=687520 -2012-11-26 15:17:13 +0000 Tim-Philipp Müller <tim@centricular.net> +2012-11-02 18:47:26 +0000 Wim Taymans <wim.taymans@collabora.co.uk> - * gst/law/mulaw-conversion.c: - law: fix accidental file permissions change - https://bugzilla.gnome.org/show_bug.cgi?id=687469 + * gst/rtp/gstrtpvrawdepay.c: + vrawdepay: don't access rtp buffer after unmap + Read the marker bit before we unmap the rtp packet. -2012-11-25 14:16:09 +0000 Tim-Philipp Müller <tim@centricular.net> +2012-11-02 09:34:25 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * gst/isomp4/qtdemux.c: - qtdemux: avoid criticals if unknown fourcc has space at beginning or end - https://bugzilla.gnome.org/show_bug.cgi?id=682936 + * ext/vpx/gstvp8dec.c: + vp8dec: Immediately return if opening the decoder failed + Instead of ignoring any errors. -2012-11-24 19:32:51 +0000 Tim-Philipp Müller <tim@centricular.net> +2012-11-01 22:02:39 +0100 Debarshi Ray <rishi@gnu.org> - * gst/videobox/gstvideobox.c: - videobox: fix border filling for planar YUV formats - We would get a green border instead of a black one, for - example. - https://bugzilla.gnome.org/show_bug.cgi?id=684991 + * ext/vpx/gstvp8dec.c: + vp8dec: Short circuit gst_vp8_dec_handle_frame if keyframe is missing + https://bugzilla.gnome.org/show_bug.cgi?id=687376 -2012-11-24 14:27:33 +0000 Tim-Philipp Müller <tim@centricular.net> +2012-11-02 10:53:57 +1300 Douglas Bagnall <douglas@paradise.net.nz> - * gst/law/mulaw-conversion.c: - mulaw: const-ify some arrays + * gst/videomixer/blend.c: + videoconvert: Compare y offset with height, not width, when testing for overlap + This could have prevented images showing that should have when the + source height is greater than its width. + When width exceeds height, as is common, it probably only caused a + miniscule amount of unnecessary work. I haven't tested. -2012-11-02 12:38:44 -0400 Roland Krikava <rkrikava@gmail.com> +2012-11-01 21:09:56 +0000 Tim-Philipp Müller <tim@centricular.net> - * gst/law/mulaw-conversion.c: - mulawdec: fix integer overrun - There might be more than 65535 samples in a chunk of data. - https://bugzilla.gnome.org/show_bug.cgi?id=687469 + * gst/rtp/gstrtpvp8depay.c: + * gst/rtp/gstrtpvp8depay.h: + * gst/rtp/gstrtpvp8pay.c: + * gst/rtp/gstrtpvp8pay.h: + rtpvp8: include config.h and minor style fixes -2012-11-22 11:34:31 +0100 Wim Taymans <wim.taymans@collabora.co.uk> +2012-11-01 20:13:43 +0000 Tim-Philipp Müller <tim@centricular.net> - * gst/rtsp/gstrtspsrc.c: - rtspsrc: pause the task instead of spinning - Actually pause the loop task instead of spinning forever. + * gst/rtp/Makefile.am: + rtp: fix tabs/space mess in Makefile.am -2012-11-21 13:04:05 +0000 Tim-Philipp Müller <tim@centricular.net> +2012-11-01 20:05:49 +0000 Tim-Philipp Müller <tim@centricular.net> - * configure.ac: - * docs/plugins/inspect/plugin-1394.xml: - * docs/plugins/inspect/plugin-aasink.xml: - * docs/plugins/inspect/plugin-alaw.xml: - * docs/plugins/inspect/plugin-alpha.xml: - * docs/plugins/inspect/plugin-alphacolor.xml: - * docs/plugins/inspect/plugin-apetag.xml: - * docs/plugins/inspect/plugin-audiofx.xml: - * docs/plugins/inspect/plugin-audioparsers.xml: - * docs/plugins/inspect/plugin-auparse.xml: - * docs/plugins/inspect/plugin-autodetect.xml: - * docs/plugins/inspect/plugin-avi.xml: - * docs/plugins/inspect/plugin-cacasink.xml: - * docs/plugins/inspect/plugin-cutter.xml: - * docs/plugins/inspect/plugin-debug.xml: - * docs/plugins/inspect/plugin-deinterlace.xml: - * docs/plugins/inspect/plugin-dv.xml: - * docs/plugins/inspect/plugin-effectv.xml: - * docs/plugins/inspect/plugin-equalizer.xml: - * docs/plugins/inspect/plugin-flac.xml: - * docs/plugins/inspect/plugin-flv.xml: - * docs/plugins/inspect/plugin-flxdec.xml: - * docs/plugins/inspect/plugin-gdkpixbuf.xml: - * docs/plugins/inspect/plugin-goom.xml: - * docs/plugins/inspect/plugin-goom2k1.xml: - * docs/plugins/inspect/plugin-icydemux.xml: - * docs/plugins/inspect/plugin-id3demux.xml: - * docs/plugins/inspect/plugin-imagefreeze.xml: - * docs/plugins/inspect/plugin-interleave.xml: - * docs/plugins/inspect/plugin-isomp4.xml: - * docs/plugins/inspect/plugin-jack.xml: - * docs/plugins/inspect/plugin-jpeg.xml: - * docs/plugins/inspect/plugin-level.xml: - * docs/plugins/inspect/plugin-matroska.xml: - * docs/plugins/inspect/plugin-mulaw.xml: - * docs/plugins/inspect/plugin-multifile.xml: - * docs/plugins/inspect/plugin-multipart.xml: - * docs/plugins/inspect/plugin-navigationtest.xml: - * docs/plugins/inspect/plugin-oss4.xml: - * docs/plugins/inspect/plugin-ossaudio.xml: - * docs/plugins/inspect/plugin-png.xml: - * docs/plugins/inspect/plugin-pulseaudio.xml: - * docs/plugins/inspect/plugin-replaygain.xml: - * docs/plugins/inspect/plugin-rtp.xml: - * docs/plugins/inspect/plugin-rtpmanager.xml: - * docs/plugins/inspect/plugin-rtsp.xml: - * docs/plugins/inspect/plugin-shapewipe.xml: - * docs/plugins/inspect/plugin-shout2send.xml: - * docs/plugins/inspect/plugin-smpte.xml: - * docs/plugins/inspect/plugin-soup.xml: - * docs/plugins/inspect/plugin-spectrum.xml: - * docs/plugins/inspect/plugin-speex.xml: - * docs/plugins/inspect/plugin-taglib.xml: - * docs/plugins/inspect/plugin-udp.xml: - * docs/plugins/inspect/plugin-video4linux2.xml: - * docs/plugins/inspect/plugin-videobox.xml: - * docs/plugins/inspect/plugin-videocrop.xml: - * docs/plugins/inspect/plugin-videofilter.xml: - * docs/plugins/inspect/plugin-videomixer.xml: - * docs/plugins/inspect/plugin-vpx.xml: - * docs/plugins/inspect/plugin-wavenc.xml: - * docs/plugins/inspect/plugin-wavpack.xml: - * docs/plugins/inspect/plugin-wavparse.xml: - * docs/plugins/inspect/plugin-ximagesrc.xml: - * docs/plugins/inspect/plugin-y4menc.xml: - * win32/common/config.h: - Back to development (bug fixing) + * gst/rtp/Makefile.am: + * gst/rtp/gstrtp.c: + * gst/rtp/gstrtpvp8.c: + rtp: move VP8 payloader and depayloader from -bad + Spec is still in draft state, but should hopefully not + change much now. Besides, we announce things as VP8-DRAFT-IETF-01 + in our caps, so even if things change in incompatible ways it + should not break anything. + https://bugzilla.gnome.org/show_bug.cgi?id=687263 + +2012-10-17 17:34:26 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/rtp/gstrtpvp8depay.c: + * gst/rtp/gstrtpvp8pay.c: + rtpvp8: use gst_element_class_set_static_metadata() + where possible. Avoids some string copies. Also re-indent + some stuff. Also some indent fixes here and there. -=== release 1.0.3 === +2012-09-14 17:08:49 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> -2012-11-21 10:22:01 +0000 Tim-Philipp Müller <tim@centricular.net> + * gst/rtp/gstrtpvp8pay.c: + rtpvp8: replace gst_element_class_set_details_simple with gst_element_class_set_metadata - * ChangeLog: - * NEWS: - * RELEASE: - * configure.ac: - * docs/plugins/inspect/plugin-1394.xml: - * docs/plugins/inspect/plugin-aasink.xml: - * docs/plugins/inspect/plugin-alaw.xml: - * docs/plugins/inspect/plugin-alpha.xml: - * docs/plugins/inspect/plugin-alphacolor.xml: - * docs/plugins/inspect/plugin-apetag.xml: - * docs/plugins/inspect/plugin-audiofx.xml: - * docs/plugins/inspect/plugin-audioparsers.xml: - * docs/plugins/inspect/plugin-auparse.xml: - * docs/plugins/inspect/plugin-autodetect.xml: - * docs/plugins/inspect/plugin-avi.xml: - * docs/plugins/inspect/plugin-cacasink.xml: - * docs/plugins/inspect/plugin-cutter.xml: - * docs/plugins/inspect/plugin-debug.xml: - * docs/plugins/inspect/plugin-deinterlace.xml: - * docs/plugins/inspect/plugin-dv.xml: - * docs/plugins/inspect/plugin-effectv.xml: - * docs/plugins/inspect/plugin-equalizer.xml: - * docs/plugins/inspect/plugin-flac.xml: - * docs/plugins/inspect/plugin-flv.xml: - * docs/plugins/inspect/plugin-flxdec.xml: - * docs/plugins/inspect/plugin-gdkpixbuf.xml: - * docs/plugins/inspect/plugin-goom.xml: - * docs/plugins/inspect/plugin-goom2k1.xml: - * docs/plugins/inspect/plugin-icydemux.xml: - * docs/plugins/inspect/plugin-id3demux.xml: - * docs/plugins/inspect/plugin-imagefreeze.xml: - * docs/plugins/inspect/plugin-interleave.xml: - * docs/plugins/inspect/plugin-isomp4.xml: - * docs/plugins/inspect/plugin-jack.xml: - * docs/plugins/inspect/plugin-jpeg.xml: - * docs/plugins/inspect/plugin-level.xml: - * docs/plugins/inspect/plugin-matroska.xml: - * docs/plugins/inspect/plugin-mulaw.xml: - * docs/plugins/inspect/plugin-multifile.xml: - * docs/plugins/inspect/plugin-multipart.xml: - * docs/plugins/inspect/plugin-navigationtest.xml: - * docs/plugins/inspect/plugin-oss4.xml: - * docs/plugins/inspect/plugin-ossaudio.xml: - * docs/plugins/inspect/plugin-png.xml: - * docs/plugins/inspect/plugin-pulseaudio.xml: - * docs/plugins/inspect/plugin-replaygain.xml: - * docs/plugins/inspect/plugin-rtp.xml: - * docs/plugins/inspect/plugin-rtpmanager.xml: - * docs/plugins/inspect/plugin-rtsp.xml: - * docs/plugins/inspect/plugin-shapewipe.xml: - * docs/plugins/inspect/plugin-shout2send.xml: - * docs/plugins/inspect/plugin-smpte.xml: - * docs/plugins/inspect/plugin-soup.xml: - * docs/plugins/inspect/plugin-spectrum.xml: - * docs/plugins/inspect/plugin-speex.xml: - * docs/plugins/inspect/plugin-taglib.xml: - * docs/plugins/inspect/plugin-udp.xml: - * docs/plugins/inspect/plugin-video4linux2.xml: - * docs/plugins/inspect/plugin-videobox.xml: - * docs/plugins/inspect/plugin-videocrop.xml: - * docs/plugins/inspect/plugin-videofilter.xml: - * docs/plugins/inspect/plugin-videomixer.xml: - * docs/plugins/inspect/plugin-vpx.xml: - * docs/plugins/inspect/plugin-wavenc.xml: - * docs/plugins/inspect/plugin-wavpack.xml: - * docs/plugins/inspect/plugin-wavparse.xml: - * docs/plugins/inspect/plugin-ximagesrc.xml: - * docs/plugins/inspect/plugin-y4menc.xml: - * gst-plugins-good.doap: - * win32/common/config.h: - Release 1.0.3 +2012-04-05 18:02:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2012-11-16 09:09:38 +0000 Tim-Philipp Müller <tim@centricular.net> + * gst/rtp/gstrtpvp8.c: + rtpvp8: update for GST_PLUGIN_DEFINE() API changes - * gst/multifile/gstmultifilesink.c: - multifilesink: post messages in max-size mode as well - No reason not to really. +2012-03-28 12:49:54 +0200 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-16 15:38:29 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/rtp/gstrtpvp8pay.c: + rtpvp8: update for buffer changes - * gst/rtsp/gstrtspsrc.c: - rtspsrc: handle segment event - Make a segment event when we send a new range header to a client (first PLAY - request or after a seek). Send the segment event in interleaved mode. - Clean the segment event on cleanup - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688382 +2012-03-01 14:59:55 -0300 Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk> -2012-11-16 15:18:07 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/rtp/gstrtpvp8depay.c: + * gst/rtp/gstrtpvp8pay.c: + rtpvp8; fix compatibility with the third draft + https://bugzilla.gnome.org/show_bug.cgi?id=671073 - * gst/rtsp/gstrtspsrc.c: - rtspsrc: fix check for active streams - A stream can be active without a srcpad yet and we want to send - events on those streams as well. +2012-01-25 16:20:41 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> -2012-11-16 13:31:04 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/rtp/gstrtpvp8pay.c: + rtpvp8: port some more to new memory API - * gst/rtsp/gstrtspsrc.c: - rtspsrc: create and add pads outside of lock - Create and add the ghostpad for the new stream outside of the lock because it - is not needed and causes deadlocks. +2012-01-25 10:45:51 +0100 Olivier Crête <olivier.crete@collabora.com> -2012-11-16 12:16:05 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/rtp/gstrtpvp8depay.c: + * gst/rtp/gstrtpvp8depay.h: + * gst/rtp/gstrtpvp8pay.c: + * gst/rtp/gstrtpvp8pay.h: + rtpvp8: port to 0.11 - * gst/rtsp/gstrtspsrc.c: - rtspsrc: clear variables before retrying - Else we might unref an old udpsrc twice in cleanup. +2011-10-03 12:06:27 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> -2012-11-16 12:00:14 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/rtp/gstrtpvp8pay.c: + rtpvp8pay: Fix typo - * gst/rtsp/gstrtspsrc.c: - rtspsrc: propose ports in multicast - When the user configured a port-range, propose ports from this range - as the multicast ports. The server is free to ignore this request but if it - honours it, increment our ports so that we suggest the next port pair for the - next stream. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639420 +2011-09-23 22:58:30 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> -2012-11-16 11:58:53 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/rtp/gstrtpvp8depay.c: + * gst/rtp/gstrtpvp8pay.c: + * gst/rtp/gstrtpvp8pay.h: + rtpvp8: Update the pay/depay to the ietf-draft-01 spec - * gst/rtsp/gstrtspsrc.c: - rtspsrc: add more debug +2011-09-10 11:31:20 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> -2012-11-15 14:37:44 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/rtp/dboolhuff.c: + * gst/rtp/dboolhuff.h: + * gst/rtp/gstrtpvp8pay.c: + rtpvp8: fix bitstream parsing using the wrong kind of bitreader + VP8 uses a probabilistic bool coder, not a straight bit coder. + This fixes parsing when error-resilient is set. + This commit includes a copy of libvpx's bool coder, BSD licensed. + https://bugzilla.gnome.org/show_bug.cgi?id=652694 - * gst/udp/gstudpsrc.c: - udpsrc: post error before stopping +2011-07-12 18:03:53 -0400 Olivier Crête <olivier.crete@collabora.com> -2012-11-12 11:14:34 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/rtp/gstrtpvp8pay.c: + rtpvp8: Reject unknown bitstream versions - * gst/rtpmanager/rtpsource.c: - rtpsource: protect against invalid RTP packets +2011-03-04 11:59:44 +0100 Edward Hervey <edward.hervey@collabora.co.uk> -2012-11-12 13:01:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/rtp/gstrtpvp8pay.c: + rtpvp8: Fix unitialized variable + Makes macosx compiler happy. - * ext/vpx/gstvp8enc.c: - vp8enc: Don't leak GstVideoCodecFrames that cause the creation of invisible frames - Fixes bug #682714. +2011-01-23 17:02:38 +0000 Sjoerd Simons <sjoerd@luon.net> -2012-11-12 10:44:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/rtp/gstrtpvp8depay.c: + rtpvp8depay: Accept packets with only one byte of data + When fragmenting partions it can happen that an RTP packet only caries 1 + byte of RTP data. - * ext/libpng/gstpngdec.c: - pngdec: Actually use the stop() vfunc implementation +2011-01-23 16:42:17 +0000 Sjoerd Simons <sjoerd@luon.net> -2012-11-12 10:31:59 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/rtp/gstrtpvp8pay.c: + * gst/rtp/gstrtpvp8pay.h: + rtpvp8pay: Treat the frame header just like any other partition + When setting up the initial mapping just act as if the global frame + information is another partition. This saves special-casing it later in + the actual packetizing code. - * ext/vpx/gstvp8dec.c: - vp8dec: Fix last commit +2010-05-16 17:23:17 +0100 Sjoerd Simons <sjoerd@luon.net> -2012-11-09 11:22:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/rtp/dboolhuff.LICENSE: + * gst/rtp/gstrtpvp8.c: + * gst/rtp/gstrtpvp8depay.c: + * gst/rtp/gstrtpvp8depay.h: + * gst/rtp/gstrtpvp8pay.c: + * gst/rtp/gstrtpvp8pay.h: + rtpvp8: Add simple payloaders and depayloaders for VP8 + Minimal implementation of http://www.webmproject.org/code/specs/rtp/, + version 0.3.2 - * gst/udp/gstudpsrc.c: - udpsrc: Also clear GError +2012-11-01 18:42:39 +0000 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-09 11:20:27 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/rtp/gstrtpgstpay.c: + gstpay: fix for 1.0 events + Caps events are sometimes not followed by a buffer but by an event. Flush any + pending caps before we make a packet with the event. + Chain up to the parent event handler before we attempt to push RTP packets, it + might be a segment event. - * gst/udp/gstudpsrc.c: - udpsrc: Don't error out if we get an ICMP destination-unreachable message when trying to read packets - See bug #529454 and #687782 and commit - 751f2bb3646f2beff3698c9f09900dbd0ea08abb +2012-11-01 18:42:24 +0000 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-09 16:31:05 +0100 Debarshi Ray <rishi@gnu.org> + * gst/rtp/gstrtpgstdepay.c: + gstdepay: fix small leak - * ext/vpx/gstvp8dec.c: - vp8dec: Don't give up so easily if failed to decode a frame - https://bugzilla.gnome.org/show_bug.cgi?id=687436 +2012-11-01 17:44:11 +0000 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-12 09:48:45 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/rtp/gstrtpgstdepay.c: + gstdepay: add support for events + Conflicts: + gst/rtp/gstrtpgstdepay.c - * ext/vpx/gstvp8dec.c: - vp8dec: Don't clear input state in reset() - The input state is still valid after flushing until - new caps arrive. - Fixes bug #688092. +2012-11-01 17:40:31 +0000 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-12 10:08:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/rtp/gstrtpgstpay.c: + * gst/rtp/gstrtpgstpay.h: + rtpgstpay: add support for sending events + We currently only send tags and custom events. The other events + might interfere with the receiver timings or are otherwise handled + by RTP. + Conflicts: + gst/rtp/gstrtpgstpay.c - * ext/vpx/gstvp8dec.c: - vp8dec: Also destroy decoder in set_format() if it was created already - Fixes a memory leak. +2012-11-01 15:54:58 +0000 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-12 10:10:15 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/rtp/gstrtpgstpay.c: + * gst/rtp/gstrtpgstpay.h: + gstpay: rewrite payloader + Use adapter to assemble the payload and make a flush function to + turn this payload into (fragmented) packets. + Conflicts: + gst/rtp/gstrtpgstpay.c + gst/rtp/gstrtpgstpay.h - * ext/libpng/gstpngdec.c: - pngdec: Keep the input state in reset() - It's still valid after a flush and we might not get a new one. +2012-11-01 13:03:44 +0000 Douglas Bagnall <douglas@paradise.net.nz> -2012-11-02 16:39:28 +0100 Debarshi Ray <rishi@gnu.org> + * gst/videomixer/blend.c: + videomixer: get height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH + https://bugzilla.gnome.org/show_bug.cgi?id=687330 - * ext/speex/gstspeexdec.c: - speexdec: Don't unmap or finish_frame an invalid GstBuffer - https://bugzilla.gnome.org/show_bug.cgi?id=687464 +2012-11-01 13:02:16 +0000 Douglas Bagnall <douglas@paradise.net.nz> -2012-11-06 13:22:58 +0100 Marc Leeman <marc.leeman@gmail.com> + * gst/videobox/gstvideobox.c: + videbox: fix border filling for gray formats + Get the height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH. + https://bugzilla.gnome.org/show_bug.cgi?id=687330 - * gst/rtsp/gstrtspsrc.c: - rtsp: the RTCP port number is inclusive - The configured port number pair has its upper bound set to the maximum - allowed RTCP port, inclusive. - See https://bugzilla.gnome.org/show_bug.cgi?id=639420 +2012-11-01 11:58:57 +0000 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-02 18:47:26 +0000 Wim Taymans <wim.taymans@collabora.co.uk> + * gst/rtp/gstrtpgstdepay.c: + gstdepay: check for correct fragment offset + Make sure we only insert the rtp packet in the adapter when the + frag_offset matches. When the first packet of a fragment is dropped, + it avoids putting the remaining packets in the adapter and processing + the partial fragment. + Conflicts: + gst/rtp/gstrtpgstdepay.c - * gst/rtp/gstrtpvrawdepay.c: - vrawdepay: don't access rtp buffer after unmap - Read the marker bit before we unmap the rtp packet. +2012-11-01 11:54:50 +0000 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-02 09:34:25 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/rtp/gstrtpgstpay.c: + gstpay: set C flag on all buffers of the fragment + Set the C flags on all the fragments instead of only those with + caps in them. This makes it easier in the receiver to check if there + is a caps in the assembled fragments just by looking at the last RTP + packet flags. - * ext/vpx/gstvp8dec.c: - vp8dec: Immediately return if opening the decoder failed - Instead of ignoring any errors. +2012-11-01 10:55:03 +0000 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-01 22:02:39 +0100 Debarshi Ray <rishi@gnu.org> + * gst/rtp/gstrtpgstdepay.c: + gstdepay: use the capsversion + Take the caps from the input caps and store it in the slot given + by capsversion. - * ext/vpx/gstvp8dec.c: - vp8dec: Short circuit gst_vp8_dec_handle_frame if keyframe is missing - https://bugzilla.gnome.org/show_bug.cgi?id=687376 +2012-11-01 10:52:25 +0000 Wim Taymans <wim.taymans@collabora.co.uk> -2012-11-01 13:03:44 +0000 Douglas Bagnall <douglas@paradise.net.nz> + * gst/rtp/gstrtpgstpay.c: + * gst/rtp/gstrtpgstpay.h: + gstpay: send caps inline + Place the capsversion on the outgoing caps so that they end up in + an SDP as well. Receivers need to know what capsversion a particular + caps is for to be able to match the caps to the CV in the RTP packets. + Place the caps inside the RTP packet whenever the caps change. + Based on patch by Andrzej Bieniek <andrzej.bieniek@pure.com> + Conflicts: + gst/rtp/gstrtpgstpay.c + gst/rtp/gstrtpgstpay.h - * gst/videomixer/blend.c: - videomixer: get height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH - https://bugzilla.gnome.org/show_bug.cgi?id=687330 +2012-10-31 16:17:48 +0000 Andrzej Bieniek <andrzej.bieniek@pure.com> -2012-11-01 13:02:16 +0000 Douglas Bagnall <douglas@paradise.net.nz> + * gst/rtp/gstrtpgstpay.c: + gstpay: add debug + Conflicts: + gst/rtp/gstrtpgstpay.c - * gst/videobox/gstvideobox.c: - videbox: fix border filling for gray formats - Get the height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH. - https://bugzilla.gnome.org/show_bug.cgi?id=687330 +2012-10-31 16:09:26 +0000 Andrzej Bieniek <andrzej.bieniek@pure.com> -2012-11-02 10:53:57 +1300 Douglas Bagnall <douglas@paradise.net.nz> + * gst/rtp/gstrtpgstdepay.c: + depay: correctly skip caps header size + Conflicts: + gst/rtp/gstrtpgstdepay.c - * gst/videomixer/blend.c: - videoconvert: Compare y offset with height, not width, when testing for overlap - This could have prevented images showing that should have when the - source height is greater than its width. - When width exceeds height, as is common, it probably only caused a - miniscule amount of unnecessary work. I haven't tested. +2012-09-28 00:43:38 +0100 Tim-Philipp Müller <tim@centricular.net> + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.c: + * gst/matroska/matroska-ids.h: + matroskademux: put streamheaders on vorbis/speex/flac/theora caps to make remuxing work + https://bugzilla.gnome.org/show_bug.cgi?id=640589 2012-10-28 00:07:46 +0100 Tim-Philipp Müller <tim@centricular.net> @@ -1724,6 +6712,87 @@ which are in gst-plugins-base. https://bugzilla.gnome.org/show_bug.cgi?id=687013 +2012-10-27 13:24:24 +0100 Alexey Fisher <bug-track@fisher-privat.net> + + * gst/matroska/matroska-demux.c: + matroskademux: mark invisible VP8 frames with the DECODE_ONLY flag + https://bugzilla.gnome.org/show_bug.cgi?id=654259 + +2012-10-26 10:55:28 +0100 Tim-Philipp Müller <tim@centricular.net> + + * tests/check/elements/multifile.c: + tests: add multifilesrc test for fix in previous commit + Make sure the stop-index set is honoured. + https://bugzilla.gnome.org/show_bug.cgi?id=654853 + +2012-10-26 10:33:03 +0100 Stas Sergeev <stsp@aknet.ru> + + * gst/multifile/gstmultifilesrc.c: + multifilesrc: fix stop index handling + Make sure the stop index is always honoured. Avoids + endless loop if one wants to read and output the same + file N times, for example. + https://bugzilla.gnome.org/show_bug.cgi?id=654853 + +2012-08-25 02:26:29 +0400 РуÑлан Ижбулатов <lrn1986@gmail.com> + + * gst/matroska/matroska-read-common.c: + matroskademux: Support recursive SimpleTags + Fixes #682644 + Depends on #682615 + +2012-08-24 13:55:41 +0400 РуÑлан Ижбулатов <lrn1986@gmail.com> + + * gst/matroska/matroska-ids.h: + * gst/matroska/matroska-read-common.c: + matroskademux: Expand the tag mapping. + * Also expose unknown tags as key=value pairs. + * Arrange tag map in the same order tags are listed in Matroska spec, leaving + unmapped tags as comments. + * More specific TODOs. + * Remove duplicate DATE define. + Fixes #682615 + Depends on #682524 + +2012-10-26 10:09:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/matroska/matroska-read-common.c: + matroskademux: Fix uninitialized variable compiler warning + +2012-08-23 15:07:22 +0400 РуÑлан Ижбулатов <lrn1986@gmail.com> + + * gst/matroska/matroska-ids.h: + * gst/matroska/matroska-read-common.c: + matroskademux: Matroska tag TargetType support + * Reads TargetType and TargetTypeValue from a Tag. + * After Tag is completely read, processes taglist, substituting some of the + tags depending on target type value and the presence of video/subtitle streams. + * Supports reading two new simpletags - PART_NUMBER and TOTAL_PARTS + Depends on #682448 + Fixes #682524 + +2012-08-22 15:32:41 +0400 РуÑлан Ижбулатов <lrn1986@gmail.com> + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.h: + * gst/matroska/matroska-read-common.c: + matroskademux: Per-track tags for Matroska + Requires Matroska file to have sane layout (track info before tag info). + Uses replace-merge. + Makes track UIDs 64-bit. + Fixes #682448 + +2012-10-25 20:18:36 +0100 Tim-Philipp Müller <tim@centricular.net> + + * gst/multifile/gstmultifilesrc.c: + multifilesrc: fix typo in property description + +2012-10-25 12:18:03 -0700 Michael Smith <msmith@rdio.com> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux_fourcc.h: + qtdemux: read video format header fully (so we can find 'pasp' atoms) for more fourccs. Fixes aspect ratio of prores files. + 2012-10-25 00:44:34 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> * gst/imagefreeze/gstimagefreeze.c: @@ -1740,7 +6809,7 @@ fixate its framerate before sending the query downstream. https://bugzilla.gnome.org/show_bug.cgi?id=686837 -2012-10-25 12:32:03 +0100 Tim-Philipp Müller <tim@centricular.net> +2012-10-25 12:33:24 +0100 Tim-Philipp Müller <tim@centricular.net> * configure.ac: * docs/plugins/inspect/plugin-1394.xml: @@ -1808,7 +6877,7 @@ * docs/plugins/inspect/plugin-ximagesrc.xml: * docs/plugins/inspect/plugin-y4menc.xml: * win32/common/config.h: - Back to development (bug fixing) + Back to feature development === release 1.0.2 === @@ -2012,6 +7081,16 @@ Conflicts: gst/matroska/matroska-mux.c +2012-10-17 17:34:26 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + Use gst_element_class_set_static_metadata() + where possible. Avoids some string copies. Also re-indent + some stuff. Also some indent fixes here and there. + 2012-10-17 17:03:39 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> * ext/jpeg/gstjpegdec.c: @@ -2739,6 +7818,11 @@ * gst/avi/gstavimux.c: avimux: send stream-start event +2012-09-22 15:00:27 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstrtpdtmfdepay.c: + rtpdtmfdepay: Use 1.0-style caps negotiation and audio/x-raw + 2012-09-22 16:08:05 +0100 Tim-Philipp Müller <tim@centricular.net> * common: @@ -4055,6 +9139,12 @@ * sys/osxaudio/gstosxaudiosink.c: replace _get_caps_reffed with _get_caps +2012-09-14 17:08:49 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + replace gst_element_class_set_details_simple with gst_element_class_set_metadata + 2012-09-14 17:07:26 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> * ext/jpeg/gstjpegdec.c: @@ -5009,6 +10099,12 @@ * tests/check/elements/rtp-payloading.c: rtph264pay: Make it actually work after cleanups +2012-08-08 17:40:34 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + gst: Set alignment at the correct place of GstAllocationParams + 2012-08-08 17:39:07 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> * ext/jpeg/gstjpegenc.c: @@ -5700,6 +10796,11 @@ Conflicts: gst/matroska/matroska-demux.c +2012-07-17 16:39:02 +0200 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfdepay.c: + update for RTP buffer api changes + 2012-07-17 16:38:27 +0200 Wim Taymans <wim.taymans@collabora.co.uk> * gst/isomp4/gstrtpxqtdepay.c: @@ -5804,6 +10905,12 @@ tests: Add some basic tests for jpegdec https://bugzilla.gnome.org/show_bug.cgi?id=676302 +2012-07-08 00:08:55 +0100 Tim-Philipp Müller <tim@centricular.net> + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: pass unhandled non-custom events to the base class + https://bugzilla.gnome.org/show_bug.cgi?id=666626 + 2012-07-06 19:11:02 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> * gst/rtp/gstrtph264pay.c: @@ -8246,6 +13353,11 @@ Automatic update of common submodule From 7fda524 to 464fe15 +2012-04-05 18:02:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/dtmf/gstdtmf.c: + gst: Update for GST_PLUGIN_DEFINE() API changes + 2012-04-05 17:36:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> * ext/aalib/gstaasink.c: @@ -8335,6 +13447,11 @@ * tests/check/elements/qtmux.c: tests: qtmux: ensure initialized test buffer memory +2012-04-04 14:41:22 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> + + * gst/dtmf/Makefile.am: + gst: Update versioning + 2012-04-04 14:33:23 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk> * configure.ac: @@ -9199,6 +14316,12 @@ * sys/v4l2/gstv4l2bufferpool.c: update for bufferpool api change +2012-03-15 13:37:36 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + update for memory api changes + 2012-03-15 13:36:17 +0100 Wim Taymans <wim.taymans@collabora.co.uk> * ext/annodex/gstcmmldec.c: @@ -9415,6 +14538,12 @@ * gst/matroska/matroska-mux.c: gst: Fix some query leaks +2012-03-11 19:06:59 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + fix for caps api changes + 2012-03-11 19:06:37 +0100 Wim Taymans <wim.taymans@collabora.co.uk> * ext/aalib/gstaasink.c: @@ -10232,6 +15361,11 @@ * gst/udp/gstudpsrc.c: fix compiler warnings +2012-01-26 06:58:46 -0500 Matej Knopp <matej.knopp@gmail.com> + + * gst/dtmf/gstdtmfsrc.c: + Fix compiler warnings + 2012-02-18 11:38:36 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> * tests/check/elements/level.c: @@ -10657,6 +15791,12 @@ * sys/ximage/gstximagesrc.c: GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING +2012-02-08 16:37:13 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING + 2012-02-07 14:10:44 -0800 Ralph Giles <giles@mozilla.com> * ext/shout2/gstshout2.c: @@ -11090,6 +16230,13 @@ * gst/rtpmanager/rtpstats.h: rtpsession: Initialise the address pointer to NULL +2012-01-27 12:07:43 +0100 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + dtmf: Use new-style caps + 2012-01-27 16:37:19 +0100 Andoni Morales Alastruey <amorales@flumotion.com> * sys/directsound/gstdirectsoundsink.c: @@ -11260,6 +16407,13 @@ cairo: fix build, make sure libgstvideo can be found https://bugzilla.gnome.org/show_bug.cgi?id=668648 +2012-01-25 14:50:50 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + port to new memory API + 2012-01-25 13:19:12 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> * gst/rtpmanager/gstrtpbin.c: @@ -11411,6 +16565,15 @@ * gst/rtp/gstrtptheorapay.c: update for new memory API +2012-01-25 11:21:50 +0100 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: port to 0.11 + 2012-01-25 11:38:11 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> * common: @@ -13436,6 +18599,10 @@ * tests/icles/v4l2src-test.c: fix for moved interfaces +2011-11-28 23:20:32 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + Merge commit '7521b597f4dc49d8d168f368f0e7ebaf98a72156' into 0.11 + 2011-11-28 21:27:53 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> Merge remote-tracking branch 'origin/master' into 0.11 @@ -13705,6 +18872,15 @@ various: fix pad template leaks https://bugzilla.gnome.org/show_bug.cgi?id=662664 +2011-11-28 13:08:27 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + various: fix pad template ref leaks + https://bugzilla.gnome.org/show_bug.cgi?id=662664 + 2011-11-28 11:47:11 +0100 Chad <channa@caltech.edu> * gst/debugutils/gsttaginject.c: @@ -14911,6 +20087,12 @@ gst/audioparsers/gstflacparse.c gst/isomp4/qtdemux.c +2011-11-09 11:56:07 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: fix compiler warning for uninitialized values + 2011-11-09 11:53:01 +0100 Wim Taymans <wim.taymans@collabora.co.uk> * ext/annodex/gstcmmldec.c: @@ -14926,6 +20108,21 @@ * gst/isomp4/qtdemux.c: qtdemux: minimal sanity check on creation datetime +2011-11-04 17:54:04 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + dtmfsrc: Reject start/stop requests that come out of order + +2011-10-29 18:24:26 +0200 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Post messages when starting to send/receive DTMF + This way, the UI can display the DTMF events as they as being sent. + 2011-11-02 12:58:12 -0400 Olivier Crête <olivier.crete@collabora.com> * gst/rtp/gstrtph263ppay.c: @@ -16643,6 +21840,63 @@ * ext/pulse/pulseutil.c: pulse: add some more channels +2011-07-12 21:48:37 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Add more debug + +2011-07-12 19:09:02 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstdtmfcommon.h: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Max event type is 15 + +2011-04-14 15:46:08 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + dtmfsrc: Align DTMF sound buffers with last-stop from event + Also make sure the timestamps never go backwards + +2011-07-11 21:31:07 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Correctly recognize the end of a buffer + +2011-07-11 20:47:23 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap + +2011-07-11 20:46:20 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Put the inter digit interval at the end, not at the start + The reason is to let rtpdtmfmux drop buffers during the inter digit interval, + this way, there will be more silence around the DTMF tones so IVFs will have + a better chance recognizing them. + +2011-04-14 17:08:57 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + rtpdtmfsrc: Start at the last_stop from the start event if there was one + The goal is to try to not have a GAP between the audio and the DTMF + +2011-04-14 16:49:39 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + rtpdtmfsrc: Respect ptime from the caps + Respect the ptime from the caps for the DTMF packets + +2011-07-11 21:30:28 -0400 Olivier Crête <olivier.crete@collabora.com> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Just error out if there is no clock + 2011-08-24 14:16:44 +0200 Wim Taymans <wim.taymans@collabora.co.uk> Merge branch 'master' into 0.11 @@ -21355,6 +26609,21 @@ * gst-plugins-good.spec.in: Add parser plugin +2011-04-13 21:58:36 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/Makefile.am: + * gst/dtmf/gstdtmfcommon.h: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfcommon.h: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + dtmf: Move duplicate #defines into a common include + Centralize duplicated constants so they have the same value. + Also standardise minimum tone duration to 250ms and minimum inter-tone + interval to 100ms. + 2011-03-24 14:34:24 -0700 David Schleef <ds@entropywave.com> * sys/directsound/gstdirectsoundsink.c: @@ -21484,6 +26753,13 @@ quicktime: move qtmux plugin from -bad to -good https://bugzilla.gnome.org/show_bug.cgi?id=636699 +2011-04-12 16:42:17 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Remove leftover MAEMO_BROKEN defines + Remove defines to work around bugs in old Maemo releases + 2011-04-04 12:21:23 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> * gst/quicktime/gstqtmux.c: @@ -22742,6 +28018,15 @@ Jack 1.9.7 was released 20.Mar.2011, need to handle the deprecated api for this version too. +2011-04-11 00:36:35 -0400 Thibault Saunier <thibault.saunier@collabora.co.uk> + + * gst/dtmf/Makefile.am: + android: make it ready for androgenizer + Remove the android/ top dir + Fixe the Makefile.am to be androgenized + To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files. + Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git + 2011-04-10 18:56:52 -0400 Thibault Saunier <thibault.saunier@collabora.co.uk> * Android.mk: @@ -28093,6 +33378,24 @@ multiple subframes. fixes #625825 +2010-12-31 00:12:53 -0800 David Schleef <ds@schleef.org> + + * gst/dtmf/tone_detect.c: + dtmf: Fix build failure caused by previous commit + +2010-12-30 18:20:47 -0800 David Schleef <ds@schleef.org> + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/tone_detect.c: + * gst/dtmf/tone_detect.h: + dtmf: build fixes for MSVC + Use gint16 and G_PI. + +2010-12-30 18:19:47 -0800 David Schleef <ds@schleef.org> + + * gst/dtmf/tone_detect.c: + dtmf: reindent + 2010-12-31 02:16:54 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> * ext/cairo/gsttimeoverlay.c: @@ -29729,6 +35032,11 @@ rtph264depay: fix segfault on empty payload https://bugzilla.gnome.org/show_bug.cgi?id=635843 +2010-11-25 19:06:27 +0100 Edward Hervey <bilboed@bilboed.com> + + * gst/dtmf/gstrtpdtmfdepay.c: + dtmf: Remove dead assignments + 2010-11-18 00:45:29 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> * configure.ac: @@ -29903,6 +35211,19 @@ gconf: Don't install schemas when GConf is disabled https://bugzilla.gnome.org/show_bug.cgi?id=632553 +2010-10-19 13:43:14 +0300 Stefan Kost <ensonic@users.sf.net> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + various (gst): add missing G_PARAM_STATIC_STRINGS flags + Canonicalize property names as needed. + +2010-10-19 13:44:25 +0300 Stefan Kost <ensonic@users.sf.net> + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: remove DEBUG_FUNCPTR from gobject vmethods + 2010-10-16 15:43:53 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> * configure.ac: @@ -31259,6 +36580,14 @@ content and try resuming from next cluster onwards. Fixes #620790. +2010-08-26 02:54:55 -0400 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Make the dtmfsrc accept events sent with gst_element_send_event + The doc says to use gst_element_send_event on the pipeline, but if + we are to call it on the element itself, it's a noop. This should make it + handle the event properly before delegating it to basesrc. + 2010-09-06 12:22:11 +0200 American Dynamics <GStreamer-Bugs at tycosp.com> * gst/rtsp/gstrtspsrc.c: @@ -34004,6 +39333,12 @@ Also don't build the index in push mode for non-TIME seeks, things will go wrong here otherwise. +2010-06-07 11:15:26 -0400 Olivier Crête <tester@tester.ca> + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfdetect.h: + dtmfdetect: Only works with rate=8000, fix in caps + 2010-06-02 19:16:20 +0100 Sjoerd Simons <sjoerd.simons@collabora.co.uk> * gst/rtp/gstrtph264pay.c: @@ -34204,6 +39539,12 @@ pulsesink: Add comments to remove the provide-clock message posting once we depend on base 0.10.30 baseaudiosink does all this for us now. +2010-05-07 18:42:06 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Remove rtpdtmfmux stream-lock code + 2010-06-02 16:36:11 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> * gst/flv/gstflvdemux.c: @@ -37794,6 +43135,27 @@ * gst/matroska/matroska-demux.c: matroskademux: prefer index of video track to perform seeking +2010-03-25 22:58:47 +0200 Stefan Kost <ensonic@users.sf.net> + + * gst/dtmf/gstdtmfdetect.c: + dtmfdetect: if we tell that we handle gap flags, then do so + +2010-03-25 22:55:32 +0200 Stefan Kost <ensonic@users.sf.net> + + * gst/dtmf/gstdtmfdetect.c: + dtmfdetect: use glib types + +2010-03-25 22:54:49 +0200 Stefan Kost <ensonic@users.sf.net> + + * gst/dtmf/gstdtmfdetect.c: + dtmfdetect: fix classification + +2010-03-25 22:53:20 +0200 Stefan Kost <ensonic@users.sf.net> + + * gst/dtmf/gstdtmfdetect.c: + dtmfdetect: reformat message docs + Use a list like in other element docs as an untweaked docbook table look ugly. + 2010-03-24 16:19:53 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> * gst/avi/gstavidemux.c: @@ -37852,6 +43214,25 @@ Don't inlcude locale.h which we include in gettext.h if needed. Guard the inlcude like we do in the simillar headers in core. +2010-03-22 13:16:33 +0100 Benjamin Otte <otte@redhat.com> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + Add -Wwrite-strings + and fix its warnings + +2010-03-22 12:02:16 +0100 Benjamin Otte <otte@redhat.com> + + * gst/dtmf/gstrtpdtmfsrc.c: + Add -Wredundant-decls flag + and fix warnings from it + +2010-03-21 21:39:18 +0100 Benjamin Otte <otte@redhat.com> + + * gst/dtmf/gstrtpdtmfdepay.h: + Add -Wmissing-declarations -Wmissing-prototypes to configure flags + And fix all warnings + 2010-03-21 17:46:06 +0100 Benjamin Otte <otte@redhat.com> * configure.ac: @@ -38043,6 +43424,14 @@ apetag: minor Makefile.am surgery -I$(top_srcdir)/gst-libs/ is already in $(GST_CFLAGS) +2010-03-18 17:30:26 +0100 Benjamin Otte <otte@redhat.com> + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + gst_element_class_set_details => gst_element_class_set_details_simple + 2010-03-04 22:12:35 +0100 Andoni Morales Alastruey <ylatuya@gmail.com> * ext/raw1394/gst1394clock.c: @@ -42536,6 +47925,20 @@ * gst/qtdemux/qtdemux.c: qtdemux: fix typo and grammar +2009-11-22 19:30:58 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/dtmf/Makefile.am: + Clean up LDFLAGS, LIBS, CFLAGS + Fix order, fix variables that don't exist, like GST_LIBS_LIBS, + use $(LIBM) instead of -lm, and move _LIBS from LDFLAGS to LIBADD. + Spotted by Havard Graff. + +2009-11-20 10:31:47 -0500 Olivier Crête <tester@tester.ca> + + * gst/dtmf/tone_detect.h: + dtmf: Use _stdint.h from configure + https://bugzilla.gnome.org/show_bug.cgi?id=602465 + 2009-11-20 10:30:00 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk> * gst/deinterlace/gstdeinterlace.c: @@ -42553,6 +47956,13 @@ * tests/check/elements/wavpackparse.c: wavpackparse: Fix unit test for recent position reporting changes +2009-11-19 20:33:07 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/tone_detect.c: + * gst/dtmf/tone_detect.h: + dtmf: Update dtmfdetect to make it MSVC friendly + https://bugzilla.gnome.org/show_bug.cgi?id=602465 + 2009-11-19 16:09:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk> * ext/wavpack/gstwavpackparse.c: @@ -42940,6 +48350,19 @@ * gst/equalizer/gstiirequalizer.c: equalizer: printf format fix +2009-11-04 22:19:58 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/Makefile.am: + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfdetect.h: + * gst/dtmf/tone_detect.c: + * gst/dtmf/tone_detect.h: + dtmfdetect: Add DTMF tone detector + It looks at raw audio data and emits messages when DTMF is detected. + The dtmf detector is the same Goertzel implementation used in FreeSwitch + and Asterisk. It is in the public domain. + 2009-11-05 12:13:44 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk> * gst/avi/gstavimux.c: @@ -42986,6 +48409,21 @@ * gst/equalizer/gstiirequalizernbands.c: equalizer: Some cleanup +2009-11-04 22:21:35 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Reject empty caps + +2009-11-04 22:21:22 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Use log level for repeated debug messages + +2009-11-04 20:05:17 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Allow for any samplerate + 2009-10-07 09:31:19 -0400 Gabriel Millaire <gabriel.millaire@collabora.co.uk> * gst/rtp/gstrtpceltdepay.c: @@ -43542,6 +48980,11 @@ initialized, even though they can't possibly actually be used uninitialized. +2009-10-11 11:35:23 +0200 Josep Torra <n770galaxy@gmail.com> + + * gst/dtmf/gstrtpdtmfdepay.c: + dtmf: fix warnings in macosx snow leopard + 2009-10-10 00:37:08 +0200 Josep Torra <n770galaxy@gmail.com> * ext/jpeg/gstjpegdec.c: @@ -45300,6 +50743,31 @@ is set we'll probe the formats again instead of using previously detected ones. Fixes bug #591747. +2009-08-11 16:42:51 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Empty event queue on finalize + +2009-08-11 16:39:42 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Use GSlice for internal event structures + +2009-08-11 16:23:20 -0400 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Cleanup events on finalize + Problem found by Laurent Glayal + Fixes bug #591440 + +2009-08-11 16:23:20 -0400 Tim-Philipp Müller <tim.muller@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Cleanup events on finalize + Problem found by Laurent Glayal + Fixes bug #591440 + 2009-08-11 17:30:41 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk> * configure.ac: @@ -55191,6 +60659,11 @@ Make the state change function a bit more readable and only pause after the parent had a change to pause first. +2009-03-09 23:43:55 +0200 Stefan Kost <ensonic@users.sf.net> + + * gst/dtmf/Makefile.am: + Makefile.am: no static libs for plugins + 2009-03-20 17:22:32 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> * gst/qtdemux/qtdemux.c: @@ -55696,6 +61169,17 @@ Avoid a crash in avi with subtitles by only dereferencing the video description when we actually are dealing with video in the _invert function. +2009-02-25 11:45:05 +0200 Stefan Kost <ensonic@users.sf.net> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + docs: various doc fixes + No short-desc as we have them in the element details. + Also keep things (Makefile.am and sections.txt) sorted. + Reword ambigous returns. No text after since please. + 2009-02-24 17:58:32 +0000 Jan Schmidt <thaytan@noraisin.net> * gst/udp/gstudpsrc.c: @@ -55912,6 +61396,443 @@ * configure.ac: Back to development -> 0.10.14.1 +2009-02-20 18:16:02 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + Document rtpdtmfdepay a bit + +2009-02-20 17:41:37 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmf.c: + Moved dtmf elements from gst-plugins-farsight to -bad + +2009-02-20 17:40:57 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfdepay.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + Fix up documentation blobs SGML + +2009-02-20 17:37:43 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfcommon.h: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + Re-indent to Gst style + +2009-02-18 13:30:44 -0500 Laurent Glayal <spglegle@yahoo.fr> + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Missing format directive + +2008-12-04 21:21:44 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Allow setting a maximum duration to a RTP DTMF event + +2008-12-04 21:11:17 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] Improve the minimum quanta to make it impossible for the duration to fall down to 0 + +2008-12-01 18:31:48 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Allow setting a minimum size of a sound quanta in the dtmf depayloader + +2008-12-11 17:54:18 -0500 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/.git-darcs-dir: + [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files + +2008-12-01 17:37:10 -0500 HÃ¥vard Graff <havard.graff@tandberg.com> + + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] Do wierd casting of the volume to make MSVC happy + +2008-10-15 16:21:50 -0400 Olivier Crête <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Clarify the documentation of the "event-type" field when specifying dtmf events + +2008-07-22 21:39:38 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Remove g_debugs + 20080722213938-3e2dc-44a82d017fe66f3112301c410aa0b543de6156ad.gz + +2008-06-13 23:57:23 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Take rate from the peers caps if possible + 20080613235723-3e2dc-15690ee42708c539e1be12e20e076a5613faea96.gz + +2008-06-13 23:41:44 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Put the sample rate in dtmfsrc into a variable + 20080613234144-3e2dc-e60070943bec829b703b8821c7aa4351a02deebe.gz + +2008-06-13 23:30:06 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Take the clock-rate from the caps in rtpdtmfsrc + 20080613233006-3e2dc-a7d4e918643f4f8c1bb2cc2678558c654025920e.gz + +2008-04-28 22:22:37 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/Makefile.am: + [MOVED FROM GST-P-FARSIGHT] Link modules with libm where required + 20080428222237-3e2dc-b1e9120c1e9ca1a510bfd7c27e2d45f0d4a12504.gz + +2008-04-12 23:44:18 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] Fix byte ordering issues with dtmfsrc and rtpdtmfdepay.. use of G_STRINGIFY to avoid error on MSVC + 20080412234418-4f0f6-4828d1613dfcd564afd236dfc8fb57a299092f83.gz + +2008-03-20 19:14:38 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Fix copyrights again, per smcv's advice.. + 20080320191438-4f0f6-671c9db5d996a4601df017ceab4af6d16469c966.gz + +2008-03-19 21:17:31 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Make it clear that dtmfsrc also takes named events as input + 20080319211731-3e2dc-26c729f6dc8db27e71cf6b22646a81530dbf862f.gz + +2008-03-20 18:48:41 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] debug message made into errors because that's what they are... + 20080320184841-4f0f6-8a2d283297b02713dade0ae4acaa5f6e0f67eace.gz + +2008-03-20 18:39:37 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] Clean unused stuff... + 20080320183937-4f0f6-bcb841cdc07f9e9677512f4b50b4b659a58c6783.gz + +2008-03-20 18:39:12 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Fix copyrights + 20080320183912-4f0f6-689365d5a406632e3d088fac74e4fb6f8a4eb0ea.gz + +2008-03-20 01:13:01 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/Makefile.am: + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Adding support for rtpdtmfdepay + 20080320011301-4f0f6-d36a5d24be20336e36c4796d75476c9b5ee1a7e1.gz + +2008-03-19 19:32:51 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] encoding name has to be upper-case + 20080319193251-3e2dc-1581b33be9b486e35ec4948009677ccd5ffdc098.gz + +2008-03-20 00:51:47 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfcommon.h: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Adding necessary files for rtpdtmfdepay + 20080320005147-4f0f6-550fe22f70152f3aab3dcd7a6b02cbf81e89232d.gz + +2008-03-20 00:50:41 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Fix typos + 20080320005041-4f0f6-9d22fa5d155e35b605ea85b1fd9e7197a882a1f0.gz + +2008-02-16 13:41:40 +0000 Sjoerd Simons <sjoerd@luon.net> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] dtmfsrc: Correctly set the endianess in the caps to the machines endianess + 20080216134140-93b9a-40a3a9d7ac1679c5e0dfd24a6b91e4aba6cc6496.gz + +2007-09-17 17:52:33 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Search&Replace oops + 20070917175233-3e2dc-57f579c4b890993f49fa8e9e6470a3eb79d2b922.gz + +2007-09-17 17:51:33 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] events dont yet belong in the caps + 20070917175133-3e2dc-fd1d83b7826b898110fc571ae7c3440f1887434d.gz + +2007-09-17 16:08:20 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Add patch to make it work with maemo dsp sources that payload incorrectly + 20070917160820-3e2dc-06b1b1d1b0918b30dabea5a0714cb732b3b8d8dd.gz + +2007-09-17 04:26:49 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Oops, set to no preroll when playing->paused too + 20070917042649-3e2dc-94adb6aa0617e815a6e233232dabb4bbc48dc82c.gz + +2007-09-17 00:36:54 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Complete port to basesrc + 20070917003654-3e2dc-db0f84dabd9dd1ac929a0461865b8aaa8ef91a77.gz + +2007-09-17 00:24:12 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Add caps negotiation function + 20070917002412-3e2dc-ca266816e9629746e9083c5bb8b7f73b94a9b2b0.gz + +2007-09-17 00:16:59 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Properly free non-start events + 20070917001659-3e2dc-a571777e3ecfb90989f87412f554aa10a31cc2ca.gz + +2007-09-17 00:15:52 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Make interval and packet_redundancy into uint + 20070917001552-3e2dc-60032e547b3669b87317c981d985c156aab91b40.gz + +2007-09-16 19:44:08 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Make the rtp dtmf src use basesrc + 20070916194408-3e2dc-734000130dce2434a014acf843d641ff0e60aa5a.gz + +2007-09-16 19:41:01 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Make dtmf src code nicer + 20070916194101-3e2dc-a8be8c509c65400d1d3962da02e67d15d2054316.gz + +2007-09-14 04:20:42 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Implement stopping in a nice thread safe way + 20070914042042-3e2dc-1fe257ff4b72aca4b0eb5f285a14650b8df268c3.gz + +2007-09-14 04:18:34 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Remove get_times (Wim says its only good for really fake sources) + 20070914041834-3e2dc-fff4d5da2a145f19e7b610a1027d2c4d4bc5eae0.gz + +2007-09-13 21:21:45 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] using the unlock method of basesrc + 20070913212145-4f0f6-0e438a681bf1651c0cc0d8fa3269aed3f1668b6b.gz + +2007-09-13 21:12:26 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] more debug + 20070913211226-4f0f6-bc32b5828fc8e0323c8a6eee779a38145aacd593.gz + +2007-09-13 20:46:14 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] added debugs + 20070913204614-4f0f6-68c2a69ae7a1efca6e13c116dbad7f9b686f0242.gz + +2007-09-13 19:20:53 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Make sure to unlock the thread when going to ready and to flush the queue when moving to paused or playing + 20070913192053-4f0f6-76c3925380d1a30988286170535a65dea64a5583.gz + +2007-09-13 17:55:20 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Changed dtmfsrc into a subclass of GstBaseSrc + 20070913175520-4f0f6-16ca4bf93690072f3e836d1c8a5b52cf7a421916.gz + +2007-09-04 22:57:53 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Add another fix for a possible race condition + 20070904225753-4f0f6-5ba8c4260c002bb27eb98e9faba3c15799357b57.gz + +2007-09-04 21:52:24 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Add comment to explain push back + 20070904215224-3e2dc-d92ac1f403dcf571546a7c53f18809f840eea51d.gz + +2007-09-04 20:55:09 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Properly do the locking to avoid race conditions with clock unscheduling + 20070904205509-3e2dc-da19900b51af6aedb6547f4f392bef4d1061dec2.gz + +2007-09-01 00:03:24 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] oups, I did it again... + 20070901000324-4f0f6-3d8b46691ee520537b06c511a5e732f5b812b844.gz + +2007-08-31 23:54:28 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] oups, sorry.. DTMF, not RTP_DTMF for this file... + 20070831235428-4f0f6-00b606bfb4892e4f217c440b611cc794ab0de55a.gz + +2007-08-31 23:44:13 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Fixes the deadlock when pausing the dtmfsrc and rtpdtmfsrc. Had to push something on the async queue to release the blocking async_queue_pop(). Thanks to Olivier for the solution. + 20070831234413-4f0f6-793cf35fc43636e7275258cc7063fc068f5efa0a.gz + +2007-08-28 22:15:34 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] ClockID when waiting for buffer is now unscheduled when stopping the task. Various fixes to avoid bugs (thanks to -Wall -Werror). Fixes to allow the merge of the branch. + 20070828221534-4f0f6-b0d6a4fe48c4e2a16b9ff69cb310087c970ce48e.gz + +2007-08-28 17:15:46 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Cleaned up the code a bit, no use of GST_* and return value verification from gst_* + 20070828171546-4f0f6-bdeb4b1b7f99f9464aabe5c43bd4a4d2025262b6.gz + +2007-08-27 19:56:10 +0000 Olivier Crete <olivier.crete@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Fix overly long lines and tabs + 20070827195610-3e2dc-396a3fa01e16f184e4109c71fe2deb6e516bdf0d.gz + +2007-08-27 19:26:18 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] untabbified dtmfsrc + 20070827192618-4f0f6-77d68070464f1b5f9a46cb6eec2d922340143c04.gz + +2007-08-27 17:24:24 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Fix RTP timestamps by sending a new_segment event to the payloader + 20070827172424-4f0f6-d20907e3d436d50bfe74eb4fc3d2d6d7b6b6dbc5.gz + +2007-08-27 17:23:39 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Better handling of packets, we send the same duration for all packets to avoid huge packets when min duration defines are modified. + 20070827172339-4f0f6-cc93304437ea376fff6458c74c46c19f6920d329.gz + +2007-08-27 17:23:22 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Changing minimum values to work better on some gateways + 20070827172322-4f0f6-5bf2bffa59a8244538dced795fa7d7649452ca91.gz + +2007-08-22 20:16:53 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] The DTMF tone generator now respects the volume argument passed in the event + 20070822201653-4f0f6-8b7ff874006e11f5a74d0fd91e5a9a43cd082ada.gz + +2007-08-22 18:01:33 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] don't know why I did that... + 20070822180133-4f0f6-6a7382f6c7d3630f91da384e1904763c7ea6fa1a.gz + +2007-08-22 17:55:33 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Ported the event queue work from dtmfsrc to rtpdtmfsrc + Added a queue based system for the rtpdtmfsrc. Now it waits for start/stop messages on the queue, and makes sure that the minimum duty cycle (120ms) is respected between each + tone, including inter-digit silence. + 20070822175533-4f0f6-f27414c406f1f7b00c9a9084a988cf3a7930fe5c.gz + +2007-08-22 17:54:44 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] ouch, printing with arguments but without %s.. that made it segfault a few times... + 20070822175444-4f0f6-445ea6ce7a9668d04cf999af772a504ec74fb67a.gz + +2007-08-22 17:51:26 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Moved the timestamp from the event to dtmfsrc structure since we have only one event at a time, so let's keep it stored in the dtmfsrc struct + 20070822175126-4f0f6-53bcda2bd8ae8c56d29e62e69ac19a30e08ad350.gz + +2007-08-20 20:38:26 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Added a queue based system for the dtmfsrc. Now it waits for start/stop messages on the queue, and makes sure that the minimum duty cycle (120ms) is respected between each tone, including inter-digit silence. + 20070820203826-4f0f6-750a22b612a5e495e767666934465c34fe32074b.gz + +2007-08-20 18:48:52 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/Makefile.am: + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Added dtmfsrc, a DTMF Tone Generator, and made it part of the 'dtmf' plugin. + 20070820184852-4f0f6-a0d85e67708290aebafa89ab79d3cedd5815b620.gz + +2007-08-20 18:48:00 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk> + + * gst/dtmf/.git-darcs-dir: + * gst/dtmf/Makefile.am: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Moved rtpdtmf to dtmf directory + 20070820184800-4f0f6-fa33ea974510161de8c9951c39087af3613b65a4.gz + 2009-02-21 12:47:00 +0100 Thomas Vander Stichele <thomas (at) apestaart (dot) org> * ext/flac/gstflacdec.c: diff --git a/Makefile.in b/Makefile.in index f71e3605bd45b51a38d7ae352c530b2dea35f204..2684aaf567a42ca46d2614618eb1e891a4efd0b3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -27,23 +26,51 @@ # set CRUFT_FILES and/or CRUFT_DIRS in your Makefile.am when you include this VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -63,16 +90,15 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = README $(am__configure_deps) $(noinst_HEADERS) \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/config.h.in $(srcdir)/gst-plugins-good.spec.in \ +DIST_COMMON = $(top_srcdir)/common/win32.mak \ + $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak \ $(top_srcdir)/common/coverage/lcov.mak \ - $(top_srcdir)/common/cruft.mak $(top_srcdir)/common/po.mak \ - $(top_srcdir)/common/release.mak \ - $(top_srcdir)/common/win32.mak $(top_srcdir)/configure \ - ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS compile \ - config.guess config.rpath config.sub depcomp install-sh \ - ltmain.sh missing + $(top_srcdir)/common/cruft.mak INSTALL NEWS README AUTHORS \ + ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(srcdir)/config.h.in $(srcdir)/gst-plugins-good.spec.in \ + ABOUT-NLS $(noinst_HEADERS) COPYING compile config.guess \ + config.rpath config.sub depcomp install-sh missing ltmain.sh subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -80,7 +106,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -118,21 +143,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = gst-plugins-good.spec CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -141,11 +173,33 @@ am__can_run_installinfo = \ HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +CSCOPE = cscope DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -155,6 +209,7 @@ am__remove_distdir = \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi +am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -182,6 +237,7 @@ am__relativize = \ reldir="$$dir2" GZIP_ENV = --best DIST_ARCHIVES = $(distdir).tar.xz +DIST_TARGETS = dist-xz distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -351,6 +407,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -633,22 +690,25 @@ distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -663,57 +723,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -729,12 +744,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -746,15 +756,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -763,9 +769,31 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) @@ -836,39 +864,35 @@ distdir: $(DISTFILES) || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__remove_distdir) + $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) + $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) + $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) + $(am__post_remove_distdir) -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__remove_distdir) +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another @@ -879,8 +903,6 @@ distcheck: dist GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ @@ -892,9 +914,9 @@ distcheck: dist *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod u+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ @@ -927,7 +949,7 @@ distcheck: dist && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 - $(am__remove_distdir) + $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' @@ -1063,14 +1085,13 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ - ctags-recursive install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) all install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am all-local am--refresh check check-am clean \ - clean-generic clean-libtool ctags ctags-recursive dist \ - dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-lzma \ - dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ @@ -1081,7 +1102,7 @@ uninstall-am: installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am + tags tags-am uninstall uninstall-am win32-debug: @@ -1124,11 +1145,17 @@ check-exports: if test $$fail != 0; then \ echo '-----------------------------------------------------------'; \ echo 'Run this to update the .def files:'; \ - echo 'make check-exports 2>&1 | patch -p1'; \ + echo 'make update-exports'; \ echo '-----------------------------------------------------------'; \ fi; \ exit $$fail +update-exports: + make check-exports 2>&1 | patch -p1 + git add win32/common/libgst*.def + git diff --cached -- win32/common/ + echo '^^^--- updated and staged changes above' + # complain about nonportable printf format strings (%lld, %llu, %zu etc.) check-nonportable-print-format: @fail=0 ; \ @@ -1210,7 +1237,7 @@ win32-update: $(top_srcdir)/common/gst-indent win32/common/tuner-marshal.c cp $(top_builddir)/win32/common/config.h-new \ $(top_srcdir)/win32/common/config.h -.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload +.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload lcov-clean # run lcov from scratch, always lcov-reset: @@ -1221,10 +1248,14 @@ lcov-reset: lcov: $(MAKE) lcov-reset -# reset run coverage tests -@GST_GCOV_ENABLED_TRUE@lcov-run: +# reset lcov stats +@GST_GCOV_ENABLED_TRUE@lcov-clean: @GST_GCOV_ENABLED_TRUE@ @-rm -rf lcov @GST_GCOV_ENABLED_TRUE@ lcov --directory . --zerocounters + +# reset run coverage tests +@GST_GCOV_ENABLED_TRUE@lcov-run: +@GST_GCOV_ENABLED_TRUE@ -$(MAKE) lcov-clean @GST_GCOV_ENABLED_TRUE@ -if test -d tests/check; then $(MAKE) -C tests/check inspect; fi @GST_GCOV_ENABLED_TRUE@ -$(MAKE) check diff --git a/NEWS b/NEWS index a99f35ce7c9bd5acf2d58a48447adb35cc113cc0..e7cb60cb47a0dd4da430eaf8d3e813b46a89a53b 100644 --- a/NEWS +++ b/NEWS @@ -1,219 +1,2 @@ -This is GStreamer Good Plugins 1.0.8 +This is GStreamer Good Plugins 1.1.2 -Changes since 1.0.7: - - * pngenc: fix massive memory leak - * pngdec: parse incoming data into frames before decoding - * osvideo: many osxvideosink fixes - * udpsink, multiudpsink, dynudpsink: bind socket before using it, fixes sending udp on windows - -Bugs fixed since 1.0.7: - - * 682110 : qtdemux: discont flag set on multiple buffers in push mode - * 692400 : udpsrc: fix socket options not getting set on windows, resulting in packet drop in high bitrate movie - * 693727 : rtpvrawpay/depay negotiation broken - * 699260 : pngenc: unmap source frame when done - * 699303 : matroskademux: stream-format=raw missing from aac caps - * 699314 : rtph264pay: CRITICAL **: gst_adapter_map: assertion `size > 0' failed - * 700047 : pngdec: make decoding work without png parser - * 700382 : qtdemux: handle 96kHz/24 bits ALAC audio - * 700514 : rtpmp4apay: clear config buffer before using it - * 700878 : udpsink: Not sending anything on Windows - * 701586 : rtspsrc memleak - * 702167 : matroskademux: missing mutex unlock leading to wrong STREAM_LOCK count - * 702457 : rtpmp2tdepay: unable to depay MPEG2-TS RTP streams from GStreamer 0.10 - * 702705 : rtspsrc does not pause properly (race condition) - * 702732 : v4l2: Does not link statically on linux - * 703076 : flvdemux: Add flvversion 1 to flash-video caps - * 703100 : osxvideosink: deadlock on re-use - * 703171 : rtph264pay: segfault because of double buffer unmap on error - * 703729 : osxvideosink doesn't display video anymore if once set to READY - * 691419 : osxvideosink: doesn't close internal window in case of window-id assignment - -Changes since 1.0.6: - - * osxaudio plugin ported to 1.0 - -Bugs fixed since 1.0.6: - - * 695709 : vp8enc plugin has invalid parameter error when framerate is " 0/1 " - * 697103 : osxaudio: port to 1.0 - * 677560 : rtpjpegdepay: crash in copy_into_unchecked - * 685209 : gst_v4l2_object_get_nearest_size VIDIOC_G_FMT bug - * 693005 : capssetter: do not return a copy of sink caps upstream - * 693727 : rtpvrawpay/depay negotiation broken - * 696052 : qtmux expose mulaw - * 696651 : v4l2loopback:gst_buffer_get_meta: assertion `buffer != NULL' failed. " - * 697113 : matroskademux: add TrueHD audio codec support - * 697303 : osxvideosink: compiler warning: implicit declaration of function 'pthread_self' - * 697984 : souphttpsrc: direct stream dump results in broken audio with internet radio - * 698224 : [osxaudio] caps negotiation fails due to invalid channel-mask - -Changes since 1.0.5: - - * auparse: fix caps leak - * avidemux: push mode: handle some more 0-size buffer cases - * deinterlace: fix infinite loop on EOS with non-default methods or fields - * dvdemux: don't return FALSE when dropping sink events, fixes flow errors - * level: send a last message on EOS - * mp4mux: in faststart mode, don't output up to 4 kB of garbage at the end - * osxvideosink: Fix crash in osxvideosink with external window output - * osxvideosink: Make GstGLView propagate input events to its parent view - * osxvideosink: Make GstNavigation key input events in osxvideosink compatible with x(v)imagesink ones - * pulsesink: don't error out if pa_stream_proplist_update() with new tags fails - * qtdemux: fix potential crash on short MOOV atom - * qtdemux: fix sample leak when processing private qt tags - * qtdemux: push mode: only parse moov 1 once - * qtdemux: skip disabled tracks - * qtmux: set stream language code from tag - * rtph264pay: Don't use upstream caps with peer_query_caps() - * rtpmp4gdepay: streamtype is not put by all RTSP server, not make it optional - * rtpptdemux: forward sticky events and then set caps - * rtpsession: Fix wrong code organisation in case of collision - * rtspsrc: flush connection when stopping - * rtspsrc: only EOS when our source sends BYE - * rtspsrc: save the stream SSRC - * v4l2: don't check stride for encoded formats - * v4l2: fix compilation against newer kernel headers as on FC19 - * videomixer2: avoid caps leak - * videomixer: fix eos timestamp check - * ximagesrc: Set the pixel aspect ratio correctly in the caps - * build: allow calling autogen.sh from out-of-tree - * build: fix build with automake 1.13 - -Bugs fixed since 1.0.5: - - * 628790 : qtdemux: OSD displays persistent chapters subtitles - * 656068 : pulsesink: errors out if pa_stream_proplist_update() fails with old pulseaudio versions - * 675453 : rtspsrc: only EOS if BYE came from SSRC of the stream - * 678429 : souphttpsrc: should return GST_FLOW_ERROR from create function in case of HTTP error 404 not found - * 684924 : rtspsrc: flush connection when going to null state - * 684944 : avidemux: " unhandled buffer size " error for cyuv.avi in push mode - * 688935 : rtpjitterbuffer not always correctly warns about resetting skew - * 689809 : osxvideosink: inconsistent keyboard navigation events - * 691484 : osxvideosink: crash when displaying on Qt widget - * 691570 : [isomp4/qtdemux] lots of critical warnings on this sample file - * 691580 : ximagesrc sets bad pixel-aspect-ratio caps - * 691832 : osxvideosink doesn't propagate input events to output window - * 692309 : allow autogen.sh to be call out-of-tree - * 692786 : CAPS event is forwarded before STREAM_START in rtpptdemux element - * 692935 : videomixer: hangs on eos - * 692950 : " rtpjitterbuffer " properties can't be changed after pipeline is started - * 693055 : level: 32-bit formats don't work because of typo in format list: S32LEF32LE - * 693173 : deinterlace method=greedyl fields=top does not complete - * 693307 : videomixer2 leaks caps reference - * 693373 : 1.0 branch is still using AM_CONFIG_HEADER - * 694010 : qtdemux: crash with partial mp4 / moov atom - * 694184 : Wrong code organisation in case of collision in rtpsession - * 694275 : auparse: src_caps are leaked - * 695629 : rtph264pay: caps negotiation fails if upstream caps is not NULL - * 695643 : dvdemux: returns wrong value when it is not processing the sink events - * 695644 : deinterlace: going to infinite loop on EOS with method=scalerbob fields=bff - * 696355 : qtdemux: sample leak in tag handling - * 696358 : qtmux: set language code on streams - -Changes since 1.0.4: - - * rtspsrc: fix regression that make rtspsrc hang when stopping - * audio/video parsers: fix negotiation with encoders in some transcoding cases - * cairo: port cairooverlay to 1.0 - * jpegenc: pass flow returns upstream - * qtdemux: fix pixel-aspect-ratio of some files with ProRes video - * cairo: port cairooverlay to 1.0 - -Bugs fixed since 1.0.4: - - * 690184 : [parsers] Return too strict caps on the sinkpads - * 690476 : regression: unable to stop rtsp stream - * 691098 : v4l2src: breaks because of changed ioctl error return code from driver on failed control query in 3.8-rc1 - -Changes since 1.0.3: - - * deinterleave: properly set srcpad channel position - * osxvideosink: Fix resizing the Cocoa window on receiving new caps - * rtspsrc fixes - * shout2send: also accept audio/webm in addition to video/webm - * videobox: fix border filling for planar YUV formats - * webmmux: fix linking to shout2send - * v4l2: fix build on FreeBSD - -Bugs fixed since 1.0.3: - - * 684312 : rtspsrc: mutex blocks going to NULL state - * 684991 : videobox: sometimes incorrectly crops producing visual artifacts, and green instead of black border - * 687469 : mulawdec: integer overrun with large chunks of data - * 689732 : osxvideosink can't resize Cocoa window on receiving caps - * 689336 : webmmux: can't link webmux to shout2send - -Changes since 1.0.2: - - * rtspsrc: numerous improvements - * build fix for gst-plugins-base installed in non-default prefix - * multifilesink: post messages in max-size mode as well - * vp8dec: improve robustness on decoding errors, e.g. for videocalls over RTP - -Bugs fixed since 1.0.2: - - * 639420 : RTSP setup, add client_ports - * 686837 : imagefreeze: improve caps negotiation - * 686985 : [pulsesrc] Assertion 'm' failed at pulse/thread-mainloop.c:166, function pa_threaded_mainloop_lock(). Aborting. - * 687013 : auparse,level,videocrop,y4m,caca: Fix missing GST_PLUGINS_BASE_LIBS dependency in Makefile.am - * 687154 : examples: error in level plugin example code - * 687330 : videobox, videomixer: height obtained using _WIDTH macros - * 687464 : speexdec: Don't unmap or finish_frame an invalid GstBuffer - * 688382 : rtspsrc doesn't work with the interleaved protocols - -Changes since 1.0.1: - - * Parallel installability with 0.10.x series - * avidemux: fix handling of paletted and other raw RGB data - * flacparse: ignore bad headers if we have a valid STREAMINFO header; improve coverart extraction - * jpegdepay: store quant tables in zigzag order - * matroskamux: do not use unoffical V_MJPEG codec id; fix subtitle request sink pad name and functionality - * videofilter: add videomedian element - * multiudpsink: add "force-ipv4" option and "multicast-iface" property - * pulsesink: fix caps leak and potential crasher in acceptcaps function - * pulsesink: start the ringbuffer on GAP events without duration - * qtdemux: add support for 'generic' samples; allow more streams - * qtdemux: support more ProRes variants; fix memory leak for MS/RIFF audio - * qtdemux: with raw audio, set a default channel-mask for multichannel audio - * rtpbin: set PTS and DTS in jitterbufffer - * rtpbin: use running-time for NTP time when use-pipeline-clock is set - * rtpsession: inform source when caps change - * udpsrc: use negotiated allocator or pool - * videobox: use out_info for out properties - * videocrop: port to videofilter - * videomixer2: Fix race condition where a src setcaps is ignored - * vp8enc: fix default target-bitrate value; set DECODE_ONLY flag on invisible frames - -Bugs fixed since 1.0.1: - - * 654216 : vp8enc: tag invisible frames - * 682481 : multiudpsink: add force-ipv4 option (problem when streaming RTP to multicast address) - * 683782 : Segfault in pulsesink.c:2077 gst_pulsesink_pad_acceptcaps() - * 683842 : Fix race condition in videomixer2 on 0.10 - * 684701 : flacparse: fails to parse flac file with broken header: " Invalid metablock size for STREAMINFO: 8196 " - * 685864 : Add multicast-iface property to multiudpsink - * 686008 : qtdemux: crashes in push mode with gst_qtdemux_guess_bitrate: assertion failed: (size > = qtdemux- > header_size) - * 686046 : avidemux: can't play 8-bit indexed RGB video - * 686550 : qtdemux: no streams found for journal.pone.0030940.s002.mov, m1v video fourcc - * 686642 : udpsrc: trivial typo causes compilation error - -Changes since 1.0.0: - - * interleave, deinterlave: channel handling fixes for mono audio - * videobalance now supports NV12 and NV21 as well - -Bugs fixed since 1.0.0: - - * 683622 : flvdemux: Internal flow error when demuxing speex - * 684972 : qtdemux: cannot play mp4 file when MOOV atom is at the end of file - * 684977 : Can't seek in AVI file in push mode - * 685059 : avidemux: cannot play video in push mode - * 685213 : rtph264pay: pushing unmapped data. - * 685512 : rtpgstdepay has a memory leak - -New features in 1.0.0: - - * Parallel installability with 0.10.x series - * See release notes for more details diff --git a/README b/README index 908386dbcaf43e5a8457bd6b57bc85b8d308d8bb..5df2d2b0568d51477124192db80693694201d266 100644 --- a/README +++ b/README @@ -1,3 +1,5 @@ +GStreamer 1.1.x development series + WHAT IT IS ---------- @@ -21,8 +23,8 @@ We track bugs in GNOME's bugzilla; see the website for details. You can join us on IRC - #gstreamer on irc.freenode.org -GStreamer 0.10 series ---------------------- +GStreamer 1.0 series +-------------------- Starring @@ -135,13 +137,14 @@ PLATFORMS --------- - Linux is of course fully supported -- FreeBSD is reported to work; other BSD's should work too +- FreeBSD is reported to work; other BSDs should work too - Solaris is reported to work; a specific sunaudiosink plugin has been written -- MacOSX is reported to work; specific audio and video sinks have been written -- Windows support is experimental but improving. Output sinks have been - written but are not yet included in the code. We support - - MSys/MingW builds - - Microsoft Visual Studio 6 builds (see win32/README.txt) +- MacOSX works, binary 1.x packages can be built using the cerbero build tool +- Windows works; binary 1.x packages can be built using the cerbero build tool + - MSys/MinGW builds + - Microsoft Visual Studio builds are not yet available or supported +- Android works, binary 1.x packages can be built using the cerbero build tool +- iOS works INSTALLING FROM PACKAGES ------------------------ @@ -154,7 +157,7 @@ Only in cases where you: - want to hack on GStreamer - want to verify that a bug has been fixed - do not have a sane distribution -should you choose to build from source tarballs or CVS. +should you choose to build from source tarballs or git. Find more information about the various packages at http://gstreamer.freedesktop.org/download/ @@ -190,13 +193,13 @@ COMPILING FROM SOURCE TARBALLS functionality you're probably looking for by now, so go on and read that README. -COMPILING FROM CVS +COMPILING FROM GIT ------------------ -When building from CVS sources, you will need to run autogen.sh to generate +When building from git sources, you will need to run autogen.sh to generate the build system files. -You will need a set of additional tools typical for building from CVS, +You will need a set of additional tools typical for building from git, including: - autoconf - automake @@ -208,10 +211,7 @@ them. You can also specify specific versions of automake and autoconf with Check autogen.sh options by running autogen.sh --help -autogen.sh can pass on arguments to configure - you just need to separate them -from autogen.sh with -- between the two. -prefix has been added to autogen.sh but will be passed on to configure because -some build scripts like that. +autogen.sh can pass on arguments to configure When you have done this once, you can use autoregen.sh to re-autogen with the last passed options as a handy shortcut. Use it. @@ -219,9 +219,17 @@ the last passed options as a handy shortcut. Use it. After the autogen.sh stage, you can follow the directions listed in "COMPILING FROM SOURCE" -You can also run your whole cvs stack uninstalled. The script in -the gstreamer module /docs/faq/gst-uninstalled) is helpful in setting -up your environment for this. +You can also run your whole git stack uninstalled in your home directory, +so that you can quickly test changes without affecting your system setup or +interfering with GStreamer installed from packages. Many GStreamer developers +use an uninstalled setup for their work. + +There is a 'create-uninstalled-setup.sh' script in + + http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/ + +to easily create an uninstalled setup from scratch. + PLUG-IN DEPENDENCIES AND LICENSES --------------------------------- diff --git a/RELEASE b/RELEASE index 22205222b7472042a3507db6f8501014709f8548..b1eabb08cc44aa901639498517f41f87fd61a97f 100644 --- a/RELEASE +++ b/RELEASE @@ -1,5 +1,5 @@ -Release notes for GStreamer Good Plugins 1.0.8 +Release notes for GStreamer Good Plugins 1.1.2 The GStreamer team is proud to announce a new bug-fix release @@ -57,33 +57,34 @@ contains a set of codecs plugins based on libav (formerly gst-ffmpeg) Features of this release - * pngenc: fix massive memory leak - * pngdec: parse incoming data into frames before decoding - * osvideo: many osxvideosink fixes - * udpsink, multiudpsink, dynudpsink: bind socket before using it, fixes sending udp on windows Bugs fixed in this release - * 682110 : qtdemux: discont flag set on multiple buffers in push mode - * 692400 : udpsrc: fix socket options not getting set on windows, resulting in packet drop in high bitrate movie - * 693727 : rtpvrawpay/depay negotiation broken - * 699260 : pngenc: unmap source frame when done - * 699303 : matroskademux: stream-format=raw missing from aac caps - * 699314 : rtph264pay: CRITICAL **: gst_adapter_map: assertion `size > 0' failed - * 700047 : pngdec: make decoding work without png parser - * 700382 : qtdemux: handle 96kHz/24 bits ALAC audio - * 700514 : rtpmp4apay: clear config buffer before using it - * 700878 : udpsink: Not sending anything on Windows - * 701586 : rtspsrc memleak - * 702167 : matroskademux: missing mutex unlock leading to wrong STREAM_LOCK count - * 702457 : rtpmp2tdepay: unable to depay MPEG2-TS RTP streams from GStreamer 0.10 - * 702705 : rtspsrc does not pause properly (race condition) - * 702732 : v4l2: Does not link statically on linux - * 703076 : flvdemux: Add flvversion 1 to flash-video caps - * 703100 : osxvideosink: deadlock on re-use - * 703171 : rtph264pay: segfault because of double buffer unmap on error - * 703729 : osxvideosink doesn't display video anymore if once set to READY - * 691419 : osxvideosink: doesn't close internal window in case of window-id assignment + * 612406 : [PATCH] rtspsrc: Race condition + * 632207 : [rtspsrc] GET_PARAMETER / SET_PARAMETER support + * 651434 : rtspsrc: don't discard data in interleaved mode + * 657079 : JPEG RTP Payloader Change to support FaceVsion Webcams + * 664312 : rtpvorbispay does not handle headers in caps + * 686459 : pulsesink: playbin uri=x.mp3 audio-sink='identity ! pulsesink' = > not-negotiated flow error + * 700799 : matroskademux: Got data flow before segment event + * 701385 : videomixer: Incorrect timestamp calculations for non trivial segments + * 701519 : videomixer: pushes an incorrect segment event when all its sink pads are EOS + * 701650 : v4l2: make sure the element is not deleted before the pool + * 701856 : qtdemux: Does allocation queries before setting caps on all pads + * 702046 : rtspsrc doesn't produce buffers + * 702625 : avidemux: duration query returns " zero " for the DV containter format in a AVI file + * 702638 : v4l2: Optimize negotiation by removing the query filter + * 702819 : udpsink multicast-iface does not seem to work correctly + * 702826 : gdkpixbufoverlay: image overlay doesn't work for -ve offset + * 703114 : deinterleave: deadlock while pushing pending events on all source pads + * 703182 : multipartmux does not push new segment after flushing seek + * 703312 : matroskademux: missing profile field in caps for aac audio + * 703350 : qtdemux: Reports wrong framerate + * 703399 : v4l2: don't extract data from caps twice + * 703426 : Fix doc and comment references to gstrtpbin element + * 703685 : POTFILES.in is out of date + * 703743 : videomixer: Handling of variable fps streams broken + * 703764 : v4l2: bufferpool: don't forget to release buffer on error ==== Download ==== @@ -121,18 +122,27 @@ subscribe to the gstreamer-devel list. Contributors to this release * Alban Browaeys + * Alex Ashley * Andoni Morales Alastruey - * Arnaud Vrac + * Arun Raghavan + * Brendan Long * Bruno Gonzalez - * David Schleef * David Svensson Fors + * J. Rick Ramstetter * Jens Georg * Jonas Holmberg + * Kishore Arepalli + * Matej Knopp + * Mathieu Duponchelle * Michael Olbrich - * Nicolas Dufresne * Ognyan Tonchev + * Olivier Crête + * Piotr DrÄ…g * Sebastian Dröge + * Sjoerd Simons + * Stefan Sauer * Thiago Santos * Tim-Philipp Müller * Wim Taymans + * Youness Alaoui  \ No newline at end of file diff --git a/aclocal.m4 b/aclocal.m4 index 848406f347b1ca5386ebce5753c3fecea2730b02..2374f58af9e72c0191923e694d85927c8ed91a4b 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,8 +1,7 @@ -# generated automatically by aclocal 1.11.6 -*- Autoconf -*- +# generated automatically by aclocal 1.13.3 -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, -# Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,33 +11,31 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' +[am__api_version='1.13' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.6], [], +m4_if([$1], [1.13.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -54,21 +51,19 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.6])dnl +[AM_AUTOMAKE_VERSION([1.13.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Figure out how to run the assembler. -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # AM_PROG_AS # ---------- AC_DEFUN([AM_PROG_AS], @@ -83,17 +78,15 @@ _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and @@ -112,7 +105,7 @@ _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you +# harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, @@ -138,22 +131,19 @@ am_aux_dir=`cd $ac_aux_dir && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 9 - # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -172,16 +162,14 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, -# 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 12 -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing @@ -191,7 +179,7 @@ fi])]) # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was @@ -204,12 +192,13 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], @@ -217,8 +206,8 @@ AC_CACHE_CHECK([dependency style of $depcc], # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -258,16 +247,16 @@ AC_CACHE_CHECK([dependency style of $depcc], : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -276,8 +265,8 @@ AC_CACHE_CHECK([dependency style of $depcc], test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -285,7 +274,7 @@ AC_CACHE_CHECK([dependency style of $depcc], fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -333,7 +322,7 @@ AM_CONDITIONAL([am__fastdep$1], [ # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl @@ -343,9 +332,13 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' @@ -360,20 +353,18 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -386,7 +377,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -398,21 +389,19 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` @@ -430,7 +419,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will +# is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], @@ -440,15 +429,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 16 - # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. @@ -464,7 +450,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.62])dnl +[AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -493,31 +479,40 @@ AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl @@ -528,28 +523,32 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) -_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], @@ -577,15 +576,12 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -599,16 +595,14 @@ if test x"${install_sh}" != xset; then install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST(install_sh)]) +AC_SUBST([install_sh])]) -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], @@ -625,20 +619,17 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, -# 2011 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless `enable' is passed literally. -# For symmetry, `disable' may be passed as well. Anyway, the user +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), @@ -649,10 +640,11 @@ AC_DEFUN([AM_MAINTAINER_MODE], AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE @@ -660,18 +652,14 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) ] ) -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 - # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. @@ -689,7 +677,7 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -714,15 +702,12 @@ AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) -# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 6 - # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. @@ -751,15 +736,12 @@ m4_define([AC_PROG_CC], # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 6 - # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], @@ -767,11 +749,10 @@ AC_DEFUN([AM_MISSING_PROG], $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) - # AM_MISSING_HAS_RUN # ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl @@ -784,29 +765,32 @@ if test x"${MISSING+set}" != xset; then esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) + AC_MSG_WARN(['missing' script is too old or missing]) fi ]) -# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_PROG_MKDIR_P # --------------- -# Check for `mkdir -p'. +# Check for 'mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl FIXME we are no longer going to remove this! adjust warning +dnl FIXME message accordingly. +AC_DIAGNOSE([obsolete], +[$0: this macro is deprecated, and will soon be removed. +You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead, +and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.]) dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. @@ -823,15 +807,12 @@ esac # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], @@ -841,7 +822,7 @@ AC_DEFUN([_AM_MANGLE_OPTION], # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ @@ -855,13 +836,246 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 + +# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# --------------------------------------------------------------------------- +# Adds support for distributing Python modules and packages. To +# install modules, copy them to $(pythondir), using the python_PYTHON +# automake variable. To install a package with the same name as the +# automake package, install to $(pkgpythondir), or use the +# pkgpython_PYTHON automake variable. +# +# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as +# locations to install python extension modules (shared libraries). +# Another macro is required to find the appropriate flags to compile +# extension modules. +# +# If your package is configured with a different prefix to python, +# users will have to add the install directory to the PYTHONPATH +# environment variable, or create a .pth file (see the python +# documentation for details). +# +# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will +# cause an error if the version of python installed on the system +# doesn't meet the requirement. MINIMUM-VERSION should consist of +# numbers and dots only. +AC_DEFUN([AM_PATH_PYTHON], + [ + dnl Find a Python interpreter. Python versions prior to 2.0 are not + dnl supported. (2.0 was released on October 16, 2000). + m4_define_default([_AM_PYTHON_INTERPRETER_LIST], +[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl + python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0]) + + AC_ARG_VAR([PYTHON], [the Python interpreter]) + + m4_if([$1],[],[ + dnl No version check is needed. + # Find any Python interpreter. + if test -z "$PYTHON"; then + AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) + fi + am_display_PYTHON=python + ], [ + dnl A version check is needed. + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + AC_MSG_CHECKING([whether $PYTHON version is >= $1]) + AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([Python interpreter is too old])]) + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + AC_CACHE_CHECK([for a Python interpreter with version >= $1], + [am_cv_pathless_PYTHON],[ + for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do + test "$am_cv_pathless_PYTHON" = none && break + AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) + done]) + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi + ]) + + if test "$PYTHON" = :; then + dnl Run any user-specified action, or abort. + m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) + else + + dnl Query Python for its version number. Getting [:3] seems to be + dnl the best way to do this; it's what "site.py" does in the standard + dnl library. + + AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], + [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) + AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) + + dnl Use the values of $prefix and $exec_prefix for the corresponding + dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made + dnl distinct variables so they can be overridden if need be. However, + dnl general consensus is that you shouldn't need this ability. + + AC_SUBST([PYTHON_PREFIX], ['${prefix}']) + AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) + + dnl At times (like when building shared libraries) you may want + dnl to know which OS platform Python thinks this is. + + AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], + [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) + AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) + + # Just factor out some code duplication. + am_python_setup_sysconfig="\ +import sys +# Prefer sysconfig over distutils.sysconfig, for better compatibility +# with python 3.x. See automake bug#10227. +try: + import sysconfig +except ImportError: + can_use_sysconfig = 0 +else: + can_use_sysconfig = 1 +# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: +# <https://github.com/pypa/virtualenv/issues/118> +try: + from platform import python_implementation + if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7': + can_use_sysconfig = 0 +except ImportError: + pass" + + dnl Set up 4 directories: + + dnl pythondir -- where to install python scripts. This is the + dnl site-packages directory, not the python standard library + dnl directory like in previous automake betas. This behavior + dnl is more consistent with lispdir.m4 for example. + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON script directory], + [am_cv_python_pythondir], + [if test "x$prefix" = xNONE + then + am_py_prefix=$ac_default_prefix + else + am_py_prefix=$prefix + fi + am_cv_python_pythondir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pythondir in + $am_py_prefix*) + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` + ;; + *) + case $am_py_prefix in + /usr|/System*) ;; + *) + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pythondir], [$am_cv_python_pythondir]) + + dnl pkgpythondir -- $PACKAGE directory under pythondir. Was + dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is + dnl more consistent with the rest of automake. + + AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) + + dnl pyexecdir -- directory for installing python extension modules + dnl (shared libraries) + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], + [am_cv_python_pyexecdir], + [if test "x$exec_prefix" = xNONE + then + am_py_exec_prefix=$am_py_prefix + else + am_py_exec_prefix=$exec_prefix + fi + am_cv_python_pyexecdir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pyexecdir in + $am_py_exec_prefix*) + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` + ;; + *) + case $am_py_exec_prefix in + /usr|/System*) ;; + *) + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) + + dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) + + AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) + + dnl Run any user-specified action. + $2 + fi + +]) + + +# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# --------------------------------------------------------------------------- +# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. +# Run ACTION-IF-FALSE otherwise. +# This test uses sys.hexversion instead of the string equivalent (first +# word of sys.version), in order to cope with versions such as 2.2c1. +# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). +AC_DEFUN([AM_PYTHON_CHECK_VERSION], + [prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] +sys.exit(sys.hexversion < minverhex)" + AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- @@ -876,22 +1090,16 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -902,32 +1110,40 @@ case `pwd` in esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$[2]" = conftest.file ) then @@ -937,31 +1153,50 @@ else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT(yes)]) +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) -# Copyright (C) 2009, 2011 Free Software Foundation, Inc. +# Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT -# (`yes' being less verbose, `no' or empty being verbose). +# ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], -[ --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0')]) -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl -dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} @@ -979,7 +1214,7 @@ else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then - dnl Using `$V' instead of `$(V)' breaks IRIX make. + dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else @@ -996,44 +1231,40 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor `install' (even GNU) is that you can't +# One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize +# always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 - # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. @@ -1047,18 +1278,16 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. +# Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory @@ -1068,76 +1297,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar +# AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. + +# We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar <conftest.tar]) + AM_RUN_LOG([cat conftest.dir/file]) + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar <conftest.tar]) - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi -done -rm -rf conftest.dir -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR @@ -1147,7 +1414,6 @@ m4_include([common/m4/as-auto-alt.m4]) m4_include([common/m4/as-compiler-flag.m4]) m4_include([common/m4/as-gcc-inline-assembly.m4]) m4_include([common/m4/as-libtool.m4]) -m4_include([common/m4/as-python.m4]) m4_include([common/m4/as-scrub-include.m4]) m4_include([common/m4/as-version.m4]) m4_include([common/m4/ax_create_stdint_h.m4]) diff --git a/autogen.sh b/autogen.sh index 7a8f1df4a9f9f101cffe2c1986ff9850a7dfa9f1..95e1bfaefed95cdac832c3eff6ec86f48fdf4aec 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,5 +1,11 @@ #!/bin/sh +# +# gst-plugins-good autogen.sh +# # Run this to generate all the initial makefiles, etc. +# +# This file has been generated from common/autogen.sh.in via common/update-autogen + test -n "$srcdir" || srcdir=`dirname "$0"` test -n "$srcdir" || srcdir=. @@ -9,9 +15,8 @@ cd "$srcdir" DIE=0 package=gst-plugins-good -srcfile=gst/law/alaw.c +srcfile=gst-plugins-good.doap -echo "$(pwd)" # Make sure we have common if test ! -f common/gst-autogen.sh; then @@ -38,16 +43,22 @@ fi # GNU gettext automake support doesn't get along with git. # https://bugzilla.gnome.org/show_bug.cgi?id=661128 -touch -t 200001010000 po/gst-plugins-good-0.10.pot +if test -d po ; then + touch -t 200001010000 po/gst-plugins-good-1.0.pot +fi CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-gtk-doc' +if test "x$package" = "xgstreamer"; then + CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-docbook --enable-failing-tests --enable-poisoning" +fi + autogen_options $@ printf "+ check for build tools" -if test ! -z "$NOCHECK"; then echo " skipped"; else echo; fi -version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 autoconf267 autoconf266 autoconf265 autoconf264 autoconf263 autoconf262" \ - "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 62 || DIE=1 +if test ! -z "$NOCHECK"; then echo ": skipped version checks"; else echo; fi +version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 " \ + "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 68 || DIE=1 version_check "automake" "$AUTOMAKE automake automake-1.11" \ "ftp://ftp.gnu.org/pub/gnu/automake/" 1 11 || DIE=1 version_check "autopoint" "autopoint" \ @@ -65,7 +76,7 @@ autoheader_check || DIE=1 die_check $DIE # if no arguments specified then this will be printed -if test -z "$*"; then +if test -z "$*" && test -z "$NOCONFIGURE"; then echo "+ checking for autogen.sh options" echo " This autogen script will automatically run ./configure as:" echo " ./configure $CONFIGURE_DEF_OPT" @@ -76,16 +87,17 @@ fi toplevel_check $srcfile # autopoint -# older autopoint (< 0.12) has a tendency to complain about mkinstalldirs -if test -x mkinstalldirs; then rm mkinstalldirs; fi # first remove patch if necessary, then run autopoint, then reapply if test -f po/Makefile.in.in; then - patch -p0 -R < common/gettext.patch + patch -p0 -R --forward < common/gettext.patch fi -tool_run "$autopoint --force" +tool_run "$autopoint" "--force" "patch -p0 < common/gettext.patch" patch -p0 < common/gettext.patch +# aclocal +if test -f acinclude.m4; then rm acinclude.m4; fi + tool_run "$libtoolize" "--copy --force" tool_run "$aclocal" "-I m4 -I common/m4 $ACLOCAL_FLAGS" tool_run "$autoheader" @@ -94,21 +106,8 @@ tool_run "$autoheader" echo timestamp > stamp-h.in 2> /dev/null tool_run "$autoconf" -tool_run "$automake" "-a -c" - -# if enable exists, add an -enable option for each of the lines in that file -if test -f enable; then - for a in `cat enable`; do - CONFIGURE_FILE_OPT="--enable-$a" - done -fi - -# if disable exists, add an -disable option for each of the lines in that file -if test -f disable; then - for a in `cat disable`; do - CONFIGURE_FILE_OPT="$CONFIGURE_FILE_OPT --disable-$a" - done -fi +debug "automake: $automake" +tool_run "$automake" "--add-missing --copy" test -n "$NOCONFIGURE" && { echo "+ skipping configure stage for package $package, as requested." @@ -119,12 +118,12 @@ test -n "$NOCONFIGURE" && { cd "$olddir" echo "+ running configure ... " -test ! -z "$CONFIGURE_DEF_OPT" && echo " $srcdir/configure default flags: $CONFIGURE_DEF_OPT" -test ! -z "$CONFIGURE_EXT_OPT" && echo " $srcdir/configure external flags: $CONFIGURE_EXT_OPT" -test ! -z "$CONFIGURE_FILE_OPT" && echo " $srcdir/configure enable/disable flags: $CONFIGURE_FILE_OPT" +test ! -z "$CONFIGURE_DEF_OPT" && echo " default flags: $CONFIGURE_DEF_OPT" +test ! -z "$CONFIGURE_EXT_OPT" && echo " external flags: $CONFIGURE_EXT_OPT" echo -"$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT $CONFIGURE_FILE_OPT || { +echo "$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT +"$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT || { echo " configure failed" exit 1 } diff --git a/common/Makefile.in b/common/Makefile.in index 264fd0888ffe48f2ade4ef47b583eaf81f66713f..3744865859e2b2d19746c84b87d1372cde0241bb 100644 --- a/common/Makefile.in +++ b/common/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,14 +79,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = common -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ChangeLog \ + README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -95,21 +122,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -117,9 +151,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -314,6 +368,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -537,22 +592,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -567,57 +625,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -633,12 +646,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -650,15 +658,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -667,6 +671,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -827,22 +846,20 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/common/README b/common/README new file mode 100644 index 0000000000000000000000000000000000000000..83a1b887deafa5f012df0393f87a7e6ee9563173 --- /dev/null +++ b/common/README @@ -0,0 +1,255 @@ +GStreamer @SERIES_VERSION@ + +WHAT IT IS +---------- + +This is GStreamer, a framework for streaming media. + +WHERE TO START +-------------- + +We have a website at +http://gstreamer.freedesktop.org/ + +You should start by going through our FAQ at +http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/ + +There is more documentation; go to +http://gstreamer.freedesktop.org/documentation + +You can subscribe to our mailing lists; see the website for details. + +We track bugs in GNOME's bugzilla; see the website for details. + +You can join us on IRC - #gstreamer on irc.freenode.org + +GStreamer 1.0 series +-------------------- + +Starring + + GSTREAMER + +The core around which all other modules revolve. Base functionality and +libraries, some essential elements, documentation, and testing. + + BASE + +A well-groomed and well-maintained collection of GStreamer plug-ins and +elements, spanning the range of possible types of elements one would want +to write for GStreamer. + +And introducing, for the first time ever, on the development screen ... + + THE GOOD + + --- "Such ingratitude. After all the times I've saved your life." + +A collection of plug-ins you'd want to have right next to you on the +battlefield. Shooting sharp and making no mistakes, these plug-ins have it +all: good looks, good code, and good licensing. Documented and dressed up +in tests. If you're looking for a role model to base your own plug-in on, +here it is. + +If you find a plot hole or a badly lip-synced line of code in them, +let us know - it is a matter of honour for us to ensure Blondie doesn't look +like he's been walking 100 miles through the desert without water. + + THE UGLY + + --- "When you have to shoot, shoot. Don't talk." + +There are times when the world needs a color between black and white. +Quality code to match the good's, but two-timing, backstabbing and ready to +sell your freedom down the river. These plug-ins might have a patent noose +around their neck, or a lock-up license, or any other problem that makes you +think twice about shipping them. + +We don't call them ugly because we like them less. Does a mother love her +son less because he's not as pretty as the other ones ? No - she commends +him on his great personality. These plug-ins are the life of the party. +And we'll still step in and set them straight if you report any unacceptable +behaviour - because there are two kinds of people in the world, my friend: +those with a rope around their neck and the people who do the cutting. + + THE BAD + + --- "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. + +The Lowdown +----------- + + --- "I've never seen so many plug-ins wasted so badly." + +GStreamer Plug-ins has grown so big that it's hard to separate the wheat from +the chaff. Also, distributors have brought up issues about the legal status +of some of the plug-ins we ship. To remedy this, we've divided the previous +set of available plug-ins into four modules: + +- gst-plugins-base: a small and fixed set of plug-ins, covering a wide range + of possible types of elements; these are continuously kept up-to-date + with any core changes during the development series. + + - We believe distributors can safely ship these plug-ins. + - People writing elements should base their code on these elements. + - These elements come with examples, documentation, and regression tests. + +- gst-plugins-good: a set of plug-ins that we consider to have good quality + code, correct functionality, our preferred license (LGPL for the plug-in + code, LGPL or LGPL-compatible for the supporting library). + + - We believe distributors can safely ship these plug-ins. + - People writing elements should base their code on these elements. + +- gst-plugins-ugly: a set of plug-ins that have good quality and correct + functionality, but distributing them might pose problems. The license + on either the plug-ins or the supporting libraries might not be how we'd + like. The code might be widely known to present patent problems. + + - Distributors should check if they want/can ship these plug-ins. + - People writing elements should base their code on these elements. + +- gst-plugins-bad: 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. + +PLATFORMS +--------- + +- Linux is of course fully supported +- FreeBSD is reported to work; other BSDs should work too +- Solaris is reported to work; a specific sunaudiosink plugin has been written +- MacOSX works, binary 1.x packages can be built using the cerbero build tool +- Windows works; binary 1.x packages can be built using the cerbero build tool + - MSys/MinGW builds + - Microsoft Visual Studio builds are not yet available or supported +- Android works, binary 1.x packages can be built using the cerbero build tool +- iOS works + +INSTALLING FROM PACKAGES +------------------------ + +You should always prefer installing from packages first. GStreamer is +well-maintained for a number of distributions, including Fedora, Debian, +Ubuntu, Mandrake, Gentoo, ... + +Only in cases where you: +- want to hack on GStreamer +- want to verify that a bug has been fixed +- do not have a sane distribution +should you choose to build from source tarballs or git. + +Find more information about the various packages at +http://gstreamer.freedesktop.org/download/ + +COMPILING FROM SOURCE TARBALLS +------------------------------ + +- again, make sure that you really need to install from source ! + If GStreamer is one of your first projects ever that you build from source, + consider taking on an easier project. + +- check output of ./configure --help to see if any options apply to you +- run + ./configure + make + + to build GStreamer. +- if you want to install it (not required, but what you usually want to do), run + make install + +- try out a simple test: + gst-launch -v fakesrc num_buffers=5 ! fakesink + (If you didn't install GStreamer, prefix gst-launch with tools/) + + If it outputs a bunch of messages from fakesrc and fakesink, everything is + ok. + + If it did not work, keep in mind that you might need to adjust the + PATH and/or LD_LIBRARY_PATH environment variables to make the system + find GStreamer in the prefix where you installed (by default that is /usr/local). + +- After this, you're ready to install gst-plugins, which will provide the + functionality you're probably looking for by now, so go on and read + that README. + +COMPILING FROM GIT +------------------ + +When building from git sources, you will need to run autogen.sh to generate +the build system files. + +You will need a set of additional tools typical for building from git, +including: +- autoconf +- automake +- libtool + +autogen.sh will check for recent enough versions and complain if you don't have +them. You can also specify specific versions of automake and autoconf with +--with-automake and --with-autoconf + +Check autogen.sh options by running autogen.sh --help + +autogen.sh can pass on arguments to configure + +When you have done this once, you can use autoregen.sh to re-autogen with +the last passed options as a handy shortcut. Use it. + +After the autogen.sh stage, you can follow the directions listed in +"COMPILING FROM SOURCE" + +You can also run your whole git stack uninstalled in your home directory, +so that you can quickly test changes without affecting your system setup or +interfering with GStreamer installed from packages. Many GStreamer developers +use an uninstalled setup for their work. + +There is a 'create-uninstalled-setup.sh' script in + + http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/ + +to easily create an uninstalled setup from scratch. + + +PLUG-IN DEPENDENCIES AND LICENSES +--------------------------------- + +GStreamer is developed under the terms of the LGPL (see LICENSE file for +details). Some of our plug-ins however rely on libraries which are available +under other licenses. This means that if you are distributing an application +which has a non-GPL compatible license (for instance a closed-source +application) with GStreamer, you have to make sure not to distribute GPL-linked +plug-ins. + +When using GPL-linked plug-ins, GStreamer is for all practical reasons +under the GPL itself. + +HISTORY +------- + +The fundamental design comes from the video pipeline at Oregon Graduate +Institute, as well as some ideas from DirectMedia. It's based on plug-ins that +will provide the various codec and other functionality. The interface +hopefully is generic enough for various companies (ahem, Apple) to release +binary codecs for Linux, until such time as they get a clue and release the +source. diff --git a/common/c-to-xml.py b/common/c-to-xml.py index 397c112b8d90bf689994a859ef113e984c07d9aa..7a7a35bca803fd84e2d53bb2b6ea58325d0d73f6 100644 --- a/common/c-to-xml.py +++ b/common/c-to-xml.py @@ -5,6 +5,8 @@ Convert a C program to valid XML to be included in docbook """ +from __future__ import print_function, unicode_literals + import sys import os from xml.sax import saxutils @@ -22,13 +24,13 @@ def main(): content = open(source, "r").read() # print header - print '<?xml version="1.0"?>' - print '<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">' - print - print '<programlisting>' + print ('<?xml version="1.0"?>') + print ('<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">') + print () + print ('<programlisting>') # print content - print saxutils.escape(content).encode('UTF-8') - print '</programlisting>' + print (saxutils.escape(content)) + print ('</programlisting>') main() diff --git a/common/check.mak b/common/check.mak index 0aec84307207348653f8d1c696ac1343d55879d5..285876cb4dce24c818db0711d8e9c0076160c3b2 100644 --- a/common/check.mak +++ b/common/check.mak @@ -11,7 +11,7 @@ check-valgrind: @true endif -LOOPS = 10 +LOOPS ?= 10 # run any given test by running make test.check # if the test fails, run it again at at least debug level 2 @@ -74,6 +74,17 @@ LOOPS = 10 --gen-suppressions=all \ ./$* 2>&1 | tee suppressions.log +# valgrind torture any given test +%.valgrind-torture: % + @for i in `seq 1 $(LOOPS)`; do \ + $(MAKE) $*.valgrind || \ + (echo "Failure after $$i runs"; exit 1) || \ + exit 1; \ + done + @banner="All $(LOOPS) loops passed"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo $$dashes; echo $$banner; echo $$dashes + # valgrind any given test until failure by running make test.valgrind-forever %.valgrind-forever: % @while $(MAKE) $*.valgrind; do \ @@ -86,9 +97,34 @@ LOOPS = 10 $(LIBTOOL) --mode=execute \ gdb $* +%.lcov-reset: + $(MAKE) $*.lcov-run + $(MAKE) $*.lcov-report + +%.lcov: % + $(MAKE) $*.lcov-reset + +if GST_GCOV_ENABLED +%.lcov-clean: + $(MAKE) -C $(top_builddir) lcov-clean + +%.lcov-run: + $(MAKE) $*.lcov-clean + $(MAKE) $*.check + +%.lcov-report: + $(MAKE) -C $(top_builddir) lcov-report +else +%.lcov-run: + echo "Need to reconfigure with --enable-gcov" + +%.lcov-report: + echo "Need to reconfigure with --enable-gcov" +endif + # torture tests torture: $(TESTS) - -rm test-registry.xml + -rm test-registry.* @echo "Torturing tests ..." @for i in `seq 1 $(LOOPS)`; do \ $(MAKE) check || \ @@ -101,7 +137,7 @@ torture: $(TESTS) # forever tests forever: $(TESTS) - -rm test-registry.xml + -rm test-registry.* @echo "Forever tests ..." @while true; do \ $(MAKE) check || \ @@ -127,6 +163,29 @@ valgrind: $(TESTS) false; \ fi +# valgrind all tests until failure +valgrind-forever: $(TESTS) + -rm test-registry.* + @echo "Forever valgrinding tests ..." + @while true; do \ + $(MAKE) valgrind || \ + (echo "Failure"; exit 1) || \ + exit 1; \ + done + +# valgrind torture all tests +valgrind-torture: $(TESTS) + -rm test-registry.* + @echo "Torturing and valgrinding tests ..." + @for i in `seq 1 $(LOOPS)`; do \ + $(MAKE) valgrind || \ + (echo "Failure after $$i runs"; exit 1) || \ + exit 1; \ + done + @banner="All $(LOOPS) loops passed"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo $$dashes; echo $$banner; echo $$dashes + # valgrind all tests and generate suppressions valgrind.gen-suppressions: $(TESTS) @echo "Valgrinding tests ..." @@ -166,10 +225,13 @@ help: @echo "make (dir)/(test).gdb -- start up gdb for the given test" @echo @echo "make valgrind -- valgrind all tests" + @echo "make valgrind-forever -- valgrind all tests forever" + @echo "make valgrind-torture -- valgrind all tests $(LOOPS) times" @echo "make valgrind.gen-suppressions -- generate suppressions for all tests" @echo " and save to suppressions.log" @echo "make (dir)/(test).valgrind -- valgrind the given test" @echo "make (dir)/(test).valgrind-forever -- valgrind the given test forever" + @echo "make (dir)/(test).valgrind-torture -- valgrind the given test $(LOOPS) times" @echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions" @echo " and save to suppressions.log" @echo "make inspect -- inspect all plugin features" diff --git a/common/coverage/coverage-report-entry.pl b/common/coverage/coverage-report-entry.pl index 51c506c9cf1e5d5307c03304b082303f16c99d6f..d0036b328109f1c66eba8aaeac1396959bee3a4d 100644 --- a/common/coverage/coverage-report-entry.pl +++ b/common/coverage/coverage-report-entry.pl @@ -14,7 +14,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA print <<EOF; diff --git a/common/coverage/coverage-report.pl b/common/coverage/coverage-report.pl index ed30f8d7b3dc2dd5073a0c61c41a154f7152107b..18bd6f1ba3468e65a48bfc2bdd0fc6b7ce7e4277 100644 --- a/common/coverage/coverage-report.pl +++ b/common/coverage/coverage-report.pl @@ -14,7 +14,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA use warnings; use strict; diff --git a/common/coverage/coverage-report.xsl b/common/coverage/coverage-report.xsl index b19ebb638b5e906089116b934a4e2750dc5fa23a..3fe124b5c5e48050947ed00a4731cbc9b2dda4ca 100644 --- a/common/coverage/coverage-report.xsl +++ b/common/coverage/coverage-report.xsl @@ -15,7 +15,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> diff --git a/common/coverage/lcov.mak b/common/coverage/lcov.mak index fc1f6b2970993964c74f8a6ce3f1f85585a86c44..b45728a1316ce208cc76e458882ac19b882652b9 100644 --- a/common/coverage/lcov.mak +++ b/common/coverage/lcov.mak @@ -1,5 +1,5 @@ ## .PHONY so it always rebuilds it -.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload +.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload lcov-clean # run lcov from scratch, always lcov-reset: @@ -11,10 +11,14 @@ lcov: $(MAKE) lcov-reset if GST_GCOV_ENABLED -# reset run coverage tests -lcov-run: +# reset lcov stats +lcov-clean: @-rm -rf lcov lcov --directory . --zerocounters + +# reset run coverage tests +lcov-run: + -$(MAKE) lcov-clean -if test -d tests/check; then $(MAKE) -C tests/check inspect; fi -$(MAKE) check diff --git a/common/gst.supp b/common/gst.supp index d7f896103c08e53ad62f0cbc793c37bec719d8d6..05ecbb9d6599198943fc66bcb85f5322f07e503e 100644 --- a/common/gst.supp +++ b/common/gst.supp @@ -3961,3 +3961,18 @@ fun:gst_system_clock_init } +{ + <glib types are singletons> + Memcheck:Leak + fun:calloc + ... + fun:gobject_init_ctor +} + +{ + <quark table is leaked on purpose if it grows too big> + Memcheck:Leak + fun:malloc + ... + fun:g_quark_from*_string +} diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj index 0d69a865c168a3e78cfbd473f9ee363d8c9b7b5d..09039a56c36d00767a61af321e837ba3fa1aeae0 100755 --- a/common/gstdoc-scangobj +++ b/common/gstdoc-scangobj @@ -16,7 +16,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. # # @@ -307,10 +307,10 @@ get_object_types (void) /* output element data */ fputs (" <element>\\n", inspect); fputs (xmlprint(6, "name", gst_plugin_feature_get_name (feature)),inspect); - fputs (xmlprint(6, "longname", gst_element_factory_get_longname (factory)),inspect); - fputs (xmlprint(6, "class", gst_element_factory_get_klass (factory)),inspect); - fputs (xmlprint(6, "description", gst_element_factory_get_description (factory)),inspect); - fputs (xmlprint(6, "author", gst_element_factory_get_author (factory)),inspect); + fputs (xmlprint(6, "longname", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME)),inspect); + fputs (xmlprint(6, "class", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_KLASS)),inspect); + fputs (xmlprint(6, "description", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_DESCRIPTION)),inspect); + fputs (xmlprint(6, "author", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_AUTHOR)),inspect); fputs (" <pads>\\n", inspect); /* output pad-template data */ @@ -354,11 +354,11 @@ get_object_types (void) factory = GST_ELEMENT_FACTORY (l->data); type = gst_element_factory_get_element_type (factory); if (type != 0) { - $debug_log ("adding type for factory %s", gst_element_factory_get_longname (factory)); + $debug_log ("adding type for factory %s", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME)); object_types[i++] = type; } else { g_message ("type info for factory %s not found", - gst_element_factory_get_longname (factory)); + gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME)); } l = g_list_next (l); } diff --git a/common/gtk-doc-plugins.mak b/common/gtk-doc-plugins.mak index 2468cb0833ae69e1fc61b572c0805bf9e2ac93e0..f19e7d7edbd3b99d427b55292fee3987b00cc377 100644 --- a/common/gtk-doc-plugins.mak +++ b/common/gtk-doc-plugins.mak @@ -94,9 +94,9 @@ all-local: html-build.stamp INSPECT_REGISTRY=$(top_builddir)/docs/plugins/inspect-registry.xml INSPECT_ENVIRONMENT=\ LC_ALL=C \ - GST_PLUGIN_SYSTEM_PATH= \ - GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \ - GST_REGISTRY=$(INSPECT_REGISTRY) \ + GST_PLUGIN_SYSTEM_PATH_1_0= \ + GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \ + GST_REGISTRY_1_0=$(INSPECT_REGISTRY) \ PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ $(INSPECT_EXTRA_ENVIRONMENT) @@ -222,10 +222,7 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ - cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) - @mv html/index.sgml html/index.sgml.bak - @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml - @rm -f html/index.sgml.bak + cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE)-@GST_API_VERSION@ $(DOC_MAIN_SGML_FILE) @rm -f html/$(DOC_MAIN_SGML_FILE) @rm -rf html/xml @rm -f html/version.entities @@ -289,9 +286,9 @@ install-data-local: $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ done; \ fi; \ - echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \ - if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ - $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \ + if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \ + $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \ diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak index a1e07dc883be519a7d6f9ecbabf3d5955aae8a16..9d76889e4e7311693529c1b31611c39f03b56926 100644 --- a/common/gtk-doc.mak +++ b/common/gtk-doc.mak @@ -81,9 +81,9 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) --ignore-headers="$(IGNORE_HFILES)" @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then \ echo " DOC Introspecting gobjects"; \ - GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd` \ - GST_PLUGIN_PATH= \ - GST_REGISTRY=doc-registry.xml \ + GST_PLUGIN_SYSTEM_PATH_1_0=`cd $(top_builddir) && pwd` \ + GST_PLUGIN_PATH_1_0= \ + GST_REGISTRY_1_0=doc-registry.xml \ $(GTKDOC_EXTRA_ENVIRONMENT) \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" \ @@ -130,10 +130,7 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) if test "$(?)" = "0"; then \ mkhtml_options=--path="$(abs_srcdir)"; \ fi; \ - cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) - @mv html/index.sgml html/index.sgml.bak - @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml - @rm -f html/index.sgml.bak + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE)-@GST_API_VERSION@ ../$(DOC_MAIN_SGML_FILE) @rm -rf html/xml @rm -f version.entities @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html ) @@ -189,9 +186,9 @@ install-data-local: echo '-- Installing '$$i ; \ $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ done; \ - echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \ - if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ - $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \ + if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \ + $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \ diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in index b42ef2b03424ef8b97c9483060f37958d0a648eb..03507ace20ff1076ab1bf5f10dee6e293ffb1152 100644 --- a/common/m4/Makefile.in +++ b/common/m4/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,14 +79,13 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = common/m4 -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -95,12 +121,18 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -108,6 +140,7 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AALIB_CFLAGS = @AALIB_CFLAGS@ AALIB_CONFIG = @AALIB_CONFIG@ @@ -274,6 +307,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -515,11 +549,11 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -655,15 +689,16 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/common/m4/as-docbook.m4 b/common/m4/as-docbook.m4 index 8a1b32a99e3112614d116305ead6d0b0510c8b61..2e270504b45b360c9cf87625cf4125981caecb6d 100644 --- a/common/m4/as-docbook.m4 +++ b/common/m4/as-docbook.m4 @@ -14,7 +14,19 @@ AC_DEFUN([AS_DOCBOOK], TYPE_UC=XML DOCBOOK_VERSION=4.1.2 - if test ! -f /etc/xml/catalog; then + if test -n "$XML_CATALOG_FILES"; then + oldIFS=$IFS + IFS=' ' + for xml_catalog_file in $XML_CATALOG_FILES; do + if test -f $xml_catalog_file; then + XML_CATALOG=$xml_catalog_file + CAT_ENTRY_START='<!--' + CAT_ENTRY_END='-->' + break + fi + done + IFS=$oldIFS + elif test ! -f /etc/xml/catalog; then for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/ /usr/local/share/xsl/docbook ; do if test -d "$i"; then diff --git a/common/m4/gst-check.m4 b/common/m4/gst-check.m4 index cba7e96ef9863998a061f645d392d919d2e37713..42770532e5e12c5043f996c827b2b20b651b9547 100644 --- a/common/m4/gst-check.m4 +++ b/common/m4/gst-check.m4 @@ -266,29 +266,29 @@ AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_BAD], ]) dnl =========================================================================== -dnl AG_GST_CHECK_GST_PLUGINS_FFMPEG([GST-API_VERSION], [MIN-VERSION]) +dnl AG_GST_CHECK_GST_PLUGINS_LIBAV([GST-API_VERSION], [MIN-VERSION]) dnl -dnl Will set GST_PLUGINS_FFMPEG_DIR for use in Makefile.am. Note that this will -dnl only be set in an uninstalled setup, since -ffmpeg ships no .pc file and in +dnl Will set GST_PLUGINS_LIBAV_DIR for use in Makefile.am. Note that this will +dnl only be set in an uninstalled setup, since -libav ships no .pc file and in dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway. dnl =========================================================================== -AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_FFMPEG], +AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_LIBAV], [ - AG_GST_CHECK_MODULES(GST_PLUGINS_FFMPEG, gstreamer-plugins-ffmpeg-[$1], [$2], - [GStreamer FFmpeg Plugins], [no]) + AG_GST_CHECK_MODULES(GST_PLUGINS_LIBAV, gstreamer-plugins-libav-[$1], [$2], + [GStreamer Libav Plugins], [no]) - if test "x$HAVE_GST_PLUGINS_FFMPEG" = "xyes"; then - dnl check for where ffmpeg plugins got installed + if test "x$HAVE_GST_PLUGINS_LIBAV" = "xyes"; then + dnl check for where libav plugins got installed dnl this is used for unit tests dnl allow setting before calling this macro to override - if test -z $GST_PLUGINS_FFMPEG_DIR; then - GST_PLUGINS_FFMPEG_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-ffmpeg-[$1]` - if test -z $GST_PLUGINS_FFMPEG_DIR; then - AC_MSG_ERROR([no pluginsdir set in GStreamer FFmpeg Plugins pkg-config file]) + if test -z $GST_PLUGINS_LIBAV_DIR; then + GST_PLUGINS_LIBAV_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-libav-[$1]` + if test -z $GST_PLUGINS_LIBAV_DIR; then + AC_MSG_ERROR([no pluginsdir set in GStreamer Libav Plugins pkg-config file]) fi fi - GST_PLUGINS_FFMPEG_DIR="$GST_PLUGINS_FFMPEG_DIR/ext/ffmpeg" - AC_MSG_NOTICE([using GStreamer FFmpeg Plugins in $GST_PLUGINS_FFMPEG_DIR]) - AC_SUBST(GST_PLUGINS_FFMPEG_DIR) + GST_PLUGINS_LIBAV_DIR="$GST_PLUGINS_LIBAV_DIR/ext/libav" + AC_MSG_NOTICE([using GStreamer Libav Plugins in $GST_PLUGINS_LIBAV_DIR]) + AC_SUBST(GST_PLUGINS_LIBAV_DIR) fi ]) diff --git a/common/m4/gst-doc.m4 b/common/m4/gst-doc.m4 index 871c346e1e1e5f012cdf0bc5f0da2e817c03abc5..5d3f0fd8f51c3f47a52edf5b018bfdc005552765 100644 --- a/common/m4/gst-doc.m4 +++ b/common/m4/gst-doc.m4 @@ -20,34 +20,10 @@ AC_DEFUN([AG_GST_DOCBOOK_CHECK], dnl check for docbook tools AC_CHECK_PROG(HAVE_DOCBOOK2PS, docbook2ps, yes, no) - AC_CHECK_PROG(HAVE_DOCBOOK2HTML, docbook2html, yes, no) + AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, yes, no) AC_CHECK_PROG(HAVE_JADETEX, jadetex, yes, no) AC_CHECK_PROG(HAVE_PS2PDF, ps2pdf, yes, no) - # -V option appeared in 0.6.10 - docbook2html_min_version=0.6.10 - if test "x$HAVE_DOCBOOK2HTML" != "xno"; then - docbook2html_version=`docbook2html --version` - AC_MSG_CHECKING([docbook2html version ($docbook2html_version) >= $docbook2html_min_version]) - if perl -w <<EOF - (\$min_version_major, \$min_version_minor, \$min_version_micro ) = "$docbook2html_min_version" =~ /(\d+)\.(\d+)\.(\d+)/; - (\$docbook2html_version_major, \$docbook2html_version_minor, \$docbook2html_version_micro ) = "$docbook2html_version" =~ /(\d+)\.(\d+)\.(\d+)/; - exit (((\$docbook2html_version_major > \$min_version_major) || - ((\$docbook2html_version_major == \$min_version_major) && - (\$docbook2html_version_minor >= \$min_version_minor)) || - ((\$docbook2html_version_major == \$min_version_major) && - (\$docbook2html_version_minor >= \$min_version_minor) && - (\$docbook2html_version_micro >= \$min_version_micro))) - ? 0 : 1); -EOF - then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - HAVE_DOCBOOK2HTML=no - fi - fi - dnl check if we can process docbook stuff AS_DOCBOOK(have_docbook=yes, have_docbook=no) @@ -55,45 +31,14 @@ EOF AC_CHECK_PROG(HAVE_DVIPS, dvips, yes, no) AC_CHECK_PROG(HAVE_XMLLINT, xmllint, yes, no) - dnl check for image conversion tools - AC_CHECK_PROG(HAVE_FIG2DEV, fig2dev, yes, no) - if test "x$HAVE_FIG2DEV" = "xno" ; then - AC_MSG_WARN([Did not find fig2dev (from xfig), images will not be generated.]) - fi - - dnl The following is a hack: if fig2dev doesn't display an error message - dnl for the desired type, we assume it supports it. - HAVE_FIG2DEV_EPS=no - if test "x$HAVE_FIG2DEV" = "xyes" ; then - fig2dev_quiet=`fig2dev -L eps </dev/null 2>&1 >/dev/null` - if test "x$fig2dev_quiet" = "x" ; then - HAVE_FIG2DEV_EPS=yes - fi - fi - HAVE_FIG2DEV_PNG=no - if test "x$HAVE_FIG2DEV" = "xyes" ; then - fig2dev_quiet=`fig2dev -L png </dev/null 2>&1 >/dev/null` - if test "x$fig2dev_quiet" = "x" ; then - HAVE_FIG2DEV_PNG=yes - fi - fi - HAVE_FIG2DEV_PDF=no - if test "x$HAVE_FIG2DEV" = "xyes" ; then - fig2dev_quiet=`fig2dev -L pdf </dev/null 2>&1 >/dev/null` - if test "x$fig2dev_quiet" = "x" ; then - HAVE_FIG2DEV_PDF=yes - fi - fi - AC_CHECK_PROG(HAVE_PNGTOPNM, pngtopnm, yes, no) AC_CHECK_PROG(HAVE_PNMTOPS, pnmtops, yes, no) AC_CHECK_PROG(HAVE_EPSTOPDF, epstopdf, yes, no) dnl check if we can generate HTML - if test "x$HAVE_DOCBOOK2HTML" = "xyes" && \ + if test "x$HAVE_XSLTPROC" = "xyes" && \ test "x$enable_docbook" = "xyes" && \ - test "x$HAVE_XMLLINT" = "xyes" && \ - test "x$HAVE_FIG2DEV_PNG" = "xyes"; then + test "x$HAVE_XMLLINT" = "xyes"; then DOC_HTML=yes AC_MSG_NOTICE(Will output HTML documentation) else @@ -106,7 +51,6 @@ EOF test "x$enable_docbook" = "xyes" && \ test "x$HAVE_XMLLINT" = "xyes" && \ test "x$HAVE_JADETEX" = "xyes" && \ - test "x$HAVE_FIG2DEV_EPS" = "xyes" && \ test "x$HAVE_DVIPS" = "xyes" && \ test "x$HAVE_PNGTOPNM" = "xyes" && \ test "x$HAVE_PNMTOPS" = "xyes"; then diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 index 3f3d565628e35845ae2250089efeddf31d844fef..9a3a92339e2fb24e89a58366dc83989ef30a3c32 100644 --- a/common/m4/gst-glib2.m4 +++ b/common/m4/gst-glib2.m4 @@ -16,7 +16,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK], dnl Check for glib with everything AG_GST_PKG_CHECK_MODULES(GLIB, - glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0) + glib-2.0 >= $GLIB_REQ gobject-2.0 gmodule-no-export-2.0) if test "x$HAVE_GLIB" = "xno"; then AC_MSG_ERROR([This package requires GLib >= $GLIB_REQ to compile.]) @@ -28,7 +28,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK], GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY" dnl Define G_DISABLE_DEPRECATED for GIT versions - if test "x$PACKAGE_VERSION_NANO" = "x1"; then + if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED" fi @@ -39,7 +39,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK], if test "x$enable_gobject_cast_checks" = "xauto"; then dnl For releases, turn off the cast checks - if test "x$PACKAGE_VERSION_NANO" = "x1"; then + if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then enable_gobject_cast_checks=yes else enable_gobject_cast_checks=no @@ -57,7 +57,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK], if test "x$enable_glib_assertions" = "xauto"; then dnl For releases, turn off the assertions - if test "x$PACKAGE_VERSION_NANO" = "x1"; then + if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then enable_glib_assertions=yes else enable_glib_assertions=no diff --git a/common/m4/gst-plugin-docs.m4 b/common/m4/gst-plugin-docs.m4 index dcfd61d867e69bfcf2b331eba06ccbc8bb649655..0e2ab6e3d0374f2ac4e8c6b6795368c3082c5d7c 100644 --- a/common/m4/gst-plugin-docs.m4 +++ b/common/m4/gst-plugin-docs.m4 @@ -1,4 +1,4 @@ -dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION],[MINIMUM-PYTHON-VERSION]) +dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION]) dnl dnl checks for prerequisites for the common/mangle-tmpl.py script dnl used when building the plugin documentation @@ -6,13 +6,17 @@ dnl used when building the plugin documentation AC_DEFUN([AG_GST_PLUGIN_DOCS], [ AC_BEFORE([GTK_DOC_CHECK],[$0])dnl check for gtk-doc first - AC_BEFORE([AS_PATH_PYTHON],[$1])dnl find python first + AC_REQUIRE([AM_PATH_PYTHON])dnl find python first build_plugin_docs=no AC_MSG_CHECKING([whether to build plugin documentation]) if test x$enable_gtk_doc = xyes; then - build_plugin_docs=yes - AC_MSG_RESULT([yes]) + if test x$PYTHON != x; then + build_plugin_docs=yes + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no (python not found)]) + fi else AC_MSG_RESULT([no (gtk-doc disabled or not available)]) fi diff --git a/common/mangle-tmpl.py b/common/mangle-tmpl.py index bd4f948edfe58936c75280b9b30088c9275d48ad..51ea8c2e59779ed09dee8a75203d6d0168c1e0fa 100644 --- a/common/mangle-tmpl.py +++ b/common/mangle-tmpl.py @@ -15,6 +15,8 @@ insert/overwrite Short Description and Long Description # read in inspect/*.xml # for every tmpl/element-(name).xml: mangle with details from element +from __future__ import print_function, unicode_literals + import glob import re import sys diff --git a/common/scangobj-merge.py b/common/scangobj-merge.py index 9a1cac90ddd4f5e07f492fb7d16079d00cd11566..4a9f1fc764b1ecd64ededfc276be39db5f5edfff 100755 --- a/common/scangobj-merge.py +++ b/common/scangobj-merge.py @@ -6,6 +6,8 @@ parse, merge and write gstdoc-scanobj files """ +from __future__ import print_function, unicode_literals + import sys import os @@ -76,13 +78,13 @@ class Object: return "<Object %s>" % self.name def add_signal(self, signal, overwrite=True): - if not overwrite and self._signals.has_key(signal.name): - raise IndexError, "signal %s already in %r" % (signal.name, self) + if not overwrite and signal.name in self._signals: + raise IndexError("signal %s already in %r" % (signal.name, self)) self._signals[signal.name] = signal def add_arg(self, arg, overwrite=True): - if not overwrite and self._args.has_key(arg.name): - raise IndexError, "arg %s already in %r" % (arg.name, self) + if not overwrite and arg.name in self._args: + raise IndexError("arg %s already in %r" % (arg.name, self)) self._args[arg.name] = arg class Docable: @@ -106,7 +108,7 @@ class GDoc: lines = open(filename).readlines() self.load_data("".join(lines)) except IOError: - print "WARNING - could not read from %s" % filename + print ("WARNING - could not read from %s" % filename) def save_file(self, filename, backup=False): """ @@ -117,7 +119,7 @@ class GDoc: lines = open(filename).readlines() olddata = "".join(lines) except IOError: - print "WARNING - could not read from %s" % filename + print ("WARNING - could not read from %s" % filename) newdata = self.get_data() if olddata and olddata == newdata: return @@ -161,7 +163,7 @@ class Signals(GDoc): o = nmatch.group('object') debug("Found object", o) debug("Found signal", nmatch.group('signal')) - if not self._objects.has_key(o): + if o not in self._objects: object = Object(o) self._objects[o] = object @@ -222,7 +224,7 @@ class Args(GDoc): o = nmatch.group('object') debug("Found object", o) debug("Found arg", nmatch.group('arg')) - if not self._objects.has_key(o): + if o not in self._objects: object = Object(o) self._objects[o] = object @@ -233,7 +235,7 @@ class Args(GDoc): arg = Arg(**dict) self._objects[o].add_arg(arg) else: - print "ERROR: could not match arg from block %s" % block + print ("ERROR: could not match arg from block %s" % block) def get_data(self): lines = [] diff --git a/common/win32.mak b/common/win32.mak index c343a04953ecbdf8f515915a469e72818bc72404..30e347e0bdac626b879d117c15bc5752453aa7c8 100644 --- a/common/win32.mak +++ b/common/win32.mak @@ -51,11 +51,17 @@ check-exports: if test $$fail != 0; then \ echo '-----------------------------------------------------------'; \ echo 'Run this to update the .def files:'; \ - echo 'make check-exports 2>&1 | patch -p1'; \ + echo 'make update-exports'; \ echo '-----------------------------------------------------------'; \ fi; \ exit $$fail +update-exports: + make check-exports 2>&1 | patch -p1 + git add win32/common/libgst*.def + git diff --cached -- win32/common/ + echo '^^^--- updated and staged changes above' + # complain about nonportable printf format strings (%lld, %llu, %zu etc.) check-nonportable-print-format: @fail=0 ; \ diff --git a/compile b/compile index 862a14e8c81cca0faa2c7b32ce7ca80777afd88a..b1f4749152a70326fda249f12dbcf90da29348ab 100755 --- a/compile +++ b/compile @@ -1,7 +1,7 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-03-05.13; # UTC +scriptversion=2012-01-04.17; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free # Software Foundation, Inc. @@ -79,48 +79,6 @@ func_file_conv () esac } -# func_cl_dashL linkdir -# Make cl look for libraries in LINKDIR -func_cl_dashL () -{ - func_file_conv "$1" - if test -z "$lib_path"; then - lib_path=$file - else - lib_path="$lib_path;$file" - fi - linker_opts="$linker_opts -LIBPATH:$file" -} - -# func_cl_dashl library -# Do a library search-path lookup for cl -func_cl_dashl () -{ - lib=$1 - found=no - save_IFS=$IFS - IFS=';' - for dir in $lib_path $LIB - do - IFS=$save_IFS - if $shared && test -f "$dir/$lib.dll.lib"; then - found=yes - lib=$dir/$lib.dll.lib - break - fi - if test -f "$dir/$lib.lib"; then - found=yes - lib=$dir/$lib.lib - break - fi - done - IFS=$save_IFS - - if test "$found" != yes; then - lib=$lib.lib - fi -} - # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () @@ -151,34 +109,43 @@ func_cl_wrapper () ;; esac ;; - -I) - eat=1 - func_file_conv "$2" mingw - set x "$@" -I"$file" - shift - ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; - -l) - eat=1 - func_cl_dashl "$2" - set x "$@" "$lib" - shift - ;; -l*) - func_cl_dashl "${1#-l}" - set x "$@" "$lib" + lib=${1#-l} + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + set x "$@" "$dir/$lib.dll.lib" + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + set x "$@" "$dir/$lib.lib" + break + fi + done + IFS=$save_IFS + + test "$found" != yes && set x "$@" "$lib.lib" shift ;; - -L) - eat=1 - func_cl_dashL "$2" - ;; -L*) - func_cl_dashL "${1#-L}" + func_file_conv "${1#-L}" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" ;; -static) shared=false diff --git a/config.h.in b/config.h.in index 6dee8b5f270b69e11e816722afc144d45a2d6d4c..d216d8d7419cadc0da3aaf2d1dfc611e58dc18e5 100644 --- a/config.h.in +++ b/config.h.in @@ -85,6 +85,9 @@ the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE +/* Define to 1 if you have the `clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME + /* Define to 1 if you have the `cosh' function. */ #undef HAVE_COSH @@ -134,6 +137,10 @@ */ #undef HAVE_DCGETTEXT +/* Define to 1 if you have the declaration of `V4L2_MEMORY_DMABUF', and to 0 + if you don't. */ +#undef HAVE_DECL_V4L2_MEMORY_DMABUF + /* Define to enable DirectSound plug-in (used by directsoundsink). */ #undef HAVE_DIRECTSOUND @@ -221,9 +228,6 @@ /* Define to enable Portable Network Graphics library (used by png). */ #undef HAVE_LIBPNG -/* soup gnome integration */ -#undef HAVE_LIBSOUP_GNOME - /* Whether libv4l2 is available for video buffer conversion */ #undef HAVE_LIBV4L2 @@ -329,6 +333,12 @@ /* Defined if the VP8 encoder is available */ #undef HAVE_VP8_ENCODER +/* Defined if the VP9 decoder is available */ +#undef HAVE_VP9_DECODER + +/* Defined if the VP9 encoder is available */ +#undef HAVE_VP9_ENCODER + /* Define to enable VPX decoder (used by vpx). */ #undef HAVE_VPX diff --git a/config.sub b/config.sub index 6205f8423d6aa0bb7c642d8970fa7b41d068317f..c894da45500c4af1bf5688e713a8895622d18182 100755 --- a/config.sub +++ b/config.sub @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. -timestamp='2012-04-18' +timestamp='2012-02-10' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -225,12 +225,6 @@ case $os in -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; -lynx*) os=-lynxos ;; @@ -1543,9 +1537,6 @@ case $basic_machine in c4x-* | tic4x-*) os=-coff ;; - hexagon-*) - os=-elf - ;; tic54x-*) os=-coff ;; diff --git a/configure b/configure index 732fabd138bad89496477613a773041a31824b67..35ba04f53f69b584a82ebe6ab8b8da4632a49741 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.0.8. +# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.1.2. # # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>. # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GStreamer Good Plug-ins' PACKAGE_TARNAME='gst-plugins-good' -PACKAGE_VERSION='1.0.8' -PACKAGE_STRING='GStreamer Good Plug-ins 1.0.8' +PACKAGE_VERSION='1.1.2' +PACKAGE_STRING='GStreamer Good Plug-ins 1.1.2' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer' PACKAGE_URL='' @@ -847,6 +847,8 @@ USE_PLUGIN_EQUALIZER_FALSE USE_PLUGIN_EQUALIZER_TRUE USE_PLUGIN_EFFECTV_FALSE USE_PLUGIN_EFFECTV_TRUE +USE_PLUGIN_DTMF_FALSE +USE_PLUGIN_DTMF_TRUE USE_PLUGIN_DEINTERLACE_FALSE USE_PLUGIN_DEINTERLACE_TRUE USE_PLUGIN_DEBUGUTILS_FALSE @@ -935,6 +937,7 @@ GST_HAVE_MMAP_FALSE GST_HAVE_MMAP_TRUE HAVE_GCC_ASM_FALSE HAVE_GCC_ASM_TRUE +LIBRT LIBM ENABLE_PLUGIN_DOCS_FALSE ENABLE_PLUGIN_DOCS_TRUE @@ -1101,10 +1104,6 @@ GST_AGE GST_REVISION GST_CURRENT GST_API_VERSION -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE @@ -1113,6 +1112,10 @@ PACKAGE_VERSION_NANO PACKAGE_VERSION_MICRO PACKAGE_VERSION_MINOR PACKAGE_VERSION_MAJOR +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V am__untar am__tar AMTAR @@ -1189,8 +1192,8 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking -enable_maintainer_mode enable_silent_rules +enable_maintainer_mode enable_static enable_shared with_pic @@ -1242,6 +1245,7 @@ enable_avi enable_cutter enable_debugutils enable_deinterlace +enable_dtmf enable_effectv enable_equalizer enable_flv @@ -1334,6 +1338,7 @@ CCAS CCASFLAGS GTKDOC_DEPS_CFLAGS GTKDOC_DEPS_LIBS +PYTHON GLIB_CFLAGS GLIB_LIBS GIO_CFLAGS @@ -1941,7 +1946,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GStreamer Good Plug-ins 1.0.8 to adapt to many kinds of systems. +\`configure' configures GStreamer Good Plug-ins 1.1.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2017,7 +2022,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.0.8:";; + short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.1.2:";; esac cat <<\_ACEOF @@ -2025,16 +2030,19 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-maintainer-mode disable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0') + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --disable-maintainer-mode + disable make rules and dependencies not useful (and + sometimes confusing) to the casual installer --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths @@ -2067,6 +2075,7 @@ Optional Features: --disable-cutter disable dependency-less cutter plugin --disable-debugutils disable dependency-less debugutils plugin --disable-deinterlace disable dependency-less deinterlace plugin + --disable-dtmf disable dependency-less dtmf plugin --disable-effectv disable dependency-less effectv plugin --disable-equalizer disable dependency-less equalizer plugin --disable-flv disable dependency-less flv plugin @@ -2199,6 +2208,7 @@ Some influential environment variables: C compiler flags for GTKDOC_DEPS, overriding pkg-config GTKDOC_DEPS_LIBS linker flags for GTKDOC_DEPS, overriding pkg-config + PYTHON the Python interpreter GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config GLIB_LIBS linker flags for GLIB, overriding pkg-config GIO_CFLAGS C compiler flags for GIO, overriding pkg-config @@ -2372,7 +2382,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GStreamer Good Plug-ins configure 1.0.8 +GStreamer Good Plug-ins configure 1.1.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3183,7 +3193,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GStreamer Good Plug-ins $as_me 1.0.8, which was +It was created by GStreamer Good Plug-ins $as_me 1.1.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3679,7 +3689,7 @@ test -n "$target_alias" && -am__api_version='1.11' +am__api_version='1.13' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -3776,9 +3786,6 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -3789,32 +3796,40 @@ case `pwd` in esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$2" = conftest.file ) then @@ -3826,6 +3841,16 @@ Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -3848,12 +3873,12 @@ if test x"${MISSING+set}" != xset; then esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then @@ -3865,10 +3890,10 @@ if test x"${install_sh}" != xset; then esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. +# will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. @@ -4007,12 +4032,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -4095,6 +4114,45 @@ else fi rmdir .tst 2>/dev/null +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." @@ -4117,7 +4175,7 @@ fi # Define the identity of the package. PACKAGE='gst-plugins-good' - VERSION='1.0.8' + VERSION='1.1.2' cat >>confdefs.h <<_ACEOF @@ -4145,6 +4203,12 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +mkdir_p='$(MKDIR_P)' + # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used @@ -4152,86 +4216,125 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} AMTAR='$${TAR-tar}' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 -$as_echo_n "checking how to create a ustar tar archive... " >&6; } -# Loop over all known methods to create a tar archive until one works. +# We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar plaintar pax cpio none' -_am_tools=${am_cv_prog_tar_ustar-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - { echo "$as_me:$LINENO: $_am_tar --version" >&5 + +# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 +$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } + if test $am_uid -le $am_max_uid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 +$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } + if test $am_gid -le $am_max_gid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 ($_am_tar --version) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break - done - am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x ustar -w "$$tardir"' - am__tar_='pax -L -x ustar -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H ustar -L' - am__tar_='find "$tardir" -print | cpio -o -H ustar -L' - am__untar='cpio -i -H ustar -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_ustar}" && break + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } - rm -rf conftest.dir - if test -s conftest.tar; then - { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5 + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5 ($am__untar <conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi -done -rm -rf conftest.dir + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir -if ${am_cv_prog_tar_ustar+:} false; then : + if ${am_cv_prog_tar_ustar+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_ustar=$_am_tool fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 $as_echo "$am_cv_prog_tar_ustar" >&6; } @@ -4240,9 +4343,10 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; } - PACKAGE_VERSION_MAJOR=$(echo 1.0.8 | cut -d'.' -f1) - PACKAGE_VERSION_MINOR=$(echo 1.0.8 | cut -d'.' -f2) - PACKAGE_VERSION_MICRO=$(echo 1.0.8 | cut -d'.' -f3) + + PACKAGE_VERSION_MAJOR=$(echo 1.1.2 | cut -d'.' -f1) + PACKAGE_VERSION_MINOR=$(echo 1.1.2 | cut -d'.' -f2) + PACKAGE_VERSION_MICRO=$(echo 1.1.2 | cut -d'.' -f3) @@ -4253,7 +4357,7 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5 $as_echo_n "checking nano version... " >&6; } - NANO=$(echo 1.0.8 | cut -d'.' -f4) + NANO=$(echo 1.1.2 | cut -d'.' -f4) if test x"$NANO" = x || test "x$NANO" = "x0" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5 @@ -4312,10 +4416,10 @@ if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=0;; +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 @@ -4475,7 +4579,7 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -5319,8 +5423,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -5355,16 +5459,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -5373,8 +5477,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -5382,7 +5486,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -8844,10 +8948,10 @@ fi done - GST_CURRENT=7 + GST_CURRENT=102 GST_REVISION=0 - GST_AGE=7 - GST_LIBVERSION=7:0:7 + GST_AGE=102 + GST_LIBVERSION=102:0:102 @@ -13172,8 +13276,8 @@ CC="$lt_save_CC" -GST_REQ=1.0.0 -GSTPB_REQ=1.0.0 +GST_REQ=1.1.2 +GSTPB_REQ=1.1.2 @@ -13239,6 +13343,13 @@ ACLOCAL_AMFLAGS="-I m4 -I common/m4" +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. @@ -17141,8 +17252,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -17177,16 +17288,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -17195,8 +17306,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -17204,7 +17315,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -17819,8 +17930,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -17855,16 +17966,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -17873,8 +17984,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -17882,7 +17993,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -21571,8 +21682,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -21605,16 +21716,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -21623,8 +21734,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -21632,7 +21743,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -21832,8 +21943,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -21866,16 +21977,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -21884,8 +21995,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -21893,7 +22004,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -22423,27 +22534,16 @@ fi - PYTHON_CANDIDATES="python python2.2 python2.1 python2.0 python2 \ - python1.6 python1.5" - { $as_echo "$as_me:${as_lineno-$LINENO}: Looking for Python version >= 2.1" >&5 -$as_echo "$as_me: Looking for Python version >= 2.1" >&6;} - prog=" -import sys, string -minver = '2.1' -# split string by '.' and convert to numeric -minver_info = map(string.atoi, string.split(minver, '.')) -# we can now do comparisons on the two lists: -if sys.version_info >= tuple(minver_info): - sys.exit(0) -else: - sys.exit(1)" - python_good=false - for python_candidate in $PYTHON_CANDIDATES; do - unset PYTHON - # Extract the first word of "$python_candidate", so it can be a program name with args. -set dummy $python_candidate; ac_word=$2 + + + # Find any Python interpreter. + if test -z "$PYTHON"; then + for ac_prog in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON+:} false; then : @@ -22481,80 +22581,178 @@ else $as_echo "no" >&6; } fi - 1> /dev/null 2> /dev/null - if test "x$PYTHON" = "x"; then continue; fi + test -n "$PYTHON" && break +done +test -n "$PYTHON" || PYTHON=":" - if $PYTHON -c "$prog" 1>&5 2>&5; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$PYTHON\":" >&5 -$as_echo_n "checking \"$PYTHON\":... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: okay" >&5 -$as_echo "okay" >&6; } - python_good=true - break; - else - unset ac_cv_path_PYTHON - fi - done + fi + am_display_PYTHON=python - if test "$python_good" != "true"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No suitable version of python found" >&5 -$as_echo "$as_me: WARNING: No suitable version of python found" >&2;} - PYTHON= + if test "$PYTHON" = :; then + as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking local Python configuration" >&5 -$as_echo_n "checking local Python configuration... " >&6; } - - - - PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 +$as_echo_n "checking for $am_display_PYTHON version... " >&6; } +if ${am_cv_python_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 +$as_echo "$am_cv_python_version" >&6; } + PYTHON_VERSION=$am_cv_python_version PYTHON_PREFIX='${prefix}' - PYTHON_EXEC_PREFIX='${exec_prefix}' - PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` - - + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 +$as_echo_n "checking for $am_display_PYTHON platform... " >&6; } +if ${am_cv_python_platform+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 +$as_echo "$am_cv_python_platform" >&6; } + PYTHON_PLATFORM=$am_cv_python_platform + # Just factor out some code duplication. + am_python_setup_sysconfig="\ +import sys +# Prefer sysconfig over distutils.sysconfig, for better compatibility +# with python 3.x. See automake bug#10227. +try: + import sysconfig +except ImportError: + can_use_sysconfig = 0 +else: + can_use_sysconfig = 1 +# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: +# <https://github.com/pypa/virtualenv/issues/118> +try: + from platform import python_implementation + if python_implementation() == 'CPython' and sys.version[:3] == '2.7': + can_use_sysconfig = 0 +except ImportError: + pass" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 +$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } +if ${am_cv_python_pythondir+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$prefix" = xNONE + then + am_py_prefix=$ac_default_prefix + else + am_py_prefix=$prefix + fi + am_cv_python_pythondir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pythondir in + $am_py_prefix*) + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` + ;; + *) + case $am_py_prefix in + /usr|/System*) ;; + *) + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac - pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 +$as_echo "$am_cv_python_pythondir" >&6; } + pythondir=$am_cv_python_pythondir pkgpythondir=\${pythondir}/$PACKAGE + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 +$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } +if ${am_cv_python_pyexecdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$exec_prefix" = xNONE + then + am_py_exec_prefix=$am_py_prefix + else + am_py_exec_prefix=$exec_prefix + fi + am_cv_python_pyexecdir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pyexecdir in + $am_py_exec_prefix*) + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` + ;; + *) + case $am_py_exec_prefix in + /usr|/System*) ;; + *) + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac - pyexecdir=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 +$as_echo "$am_cv_python_pyexecdir" >&6; } + pyexecdir=$am_cv_python_pyexecdir pkgpyexecdir=\${pyexecdir}/$PACKAGE - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looks good" >&5 -$as_echo "looks good" >&6; } + fi + build_plugin_docs=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build plugin documentation" >&5 $as_echo_n "checking whether to build plugin documentation... " >&6; } if test x$enable_gtk_doc = xyes; then - build_plugin_docs=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + if test x$PYTHON != x; then + build_plugin_docs=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (python not found)" >&5 +$as_echo "no (python not found)" >&6; } + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (gtk-doc disabled or not available)" >&5 $as_echo "no (gtk-doc disabled or not available)" >&6; } @@ -22705,6 +22903,66 @@ esac +for ac_func in clock_gettime +do : + ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" +if test "x$ac_cv_func_clock_gettime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOCK_GETTIME 1 +_ACEOF + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 +$as_echo_n "checking for clock_gettime in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_clock_gettime=yes +else + ac_cv_lib_rt_clock_gettime=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 +$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } +if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : + + $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h + + LIBRT="-lrt" + + +fi + + +fi +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } @@ -23741,7 +23999,7 @@ GLIB_REQ=2.32.0 - which="glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0" + which="glib-2.0 >= $GLIB_REQ gobject-2.0 gmodule-no-export-2.0" required="no" @@ -23842,7 +24100,7 @@ fi GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY" - if test "x$PACKAGE_VERSION_NANO" = "x1"; then + if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED" fi @@ -23855,7 +24113,7 @@ fi if test "x$enable_gobject_cast_checks" = "xauto"; then - if test "x$PACKAGE_VERSION_NANO" = "x1"; then + if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then enable_gobject_cast_checks=yes else enable_gobject_cast_checks=no @@ -23875,7 +24133,7 @@ fi if test "x$enable_glib_assertions" = "xauto"; then - if test "x$PACKAGE_VERSION_NANO" = "x1"; then + if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then enable_glib_assertions=yes else enable_glib_assertions=no @@ -24089,7 +24347,7 @@ _ACEOF - ORC_REQ=0.4.16 + ORC_REQ=0.4.17 # Check whether --enable-orc was given. if test "${enable_orc+set}" = set; then : @@ -27206,6 +27464,49 @@ fi + GST_PLUGINS_ALL="$GST_PLUGINS_ALL dtmf" + + + + # Check whether --enable-dtmf was given. +if test "${enable_dtmf+set}" = set; then : + enableval=$enable_dtmf; + case "${enableval}" in + yes) gst_use_dtmf=yes ;; + no) gst_use_dtmf=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dtmf" "$LINENO" 5 ;; + esac + +else + gst_use_dtmf=yes +fi + + if test x$gst_use_dtmf = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin dtmf" >&5 +$as_echo "$as_me: disabling dependency-less plugin dtmf" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS dtmf" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " dtmf " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED dtmf" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " dtmf " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dtmf / /'` + fi + if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " dtmf " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dtmf / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " dtmf " > /dev/null; then + USE_PLUGIN_DTMF_TRUE= + USE_PLUGIN_DTMF_FALSE='#' +else + USE_PLUGIN_DTMF_TRUE='#' + USE_PLUGIN_DTMF_FALSE= +fi + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL effectv" @@ -29898,6 +30199,35 @@ fi fi fi +# Check if v4l2 support dmabuf +if test x$HAVE_GST_V4L2 = xyes; then + ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_DMABUF" "ac_cv_have_decl_V4L2_MEMORY_DMABUF" " + #include <sys/types.h> + #ifdef __sun /* Solaris */ + #include <sys/types.h> + #include <sys/videodev2.h> + #elif __FreeBSD__ + #include <linux/videodev2.h> + #else /* Linux */ + #include <linux/types.h> + #define _LINUX_TIME_H + #define __user + #include <linux/videodev2.h> + #endif + +" +if test "x$ac_cv_have_decl_V4L2_MEMORY_DMABUF" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_V4L2_MEMORY_DMABUF $ac_have_decl +_ACEOF + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } @@ -33280,7 +33610,7 @@ done - which="libpulse >= 1.0" + which="libpulse >= 2.0" required="no" @@ -34307,146 +34637,6 @@ if test x$USE_SOUP = xyes; then HAVE_SOUP=no -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUP" >&5 -$as_echo_n "checking for SOUP... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$SOUP_CFLAGS"; then - pkg_cv_SOUP_CFLAGS="$SOUP_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-gnome-2.4 >= 2.3.2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libsoup-gnome-2.4 >= 2.3.2") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-gnome-2.4 >= 2.3.2" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$SOUP_LIBS"; then - pkg_cv_SOUP_LIBS="$SOUP_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-gnome-2.4 >= 2.3.2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libsoup-gnome-2.4 >= 2.3.2") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-gnome-2.4 >= 2.3.2" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - SOUP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libsoup-gnome-2.4 >= 2.3.2"` - else - SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-gnome-2.4 >= 2.3.2"` - fi - # Put the nasty error message in config.log where it belongs - echo "$SOUP_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUP" >&5 -$as_echo_n "checking for SOUP... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$SOUP_CFLAGS"; then - pkg_cv_SOUP_CFLAGS="$SOUP_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.26.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.26.1") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.4 >= 2.26.1" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$SOUP_LIBS"; then - pkg_cv_SOUP_LIBS="$SOUP_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.26.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.26.1") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-2.4 >= 2.26.1" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - SOUP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libsoup-2.4 >= 2.26.1"` - else - SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-2.4 >= 2.26.1"` - fi - # Put the nasty error message in config.log where it belongs - echo "$SOUP_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - HAVE_SOUP="no" - -elif test $pkg_failed = untried; then - - HAVE_SOUP="no" - -else - SOUP_CFLAGS=$pkg_cv_SOUP_CFLAGS - SOUP_LIBS=$pkg_cv_SOUP_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_SOUP="yes" -fi - -elif test $pkg_failed = untried; then - - pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUP" >&5 $as_echo_n "checking for SOUP... " >&6; } @@ -34507,13 +34697,9 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - HAVE_SOUP="no" - + HAVE_SOUP="no" elif test $pkg_failed = untried; then - - HAVE_SOUP="no" - + HAVE_SOUP="no" else SOUP_CFLAGS=$pkg_cv_SOUP_CFLAGS SOUP_LIBS=$pkg_cv_SOUP_LIBS @@ -34522,19 +34708,6 @@ $as_echo "yes" >&6; } HAVE_SOUP="yes" fi -else - SOUP_CFLAGS=$pkg_cv_SOUP_CFLAGS - SOUP_LIBS=$pkg_cv_SOUP_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - HAVE_SOUP="yes" - -$as_echo "#define HAVE_LIBSOUP_GNOME 1" >>confdefs.h - - -fi - @@ -35299,6 +35472,8 @@ else $as_echo "yes" >&6; } HAVE_VPX="yes" fi + HAVE_VP8=no + HAVE_VP9=no if test $HAVE_VPX = "yes"; then OLD_LIBS="$LIBS" @@ -35395,6 +35570,98 @@ $as_echo "#define HAVE_VP8_DECODER 1" >>confdefs.h fi + if test "x$BUILD_EXPERIMENTAL" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vpx_codec_vp9_cx_algo in -lvpx" >&5 +$as_echo_n "checking for vpx_codec_vp9_cx_algo in -lvpx... " >&6; } +if ${ac_cv_lib_vpx_vpx_codec_vp9_cx_algo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lvpx $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char vpx_codec_vp9_cx_algo (); +int +main () +{ +return vpx_codec_vp9_cx_algo (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_vpx_vpx_codec_vp9_cx_algo=yes +else + ac_cv_lib_vpx_vpx_codec_vp9_cx_algo=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vpx_vpx_codec_vp9_cx_algo" >&5 +$as_echo "$ac_cv_lib_vpx_vpx_codec_vp9_cx_algo" >&6; } +if test "x$ac_cv_lib_vpx_vpx_codec_vp9_cx_algo" = xyes; then : + + HAVE_VP9=yes + +$as_echo "#define HAVE_VP9_ENCODER 1" >>confdefs.h + + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vpx_codec_vp9_dx_algo in -lvpx" >&5 +$as_echo_n "checking for vpx_codec_vp9_dx_algo in -lvpx... " >&6; } +if ${ac_cv_lib_vpx_vpx_codec_vp9_dx_algo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lvpx $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char vpx_codec_vp9_dx_algo (); +int +main () +{ +return vpx_codec_vp9_dx_algo (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_vpx_vpx_codec_vp9_dx_algo=yes +else + ac_cv_lib_vpx_vpx_codec_vp9_dx_algo=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vpx_vpx_codec_vp9_dx_algo" >&5 +$as_echo "$ac_cv_lib_vpx_vpx_codec_vp9_dx_algo" >&6; } +if test "x$ac_cv_lib_vpx_vpx_codec_vp9_dx_algo" = xyes; then : + + HAVE_VP9=yes + +$as_echo "#define HAVE_VP9_DECODER 1" >>confdefs.h + + +fi + + fi LIBS="$OLD_LIBS" CFLAGS="$OLD_CFLAGS" fi @@ -36358,7 +36625,7 @@ GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^_*gst_plugin_ -ac_config_files="$ac_config_files Makefile gst/Makefile gst/alpha/Makefile gst/apetag/Makefile gst/audiofx/Makefile gst/audioparsers/Makefile gst/auparse/Makefile gst/autodetect/Makefile gst/avi/Makefile gst/cutter/Makefile gst/deinterlace/Makefile gst/debugutils/Makefile gst/effectv/Makefile gst/equalizer/Makefile gst/flv/Makefile gst/goom/Makefile gst/goom2k1/Makefile gst/id3demux/Makefile gst/icydemux/Makefile gst/imagefreeze/Makefile gst/interleave/Makefile gst/isomp4/Makefile gst/law/Makefile gst/level/Makefile gst/matroska/Makefile gst/monoscope/Makefile gst/multifile/Makefile gst/multipart/Makefile gst/replaygain/Makefile gst/rtp/Makefile gst/rtpmanager/Makefile gst/rtsp/Makefile gst/shapewipe/Makefile gst/smpte/Makefile gst/spectrum/Makefile gst/udp/Makefile gst/videobox/Makefile gst/videocrop/Makefile gst/videofilter/Makefile gst/videomixer/Makefile gst/wavenc/Makefile gst/wavparse/Makefile gst/flx/Makefile gst/y4m/Makefile ext/Makefile ext/aalib/Makefile ext/cairo/Makefile ext/dv/Makefile ext/flac/Makefile ext/gdk_pixbuf/Makefile ext/jack/Makefile ext/jpeg/Makefile ext/libcaca/Makefile ext/libpng/Makefile ext/pulse/Makefile ext/raw1394/Makefile ext/shout2/Makefile ext/soup/Makefile ext/speex/Makefile ext/taglib/Makefile ext/vpx/Makefile ext/wavpack/Makefile sys/Makefile sys/directsound/Makefile sys/oss/Makefile sys/oss4/Makefile sys/osxaudio/Makefile sys/osxvideo/Makefile sys/sunaudio/Makefile sys/v4l2/Makefile sys/waveform/Makefile sys/ximage/Makefile po/Makefile.in tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/audiofx/Makefile tests/examples/cairo/Makefile tests/examples/equalizer/Makefile tests/examples/jack/Makefile tests/examples/level/Makefile tests/examples/pulse/Makefile tests/examples/rtp/Makefile tests/examples/shapewipe/Makefile tests/examples/spectrum/Makefile tests/examples/v4l2/Makefile tests/files/Makefile tests/icles/Makefile common/Makefile common/m4/Makefile m4/Makefile docs/Makefile docs/plugins/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-good-uninstalled.pc gst-plugins-good.spec" +ac_config_files="$ac_config_files Makefile gst/Makefile gst/alpha/Makefile gst/apetag/Makefile gst/audiofx/Makefile gst/audioparsers/Makefile gst/auparse/Makefile gst/autodetect/Makefile gst/avi/Makefile gst/cutter/Makefile gst/deinterlace/Makefile gst/dtmf/Makefile gst/debugutils/Makefile gst/effectv/Makefile gst/equalizer/Makefile gst/flv/Makefile gst/goom/Makefile gst/goom2k1/Makefile gst/id3demux/Makefile gst/icydemux/Makefile gst/imagefreeze/Makefile gst/interleave/Makefile gst/isomp4/Makefile gst/law/Makefile gst/level/Makefile gst/matroska/Makefile gst/monoscope/Makefile gst/multifile/Makefile gst/multipart/Makefile gst/replaygain/Makefile gst/rtp/Makefile gst/rtpmanager/Makefile gst/rtsp/Makefile gst/shapewipe/Makefile gst/smpte/Makefile gst/spectrum/Makefile gst/udp/Makefile gst/videobox/Makefile gst/videocrop/Makefile gst/videofilter/Makefile gst/videomixer/Makefile gst/wavenc/Makefile gst/wavparse/Makefile gst/flx/Makefile gst/y4m/Makefile ext/Makefile ext/aalib/Makefile ext/cairo/Makefile ext/dv/Makefile ext/flac/Makefile ext/gdk_pixbuf/Makefile ext/jack/Makefile ext/jpeg/Makefile ext/libcaca/Makefile ext/libpng/Makefile ext/pulse/Makefile ext/raw1394/Makefile ext/shout2/Makefile ext/soup/Makefile ext/speex/Makefile ext/taglib/Makefile ext/vpx/Makefile ext/wavpack/Makefile sys/Makefile sys/directsound/Makefile sys/oss/Makefile sys/oss4/Makefile sys/osxaudio/Makefile sys/osxvideo/Makefile sys/sunaudio/Makefile sys/v4l2/Makefile sys/waveform/Makefile sys/ximage/Makefile po/Makefile.in tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/audiofx/Makefile tests/examples/cairo/Makefile tests/examples/equalizer/Makefile tests/examples/jack/Makefile tests/examples/level/Makefile tests/examples/pulse/Makefile tests/examples/rtp/Makefile tests/examples/shapewipe/Makefile tests/examples/spectrum/Makefile tests/examples/v4l2/Makefile tests/files/Makefile tests/icles/Makefile common/Makefile common/m4/Makefile m4/Makefile docs/Makefile docs/plugins/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-good-uninstalled.pc gst-plugins-good.spec" sed \ @@ -36508,6 +36775,14 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -36722,6 +36997,10 @@ if test -z "${USE_PLUGIN_DEINTERLACE_TRUE}" && test -z "${USE_PLUGIN_DEINTERLACE as_fn_error $? "conditional \"USE_PLUGIN_DEINTERLACE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${USE_PLUGIN_DTMF_TRUE}" && test -z "${USE_PLUGIN_DTMF_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_DTMF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${USE_PLUGIN_EFFECTV_TRUE}" && test -z "${USE_PLUGIN_EFFECTV_FALSE}"; then as_fn_error $? "conditional \"USE_PLUGIN_EFFECTV\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -37503,7 +37782,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GStreamer Good Plug-ins $as_me 1.0.8, which was +This file was extended by GStreamer Good Plug-ins $as_me 1.1.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -37569,7 +37848,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -GStreamer Good Plug-ins config.status 1.0.8 +GStreamer Good Plug-ins config.status 1.1.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -38116,6 +38395,7 @@ do "gst/avi/Makefile") CONFIG_FILES="$CONFIG_FILES gst/avi/Makefile" ;; "gst/cutter/Makefile") CONFIG_FILES="$CONFIG_FILES gst/cutter/Makefile" ;; "gst/deinterlace/Makefile") CONFIG_FILES="$CONFIG_FILES gst/deinterlace/Makefile" ;; + "gst/dtmf/Makefile") CONFIG_FILES="$CONFIG_FILES gst/dtmf/Makefile" ;; "gst/debugutils/Makefile") CONFIG_FILES="$CONFIG_FILES gst/debugutils/Makefile" ;; "gst/effectv/Makefile") CONFIG_FILES="$CONFIG_FILES gst/effectv/Makefile" ;; "gst/equalizer/Makefile") CONFIG_FILES="$CONFIG_FILES gst/equalizer/Makefile" ;; @@ -38798,7 +39078,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -38811,7 +39091,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -38845,21 +39125,19 @@ $as_echo X"$mf" | continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || diff --git a/configure.ac b/configure.ac index 45392efee0267eef9ed44ce7627098d14cfcc769..34234df4739ccad4bd87bc976fac5a9d02e4e025 100644 --- a/configure.ac +++ b/configure.ac @@ -1,13 +1,11 @@ -AC_PREREQ(2.62) +AC_PREREQ([2.68]) dnl please read gstreamer/docs/random/autotools before changing this file dnl initialize autoconf dnl releases only do -Wall, git and prerelease does -Werror too dnl use a three digit version number for releases, and four for git/pre -AC_INIT(GStreamer Good Plug-ins, 1.0.8, - http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer, - gst-plugins-good) +AC_INIT([GStreamer Good Plug-ins],[1.1.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good]) AG_GST_INIT @@ -45,11 +43,11 @@ AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION", [GStreamer API Version]) AG_GST_LIBTOOL_PREPARE -AS_LIBTOOL(GST, 7, 0, 7) +AS_LIBTOOL(GST, 102, 0, 102) dnl *** required versions of GStreamer stuff *** -GST_REQ=1.0.0 -GSTPB_REQ=1.0.0 +GST_REQ=1.1.2 +GSTPB_REQ=1.1.2 dnl *** autotools stuff **** @@ -128,8 +126,7 @@ AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno") dnl check for documentation tools GTK_DOC_CHECK([1.12]) -AS_PATH_PYTHON([2.1]) -AG_GST_PLUGIN_DOCS([1.3],[2.1]) +AG_GST_PLUGIN_DOCS([1.12]) dnl *** checks for libraries *** @@ -137,6 +134,14 @@ dnl check for libm, for sin() LT_LIB_M AC_SUBST(LIBM) +AC_CHECK_FUNCS(clock_gettime, [], [ + AC_CHECK_LIB(rt, clock_gettime, [ + AC_DEFINE(HAVE_CLOCK_GETTIME, 1) + LIBRT="-lrt" + AC_SUBST([LIBRT]) + ]) +]) + dnl *** checks for header files *** dnl check if we have ANSI C header files @@ -202,7 +207,7 @@ GLIB_REQ=2.32.0 AG_GST_GLIB_CHECK([$GLIB_REQ]) dnl Orc -ORC_CHECK([0.4.16]) +ORC_CHECK([0.4.17]) dnl checks for gstreamer dnl uninstalled is selected preferentially -- see pkg-config(1) @@ -329,6 +334,7 @@ AG_GST_CHECK_PLUGIN(avi) AG_GST_CHECK_PLUGIN(cutter) AG_GST_CHECK_PLUGIN(debugutils) AG_GST_CHECK_PLUGIN(deinterlace) +AG_GST_CHECK_PLUGIN(dtmf) AG_GST_CHECK_PLUGIN(effectv) AG_GST_CHECK_PLUGIN(equalizer) AG_GST_CHECK_PLUGIN(flv) @@ -498,7 +504,7 @@ dnl renamed to GST_V4L2 because of some conflict with kernel headers translit(dnm, m, l) AM_CONDITIONAL(USE_GST_V4L2, true) AG_GST_CHECK_FEATURE(GST_V4L2, [Video 4 Linux 2], v4l2src, [ AC_MSG_CHECKING([Checking for up to date v4l2 installation]) - AC_TRY_COMPILE([ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> #ifdef __sun /* Solaris */ #include <sys/types.h> @@ -514,12 +520,12 @@ AG_GST_CHECK_FEATURE(GST_V4L2, [Video 4 Linux 2], v4l2src, [ #if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION) #error too early v4l2 version or no v4l2 at all #endif - ], [ + ]], [[ return 0; - ], [ + ]])],[ HAVE_GST_V4L2="yes" AC_MSG_RESULT(yes) - ], [ + ],[ HAVE_GST_V4L2="no" AC_MSG_RESULT(no) @@ -541,7 +547,7 @@ return 0; dnl check for missing v4l2_buffer declaration (see #135919) MISSING_DECL=0 AC_MSG_CHECKING(struct v4l2_buffer declaration) - AC_TRY_COMPILE([ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> #ifdef __sun /* Solaris */ #include <sys/types.h> @@ -554,11 +560,11 @@ return 0; #define __user #include <linux/videodev2.h> #endif - ],[ + ]], [[ struct v4l2_buffer buf; buf.index = 0; return 0; - ], [ AC_MSG_RESULT(yes) ], [ MISSING_DECL=1 && AC_MSG_RESULT(no) ]) + ]])],[ AC_MSG_RESULT(yes) ],[ MISSING_DECL=1 && AC_MSG_RESULT(no) ]) if [ test x$MISSING_DECL = x1 ]; then AC_DEFINE(GST_V4L2_MISSING_BUFDECL, 1, [struct v4l2_buffer missing]) fi @@ -570,8 +576,7 @@ return 0; # Optional gudev for device probing AC_ARG_WITH([gudev], - AC_HELP_STRING([--with-gudev], - [device detection with gudev]), + AS_HELP_STRING([--with-gudev],[device detection with gudev]), [], [with_gudev=check]) if test x$HAVE_GST_V4L2 = xyes; then @@ -593,8 +598,7 @@ AC_SUBST(GUDEV_LIBS) # Make libv4l2 non-automagic AC_ARG_WITH([libv4l2], - AC_HELP_STRING([--with-libv4l2], - [support video buffer conversion using libv4l2]), + AS_HELP_STRING([--with-libv4l2],[support video buffer conversion using libv4l2]), [], [with_libv4l2=check]) if test x$HAVE_GST_V4L2 = xyes; then @@ -611,6 +615,24 @@ if test x$HAVE_GST_V4L2 = xyes; then fi fi +# Check if v4l2 support dmabuf +if test x$HAVE_GST_V4L2 = xyes; then + AC_CHECK_DECLS(V4L2_MEMORY_DMABUF,,,[ + #include <sys/types.h> + #ifdef __sun /* Solaris */ + #include <sys/types.h> + #include <sys/videodev2.h> + #elif __FreeBSD__ + #include <linux/videodev2.h> + #else /* Linux */ + #include <linux/types.h> + #define _LINUX_TIME_H + #define __user + #include <linux/videodev2.h> + #endif + ]) +fi + dnl Check for X11 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true) AG_GST_CHECK_FEATURE(X, [X libraries and plugins], @@ -790,7 +812,7 @@ AG_GST_CHECK_FEATURE(PULSE, [pulseaudio plug-in], pulseaudio, [ dnl used in ext/pulse/pulseutil.c AC_CHECK_HEADERS([process.h]) - AG_GST_PKG_CHECK_MODULES(PULSE, libpulse >= 1.0) + AG_GST_PKG_CHECK_MODULES(PULSE, libpulse >= 2.0) ]) dnl *** dv1394 *** @@ -853,14 +875,7 @@ AG_GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [ dnl *** soup *** translit(dnm, m, l) AM_CONDITIONAL(USE_SOUP, true) AG_GST_CHECK_FEATURE(SOUP, [soup http client plugin (2.4)], souphttpsrc, [ - PKG_CHECK_MODULES(SOUP, libsoup-gnome-2.4 >= 2.3.2, [ - HAVE_SOUP="yes" - AC_DEFINE(HAVE_LIBSOUP_GNOME, 1, [soup gnome integration]) - ],[ - PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.26.1, HAVE_SOUP="yes", [ - HAVE_SOUP="no" - ]) - ]) + PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.26.1, [HAVE_SOUP="yes"], [HAVE_SOUP="no"]) AC_SUBST(SOUP_CFLAGS) AC_SUBST(SOUP_LIBS) ]) @@ -930,6 +945,8 @@ dnl *** vpx *** translit(dnm, m, l) AM_CONDITIONAL(USE_VPX, vpx) AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [ PKG_CHECK_MODULES(VPX, vpx >= 1.1.0, [HAVE_VPX="yes"], [HAVE_VPX="no"]) + HAVE_VP8=no + HAVE_VP9=no if test $HAVE_VPX = "yes"; then OLD_LIBS="$LIBS" @@ -944,6 +961,16 @@ AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [ HAVE_VP8=yes AC_DEFINE(HAVE_VP8_DECODER, 1, [Defined if the VP8 decoder is available]) ]) + if test "x$BUILD_EXPERIMENTAL" = "xyes"; then + AC_CHECK_LIB(vpx, vpx_codec_vp9_cx_algo, [ + HAVE_VP9=yes + AC_DEFINE(HAVE_VP9_ENCODER, 1, [Defined if the VP9 encoder is available]) + ]) + AC_CHECK_LIB(vpx, vpx_codec_vp9_dx_algo, [ + HAVE_VP9=yes + AC_DEFINE(HAVE_VP9_DECODER, 1, [Defined if the VP9 decoder is available]) + ]) + fi LIBS="$OLD_LIBS" CFLAGS="$OLD_CFLAGS" fi @@ -1096,6 +1123,7 @@ gst/autodetect/Makefile gst/avi/Makefile gst/cutter/Makefile gst/deinterlace/Makefile +gst/dtmf/Makefile gst/debugutils/Makefile gst/effectv/Makefile gst/equalizer/Makefile diff --git a/depcomp b/depcomp index 25a39e6cd5c82d7276f6ccc62ef5e7ba1cc9776f..bd0ac089584a762069b7e0b3f2937e89b9144cc7 100755 --- a/depcomp +++ b/depcomp @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2012-03-27.16; # UTC +scriptversion=2011-12-04.11; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, -# 2011, 2012 Free Software Foundation, Inc. +# 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,7 +28,7 @@ scriptversion=2012-03-27.16; # UTC case $1 in '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) @@ -40,8 +40,8 @@ as side-effects. Environment variables: depmode Dependency tracking mode. - source Source file read by 'PROGRAMS ARGS'. - object Object file output by 'PROGRAMS ARGS'. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. @@ -57,12 +57,6 @@ EOF ;; esac -# A tabulation character. -tab=' ' -# A newline character. -nl=' -' - if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 @@ -108,12 +102,6 @@ if test "$depmode" = msvc7msys; then depmode=msvc7 fi -if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. - gccflag=-qmakedep=gcc,-MF - depmode=gcc -fi - case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -168,14 +156,15 @@ gcc) ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the "deleted header file" problem. +## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. - tr ' ' "$nl" < "$tmpdepfile" | -## Some versions of gcc put a space before the ':'. On the theory + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. @@ -214,15 +203,18 @@ sgi) # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like '#:fec' to the end of the + # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. - tr ' ' "$nl" < "$tmpdepfile" \ + tr ' ' ' +' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr "$nl" ' ' >> "$depfile" + tr ' +' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. - tr ' ' "$nl" < "$tmpdepfile" \ + tr ' ' ' +' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else @@ -234,17 +226,10 @@ sgi) rm -f "$tmpdepfile" ;; -xlc) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts '$object:' at the + # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` @@ -274,11 +259,12 @@ aix) test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependent.h'. + # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to - # '$object: dependent.h' and one to simply 'dependent.h:'. + # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile @@ -289,26 +275,23 @@ aix) ;; icc) - # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. - # However on - # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h - # which is wrong. We want + # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\': + # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... - # tcc 0.9.26 (FIXME still under development at the moment of writing) - # will emit a similar output, but also prepend the continuation lines - # with horizontal tabulation characters. + "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : @@ -317,21 +300,15 @@ icc) exit $stat fi rm -f "$depfile" - # Each line is of the form 'foo.o: dependent.h', - # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to - # '$object: dependent.h' and one to simply 'dependent.h:'. - sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ - < "$tmpdepfile" > "$depfile" - sed ' - s/[ '"$tab"'][ '"$tab"']*/ /g - s/^ *// - s/ *\\*$// - s/^[^:]*: *// - /^$/d - /:$/d - s/$/ :/ - ' < "$tmpdepfile" >> "$depfile" + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -367,7 +344,7 @@ hp2) done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add 'dependent.h:' lines. + # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// @@ -382,9 +359,9 @@ hp2) tru64) # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. + # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= @@ -430,7 +407,8 @@ tru64) done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi @@ -465,11 +443,11 @@ msvc7) p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g -s/\(.*\)/'"$tab"'\1 \\/p +s/\(.*\)/ \1 \\/p s/.\(.*\) \\/\1:/ H $ { - s/.*/'"$tab"'/ + s/.*/ / G p }' >> "$depfile" @@ -500,7 +478,7 @@ dashmstdout) shift fi - # Remove '-o $object'. + # Remove `-o $object'. IFS=" " for arg do @@ -520,14 +498,15 @@ dashmstdout) done test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for ':' + # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: - # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | - sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" - tr ' ' "$nl" < "$tmpdepfile" | \ + tr ' ' ' +' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" @@ -583,7 +562,8 @@ makedepend) # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" @@ -603,7 +583,7 @@ cpp) shift fi - # Remove '-o $object'. + # Remove `-o $object'. IFS=" " for arg do @@ -672,8 +652,8 @@ msvisualcpp) sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" - echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; diff --git a/docs/Makefile.in b/docs/Makefile.in index 15a6c71b27dc40657f8fd0e2e71370adabbcf49d..93b4e6fff9ed858af37daf979567dc2f98688fa4 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +79,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = docs -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/version.entities.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -60,7 +87,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -96,21 +122,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = version.entities CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -118,9 +151,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -314,6 +367,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -525,22 +579,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -555,57 +612,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -621,12 +633,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -638,15 +645,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -655,6 +658,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -815,22 +833,20 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am upload: diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am index dbfdd00de88047ff8aeaa3dd9e2e261d64e8f728..379074c0dc923c6eec2c0eae7e6f28ae35883ae2 100644 --- a/docs/plugins/Makefile.am +++ b/docs/plugins/Makefile.am @@ -95,6 +95,7 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/audiofx/audiowsincband.h \ $(top_srcdir)/gst/audiofx/audiowsinclimit.h \ $(top_srcdir)/gst/audiofx/audiofirfilter.h \ + $(top_srcdir)/gst/audiofx/gstscaletempo.h \ $(top_srcdir)/gst/audioparsers/gstaacparse.h \ $(top_srcdir)/gst/audioparsers/gstac3parse.h \ $(top_srcdir)/gst/audioparsers/gstamrparse.h \ @@ -114,6 +115,9 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/debugutils/gsttaginject.h \ $(top_srcdir)/gst/debugutils/progressreport.h \ $(top_srcdir)/gst/deinterlace/gstdeinterlace.h \ + $(top_srcdir)/gst/dtmf/gstdtmfsrc.h \ + $(top_srcdir)/gst/dtmf/gstrtpdtmfsrc.h \ + $(top_srcdir)/gst/dtmf/gstrtpdtmfdepay.h \ $(top_srcdir)/gst/effectv/gstaging.h \ $(top_srcdir)/gst/effectv/gstdice.h \ $(top_srcdir)/gst/effectv/gstedge.h \ @@ -167,6 +171,8 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/rtpmanager/gstrtpptdemux.h \ $(top_srcdir)/gst/rtpmanager/gstrtpsession.h \ $(top_srcdir)/gst/rtpmanager/gstrtpssrcdemux.h \ + $(top_srcdir)/gst/rtpmanager/gstrtpmux.h \ + $(top_srcdir)/gst/rtpmanager/gstrtpdtmfmux.h \ $(top_srcdir)/gst/rtsp/gstrtpdec.h \ $(top_srcdir)/gst/rtsp/gstrtspsrc.h \ $(top_srcdir)/gst/shapewipe/gstshapewipe.h \ diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in index 493e732f454212e0565bd40fd9dc1c96272be3fb..b2158c8cf28813ccf61a546053d2c7ae852c2830 100644 --- a/docs/plugins/Makefile.in +++ b/docs/plugins/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -32,23 +31,51 @@ # This is an include file specifically tuned for building documentation # for GStreamer plug-ins VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -68,9 +95,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/common/gtk-doc-plugins.mak \ - $(top_srcdir)/common/upload-doc.mak +DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \ + $(top_srcdir)/common/gtk-doc-plugins.mak $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am subdir = docs/plugins ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -78,7 +105,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -114,12 +140,18 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -127,6 +159,7 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AALIB_CFLAGS = @AALIB_CFLAGS@ AALIB_CONFIG = @AALIB_CONFIG@ @@ -293,6 +326,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -553,6 +587,7 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/audiofx/audiowsincband.h \ $(top_srcdir)/gst/audiofx/audiowsinclimit.h \ $(top_srcdir)/gst/audiofx/audiofirfilter.h \ + $(top_srcdir)/gst/audiofx/gstscaletempo.h \ $(top_srcdir)/gst/audioparsers/gstaacparse.h \ $(top_srcdir)/gst/audioparsers/gstac3parse.h \ $(top_srcdir)/gst/audioparsers/gstamrparse.h \ @@ -572,6 +607,9 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/debugutils/gsttaginject.h \ $(top_srcdir)/gst/debugutils/progressreport.h \ $(top_srcdir)/gst/deinterlace/gstdeinterlace.h \ + $(top_srcdir)/gst/dtmf/gstdtmfsrc.h \ + $(top_srcdir)/gst/dtmf/gstrtpdtmfsrc.h \ + $(top_srcdir)/gst/dtmf/gstrtpdtmfdepay.h \ $(top_srcdir)/gst/effectv/gstaging.h \ $(top_srcdir)/gst/effectv/gstdice.h \ $(top_srcdir)/gst/effectv/gstedge.h \ @@ -625,6 +663,8 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/rtpmanager/gstrtpptdemux.h \ $(top_srcdir)/gst/rtpmanager/gstrtpsession.h \ $(top_srcdir)/gst/rtpmanager/gstrtpssrcdemux.h \ + $(top_srcdir)/gst/rtpmanager/gstrtpmux.h \ + $(top_srcdir)/gst/rtpmanager/gstrtpdtmfmux.h \ $(top_srcdir)/gst/rtsp/gstrtpdec.h \ $(top_srcdir)/gst/rtsp/gstrtspsrc.h \ $(top_srcdir)/gst/shapewipe/gstshapewipe.h \ @@ -765,9 +805,9 @@ INSPECT_DIR = inspect @ENABLE_GTK_DOC_TRUE@INSPECT_REGISTRY = $(top_builddir)/docs/plugins/inspect-registry.xml @ENABLE_GTK_DOC_TRUE@INSPECT_ENVIRONMENT = \ @ENABLE_GTK_DOC_TRUE@ LC_ALL=C \ -@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_SYSTEM_PATH= \ -@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \ -@ENABLE_GTK_DOC_TRUE@ GST_REGISTRY=$(INSPECT_REGISTRY) \ +@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_SYSTEM_PATH_1_0= \ +@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \ +@ENABLE_GTK_DOC_TRUE@ GST_REGISTRY_1_0=$(INSPECT_REGISTRY) \ @ENABLE_GTK_DOC_TRUE@ PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ @ENABLE_GTK_DOC_TRUE@ $(INSPECT_EXTRA_ENVIRONMENT) @@ -815,11 +855,11 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -958,17 +998,17 @@ uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ - clean-libtool clean-local dist-hook distclean \ - distclean-generic distclean-libtool distclean-local distdir \ - dvi dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-data-local install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-local + clean-libtool clean-local cscopelist-am ctags-am dist-hook \ + distclean distclean-generic distclean-libtool distclean-local \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-data-local \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-local html: html-build.stamp @@ -1157,10 +1197,7 @@ update: scanobj-update @ENABLE_GTK_DOC_TRUE@ mkhtml_options="$$mkhtml_options --verbose"; \ @ENABLE_GTK_DOC_TRUE@ fi; \ @ENABLE_GTK_DOC_TRUE@ fi; \ -@ENABLE_GTK_DOC_TRUE@ cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) -@ENABLE_GTK_DOC_TRUE@ @mv html/index.sgml html/index.sgml.bak -@ENABLE_GTK_DOC_TRUE@ @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml -@ENABLE_GTK_DOC_TRUE@ @rm -f html/index.sgml.bak +@ENABLE_GTK_DOC_TRUE@ cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE)-@GST_API_VERSION@ $(DOC_MAIN_SGML_FILE) @ENABLE_GTK_DOC_TRUE@ @rm -f html/$(DOC_MAIN_SGML_FILE) @ENABLE_GTK_DOC_TRUE@ @rm -rf html/xml @ENABLE_GTK_DOC_TRUE@ @rm -f html/version.entities @@ -1220,9 +1257,9 @@ install-data-local: $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ done; \ fi; \ - echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \ - if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ - $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \ + if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \ + $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \ diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml index 724dd4adcca0ef8655898fb60fc312357fa778c5..148c6390a043d58cffa83ffa419fef7c4c173343 100644 --- a/docs/plugins/gst-plugins-good-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml @@ -60,6 +60,7 @@ <xi:include href="xml/element-deinterleave.xml" /> <xi:include href="xml/element-dicetv.xml" /> <xi:include href="xml/element-directsoundsink.xml" /> + <xi:include href="xml/element-dtmfsrc.xml" /> <xi:include href="xml/element-dv1394src.xml" /> <xi:include href="xml/element-dvdec.xml" /> <xi:include href="xml/element-dvdemux.xml" /> @@ -75,7 +76,6 @@ <xi:include href="xml/element-flvmux.xml" /> <xi:include href="xml/element-flxdec.xml" /> <xi:include href="xml/element-gamma.xml" /> - <xi:include href="xml/element-gdkpixbufoverlay.xml" /> <xi:include href="xml/element-gdkpixbufsink.xml" /> <xi:include href="xml/element-goom.xml" /> <xi:include href="xml/element-goom2k1.xml" /> @@ -128,14 +128,28 @@ <xi:include href="xml/element-rgvolume.xml" /> <xi:include href="xml/element-rippletv.xml" /> <xi:include href="xml/element-rtpdec.xml" /> + <xi:include href="xml/element-rtpac3depay.xml" /> + <xi:include href="xml/element-rtpac3pay.xml" /> + <xi:include href="xml/element-rtpamrdepay.xml" /> + <xi:include href="xml/element-rtpamrpay.xml" /> + <xi:include href="xml/element-rtpbvdepay.xml" /> + <xi:include href="xml/element-rtpbvpay.xml" /> + <xi:include href="xml/element-rtpL16depay.xml" /> + <xi:include href="xml/element-rtpL16pay.xml" /> <xi:include href="xml/element-rtpj2kpay.xml" /> <xi:include href="xml/element-rtpjpegpay.xml" /> + <xi:include href="xml/element-rtpsbcpay.xml" /> <xi:include href="xml/element-rtspsrc.xml" /> <xi:include href="xml/element-rtpbin.xml" /> + <xi:include href="xml/element-rtpdtmfmux.xml" /> + <xi:include href="xml/element-rtpdtmfsrc.xml" /> <xi:include href="xml/element-rtpjitterbuffer.xml" /> + <xi:include href="xml/element-rtpmux.xml" /> <xi:include href="xml/element-rtpptdemux.xml" /> <xi:include href="xml/element-rtpsession.xml" /> <xi:include href="xml/element-rtpssrcdemux.xml" /> + <xi:include href="xml/element-sbcparse.xml" /> + <xi:include href="xml/element-scaletempo.xml" /> <xi:include href="xml/element-shagadelictv.xml" /> <xi:include href="xml/element-shapewipe.xml" /> <xi:include href="xml/element-smpte.xml" /> @@ -190,6 +204,7 @@ <xi:include href="xml/plugin-debug.xml" /> <xi:include href="xml/plugin-deinterlace.xml" /> <xi:include href="xml/plugin-directsound.xml" /> + <xi:include href="xml/plugin-dtmf.xml" /> <xi:include href="xml/plugin-dv.xml" /> <xi:include href="xml/plugin-equalizer.xml" /> <xi:include href="xml/plugin-effectv.xml" /> diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt index 07e50c754ef130967d13d80774f213c7474416d1..86ecacb56d971f127dcad40317cb1c86c36da530 100644 --- a/docs/plugins/gst-plugins-good-plugins-sections.txt +++ b/docs/plugins/gst-plugins-good-plugins-sections.txt @@ -603,6 +603,25 @@ GST_DSOUND_LOCK GST_DSOUND_UNLOCK </SECTION> +<SECTION> +<FILE>element-dtmfsrc</FILE> +<TITLE>dtmfsrc</TITLE> +GstDTMFSrc +<SUBSECTION Standard> +GstDTMFEventType +GstDTMFSrcEvent +GstDTMFSrcClass +GST_TYPE_DTMF_SRC +GST_DTMF_SRC +GST_DTMF_SRC_CAST +GST_DTMF_SRC_CLASS +GST_DTMF_SRC_GET_CLASS +GST_IS_DTMF_SRC +GST_IS_DTMF_SRC_CLASS +gst_dtmf_src_get_type +gst_dtmf_src_plugin_init +</SECTION> + <SECTION> <FILE>element-dv1394src</FILE> <TITLE>dv1394src</TITLE> @@ -838,20 +857,6 @@ GST_IS_GAMMA_CLASS gst_gamma_get_type </SECTION> -<SECTION> -<FILE>element-gdkpixbufoverlay</FILE> -<TITLE>gdkpixbufoverlay</TITLE> -GstGdkPixbufOverlay -<SUBSECTION Standard> -GstGdkPixbufOverlayClass -GST_TYPE_GDK_PIXBUF_OVERLAY -GST_GDK_PIXBUF_OVERLAY -GST_GDK_PIXBUF_OVERLAY_CLASS -GST_IS_GDK_PIXBUF_OVERLAY -GST_IS_GDK_PIXBUF_OVERLAY_CLASS -gst_gdk_pixbuf_overlay_get_type -</SECTION> - <SECTION> <FILE>element-gdkpixbufsink</FILE> <TITLE>gdkpixbufsink</TITLE> @@ -1585,6 +1590,160 @@ GST_IS_RTP_DEC_CLASS gst_rtp_dec_get_type </SECTION> +<SECTION> +<FILE>element-rtpdtmfdepay</FILE> +<TITLE>rtpdtmfdepay</TITLE> +GstRtpDTMFDepay +<SUBSECTION Standard> +GstRtpDTMFDepayClass +GST_TYPE_RTP_DTMF_DEPAY +GST_IS_RTP_DTMF_DEPAY +GST_IS_RTP_DTMF_DEPAY_CLASS +GST_RTP_DTMF_DEPAY +GST_RTP_DTMF_DEPAY_CLASS +gst_rtp_dtmf_depay_plugin_init +</SECTION> + +<SECTION> +<FILE>element-rtpdtmfsrc</FILE> +<TITLE>rtpdtmfsrc</TITLE> +GstRTPDTMFSrc +<SUBSECTION Standard> +GstRTPDTMFSrcClass +GST_TYPE_RTP_DTMF_SRC +GST_IS_RTP_DTMF_SRC +GST_IS_RTP_DTMF_SRC_CLASS +GST_RTP_DTMF_SRC +GST_RTP_DTMF_SRC_CAST +GST_RTP_DTMF_SRC_CLASS +GST_RTP_DTMF_SRC_GET_CLASS +gst_rtp_dtmf_src_get_type +gst_rtp_dtmf_src_plugin_init +GstRTPDTMFPayload +GstRTPDTMFSrcEvent +GstRTPDTMFEventType +</SECTION> + +<SECTION> +<FILE>element-rtpac3depay</FILE> +<TITLE>rtpac3depay</TITLE> +GstRtpAC3Depay +<SUBSECTION Standard> +GstRtpAC3DepayClass +GST_RTP_AC3_DEPAY +GST_IS_RTP_AC3_DEPAY +GST_TYPE_RTP_AC3_DEPAY +GST_RTP_AC3_DEPAY_CLASS +GST_IS_RTP_AC3_DEPAY_CLASS +gst_rtp_ac3_depay_plugin_init +gst_rtp_ac3_depay_get_type +</SECTION> + +<SECTION> +<FILE>element-rtpac3pay</FILE> +<TITLE>rtpac3pay</TITLE> +GstRtpAC3Pay +<SUBSECTION Standard> +GstRtpAC3PayClass +GST_RTP_AC3_PAY +GST_IS_RTP_AC3_PAY +GST_TYPE_RTP_AC3_PAY +GST_RTP_AC3_PAY_CLASS +GST_IS_RTP_AC3_PAY_CLASS +gst_rtp_ac3_pay_plugin_init +gst_rtp_ac3_pay_get_type +</SECTION> + +<SECTION> +<FILE>element-rtpamrdepay</FILE> +<TITLE>rtpamrdepay</TITLE> +GstRtpAMRDepay +<SUBSECTION Standard> +GstRtpAMRDepayClass +GST_RTP_AMR_DEPAY +GST_IS_RTP_AMR_DEPAY +GST_TYPE_RTP_AMR_DEPAY +GST_RTP_AMR_DEPAY_CLASS +GST_IS_RTP_AMR_DEPAY_CLASS +gst_rtp_amr_depay_plugin_init +gst_rtp_amr_depay_get_type +</SECTION> + +<SECTION> +<FILE>element-rtpamrpay</FILE> +<TITLE>rtpamrpay</TITLE> +GstRtpAMRPay +<SUBSECTION Standard> +GstRtpAMRPayClass +GST_RTP_AMR_PAY +GST_IS_RTP_AMR_PAY +GST_TYPE_RTP_AMR_PAY +GST_RTP_AMR_PAY_CLASS +GST_IS_RTP_AMR_PAY_CLASS +gst_rtp_amr_pay_plugin_init +gst_rtp_amr_pay_get_type +</SECTION> + +<SECTION> +<FILE>element-rtpbvdepay</FILE> +<TITLE>rtpbvdepay</TITLE> +GstRtpBVDepay +<SUBSECTION Standard> +GstRtpBVDepayClass +GST_RTP_BV_DEPAY +GST_IS_RTP_BV_DEPAY +GST_TYPE_RTP_BV_DEPAY +GST_RTP_BV_DEPAY_CLASS +GST_IS_RTP_BV_DEPAY_CLASS +gst_rtp_bv_depay_plugin_init +gst_rtp_bv_depay_get_type +</SECTION> + +<SECTION> +<FILE>element-rtpbvpay</FILE> +<TITLE>rtpbvpay</TITLE> +GstRtpBVPay +<SUBSECTION Standard> +GstRtpBVPayClass +GST_RTP_BV_PAY +GST_IS_RTP_BV_PAY +GST_TYPE_RTP_BV_PAY +GST_RTP_BV_PAY_CLASS +GST_IS_RTP_BV_PAY_CLASS +gst_rtp_bv_pay_plugin_init +gst_rtp_bv_pay_get_type +</SECTION> + +<SECTION> +<FILE>element-rtpL16depay</FILE> +<TITLE>rtpL16depay</TITLE> +GstRtpL16Depay +<SUBSECTION Standard> +GstRtpL16DepayClass +GST_RTP_L16_DEPAY +GST_IS_RTP_L16_DEPAY +GST_TYPE_RTP_L16_DEPAY +GST_RTP_L16_DEPAY_CLASS +GST_IS_RTP_L16_DEPAY_CLASS +gst_rtp_L16_depay_plugin_init +gst_rtp_L16_depay_get_type +</SECTION> + +<SECTION> +<FILE>element-rtpL16pay</FILE> +<TITLE>rtpL16pay</TITLE> +GstRtpL16Pay +<SUBSECTION Standard> +GstRtpL16PayClass +GST_RTP_L16_PAY +GST_IS_RTP_L16_PAY +GST_TYPE_RTP_L16_PAY +GST_RTP_L16_PAY_CLASS +GST_IS_RTP_L16_PAY_CLASS +gst_rtp_L16_pay_plugin_init +gst_rtp_L16_pay_get_type +</SECTION> + <SECTION> <FILE>element-rtpj2kpay</FILE> <TITLE>rtpj2kpay</TITLE> @@ -1615,6 +1774,20 @@ gst_rtp_jpeg_pay_plugin_init gst_rtp_jpeg_pay_get_type </SECTION> +<SECTION> +<FILE>element-rtpsbcpay</FILE> +<TITLE>rtpsbcpay</TITLE> +GstRtpSBCPay +<SUBSECTION Standard> +GstRtpSBCPayClass +GST_RTP_SBC_PAY +GST_RTP_SBC_PAY_CLASS +GST_IS_RTP_SBC_PAY +GST_IS_RTP_SBC_PAY_CLASS +GST_TYPE_RTP_SBC_PAY +gst_rtp_sbc_pay_get_type +</SECTION> + <SECTION> <FILE>element-rtspsrc</FILE> <TITLE>rtspsrc</TITLE> @@ -1641,6 +1814,20 @@ GST_RTSP_STREAM_UNLOCK gst_rtspsrc_get_type </SECTION> +<SECTION> +<FILE>element-sbcparse</FILE> +<TITLE>sbcparse</TITLE> +GstSbcParse +<SUBSECTION Standard> +GstSbcParseClass +GST_SBC_PARSE +GST_SBC_PARSE_CLASS +GST_IS_SBC_PARSE +GST_IS_SBC_PARSE_CLASS +GST_TYPE_SBC_PARSE +gst_sbc_parse_get_type +</SECTION> + <SECTION> <FILE>element-shapewipe</FILE> <TITLE>shapewipe</TITLE> @@ -2239,6 +2426,51 @@ GST_TYPE_RIPPLETV gst_rippletv_get_type </SECTION> +<SECTION> +<FILE>element-rtpdtmfmux</FILE> +<TITLE>rtpdtmfmux</TITLE> +GstRTPDTMFMux +<SUBSECTION Standard> +GST_IS_RTP_DTMF_MUX +GST_IS_RTP_DTMF_MUX_CLASS +GST_TYPE_RTP_DTMF_MUX +GstRTPDTMFMuxClass +GST_RTP_DTMF_MUX +GST_RTP_DTMF_MUX_CLASS +gst_rtp_dtmf_mux_get_type +gst_rtp_dtmf_mux_plugin_init +</SECTION> + +<SECTION> +<FILE>element-rtpmux</FILE> +<TITLE>rtpmux</TITLE> +GstRTPMux +<SUBSECTION Standard> +GST_IS_RTP_MUX +GST_IS_RTP_MUX_CLASS +GST_RTP_MUX +GST_RTP_MUX_CLASS +GST_RTP_MUX_GET_CLASS +GST_TYPE_RTP_MUX +GstRTPMuxClass +gst_rtp_mux_get_type +gst_rtp_mux_plugin_init +</SECTION> + +<SECTION> +<FILE>element-scaletempo</FILE> +<TITLE>scaletempo</TITLE> +GstScaletempo +<SUBSECTION Standard> +GstScaletempoClass +GST_IS_SCALETEMPO +GST_IS_SCALETEMPO_CLASS +GST_SCALETEMPO +GST_SCALETEMPO_CLASS +GST_TYPE_SCALETEMPO +gst_scaletempo_get_type +</SECTION> + <SECTION> <FILE>element-shagadelictv</FILE> <TITLE>shagadelictv</TITLE> diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args index 6220344ad38f60a5439945977e1f3e0ea017fd85..48e1b8949084aeaa19d7f2baa8dc0e9de371c302 100644 --- a/docs/plugins/gst-plugins-good-plugins.args +++ b/docs/plugins/gst-plugins-good-plugins.args @@ -253,7 +253,7 @@ <TYPE>gint</TYPE> <RANGE>>= G_MAXULONG</RANGE> <FLAGS>rw</FLAGS> -<NICK>Start Index</NICK> +<NICK>Stop Index</NICK> <BLURB>Stop value of index. The special value -1 means no stop.</BLURB> <DEFAULT>0</DEFAULT> </ARG> @@ -628,6 +628,16 @@ <DEFAULT></DEFAULT> </ARG> +<ARG> +<NAME>GstUDPSrc::bind-address</NAME> +<TYPE>gchar*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Bind Address</NICK> +<BLURB>Address to bind the socket to. This is equivalent to the multicast-group property.</BLURB> +<DEFAULT>"0.0.0.0"</DEFAULT> +</ARG> + <ARG> <NAME>GstSMPTE::border</NAME> <TYPE>gint</TYPE> @@ -898,6 +908,66 @@ <DEFAULT>2</DEFAULT> </ARG> +<ARG> +<NAME>GstRTSPSrc::udp-reconnect</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Reconnect to the server</NICK> +<BLURB>Reconnect to the server if RTSP connection is closed when doing UDP.</BLURB> +<DEFAULT>TRUE</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTSPSrc::proxy-id</NAME> +<TYPE>gchar*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>proxy-id</NICK> +<BLURB>HTTP proxy URI user id for authentication.</BLURB> +<DEFAULT>""</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTSPSrc::proxy-pw</NAME> +<TYPE>gchar*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>proxy-pw</NICK> +<BLURB>HTTP proxy URI user password for authentication.</BLURB> +<DEFAULT>""</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTSPSrc::multicast-iface</NAME> +<TYPE>gchar*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Multicast Interface</NICK> +<BLURB>The network interface on which to join the multicast group.</BLURB> +<DEFAULT>NULL</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTSPSrc::ntp-sync</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Sync on NTP clock</NICK> +<BLURB>Synchronize received streams to the NTP clock.</BLURB> +<DEFAULT>FALSE</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTSPSrc::use-pipeline-clock</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Use pipeline clock</NICK> +<BLURB>Use the pipeline running-time to set the NTP time in the RTCP SR messages.</BLURB> +<DEFAULT>FALSE</DEFAULT> +</ARG> + <ARG> <NAME>GstRTPDec::skip</NAME> <TYPE>gint</TYPE> @@ -934,7 +1004,7 @@ <RANGE></RANGE> <FLAGS>rw</FLAGS> <NICK>message</NICK> -<BLURB>Post a level message for each passed interval.</BLURB> +<BLURB>Post a 'level' message for each passed interval (deprecated).</BLURB> <DEFAULT>TRUE</DEFAULT> </ARG> @@ -958,6 +1028,16 @@ <DEFAULT>300000000</DEFAULT> </ARG> +<ARG> +<NAME>GstLevel::post-messages</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Post Messages</NICK> +<BLURB>Whether to post a 'level' element message on the bus for each passed interval.</BLURB> +<DEFAULT>TRUE</DEFAULT> +</ARG> + <ARG> <NAME>GstDiceTV::square-bits</NAME> <TYPE>gint</TYPE> @@ -1084,7 +1164,7 @@ <RANGE><= 255</RANGE> <FLAGS>rw</FLAGS> <NICK>Target Blue</NICK> -<BLURB>The Blue target.</BLURB> +<BLURB>The blue color value for custom RGB chroma keying.</BLURB> <DEFAULT>0</DEFAULT> </ARG> @@ -1094,7 +1174,7 @@ <RANGE><= 255</RANGE> <FLAGS>rw</FLAGS> <NICK>Target Green</NICK> -<BLURB>The Green target.</BLURB> +<BLURB>The green color value for custom RGB chroma keying.</BLURB> <DEFAULT>255</DEFAULT> </ARG> @@ -1104,7 +1184,7 @@ <RANGE><= 255</RANGE> <FLAGS>rw</FLAGS> <NICK>Target Red</NICK> -<BLURB>The Red target.</BLURB> +<BLURB>The red color value for custom RGB chroma keying.</BLURB> <DEFAULT>0</DEFAULT> </ARG> @@ -1123,7 +1203,7 @@ <TYPE>guint</TYPE> <RANGE><= 128</RANGE> <FLAGS>rw</FLAGS> -<NICK>Sensitivity</NICK> +<NICK>White Sensitivity</NICK> <BLURB>Sensitivity to bright colors.</BLURB> <DEFAULT>100</DEFAULT> </ARG> @@ -2558,6 +2638,36 @@ <DEFAULT></DEFAULT> </ARG> +<ARG> +<NAME>GstDynUDPSink::bind-address</NAME> +<TYPE>gchar*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Bind Address</NICK> +<BLURB>Address to bind the socket to.</BLURB> +<DEFAULT>NULL</DEFAULT> +</ARG> + +<ARG> +<NAME>GstDynUDPSink::bind-port</NAME> +<TYPE>gint</TYPE> +<RANGE>[0,65535]</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Bind Port</NICK> +<BLURB>Port to bind the socket to.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstDynUDPSink::socket-v6</NAME> +<TYPE>GSocket*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Socket IPv6</NICK> +<BLURB>Socket to use for UDPv6 sending. (NULL == allocate).</BLURB> +<DEFAULT></DEFAULT> +</ARG> + <ARG> <NAME>GstCdioCddaSrc::read-speed</NAME> <TYPE>gint</TYPE> @@ -2734,7 +2844,7 @@ <RANGE></RANGE> <FLAGS>rw</FLAGS> <NICK>Force IPv4</NICK> -<BLURB>Forcing the use of an IPv4 socket.</BLURB> +<BLURB>Forcing the use of an IPv4 socket (DEPRECATED, has no effect anymore).</BLURB> <DEFAULT>FALSE</DEFAULT> </ARG> @@ -2748,6 +2858,46 @@ <DEFAULT>NULL</DEFAULT> </ARG> +<ARG> +<NAME>GstMultiUDPSink::bind-address</NAME> +<TYPE>gchar*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Bind Address</NICK> +<BLURB>Address to bind the socket to.</BLURB> +<DEFAULT>NULL</DEFAULT> +</ARG> + +<ARG> +<NAME>GstMultiUDPSink::bind-port</NAME> +<TYPE>gint</TYPE> +<RANGE>[0,65535]</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Bind Port</NICK> +<BLURB>Port to bind the socket to.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstMultiUDPSink::socket-v6</NAME> +<TYPE>GSocket*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Socket Handle IPv6</NICK> +<BLURB>Socket to use for UDPv6 sending. (NULL == allocate).</BLURB> +<DEFAULT></DEFAULT> +</ARG> + +<ARG> +<NAME>GstMultiUDPSink::used-socket-v6</NAME> +<TYPE>GSocket*</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Used Socket Handle IPv6</NICK> +<BLURB>Socket currently in use for UDPv6 sending. (NULL == no socket).</BLURB> +<DEFAULT></DEFAULT> +</ARG> + <ARG> <NAME>GstCmmlDec::wait-clip-end-time</NAME> <TYPE>gboolean</TYPE> @@ -3261,40 +3411,40 @@ <ARG> <NAME>GstVideoCrop::bottom</NAME> <TYPE>gint</TYPE> -<RANGE>>= 0</RANGE> +<RANGE>>= G_MAXULONG</RANGE> <FLAGS>rw</FLAGS> <NICK>Bottom</NICK> -<BLURB>Pixels to crop at bottom.</BLURB> +<BLURB>Pixels to crop at bottom (-1 to auto-crop).</BLURB> <DEFAULT>0</DEFAULT> </ARG> <ARG> <NAME>GstVideoCrop::left</NAME> <TYPE>gint</TYPE> -<RANGE>>= 0</RANGE> +<RANGE>>= G_MAXULONG</RANGE> <FLAGS>rw</FLAGS> <NICK>Left</NICK> -<BLURB>Pixels to crop at left.</BLURB> +<BLURB>Pixels to crop at left (-1 to auto-crop).</BLURB> <DEFAULT>0</DEFAULT> </ARG> <ARG> <NAME>GstVideoCrop::right</NAME> <TYPE>gint</TYPE> -<RANGE>>= 0</RANGE> +<RANGE>>= G_MAXULONG</RANGE> <FLAGS>rw</FLAGS> <NICK>Right</NICK> -<BLURB>Pixels to crop at right.</BLURB> +<BLURB>Pixels to crop at right (-1 to auto-crop).</BLURB> <DEFAULT>0</DEFAULT> </ARG> <ARG> <NAME>GstVideoCrop::top</NAME> <TYPE>gint</TYPE> -<RANGE>>= 0</RANGE> +<RANGE>>= G_MAXULONG</RANGE> <FLAGS>rw</FLAGS> <NICK>Top</NICK> -<BLURB>Pixels to crop at top.</BLURB> +<BLURB>Pixels to crop at top (-1 to auto-crop).</BLURB> <DEFAULT>0</DEFAULT> </ARG> @@ -3428,6 +3578,36 @@ <DEFAULT>GST_V4L2_IO_AUTO</DEFAULT> </ARG> +<ARG> +<NAME>GstV4l2Src::extra-controls</NAME> +<TYPE>GstStructure*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Extra Controls</NICK> +<BLURB>Extra v4l2 controls (CIDs) for the device.</BLURB> +<DEFAULT></DEFAULT> +</ARG> + +<ARG> +<NAME>GstV4l2Src::force-aspect-ratio</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Force aspect ratio</NICK> +<BLURB>When enabled, the pixel aspect ratio will be enforced.</BLURB> +<DEFAULT>TRUE</DEFAULT> +</ARG> + +<ARG> +<NAME>GstV4l2Src::pixel-aspect-ratio</NAME> +<TYPE>gchar*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Pixel Aspect Ratio</NICK> +<BLURB>Overwrite the pixel aspect ratio of the device.</BLURB> +<DEFAULT>"1/1"</DEFAULT> +</ARG> + <ARG> <NAME>GstAudioChebBand::lower-frequency</NAME> <TYPE>gfloat</TYPE> @@ -20125,7 +20305,7 @@ <FLAGS>rw</FLAGS> <NICK>Client Name</NICK> <BLURB>The PulseAudio client name to use.</BLURB> -<DEFAULT>"lt-gst-plugins-good-plugins-scan"</DEFAULT> +<DEFAULT>"gst-plugins-good-plugins-scan"</DEFAULT> </ARG> <ARG> @@ -20215,7 +20395,7 @@ <FLAGS>rw</FLAGS> <NICK>Client Name</NICK> <BLURB>The PulseAudio client_name_to_use.</BLURB> -<DEFAULT>"lt-gst-plugins-good-plugins-scan"</DEFAULT> +<DEFAULT>"gst-plugins-good-plugins-scan"</DEFAULT> </ARG> <ARG> @@ -21378,6 +21558,36 @@ <DEFAULT>none</DEFAULT> </ARG> +<ARG> +<NAME>GstV4l2Sink::extra-controls</NAME> +<TYPE>GstStructure*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Extra Controls</NICK> +<BLURB>Extra v4l2 controls (CIDs) for the device.</BLURB> +<DEFAULT></DEFAULT> +</ARG> + +<ARG> +<NAME>GstV4l2Sink::force-aspect-ratio</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Force aspect ratio</NICK> +<BLURB>When enabled, the pixel aspect ratio will be enforced.</BLURB> +<DEFAULT>TRUE</DEFAULT> +</ARG> + +<ARG> +<NAME>GstV4l2Sink::pixel-aspect-ratio</NAME> +<TYPE>gchar*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Pixel Aspect Ratio</NICK> +<BLURB>Overwrite the pixel aspect ratio of the device.</BLURB> +<DEFAULT>"1/1"</DEFAULT> +</ARG> + <ARG> <NAME>GstShapeWipe::border</NAME> <TYPE>gfloat</TYPE> @@ -21704,7 +21914,7 @@ <RANGE></RANGE> <FLAGS>rwx</FLAGS> <NICK>dts-method</NICK> -<BLURB>Method to determine DTS time.</BLURB> +<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB> <DEFAULT>reorder</DEFAULT> </ARG> @@ -21834,7 +22044,7 @@ <RANGE></RANGE> <FLAGS>rwx</FLAGS> <NICK>dts-method</NICK> -<BLURB>Method to determine DTS time.</BLURB> +<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB> <DEFAULT>reorder</DEFAULT> </ARG> @@ -21924,7 +22134,7 @@ <RANGE></RANGE> <FLAGS>rwx</FLAGS> <NICK>dts-method</NICK> -<BLURB>Method to determine DTS time.</BLURB> +<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB> <DEFAULT>reorder</DEFAULT> </ARG> @@ -22014,7 +22224,7 @@ <RANGE></RANGE> <FLAGS>rwx</FLAGS> <NICK>dts-method</NICK> -<BLURB>Method to determine DTS time.</BLURB> +<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB> <DEFAULT>reorder</DEFAULT> </ARG> @@ -22194,7 +22404,7 @@ <RANGE></RANGE> <FLAGS>rwx</FLAGS> <NICK>dts-method</NICK> -<BLURB>Method to determine DTS time.</BLURB> +<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB> <DEFAULT>reorder</DEFAULT> </ARG> @@ -22684,7 +22894,7 @@ <RANGE></RANGE> <FLAGS>rw</FLAGS> <NICK>X Offset</NICK> -<BLURB>Horizontal offset of overlay image in pixels from top-left corner of video image.</BLURB> +<BLURB>For positive value, horizontal offset of overlay image in pixels from left of video image. For negative value, horizontal offset of overlay image in pixels from right of video image.</BLURB> <DEFAULT>0</DEFAULT> </ARG> @@ -22694,7 +22904,7 @@ <RANGE></RANGE> <FLAGS>rw</FLAGS> <NICK>Y Offset</NICK> -<BLURB>Vertical offset of overlay image in pixels from top-left corner of video image.</BLURB> +<BLURB>For positive value, vertical offset of overlay image in pixels from top of video image. For negative value, vertical offset of overlay image in pixels from bottom of video image.</BLURB> <DEFAULT>0</DEFAULT> </ARG> @@ -23328,6 +23538,16 @@ <DEFAULT>Normal</DEFAULT> </ARG> +<ARG> +<NAME>GstVP8Enc::timebase</NAME> +<TYPE>GstFraction</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Shortest interframe time</NICK> +<BLURB>Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate.</BLURB> +<DEFAULT></DEFAULT> +</ARG> + <ARG> <NAME>GstVP8Dec::deblocking-level</NAME> <TYPE>guint</TYPE> @@ -23398,3 +23618,213 @@ <DEFAULT>TRUE</DEFAULT> </ARG> +<ARG> +<NAME>GstScaletempo::overlap</NAME> +<TYPE>gdouble</TYPE> +<RANGE>[0,1]</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Overlap Length</NICK> +<BLURB>Percentage of stride to overlap.</BLURB> +<DEFAULT>0.2</DEFAULT> +</ARG> + +<ARG> +<NAME>GstScaletempo::rate</NAME> +<TYPE>gdouble</TYPE> +<RANGE>[-2.14748e+09,2.14748e+09]</RANGE> +<FLAGS>r</FLAGS> +<NICK>Playback Rate</NICK> +<BLURB>Current playback rate.</BLURB> +<DEFAULT>1</DEFAULT> +</ARG> + +<ARG> +<NAME>GstScaletempo::search</NAME> +<TYPE>guint</TYPE> +<RANGE><= 500</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Search Length</NICK> +<BLURB>Length in milliseconds to search for best overlap position.</BLURB> +<DEFAULT>14</DEFAULT> +</ARG> + +<ARG> +<NAME>GstScaletempo::stride</NAME> +<TYPE>guint</TYPE> +<RANGE>[1,5000]</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Stride Length</NICK> +<BLURB>Length in milliseconds to output each stride.</BLURB> +<DEFAULT>30</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPMux::seqnum</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Sequence number</NICK> +<BLURB>The RTP sequence number of the last processed packet.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPMux::seqnum-offset</NAME> +<TYPE>gint</TYPE> +<RANGE>>= G_MAXULONG</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Sequence number Offset</NICK> +<BLURB>Offset to add to all outgoing seqnum (-1 = random).</BLURB> +<DEFAULT>-1</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPMux::ssrc</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>SSRC</NICK> +<BLURB>The SSRC of the packets (-1 == random).</BLURB> +<DEFAULT>4294967295</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPMux::timestamp-offset</NAME> +<TYPE>gint</TYPE> +<RANGE>>= G_MAXULONG</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Timestamp Offset</NICK> +<BLURB>Offset to add to all outgoing timestamps (-1 = random).</BLURB> +<DEFAULT>-1</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpSBCPay::min-frames</NAME> +<TYPE>gint</TYPE> +<RANGE>>= G_MAXULONG</RANGE> +<FLAGS>rw</FLAGS> +<NICK>minimum frame number</NICK> +<BLURB>Minimum quantity of frames to send in one packet (-1 for maximum allowed by the mtu).</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPDTMFSrc::clock-rate</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>clockrate</NICK> +<BLURB>The clock-rate at which to generate the dtmf packets.</BLURB> +<DEFAULT>8000</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPDTMFSrc::packet-redundancy</NAME> +<TYPE>guint</TYPE> +<RANGE>[1,5]</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Packet Redundancy</NICK> +<BLURB>Number of packets to send to indicate start and stop dtmf events.</BLURB> +<DEFAULT>1</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPDTMFSrc::pt</NAME> +<TYPE>guint</TYPE> +<RANGE><= 128</RANGE> +<FLAGS>rw</FLAGS> +<NICK>payload type</NICK> +<BLURB>The payload type of the packets.</BLURB> +<DEFAULT>96</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPDTMFSrc::seqnum</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Sequence number</NICK> +<BLURB>The RTP sequence number of the last processed packet.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPDTMFSrc::seqnum-offset</NAME> +<TYPE>gint</TYPE> +<RANGE>>= G_MAXULONG</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Sequence number Offset</NICK> +<BLURB>Offset to add to all outgoing seqnum (-1 = random).</BLURB> +<DEFAULT>-1</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPDTMFSrc::ssrc</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>SSRC</NICK> +<BLURB>The SSRC of the packets (-1 == random).</BLURB> +<DEFAULT>4294967295</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPDTMFSrc::timestamp</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Timestamp</NICK> +<BLURB>The RTP timestamp of the last processed packet.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRTPDTMFSrc::timestamp-offset</NAME> +<TYPE>gint</TYPE> +<RANGE>>= G_MAXULONG</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Timestamp Offset</NICK> +<BLURB>Offset to add to all outgoing timestamps (-1 = random).</BLURB> +<DEFAULT>-1</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpDTMFDepay::max-duration</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Maximum duration</NICK> +<BLURB>The maxumimum duration (ms) of the outgoing soundpacket. (0 = no limit).</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpDTMFDepay::unit-time</NAME> +<TYPE>guint</TYPE> +<RANGE><= 1000</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Duration unittime</NICK> +<BLURB>The smallest unit (ms) the duration must be a multiple of (0 disables it).</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstDTMFSrc::interval</NAME> +<TYPE>guint</TYPE> +<RANGE>[10,50]</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Interval between tone packets</NICK> +<BLURB>Interval in ms between two tone packets.</BLURB> +<DEFAULT>50</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpVorbisPay::config-interval</NAME> +<TYPE>guint</TYPE> +<RANGE><= 3600</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Config Send Interval</NICK> +<BLURB>Send Config Insertion Interval in seconds (configuration headers will be multiplexed in the data stream when detected.) (0 = disabled).</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy index 22f85a5ec0f6e5b57aef94c93cbdfc01dad350e6..7a044994ff1f1195f272c1ee6f428ef7fe941113 100644 --- a/docs/plugins/gst-plugins-good-plugins.hierarchy +++ b/docs/plugins/gst-plugins-good-plugins.hierarchy @@ -2,7 +2,7 @@ GObject GInitiallyUnowned GstObject GstAllocator - GstDefaultAllocator + GstAllocatorSysmem GstAudioRingBuffer GstAudioSinkRingBuffer GstAudioSrcRingBuffer @@ -22,10 +22,12 @@ GObject GstAuParse GstAudioDecoder GstFlacDec + GstMuLawDec GstSpeexDec GstWavpackDec GstAudioEncoder GstFlacEnc + GstMuLawEnc GstSpeexEnc GstWavpackEnc GstAviDemux @@ -38,6 +40,7 @@ GObject GstDcaParse GstFlacParse GstMpegAudioParse + GstSbcParse GstWavpackParse GstBaseSink GstAudioBaseSink @@ -59,6 +62,7 @@ GObject GstGdkPixbufSink GstV4l2Sink GstBaseSrc + GstDTMFSrc GstPushSrc GstAudioBaseSrc GstAudioSrc @@ -73,6 +77,7 @@ GObject GstUDPSrc GstV4l2Src GstXImageSrc + GstRTPDTMFSrc GstSplitFileSrc GstBaseTransform GstAudioFilter @@ -103,6 +108,7 @@ GObject GstProgressReport GstRgAnalysis GstRgLimiter + GstScaletempo GstTagInject GstVideoFilter GstAgingTV @@ -163,8 +169,7 @@ GObject GstMatroskaMux GstWebMMux GstMatroskaParse - GstMuLawDec - GstMuLawEnc + GstMonoscope GstMultipartDemux GstMultipartMux GstQTDemux @@ -178,6 +183,7 @@ GObject GstRtpAC3Depay GstRtpAMRDepay GstRtpCELTDepay + GstRtpDTMFDepay GstRtpG722Depay GstRtpG723Depay GstRtpG726Depay @@ -203,7 +209,9 @@ GObject GstRtpQDM2Depay GstRtpSPEEXDepay GstRtpSV3VDepay + GstRtpSbcDepay GstRtpTheoraDepay + GstRtpVP8Depay GstRtpVRawDepay GstRtpVorbisDepay GstRtpXQTDepay @@ -236,11 +244,15 @@ GObject GstRtpMP4GPay GstRtpMP4VPay GstRtpMPAPay + GstRtpSBCPay GstRtpSPEEXPay GstRtpTheoraPay + GstRtpVP8Pay GstRtpVRawPay GstRtpVorbisPay GstRTPDec + GstRTPMux + GstRTPDTMFMux GstRndBufferSize GstRtpJitterBuffer GstRtpPtDemux diff --git a/docs/plugins/gst-plugins-good-plugins.interfaces b/docs/plugins/gst-plugins-good-plugins.interfaces index 4ef1b614eaae1b60f4cd0ae6acf2983ac953112a..e976d4caec05c0b2e51ddc1834ce7d49d745eb8f 100644 --- a/docs/plugins/gst-plugins-good-plugins.interfaces +++ b/docs/plugins/gst-plugins-good-plugins.interfaces @@ -40,6 +40,7 @@ GstMJ2Mux GstTagSetter GstTagXmpWriter GstMP4Mux GstTagSetter GstTagXmpWriter GstMatroskaMux GstTagSetter GstMatroskaMux GstTagSetter GstTocSetter +GstMuLawEnc GstPreset GstOss4Mixer GstImplementsInterface GstMixer GstPropertyProbe GstOss4Sink GstStreamVolume GstOss4Sink GstStreamVolume GstPropertyProbe @@ -86,6 +87,7 @@ GstVideoBalance GstImplementsInterface GstColorBalance GstVideoEncoder GstPreset GstVideoMixer GstChildProxy GstVideoMixer2 GstChildProxy +GstWavEnc GstTagSetter GstTocSetter GstWavpackEnc GstPreset GstWebMMux GstTagSetter GstWebMMux GstTagSetter GstTocSetter diff --git a/docs/plugins/gst-plugins-good-plugins.signals b/docs/plugins/gst-plugins-good-plugins.signals index 605c082dc0a8244fdac099932820d5819cb9a99d..794622b8ed4bbfd0a5eb861a7d70b66957415106 100644 --- a/docs/plugins/gst-plugins-good-plugins.signals +++ b/docs/plugins/gst-plugins-good-plugins.signals @@ -686,8 +686,32 @@ guint64 arg3 <FLAGS>l</FLAGS> GstV4l2Src *gstv4l2src gint arg1 -guint arg2 -guint arg3 -guint arg4 +GstCaps *arg2 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTSPSrc::handle-request</NAME> +<RETURNS>void</RETURNS> +<FLAGS></FLAGS> +GstRTSPSrc *gstrtspsrc +gpointer arg1 +gpointer arg2 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTSPSrc::on-sdp</NAME> +<RETURNS>void</RETURNS> +<FLAGS></FLAGS> +GstRTSPSrc *gstrtspsrc +GstSDPMessage *arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTSPSrc::select-stream</NAME> +<RETURNS>gboolean</RETURNS> +<FLAGS>fc</FLAGS> +GstRTSPSrc *gstrtspsrc +guint arg1 +GstCaps *arg2 </SIGNAL> diff --git a/docs/plugins/html/GstIirEqualizer.html b/docs/plugins/html/GstIirEqualizer.html index 0d1b17e3097ecd62657969ea181658f14a277036..6eb74c25a4961da05cb48bdce9ab8b60efeea0b4 100644 --- a/docs/plugins/html/GstIirEqualizer.html +++ b/docs/plugins/html/GstIirEqualizer.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>GstIirEqualizer</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch03.html" title="gst-plugins-good Base Classes"> <link rel="prev" href="ch03.html" title="gst-plugins-good Base Classes"> diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html index 4414d40c4fb07fb5cede416095b06e8fe5b119cd..6b726b4a1c561b1cd6818dcdcb61e55705b28145 100644 --- a/docs/plugins/html/ch01.html +++ b/docs/plugins/html/ch01.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>gst-plugins-good Elements</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="prev" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> @@ -20,9 +20,9 @@ <td><a accesskey="n" href="gst-plugins-good-plugins-3gppmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr></table> <div class="chapter"> -<div class="titlepage"><div><div><h2 class="title"> -<a name="idp2211408"></a>gst-plugins-good Elements</h2></div></div></div> -<div class="toc"><dl> +<div class="titlepage"><div><div><h1 class="title"> +<a name="idp3810112"></a>gst-plugins-good Elements</h1></div></div></div> +<div class="toc"><dl class="toc"> <dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-3gppmux.html">3gppmux</a></span><span class="refpurpose"> — Muxer for 3GPP (.3gp) files</span> </dt> @@ -150,6 +150,9 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-directsoundsink.html">directsoundsink</a></span><span class="refpurpose"> — DirectSound audio sink</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-dtmfsrc.html">dtmfsrc</a></span><span class="refpurpose"> — Generates DTMF tones</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-dv1394src.html">dv1394src</a></span><span class="refpurpose"> — Source for DV video data from firewire port</span> </dt> <dt> @@ -195,9 +198,6 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-gamma.html">gamma</a></span><span class="refpurpose"> — Adjusts gamma on a video stream</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufoverlay.html">gdkpixbufoverlay</a></span><span class="refpurpose"> — Overlay an image onto a video stream</span> -</dt> -<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufsink.html">gdkpixbufsink</a></span><span class="refpurpose"> — Output images as GdkPixbuf objects in bus messages</span> </dt> <dt> @@ -354,21 +354,57 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdec.html">rtpdec</a></span><span class="refpurpose"> — Accepts raw RTP and RTCP packets and sends them forward</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3depay.html">rtpac3depay</a></span><span class="refpurpose"> — Extracts AC3 audio from RTP packets (RFC 4184)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3pay.html">rtpac3pay</a></span><span class="refpurpose"> — Payload AC3 audio as RTP packets (RFC 4184)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrdepay.html">rtpamrdepay</a></span><span class="refpurpose"> — Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrpay.html">rtpamrpay</a></span><span class="refpurpose"> — Payload-encode AMR or AMR-WB audio into RTP packets (RFC 3267)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvdepay.html">rtpbvdepay</a></span><span class="refpurpose"> — Extracts BroadcomVoice audio from RTP packets (RFC 4298)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvpay.html">rtpbvpay</a></span><span class="refpurpose"> — Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"> — Extracts raw audio from RTP packets</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16pay.html">rtpL16pay</a></span><span class="refpurpose"> — Payload-encode Raw audio into RTP packets (RFC 3551)</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpj2kpay.html">rtpj2kpay</a></span><span class="refpurpose"> — Payload-encodes JPEG 2000 pictures into RTP packets (RFC 5371)</span> </dt> <dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjpegpay.html">rtpjpegpay</a></span><span class="refpurpose"> — Payload-encodes JPEG pictures into RTP packets (RFC 2435)</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsbcpay.html">rtpsbcpay</a></span><span class="refpurpose"> — Payload SBC audio as RTP packets</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtspsrc.html">rtspsrc</a></span><span class="refpurpose"> — Receive data over the network via RTSP (RFC 2326)</span> </dt> <dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbin.html">rtpbin</a></span><span class="refpurpose"> — Real-Time Transport Protocol bin</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfmux.html">rtpdtmfmux</a></span><span class="refpurpose"> — mixes RTP DTMF streams into other RTP streams</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfsrc.html">rtpdtmfsrc</a></span><span class="refpurpose"> — Generates RTP DTMF packets</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjitterbuffer.html">rtpjitterbuffer</a></span><span class="refpurpose"> — A buffer that deals with network jitter and other transmission faults</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmux.html">rtpmux</a></span><span class="refpurpose"> — multiplex N rtp streams into one</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpptdemux.html">rtpptdemux</a></span><span class="refpurpose"> — Parses codec streams transmitted in the same RTP session</span> </dt> <dt> @@ -378,6 +414,12 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"> — Splits RTP streams based on the SSRC</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-sbcparse.html">sbcparse</a></span><span class="refpurpose"> — Parses an SBC bluetooth audio stream</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-scaletempo.html">scaletempo</a></span><span class="refpurpose"> — Sync audio tempo with playback rate</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-shagadelictv.html">shagadelictv</a></span><span class="refpurpose"> — Oh behave, ShagedelicTV makes images shagadelic!</span> </dt> <dt> diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html index 8a7d8f82ac3b2ce89e2ebc223b51960f5eef5a92..8546648b8ff6813a848c354254e4b48002ebbc65 100644 --- a/docs/plugins/html/ch02.html +++ b/docs/plugins/html/ch02.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>gst-plugins-good Plugins</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="prev" href="gst-plugins-good-plugins-y4menc.html" title="y4menc"> @@ -20,215 +20,218 @@ <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-1394.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr></table> <div class="chapter"> -<div class="titlepage"><div><div><h2 class="title"> -<a name="idp75168"></a>gst-plugins-good Plugins</h2></div></div></div> -<div class="toc"><dl> +<div class="titlepage"><div><div><h1 class="title"> +<a name="idp280352"></a>gst-plugins-good Plugins</h1></div></div></div> +<div class="toc"><dl class="toc"> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-1394.html">1394</a></span><span class="refpurpose"> — <a name="plugin-1394"></a>Source for video data via IEEE1394 interface</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-1394.html">1394</a></span><span class="refpurpose">Source for video data via IEEE1394 interface</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-aasink.html">aasink</a></span><span class="refpurpose"> — <a name="plugin-aasink"></a>ASCII Art video sink</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-aasink.html">aasink</a></span><span class="refpurpose">ASCII Art video sink</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose"> — <a name="plugin-alaw"></a>ALaw audio conversion routines</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose">ALaw audio conversion routines</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose"> — <a name="plugin-alpha"></a>adds an alpha channel to video - constant or via chroma-keying</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose">adds an alpha channel to video - constant or via chroma-keying</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose"> — <a name="plugin-alphacolor"></a>RGBA from/to AYUV colorspace conversion preserving the alpha channel</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose">RGBA from/to AYUV colorspace conversion preserving the alpha channel</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose"> — <a name="plugin-apetag"></a>APEv1/2 tag reader</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose">APEv1/2 tag reader</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose"> — <a name="plugin-audiofx"></a>Audio effects plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose">Audio effects plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose"> — <a name="plugin-auparse"></a>parses au streams</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose">parses au streams</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-autodetect.html">autodetect</a></span><span class="refpurpose"> — <a name="plugin-autodetect"></a>Plugin contains auto-detection plugins for video/audio in- and outputs</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-autodetect.html">autodetect</a></span><span class="refpurpose">Plugin contains auto-detection plugins for video/audio in- and outputs</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-avi.html">avi</a></span><span class="refpurpose"> — <a name="plugin-avi"></a>AVI stream handling</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-avi.html">avi</a></span><span class="refpurpose">AVI stream handling</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cacasink.html">cacasink</a></span><span class="refpurpose"> — <a name="plugin-cacasink"></a>Colored ASCII Art video sink</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cacasink.html">cacasink</a></span><span class="refpurpose">Colored ASCII Art video sink</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cairo.html">cairo</a></span><span class="refpurpose"> — <a name="plugin-cairo"></a>Cairo-based elements</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cairo.html">cairo</a></span><span class="refpurpose">Cairo-based elements</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cutter.html">cutter</a></span><span class="refpurpose"> — <a name="plugin-cutter"></a>Audio Cutter to split audio into non-silent bits</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cutter.html">cutter</a></span><span class="refpurpose">Audio Cutter to split audio into non-silent bits</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-debug.html">debug</a></span><span class="refpurpose"> — <a name="plugin-debug"></a>elements for testing and debugging</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-debug.html">debug</a></span><span class="refpurpose">elements for testing and debugging</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-deinterlace.html">deinterlace</a></span><span class="refpurpose"> — <a name="plugin-deinterlace"></a>Deinterlacer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-deinterlace.html">deinterlace</a></span><span class="refpurpose">Deinterlacer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-directsound.html">directsound</a></span><span class="refpurpose"> — <a name="plugin-directsound"></a>DirectSound plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-directsound.html">directsound</a></span><span class="refpurpose">DirectSound plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose"> — <a name="plugin-dv"></a>DV demuxer and decoder based on libdv (libdv.sf.net)</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dtmf.html">dtmf</a></span><span class="refpurpose">DTMF plugins</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose"> — <a name="plugin-equalizer"></a>GStreamer audio equalizers</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose">DV demuxer and decoder based on libdv (libdv.sf.net)</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose"> — <a name="plugin-effectv"></a>effect plugins from the effectv project</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose">GStreamer audio equalizers</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose"> — <a name="plugin-flac"></a>The FLAC Lossless compressor Codec</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose">effect plugins from the effectv project</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flv.html">flv</a></span><span class="refpurpose"> — <a name="plugin-flv"></a>FLV muxing and demuxing plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose">The FLAC Lossless compressor Codec</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flxdec.html">flxdec</a></span><span class="refpurpose"> — <a name="plugin-flxdec"></a>FLC/FLI/FLX video decoder</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flv.html">flv</a></span><span class="refpurpose">FLV muxing and demuxing plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose"> — <a name="plugin-gdkpixbuf"></a>GdkPixbuf-based image decoder, overlay and sink</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flxdec.html">flxdec</a></span><span class="refpurpose">FLC/FLI/FLX video decoder</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose"> — <a name="plugin-goom"></a>GOOM visualization filter</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose">GdkPixbuf-based image decoder, overlay and sink</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose"> — <a name="plugin-goom2k1"></a>GOOM 2k1 visualization filter</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose">GOOM visualization filter</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose"> — <a name="plugin-icydemux"></a>Demux ICY tags from a stream</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose">GOOM 2k1 visualization filter</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-id3demux.html">id3demux</a></span><span class="refpurpose"> — <a name="plugin-id3demux"></a>Demux ID3v1 and ID3v2 tags from a file</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose">Demux ICY tags from a stream</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-imagefreeze.html">imagefreeze</a></span><span class="refpurpose"> — <a name="plugin-imagefreeze"></a>Still frame stream generator</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-id3demux.html">id3demux</a></span><span class="refpurpose">Demux ID3v1 and ID3v2 tags from a file</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-interleave.html">interleave</a></span><span class="refpurpose"> — <a name="plugin-interleave"></a>Audio interleaver/deinterleaver</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-imagefreeze.html">imagefreeze</a></span><span class="refpurpose">Still frame stream generator</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-isomp4.html">isomp4</a></span><span class="refpurpose"> — <a name="plugin-isomp4"></a>ISO base media file format support (mp4, 3gpp, qt, mj2)</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-interleave.html">interleave</a></span><span class="refpurpose">Audio interleaver/deinterleaver</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jack.html">jack</a></span><span class="refpurpose"> — <a name="plugin-jack"></a>JACK audio elements</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-isomp4.html">isomp4</a></span><span class="refpurpose">ISO base media file format support (mp4, 3gpp, qt, mj2)</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jpeg.html">jpeg</a></span><span class="refpurpose"> — <a name="plugin-jpeg"></a>JPeg plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jack.html">jack</a></span><span class="refpurpose">JACK audio elements</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose"> — <a name="plugin-level"></a>Audio level plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jpeg.html">jpeg</a></span><span class="refpurpose">JPeg plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-matroska.html">matroska</a></span><span class="refpurpose"> — <a name="plugin-matroska"></a>Matroska and WebM stream handling</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose">Audio level plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-monoscope.html">monoscope</a></span><span class="refpurpose"> — <a name="plugin-monoscope"></a>Monoscope visualization</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-matroska.html">matroska</a></span><span class="refpurpose">Matroska and WebM stream handling</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-mulaw.html">mulaw</a></span><span class="refpurpose"> — <a name="plugin-mulaw"></a>MuLaw audio conversion routines</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-monoscope.html">monoscope</a></span><span class="refpurpose">Monoscope visualization</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multifile.html">multifile</a></span><span class="refpurpose"> — <a name="plugin-multifile"></a>Reads/Writes buffers from/to sequentially named files</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-mulaw.html">mulaw</a></span><span class="refpurpose">MuLaw audio conversion routines</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multipart.html">multipart</a></span><span class="refpurpose"> — <a name="plugin-multipart"></a>multipart stream manipulation</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multifile.html">multifile</a></span><span class="refpurpose">Reads/Writes buffers from/to sequentially named files</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-navigationtest.html">navigationtest</a></span><span class="refpurpose"> — <a name="plugin-navigationtest"></a>Template for a video filter</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multipart.html">multipart</a></span><span class="refpurpose">multipart stream manipulation</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-oss4.html">oss4</a></span><span class="refpurpose"> — <a name="plugin-oss4"></a>Open Sound System (OSS) version 4 support for GStreamer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-navigationtest.html">navigationtest</a></span><span class="refpurpose">Template for a video filter</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ossaudio.html">ossaudio</a></span><span class="refpurpose"> — <a name="plugin-ossaudio"></a>OSS (Open Sound System) support for GStreamer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-oss4.html">oss4</a></span><span class="refpurpose">Open Sound System (OSS) version 4 support for GStreamer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxaudio.html">osxaudio</a></span><span class="refpurpose"> — <a name="plugin-osxaudio"></a>OSX (Mac OS X) audio support for GStreamer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ossaudio.html">ossaudio</a></span><span class="refpurpose">OSS (Open Sound System) support for GStreamer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxvideo.html">osxvideo</a></span><span class="refpurpose"> — <a name="plugin-osxvideo"></a>OSX native video output plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxaudio.html">osxaudio</a></span><span class="refpurpose">OSX (Mac OS X) audio support for GStreamer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-png.html">png</a></span><span class="refpurpose"> — <a name="plugin-png"></a>PNG plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxvideo.html">osxvideo</a></span><span class="refpurpose">OSX native video output plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-pulseaudio.html">pulseaudio</a></span><span class="refpurpose"> — <a name="plugin-pulseaudio"></a>PulseAudio plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-png.html">png</a></span><span class="refpurpose">PNG plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose"> — <a name="plugin-replaygain"></a>ReplayGain volume normalization</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-pulseaudio.html">pulseaudio</a></span><span class="refpurpose">PulseAudio plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose"> — <a name="plugin-rtp"></a>Real-time protocol plugins</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose">ReplayGain volume normalization</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose"> — <a name="plugin-rtpmanager"></a>RTP session management plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose">Real-time protocol plugins</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose"> — <a name="plugin-rtsp"></a>transfer data via RTSP</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose">RTP session management plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shapewipe.html">shapewipe</a></span><span class="refpurpose"> — <a name="plugin-shapewipe"></a>Shape Wipe transition filter</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose">transfer data via RTSP</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shout2send.html">shout2send</a></span><span class="refpurpose"> — <a name="plugin-shout2send"></a>Sends data to an icecast server using libshout2</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shapewipe.html">shapewipe</a></span><span class="refpurpose">Shape Wipe transition filter</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-smpte.html">smpte</a></span><span class="refpurpose"> — <a name="plugin-smpte"></a>Apply the standard SMPTE transitions on video images</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shout2send.html">shout2send</a></span><span class="refpurpose">Sends data to an icecast server using libshout2</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-soup.html">soup</a></span><span class="refpurpose"> — <a name="plugin-soup"></a>libsoup HTTP client src/sink</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-smpte.html">smpte</a></span><span class="refpurpose">Apply the standard SMPTE transitions on video images</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-spectrum.html">spectrum</a></span><span class="refpurpose"> — <a name="plugin-spectrum"></a>Run an FFT on the audio signal, output spectrum data</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-soup.html">soup</a></span><span class="refpurpose">libsoup HTTP client src/sink</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-speex.html">speex</a></span><span class="refpurpose"> — <a name="plugin-speex"></a>Speex plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-spectrum.html">spectrum</a></span><span class="refpurpose">Run an FFT on the audio signal, output spectrum data</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-taglib.html">taglib</a></span><span class="refpurpose"> — <a name="plugin-taglib"></a>Tag writing plug-in based on taglib</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-speex.html">speex</a></span><span class="refpurpose">Speex plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-udp.html">udp</a></span><span class="refpurpose"> — <a name="plugin-udp"></a>transfer data via UDP</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-taglib.html">taglib</a></span><span class="refpurpose">Tag writing plug-in based on taglib</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-video4linux2.html">video4linux2</a></span><span class="refpurpose"> — <a name="plugin-video4linux2"></a>elements for Video 4 Linux</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-udp.html">udp</a></span><span class="refpurpose">transfer data via UDP</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videobox.html">videobox</a></span><span class="refpurpose"> — <a name="plugin-videobox"></a>resizes a video by adding borders or cropping</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-video4linux2.html">video4linux2</a></span><span class="refpurpose">elements for Video 4 Linux</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videocrop.html">videocrop</a></span><span class="refpurpose"> — <a name="plugin-videocrop"></a>Crops video into a user-defined region</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videobox.html">videobox</a></span><span class="refpurpose">resizes a video by adding borders or cropping</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videofilter.html">videofilter</a></span><span class="refpurpose"> — <a name="plugin-videofilter"></a>Video filters plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videocrop.html">videocrop</a></span><span class="refpurpose">Crops video into a user-defined region</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videomixer.html">videomixer</a></span><span class="refpurpose"> — <a name="plugin-videomixer"></a>Video mixer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videofilter.html">videofilter</a></span><span class="refpurpose">Video filters plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-vpx.html">vpx</a></span><span class="refpurpose"> — <a name="plugin-vpx"></a>VP8 plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videomixer.html">videomixer</a></span><span class="refpurpose">Video mixer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-waveform.html">waveform</a></span><span class="refpurpose"> — <a name="plugin-waveform"></a>WaveForm API based plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-vpx.html">vpx</a></span><span class="refpurpose">VP8 plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavenc.html">wavenc</a></span><span class="refpurpose"> — <a name="plugin-wavenc"></a>Encode raw audio into WAV</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-waveform.html">waveform</a></span><span class="refpurpose">WaveForm API based plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavpack.html">wavpack</a></span><span class="refpurpose"> — <a name="plugin-wavpack"></a>Wavpack lossless/lossy audio format handling</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavenc.html">wavenc</a></span><span class="refpurpose">Encode raw audio into WAV</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavparse.html">wavparse</a></span><span class="refpurpose"> — <a name="plugin-wavparse"></a>Parse a .wav file into raw audio</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavpack.html">wavpack</a></span><span class="refpurpose">Wavpack lossless/lossy audio format handling</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ximagesrc.html">ximagesrc</a></span><span class="refpurpose"> — <a name="plugin-ximagesrc"></a>X11 video input plugin using standard Xlib calls</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavparse.html">wavparse</a></span><span class="refpurpose">Parse a .wav file into raw audio</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-y4menc.html">y4menc</a></span><span class="refpurpose"> — <a name="plugin-y4menc"></a>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ximagesrc.html">ximagesrc</a></span><span class="refpurpose">X11 video input plugin using standard Xlib calls</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-y4menc.html">y4menc</a></span><span class="refpurpose">Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</span> </dt> </dl></div> </div> diff --git a/docs/plugins/html/ch03.html b/docs/plugins/html/ch03.html index 4dfa220b03ae37f2b11897667fe8a9eb2248612c..a813f39dbb6323a29aea466da731a17cbbe8d3d2 100644 --- a/docs/plugins/html/ch03.html +++ b/docs/plugins/html/ch03.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>gst-plugins-good Base Classes</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="prev" href="gst-plugins-good-plugins-plugin-y4menc.html" title="y4menc"> @@ -20,9 +20,9 @@ <td><a accesskey="n" href="GstIirEqualizer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr></table> <div class="chapter"> -<div class="titlepage"><div><div><h2 class="title"> -<a name="idp4779248"></a>gst-plugins-good Base Classes</h2></div></div></div> -<div class="toc"><dl> +<div class="titlepage"><div><div><h1 class="title"> +<a name="idp86112"></a>gst-plugins-good Base Classes</h1></div></div></div> +<div class="toc"><dl class="toc"> <dt> <span class="refentrytitle"><a href="GstIirEqualizer.html">GstIirEqualizer</a></span><span class="refpurpose"></span> </dt> diff --git a/docs/plugins/html/gst-plugins-good-plugins.devhelp2 b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2 similarity index 84% rename from docs/plugins/html/gst-plugins-good-plugins.devhelp2 rename to docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2 index caf8b67a5cbe019680b453b958185f1d018b256b..ae187ac40bf6ce8f93903a8e59566a5e9b6bbaba 100644 --- a/docs/plugins/html/gst-plugins-good-plugins.devhelp2 +++ b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""> -<book xmlns="http://www.devhelp.net/book" title="GStreamer Good Plugins 1.0 Plugins Reference Manual" link="index.html" author="" name="gst-plugins-good-plugins" version="2" language="c"> +<book xmlns="http://www.devhelp.net/book" title="GStreamer Good Plugins 1.0 Plugins Reference Manual" link="index.html" author="" name="gst-plugins-good-plugins-1.0" version="2" language="c"> <chapters> <sub name="gst-plugins-good Elements" link="ch01.html"> <sub name="3gppmux" link="gst-plugins-good-plugins-3gppmux.html"/> @@ -45,6 +45,7 @@ <sub name="deinterleave" link="gst-plugins-good-plugins-deinterleave.html"/> <sub name="dicetv" link="gst-plugins-good-plugins-dicetv.html"/> <sub name="directsoundsink" link="gst-plugins-good-plugins-directsoundsink.html"/> + <sub name="dtmfsrc" link="gst-plugins-good-plugins-dtmfsrc.html"/> <sub name="dv1394src" link="gst-plugins-good-plugins-dv1394src.html"/> <sub name="dvdec" link="gst-plugins-good-plugins-dvdec.html"/> <sub name="dvdemux" link="gst-plugins-good-plugins-dvdemux.html"/> @@ -60,7 +61,6 @@ <sub name="flvmux" link="gst-plugins-good-plugins-flvmux.html"/> <sub name="flxdec" link="gst-plugins-good-plugins-flxdec.html"/> <sub name="gamma" link="gst-plugins-good-plugins-gamma.html"/> - <sub name="gdkpixbufoverlay" link="gst-plugins-good-plugins-gdkpixbufoverlay.html"/> <sub name="gdkpixbufsink" link="gst-plugins-good-plugins-gdkpixbufsink.html"/> <sub name="goom" link="gst-plugins-good-plugins-goom.html"/> <sub name="goom2k1" link="gst-plugins-good-plugins-goom2k1.html"/> @@ -113,14 +113,28 @@ <sub name="rgvolume" link="gst-plugins-good-plugins-rgvolume.html"/> <sub name="rippletv" link="gst-plugins-good-plugins-rippletv.html"/> <sub name="rtpdec" link="gst-plugins-good-plugins-rtpdec.html"/> + <sub name="rtpac3depay" link="gst-plugins-good-plugins-rtpac3depay.html"/> + <sub name="rtpac3pay" link="gst-plugins-good-plugins-rtpac3pay.html"/> + <sub name="rtpamrdepay" link="gst-plugins-good-plugins-rtpamrdepay.html"/> + <sub name="rtpamrpay" link="gst-plugins-good-plugins-rtpamrpay.html"/> + <sub name="rtpbvdepay" link="gst-plugins-good-plugins-rtpbvdepay.html"/> + <sub name="rtpbvpay" link="gst-plugins-good-plugins-rtpbvpay.html"/> + <sub name="rtpL16depay" link="gst-plugins-good-plugins-rtpL16depay.html"/> + <sub name="rtpL16pay" link="gst-plugins-good-plugins-rtpL16pay.html"/> <sub name="rtpj2kpay" link="gst-plugins-good-plugins-rtpj2kpay.html"/> <sub name="rtpjpegpay" link="gst-plugins-good-plugins-rtpjpegpay.html"/> + <sub name="rtpsbcpay" link="gst-plugins-good-plugins-rtpsbcpay.html"/> <sub name="rtspsrc" link="gst-plugins-good-plugins-rtspsrc.html"/> <sub name="rtpbin" link="gst-plugins-good-plugins-rtpbin.html"/> + <sub name="rtpdtmfmux" link="gst-plugins-good-plugins-rtpdtmfmux.html"/> + <sub name="rtpdtmfsrc" link="gst-plugins-good-plugins-rtpdtmfsrc.html"/> <sub name="rtpjitterbuffer" link="gst-plugins-good-plugins-rtpjitterbuffer.html"/> + <sub name="rtpmux" link="gst-plugins-good-plugins-rtpmux.html"/> <sub name="rtpptdemux" link="gst-plugins-good-plugins-rtpptdemux.html"/> <sub name="rtpsession" link="gst-plugins-good-plugins-rtpsession.html"/> <sub name="rtpssrcdemux" link="gst-plugins-good-plugins-rtpssrcdemux.html"/> + <sub name="sbcparse" link="gst-plugins-good-plugins-sbcparse.html"/> + <sub name="scaletempo" link="gst-plugins-good-plugins-scaletempo.html"/> <sub name="shagadelictv" link="gst-plugins-good-plugins-shagadelictv.html"/> <sub name="shapewipe" link="gst-plugins-good-plugins-shapewipe.html"/> <sub name="smpte" link="gst-plugins-good-plugins-smpte.html"/> @@ -173,6 +187,7 @@ <sub name="debug" link="gst-plugins-good-plugins-plugin-debug.html"/> <sub name="deinterlace" link="gst-plugins-good-plugins-plugin-deinterlace.html"/> <sub name="directsound" link="gst-plugins-good-plugins-plugin-directsound.html"/> + <sub name="dtmf" link="gst-plugins-good-plugins-plugin-dtmf.html"/> <sub name="dv" link="gst-plugins-good-plugins-plugin-dv.html"/> <sub name="equalizer" link="gst-plugins-good-plugins-plugin-equalizer.html"/> <sub name="effectv" link="gst-plugins-good-plugins-plugin-effectv.html"/> @@ -233,15 +248,15 @@ </sub> </chapters> <functions> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-3gppmux.html#idp5897104"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-3gppmux.html#idp5560000"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-3gppmux.html#idp8034544"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aacparse.html#idp8511120"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aacparse.html#idp8039664"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aacparse.html#idp6788592"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-3gppmux.html#idp6113488"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-3gppmux.html#idp9144864"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-3gppmux.html#idp6311024"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aacparse.html#idp2950000"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aacparse.html#idp5578864"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aacparse.html#idp7021072"/> <keyword type="struct" name="struct GstAacParse" link="gst-plugins-good-plugins-aacparse.html#GstAacParse-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aasink.html#idp7550848"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aasink.html#idp9686608"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aasink.html#idp9493872"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aasink.html#idp8910368"/> <keyword type="struct" name="struct GstAASink" link="gst-plugins-good-plugins-aasink.html#GstAASink-struct"/> <keyword type="property" name="The "brightness" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--brightness"/> <keyword type="property" name="The "contrast" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--contrast"/> @@ -256,20 +271,20 @@ <keyword type="property" name="The "width" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--width"/> <keyword type="signal" name="The "frame-displayed" signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-frame-displayed"/> <keyword type="signal" name="The "have-size" signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-have-size"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-ac3parse.html#idp8534944"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ac3parse.html#idp8729040"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ac3parse.html#idp4996480"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-ac3parse.html#idp9031760"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ac3parse.html#idp6596512"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ac3parse.html#idp8013712"/> <keyword type="struct" name="struct GstAc3Parse" link="gst-plugins-good-plugins-ac3parse.html#GstAc3Parse-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-agingtv.html#idp6588304"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-agingtv.html#idp4944256"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-agingtv.html#idp5796816"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-agingtv.html#idp6143968"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-agingtv.html#idp5767920"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-agingtv.html#idp5807664"/> <keyword type="struct" name="struct GstAgingTV" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV-struct"/> <keyword type="property" name="The "color-aging" property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--color-aging"/> <keyword type="property" name="The "dusts" property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--dusts"/> <keyword type="property" name="The "pits" property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits"/> <keyword type="property" name="The "scratch-lines" property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alpha.html#idp9320896"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alpha.html#idp8758864"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alpha.html#idp6082352"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alpha.html#idp5463632"/> <keyword type="struct" name="struct GstAlpha" link="gst-plugins-good-plugins-alpha.html#GstAlpha-struct"/> <keyword type="enum" name="enum GstAlphaMethod" link="gst-plugins-good-plugins-alpha.html#GstAlphaMethod"/> <keyword type="property" name="The "alpha" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--alpha"/> @@ -282,41 +297,41 @@ <keyword type="property" name="The "black-sensitivity" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--black-sensitivity"/> <keyword type="property" name="The "white-sensitivity" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity"/> <keyword type="property" name="The "prefer-passthrough" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alphacolor.html#idp7961536"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alphacolor.html#idp8479376"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alphacolor.html#idp9405456"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alphacolor.html#idp7048096"/> <keyword type="struct" name="struct GstAlphaColor" link="gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawdec.html#idp8768368"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawdec.html#idp9490512"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawdec.html#idp6826464"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawdec.html#idp9772352"/> <keyword type="struct" name="struct GstALawDec" link="gst-plugins-good-plugins-alawdec.html#GstALawDec-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawenc.html#idp7009168"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawenc.html#idp6085760"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawenc.html#idp6619840"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawenc.html#idp9450112"/> <keyword type="struct" name="struct GstALawDec" link="gst-plugins-good-plugins-alawenc.html#GstALawDec-struct"/> <keyword type="struct" name="struct GstALawEnc" link="gst-plugins-good-plugins-alawenc.html#GstALawEnc"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-amrparse.html#idp6831200"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-amrparse.html#idp6784240"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-amrparse.html#idp7301456"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-amrparse.html#idp7779712"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-amrparse.html#idp8942016"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-amrparse.html#idp5623776"/> <keyword type="struct" name="struct GstAmrParse" link="gst-plugins-good-plugins-amrparse.html#GstAmrParse-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-apedemux.html#idp7879440"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apedemux.html#idp7679136"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apedemux.html#idp10028064"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-apedemux.html#idp5795760"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apedemux.html#idp1531392"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apedemux.html#idp6644736"/> <keyword type="struct" name="struct GstApeDemux" link="gst-plugins-good-plugins-apedemux.html#GstApeDemux-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apev2mux.html#idp7608704"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apev2mux.html#idp5168992"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apev2mux.html#idp6518416"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apev2mux.html#idp8450720"/> <keyword type="struct" name="struct GstApev2Mux" link="gst-plugins-good-plugins-apev2mux.html#GstApev2Mux-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aspectratiocrop.html#idp9682640"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aspectratiocrop.html#idp9283408"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aspectratiocrop.html#idp5076464"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aspectratiocrop.html#idp9647744"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aspectratiocrop.html#idp5724416"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aspectratiocrop.html#idp8195472"/> <keyword type="struct" name="struct GstAspectRatioCrop" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop-struct"/> <keyword type="property" name="The "aspect-ratio" property" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioamplify.html#idp8415536"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioamplify.html#idp9042144"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioamplify.html#idp9664656"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioamplify.html#idp8526960"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioamplify.html#idp2988576"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioamplify.html#idp7125360"/> <keyword type="struct" name="struct GstAudioAmplify" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify-struct"/> <keyword type="property" name="The "amplification" property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--amplification"/> <keyword type="property" name="The "clipping-method" property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--clipping-method"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiochebband.html#idp7927952"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiochebband.html#idp8004864"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiochebband.html#idp5792464"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiochebband.html#idp6140608"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiochebband.html#idp10187200"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiochebband.html#idp8821472"/> <keyword type="struct" name="struct GstAudioChebBand" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand-struct"/> <keyword type="property" name="The "lower-frequency" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--lower-frequency"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--mode"/> @@ -324,155 +339,155 @@ <keyword type="property" name="The "ripple" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--ripple"/> <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--type"/> <keyword type="property" name="The "upper-frequency" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--upper-frequency"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiocheblimit.html#idp6577120"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiocheblimit.html#idm9120"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiocheblimit.html#idp7659936"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiocheblimit.html#idp8331104"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiocheblimit.html#idp5477056"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiocheblimit.html#idp5606368"/> <keyword type="struct" name="struct GstAudioChebLimit" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit-struct"/> <keyword type="property" name="The "cutoff" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--cutoff"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--mode"/> <keyword type="property" name="The "poles" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--poles"/> <keyword type="property" name="The "ripple" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple"/> <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type"/> - <keyword type="" name="Example application" link="gst-plugins-good-plugins-audiofirfilter.html#idp8477488"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiofirfilter.html#idp5956976"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiofirfilter.html#idp9251552"/> + <keyword type="" name="Example application" link="gst-plugins-good-plugins-audiofirfilter.html#idp9199184"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiofirfilter.html#idp7991472"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiofirfilter.html#idp10261952"/> <keyword type="struct" name="struct GstAudioFIRFilter" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-struct"/> <keyword type="property" name="The "kernel" property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--kernel"/> <keyword type="property" name="The "latency" property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--latency"/> <keyword type="signal" name="The "rate-changed" signal" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-rate-changed"/> - <keyword type="" name="Example application" link="gst-plugins-good-plugins-audioiirfilter.html#idp4910688"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioiirfilter.html#idp10393392"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioiirfilter.html#idp5693552"/> + <keyword type="" name="Example application" link="gst-plugins-good-plugins-audioiirfilter.html#idp6404928"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioiirfilter.html#idp8145488"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioiirfilter.html#idp9189216"/> <keyword type="struct" name="struct GstAudioIIRFilter" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-struct"/> <keyword type="property" name="The "a" property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--a"/> <keyword type="property" name="The "b" property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--b"/> <keyword type="signal" name="The "rate-changed" signal" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsincband.html#idp5244672"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsincband.html#idp8579952"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsincband.html#idp9508512"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsincband.html#idp7302048"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsincband.html#idp10726912"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsincband.html#idp6534160"/> <keyword type="struct" name="struct GstAudioWSincBand" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand-struct"/> <keyword type="property" name="The "lower-frequency" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--lower-frequency"/> <keyword type="property" name="The "upper-frequency" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--upper-frequency"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--mode"/> <keyword type="property" name="The "window" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--window"/> <keyword type="property" name="The "length" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--length"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsinclimit.html#idp6342304"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsinclimit.html#idm30832"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsinclimit.html#idp5339824"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsinclimit.html#idp6291792"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsinclimit.html#idp5754672"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsinclimit.html#idp7033856"/> <keyword type="struct" name="struct GstAudioWSincLimit" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit-struct"/> <keyword type="property" name="The "frequency" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--frequency"/> <keyword type="property" name="The "length" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--length"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--mode"/> <keyword type="property" name="The "window" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window"/> <keyword type="property" name="The "cutoff" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioecho.html#idp6077184"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioecho.html#idp5749168"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioecho.html#idp6029888"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioecho.html#idp6028784"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioecho.html#idp8851296"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioecho.html#idp6008928"/> <keyword type="struct" name="struct GstAudioEcho" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct"/> <keyword type="property" name="The "delay" property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay"/> <keyword type="property" name="The "feedback" property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback"/> <keyword type="property" name="The "intensity" property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity"/> <keyword type="property" name="The "max-delay" property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiodynamic.html#idp6030816"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiodynamic.html#idp6497904"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiodynamic.html#idp8507408"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiodynamic.html#idp7655024"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiodynamic.html#idp4774688"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiodynamic.html#idp6403648"/> <keyword type="struct" name="struct GstAudioDynamic" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct"/> <keyword type="property" name="The "characteristics" property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode"/> <keyword type="property" name="The "ratio" property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio"/> <keyword type="property" name="The "threshold" property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioinvert.html#idp8563776"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioinvert.html#idp5154176"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioinvert.html#idp6566272"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioinvert.html#idp5762816"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioinvert.html#idp9076528"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioinvert.html#idp5218224"/> <keyword type="struct" name="struct GstAudioInvert" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct"/> <keyword type="property" name="The "degree" property" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiopanorama.html#idp8410144"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiopanorama.html#idp5566016"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiopanorama.html#idp6929344"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiopanorama.html#idm11888"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiopanorama.html#idp2876928"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiopanorama.html#idp11457312"/> <keyword type="struct" name="struct GstAudioPanorama" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct"/> <keyword type="property" name="The "panorama" property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama"/> <keyword type="property" name="The "method" property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiokaraoke.html#idp7106688"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiokaraoke.html#idp7811584"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiokaraoke.html#idp5109584"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiokaraoke.html#idp5419792"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiokaraoke.html#idp9252656"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiokaraoke.html#idp10378896"/> <keyword type="struct" name="struct GstAudioKaraoke" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct"/> <keyword type="property" name="The "filter-band" property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band"/> <keyword type="property" name="The "filter-width" property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width"/> <keyword type="property" name="The "level" property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level"/> <keyword type="property" name="The "mono-level" property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-auparse.html#idp9714160"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-auparse.html#idp9822992"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-auparse.html#idp8715792"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-auparse.html#idp9070240"/> <keyword type="struct" name="struct GstAuParse" link="gst-plugins-good-plugins-auparse.html#GstAuParse-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosink.html#idp5756432"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosink.html#idp11028320"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosink.html#idp10099616"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosink.html#idp8750000"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosink.html#idp8879536"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosink.html#idp9085088"/> <keyword type="struct" name="GstAutoAudioSink" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink-struct"/> <keyword type="property" name="The "filter-caps" property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--filter-caps"/> <keyword type="property" name="The "ts-offset" property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--ts-offset"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosrc.html#idp10447440"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosrc.html#idp5559200"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosrc.html#idp7640272"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosrc.html#idp9138832"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosrc.html#idp5345888"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosrc.html#idp10553360"/> <keyword type="struct" name="GstAutoAudioSrc" link="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc-struct"/> <keyword type="property" name="The "filter-caps" property" link="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc--filter-caps"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosink.html#idp10697584"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosink.html#idp6525888"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosink.html#idp5018176"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosink.html#idp6701440"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosink.html#idp3260992"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosink.html#idp10730080"/> <keyword type="struct" name="GstAutoVideoSink" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink-struct"/> <keyword type="property" name="The "filter-caps" property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--filter-caps"/> <keyword type="property" name="The "ts-offset" property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--ts-offset"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosrc.html#idp6896304"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosrc.html#idp6764640"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosrc.html#idp5343072"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosrc.html#idp7064416"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosrc.html#idp6356896"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosrc.html#idp8468768"/> <keyword type="struct" name="GstAutoVideoSrc" link="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc-struct"/> <keyword type="property" name="The "filter-caps" property" link="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc--filter-caps"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avidemux.html#idp11487216"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avidemux.html#idp11484016"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avidemux.html#idp11478240"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avidemux.html#idp11160144"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avidemux.html#idp11157712"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avidemux.html#idp11151040"/> <keyword type="struct" name="GstAviDemux" link="gst-plugins-good-plugins-avidemux.html#GstAviDemux-struct"/> - <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-avimux.html#idp6591376"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avimux.html#idp11660240"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avimux.html#idp8881488"/> + <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-avimux.html#idp5273808"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avimux.html#idp5375904"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avimux.html#idp10974672"/> <keyword type="struct" name="struct GstAviMux" link="gst-plugins-good-plugins-avimux.html#GstAviMux-struct"/> <keyword type="property" name="The "bigfile" property" link="gst-plugins-good-plugins-avimux.html#GstAviMux--bigfile"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avisubtitle.html#idp4891232"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avisubtitle.html#idp8992208"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avisubtitle.html#idp10442128"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avisubtitle.html#idp7552048"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avisubtitle.html#idp5563312"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avisubtitle.html#idp9055968"/> <keyword type="struct" name="struct GstAviSubtitle" link="gst-plugins-good-plugins-avisubtitle.html#GstAviSubtitle-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cacasink.html#idp11117168"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cacasink.html#idp7605936"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cacasink.html#idp6840112"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cacasink.html#idp5432784"/> <keyword type="struct" name="struct GstCACASink" link="gst-plugins-good-plugins-cacasink.html#GstCACASink-struct"/> <keyword type="property" name="The "anti-aliasing" property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--anti-aliasing"/> <keyword type="property" name="The "dither" property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--dither"/> <keyword type="property" name="The "screen-height" property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-height"/> <keyword type="property" name="The "screen-width" property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-width"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cairooverlay.html#idp10694080"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cairooverlay.html#idp5589152"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cairooverlay.html#idp12083040"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cairooverlay.html#idp8612080"/> <keyword type="struct" name="struct GstCairoOverlay" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-struct"/> <keyword type="signal" name="The "caps-changed" signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-caps-changed"/> <keyword type="signal" name="The "draw" signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-draw"/> - <keyword type="" name="" link="gst-plugins-good-plugins-capssetter.html#idp6441952"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-capssetter.html#idp11185184"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-capssetter.html#idp7152864"/> + <keyword type="" name="" link="gst-plugins-good-plugins-capssetter.html#idp5938384"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-capssetter.html#idp7467344"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-capssetter.html#idp11516288"/> <keyword type="struct" name="struct GstCapsSetter" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter-struct"/> <keyword type="property" name="The "caps" property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps"/> <keyword type="property" name="The "join" property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join"/> <keyword type="property" name="The "replace" property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-cutter.html#idp12095840"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cutter.html#idp10082784"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cutter.html#idp10208496"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-cutter.html#idp7650192"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cutter.html#idp5415856"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cutter.html#idp11312080"/> <keyword type="struct" name="struct GstCutter" link="gst-plugins-good-plugins-cutter.html#GstCutter-struct"/> <keyword type="property" name="The "leaky" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--leaky"/> <keyword type="property" name="The "pre-length" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--pre-length"/> <keyword type="property" name="The "run-length" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--run-length"/> <keyword type="property" name="The "threshold" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold"/> <keyword type="property" name="The "threshold-dB" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold-dB"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dcaparse.html#idp7561104"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dcaparse.html#idp10031984"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dcaparse.html#idp7268512"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dcaparse.html#idp8826816"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dcaparse.html#idp11910560"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dcaparse.html#idp12608576"/> <keyword type="struct" name="struct GstDcaParse" link="gst-plugins-good-plugins-dcaparse.html#GstDcaParse-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterlace.html#idp10271408"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterlace.html#idp10539760"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterlace.html#idp8797088"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterlace.html#idp7050240"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterlace.html#idp7026704"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterlace.html#idp11438208"/> <keyword type="struct" name="struct GstDeinterlace" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace-struct"/> <keyword type="property" name="The "fields" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields"/> <keyword type="property" name="The "method" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--method"/> @@ -481,22 +496,26 @@ <keyword type="property" name="The "drop-orphans" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--drop-orphans"/> <keyword type="property" name="The "ignore-obscure" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--ignore-obscure"/> <keyword type="property" name="The "locking" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--locking"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterleave.html#idp6903024"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterleave.html#idp8225520"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterleave.html#idp11340160"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterleave.html#idp9390448"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterleave.html#idp6460992"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterleave.html#idp7416272"/> <keyword type="struct" name="struct GstDeinterleave" link="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave-struct"/> <keyword type="property" name="The "keep-positions" property" link="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave--keep-positions"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dicetv.html#idp7340912"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dicetv.html#idp6547792"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dicetv.html#idp9061872"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dicetv.html#idp11683280"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dicetv.html#idp12679024"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dicetv.html#idp2830736"/> <keyword type="struct" name="struct GstDiceTV" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV-struct"/> <keyword type="property" name="The "square-bits" property" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV--square-bits"/> <keyword type="signal" name="The "reset" signal" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV-reset"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-directsoundsink.html#idp8123472"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-directsoundsink.html#idp10796912"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-directsoundsink.html#idp7641248"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-directsoundsink.html#idp6939312"/> <keyword type="struct" name="struct GstDirectSoundSink" link="gst-plugins-good-plugins-directsoundsink.html#GstDirectSoundSink"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dv1394src.html#idp11860048"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dv1394src.html#idp12289536"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dtmfsrc.html#idp8551232"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dtmfsrc.html#idp1524480"/> + <keyword type="struct" name="struct GstDTMFSrc" link="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct"/> + <keyword type="property" name="The "interval" property" link="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dv1394src.html#idp12835888"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dv1394src.html#idp10187328"/> <keyword type="struct" name="struct GstDV1394Src" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-struct"/> <keyword type="property" name="The "channel" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--channel"/> <keyword type="property" name="The "consecutive" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--consecutive"/> @@ -507,23 +526,23 @@ <keyword type="property" name="The "use-avc" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--use-avc"/> <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--device-name"/> <keyword type="signal" name="The "frame-dropped" signal" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-frame-dropped"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdec.html#idp7097840"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdec.html#idp6806096"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdec.html#idp7706496"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdec.html#idp11012640"/> <keyword type="struct" name="struct GstDVDec" link="gst-plugins-good-plugins-dvdec.html#GstDVDec-struct"/> <keyword type="property" name="The "clamp-chroma" property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-chroma"/> <keyword type="property" name="The "clamp-luma" property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-luma"/> <keyword type="property" name="The "drop-factor" property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor"/> <keyword type="property" name="The "quality" property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--quality"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdemux.html#idp6014704"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdemux.html#idp8210192"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdemux.html#idp6693648"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdemux.html#idp2905680"/> <keyword type="struct" name="struct GstDVDemux" link="gst-plugins-good-plugins-dvdemux.html#GstDVDemux-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-edgetv.html#idp10149312"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-edgetv.html#idp6451872"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-edgetv.html#idp9435168"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-edgetv.html#idp3237120"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-edgetv.html#idp5831616"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-edgetv.html#idp2972464"/> <keyword type="struct" name="struct GstEdgeTV" link="gst-plugins-good-plugins-edgetv.html#GstEdgeTV-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-10bands.html#idp13534352"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-10bands.html#idp6623344"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-10bands.html#idp10595952"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-10bands.html#idp6001760"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-10bands.html#idp12779712"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-10bands.html#idp8770448"/> <keyword type="struct" name="struct GstIirEqualizer10Bands" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands-struct"/> <keyword type="property" name="The "band0" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band0"/> <keyword type="property" name="The "band1" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band1"/> @@ -535,24 +554,24 @@ <keyword type="property" name="The "band7" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band7"/> <keyword type="property" name="The "band8" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band8"/> <keyword type="property" name="The "band9" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band9"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-3bands.html#idp8977312"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-3bands.html#idp7613712"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-3bands.html#idp10507152"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-3bands.html#idp7224000"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-3bands.html#idp7630416"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-3bands.html#idp13362720"/> <keyword type="struct" name="struct GstIirEqualizer3Bands" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands-struct"/> <keyword type="property" name="The "band0" property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band0"/> <keyword type="property" name="The "band1" property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band1"/> <keyword type="property" name="The "band2" property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band2"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-nbands.html#idp8715136"/> - <keyword type="" name="Example code" link="gst-plugins-good-plugins-equalizer-nbands.html#idp11969120"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-nbands.html#idp13549776"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-nbands.html#idp8585888"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-nbands.html#idp13123008"/> + <keyword type="" name="Example code" link="gst-plugins-good-plugins-equalizer-nbands.html#idp6721888"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-nbands.html#idp13858176"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-nbands.html#idp9036928"/> <keyword type="struct" name="struct GstIirEqualizerNBands" link="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands-struct"/> <keyword type="property" name="The "num-bands" property" link="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands--num-bands"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacdec.html#idp5748032"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacdec.html#idp5491696"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacdec.html#idp5857840"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacdec.html#idp7924768"/> <keyword type="struct" name="struct GstFlacDec" link="gst-plugins-good-plugins-flacdec.html#GstFlacDec-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacenc.html#idp11678144"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacenc.html#idp10601536"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacenc.html#idp6488240"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacenc.html#idp12478368"/> <keyword type="struct" name="struct GstFlacEnc" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc-struct"/> <keyword type="property" name="The "blocksize" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--blocksize"/> <keyword type="property" name="The "escape-coding" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--escape-coding"/> @@ -569,141 +588,131 @@ <keyword type="property" name="The "streamable-subset" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--streamable-subset"/> <keyword type="property" name="The "padding" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--padding"/> <keyword type="property" name="The "seekpoints" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--seekpoints"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-flacparse.html#idp5519264"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacparse.html#idp5708976"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacparse.html#idp6401344"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-flacparse.html#idp8029600"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacparse.html#idp10572208"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacparse.html#idp7222768"/> <keyword type="struct" name="struct GstFlacParse" link="gst-plugins-good-plugins-flacparse.html#GstFlacParse-struct"/> <keyword type="property" name="The "check-frame-checksums" property" link="gst-plugins-good-plugins-flacparse.html#GstFlacParse--check-frame-checksums"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flactag.html#idp11324016"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flactag.html#idp4943664"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flactag.html#idp10581568"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flactag.html#idp5290368"/> <keyword type="struct" name="struct GstFlacTag" link="gst-plugins-good-plugins-flactag.html#GstFlacTag-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvdemux.html#idp10202880"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvdemux.html#idp4946496"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvdemux.html#idp9647008"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvdemux.html#idp8004272"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvdemux.html#idp10670784"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvdemux.html#idp11370464"/> <keyword type="struct" name="struct GstFlvDemux" link="gst-plugins-good-plugins-flvdemux.html#GstFlvDemux-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvmux.html#idp11059808"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvmux.html#idp10884992"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvmux.html#idp8050880"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvmux.html#idp9551008"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvmux.html#idp9844640"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvmux.html#idp7407392"/> <keyword type="struct" name="GstFlvMux" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux-struct"/> <keyword type="property" name="The "is-live" property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--is-live"/> <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--streamable"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flxdec.html#idp6132928"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flxdec.html#idp9956224"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flxdec.html#idp5747920"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flxdec.html#idp12874384"/> <keyword type="struct" name="struct GstFlxDec" link="gst-plugins-good-plugins-flxdec.html#GstFlxDec-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-gamma.html#idp11177984"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gamma.html#idp10169584"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gamma.html#idp8107280"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-gamma.html#idp8112064"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gamma.html#idp13238736"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gamma.html#idp11657680"/> <keyword type="struct" name="struct GstGamma" link="gst-plugins-good-plugins-gamma.html#GstGamma-struct"/> <keyword type="property" name="The "gamma" property" link="gst-plugins-good-plugins-gamma.html#GstGamma--gamma"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#idp6937424"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#idp6829104"/> - <keyword type="struct" name="struct GstGdkPixbufOverlay" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay-struct"/> - <keyword type="property" name="The "location" property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--location"/> - <keyword type="property" name="The "offset-x" property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-x"/> - <keyword type="property" name="The "offset-y" property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-y"/> - <keyword type="property" name="The "overlay-height" property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-height"/> - <keyword type="property" name="The "overlay-width" property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-width"/> - <keyword type="property" name="The "relative-x" property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-x"/> - <keyword type="property" name="The "relative-y" property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-y"/> - <keyword type="property" name="The "alpha" property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--alpha"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp9785856"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp8501904"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp14327136"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp13834800"/> <keyword type="struct" name="struct GstGdkPixbufSink" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink-struct"/> <keyword type="property" name="The "last-pixbuf" property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf"/> <keyword type="property" name="The "send-messages" property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages"/> <keyword type="property" name="The "post-messages" property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom.html#idp4958320"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom.html#idp7429952"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom.html#idp7878288"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom.html#idp8075696"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom.html#idp12777376"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom.html#idp10800704"/> <keyword type="struct" name="struct GstGoom" link="gst-plugins-good-plugins-goom.html#GstGoom-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom2k1.html#idp13606816"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom2k1.html#idp12728480"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom2k1.html#idp12643216"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom2k1.html#idp7213136"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom2k1.html#idp10733168"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom2k1.html#idp7664208"/> <keyword type="struct" name="struct GstGoom" link="gst-plugins-good-plugins-goom2k1.html#GstGoom-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-hdv1394src.html#idp7639936"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-hdv1394src.html#idp8174608"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-hdv1394src.html#idp11067264"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-hdv1394src.html#idp12878352"/> <keyword type="struct" name="struct GstHDV1394Src" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src-struct"/> <keyword type="property" name="The "channel" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel"/> <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--device-name"/> <keyword type="property" name="The "guid" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--guid"/> <keyword type="property" name="The "port" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--port"/> <keyword type="property" name="The "use-avc" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--use-avc"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-icydemux.html#idp7139136"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-icydemux.html#idp7666848"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-icydemux.html#idp6475520"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-icydemux.html#idp6004736"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-icydemux.html#idp12253680"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-icydemux.html#idp10512640"/> <keyword type="struct" name="struct GstICYDemux" link="gst-plugins-good-plugins-icydemux.html#GstICYDemux-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-id3demux.html#idp7493360"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3demux.html#idp10613856"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3demux.html#idp10493200"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-id3demux.html#idp13694928"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3demux.html#idp8748560"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3demux.html#idp8987504"/> <keyword type="struct" name="struct GstID3Demux" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux-struct"/> <keyword type="property" name="The "prefer-v1" property" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux--prefer-v1"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3v2mux.html#idp12483360"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3v2mux.html#idp10105296"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3v2mux.html#idp10079808"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3v2mux.html#idp9127024"/> <keyword type="struct" name="struct GstId3v2Mux" link="gst-plugins-good-plugins-id3v2mux.html#GstId3v2Mux-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-imagefreeze.html#idp7499600"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-imagefreeze.html#idp13402368"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-imagefreeze.html#idp7925760"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-imagefreeze.html#idp10208480"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-imagefreeze.html#idp7996512"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-imagefreeze.html#idp10727264"/> <keyword type="struct" name="struct GstImageFreeze" link="gst-plugins-good-plugins-imagefreeze.html#GstImageFreeze-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-interleave.html#idp6613504"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-interleave.html#idp9226512"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-interleave.html#idp13999424"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-interleave.html#idp13974512"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-interleave.html#idp7736688"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-interleave.html#idp6771600"/> <keyword type="struct" name="struct GstInterleave" link="gst-plugins-good-plugins-interleave.html#GstInterleave-struct"/> <keyword type="property" name="The "channel-positions" property" link="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions"/> <keyword type="property" name="The "channel-positions-from-input" property" link="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions-from-input"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-ismlmux.html#idp7724208"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ismlmux.html#idp12796592"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ismlmux.html#idp6067232"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosrc.html#idp13375680"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosrc.html#idp2352432"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-ismlmux.html#idp9132352"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ismlmux.html#idp11817184"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ismlmux.html#idp9575776"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosrc.html#idp11949296"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosrc.html#idp13157344"/> <keyword type="struct" name="struct GstJackAudioSrc" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct"/> <keyword type="property" name="The "client" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client"/> <keyword type="property" name="The "connect" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect"/> <keyword type="property" name="The "server" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server"/> <keyword type="property" name="The "client-name" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name"/> <keyword type="property" name="The "transport" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosink.html#idp10659552"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosink.html#idp14328128"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosink.html#idp14272624"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosink.html#idp10322672"/> <keyword type="struct" name="struct GstJackAudioSink" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink-struct"/> <keyword type="property" name="The "client" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client"/> <keyword type="property" name="The "connect" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect"/> <keyword type="property" name="The "server" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--server"/> <keyword type="property" name="The "client-name" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client-name"/> <keyword type="property" name="The "transport" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--transport"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegdec.html#idp11909936"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegdec.html#idp12104720"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegdec.html#idp13242736"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegdec.html#idp14384176"/> <keyword type="struct" name="struct GstJpegDec" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec-struct"/> <keyword type="property" name="The "idct-method" property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--idct-method"/> <keyword type="property" name="The "max-errors" property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--max-errors"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegenc.html#idp10394976"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegenc.html#idp13368608"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegenc.html#idp13076896"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegenc.html#idp9981728"/> <keyword type="struct" name="struct GstJpegEnc" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-struct"/> <keyword type="property" name="The "quality" property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--quality"/> <keyword type="property" name="The "idct-method" property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--idct-method"/> <keyword type="signal" name="The "frame-encoded" signal" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-frame-encoded"/> - <keyword type="" name="Example application" link="gst-plugins-good-plugins-level.html#idp12781424"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-level.html#idp14809568"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-level.html#idp12208672"/> + <keyword type="" name="Example application" link="gst-plugins-good-plugins-level.html#idp12940592"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-level.html#idp15841856"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-level.html#idp14134880"/> <keyword type="struct" name="struct GstLevel" link="gst-plugins-good-plugins-level.html#GstLevel-struct"/> <keyword type="property" name="The "interval" property" link="gst-plugins-good-plugins-level.html#GstLevel--interval"/> <keyword type="property" name="The "message" property" link="gst-plugins-good-plugins-level.html#GstLevel--message"/> <keyword type="property" name="The "peak-falloff" property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff"/> <keyword type="property" name="The "peak-ttl" property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskamux.html#idp14612624"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskamux.html#idp14746480"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskamux.html#idp14080144"/> + <keyword type="property" name="The "post-messages" property" link="gst-plugins-good-plugins-level.html#GstLevel--post-messages"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskamux.html#idp14334992"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskamux.html#idp9168064"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskamux.html#idp12476352"/> <keyword type="struct" name="GstMatroskaMux" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux-struct"/> <keyword type="property" name="The "writing-app" property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--writing-app"/> <keyword type="property" name="The "version" property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--version"/> <keyword type="property" name="The "min-index-interval" property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval"/> <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskademux.html#idp6127648"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskademux.html#idp14822464"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskademux.html#idp11362096"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskademux.html#idp14644768"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskademux.html#idp14025808"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskademux.html#idp9089184"/> <keyword type="struct" name="GstMatroskaDemux" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct"/> <keyword type="property" name="The "max-gap-time" property" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mj2mux.html#idp15729024"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mj2mux.html#idp15732368"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mj2mux.html#idp14813312"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mj2mux.html#idp14752432"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mj2mux.html#idp14755488"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mj2mux.html#idp13537184"/> <keyword type="struct" name="GstMJ2Mux" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux-struct"/> <keyword type="property" name="The "dts-method" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method"/> <keyword type="property" name="The "faststart" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart"/> @@ -714,17 +723,17 @@ <keyword type="property" name="The "presentation-time" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--presentation-time"/> <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable"/> <keyword type="property" name="The "trak-timescale" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-monoscope.html#idp10140656"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-monoscope.html#idp5124976"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-monoscope.html#idp14417904"/> - <keyword type="struct" name="struct GstMonoscope" link="gst-plugins-good-plugins-monoscope.html#GstMonoscope"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-mpegaudioparse.html#idp7120048"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mpegaudioparse.html#idp8793104"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mpegaudioparse.html#idp13371872"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-monoscope.html#idp10969296"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-monoscope.html#idp13230656"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-monoscope.html#idp7571392"/> + <keyword type="struct" name="struct GstMonoscope" link="gst-plugins-good-plugins-monoscope.html#GstMonoscope-struct"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-mpegaudioparse.html#idp16243328"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mpegaudioparse.html#idp7740160"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mpegaudioparse.html#idp12269616"/> <keyword type="struct" name="struct GstMpegAudioParse" link="gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mp4mux.html#idp10113824"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mp4mux.html#idp15678352"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mp4mux.html#idp12626784"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mp4mux.html#idp10367840"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mp4mux.html#idp13531488"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mp4mux.html#idp14918784"/> <keyword type="typedef" name="GstMP4Mux" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux"/> <keyword type="property" name="The "dts-method" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method"/> <keyword type="property" name="The "faststart" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart"/> @@ -735,16 +744,16 @@ <keyword type="property" name="The "presentation-time" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--presentation-time"/> <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--streamable"/> <keyword type="property" name="The "trak-timescale" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--trak-timescale"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawdec.html#idp7186464"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawdec.html#idp8676240"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawdec.html#idp12608960"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawdec.html#idp8258704"/> <keyword type="struct" name="struct GstMuLawDec" link="gst-plugins-good-plugins-mulawdec.html#GstMuLawDec-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawenc.html#idp12881648"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawenc.html#idp10665888"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawenc.html#idp10538176"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawenc.html#idp5782128"/> <keyword type="struct" name="struct GstMuLawDec" link="gst-plugins-good-plugins-mulawenc.html#GstMuLawDec-struct"/> <keyword type="struct" name="struct GstMuLawEnc" link="gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesink.html#idp13504496"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesink.html#idp12813328"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesink.html#idp12915296"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesink.html#idp15687424"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesink.html#idp15401296"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesink.html#idp15951312"/> <keyword type="struct" name="struct GstMultiFileSink" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink-struct"/> <keyword type="enum" name="enum GstMultiFileSinkNext" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext"/> <keyword type="property" name="The "location" property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--location"/> @@ -753,9 +762,9 @@ <keyword type="property" name="The "post-messages" property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages"/> <keyword type="property" name="The "max-files" property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-files"/> <keyword type="property" name="The "max-file-size" property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-file-size"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesrc.html#idp12587536"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesrc.html#idp11092496"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesrc.html#idp8905968"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesrc.html#idp6917552"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesrc.html#idp14719936"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesrc.html#idp15852592"/> <keyword type="struct" name="struct GstMultiFileSrc" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc-struct"/> <keyword type="property" name="The "caps" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps"/> <keyword type="property" name="The "index" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--index"/> @@ -763,20 +772,20 @@ <keyword type="property" name="The "loop" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--loop"/> <keyword type="property" name="The "start-index" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--start-index"/> <keyword type="property" name="The "stop-index" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--stop-index"/> - <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartdemux.html#idp12937968"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartdemux.html#idp14320496"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartdemux.html#idp13713664"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartdemux.html#idp7623712"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartdemux.html#idp16143408"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartdemux.html#idp12469088"/> <keyword type="struct" name="struct GstMultipartDemux" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux-struct"/> <keyword type="property" name="The "autoscan" property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--autoscan"/> <keyword type="property" name="The "boundary" property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary"/> <keyword type="property" name="The "single-stream" property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--single-stream"/> - <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartmux.html#idp11933184"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartmux.html#idp12708992"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartmux.html#idp14552816"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartmux.html#idp15404272"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartmux.html#idp16080048"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartmux.html#idp13513024"/> <keyword type="struct" name="struct GstMultipartMux" link="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux-struct"/> <keyword type="property" name="The "boundary" property" link="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux--boundary"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multiudpsink.html#idp16298464"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multiudpsink.html#idp11318592"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multiudpsink.html#idp14049856"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multiudpsink.html#idp16449600"/> <keyword type="struct" name="struct GstMultiUDPSink" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-struct"/> <keyword type="property" name="The "bytes-served" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-served"/> <keyword type="property" name="The "bytes-to-serve" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-to-serve"/> @@ -796,71 +805,75 @@ <keyword type="property" name="The "used-socket" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket"/> <keyword type="property" name="The "force-ipv4" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--force-ipv4"/> <keyword type="property" name="The "multicast-iface" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface"/> + <keyword type="property" name="The "bind-address" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-address"/> + <keyword type="property" name="The "bind-port" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-port"/> + <keyword type="property" name="The "socket-v6" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6"/> + <keyword type="property" name="The "used-socket-v6" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket-v6"/> <keyword type="signal" name="The "add" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-add"/> <keyword type="signal" name="The "clear" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-clear"/> <keyword type="signal" name="The "client-added" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-added"/> <keyword type="signal" name="The "client-removed" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-removed"/> <keyword type="signal" name="The "get-stats" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-get-stats"/> <keyword type="signal" name="The "remove" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-remove"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-optv.html#idp11304208"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-optv.html#idp15371936"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-optv.html#idp15748128"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-optv.html#idp14597760"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-optv.html#idp10356160"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-optv.html#idp13586944"/> <keyword type="struct" name="struct GstOpTV" link="gst-plugins-good-plugins-optv.html#GstOpTV-struct"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-optv.html#GstOpTV--mode"/> <keyword type="property" name="The "speed" property" link="gst-plugins-good-plugins-optv.html#GstOpTV--speed"/> <keyword type="property" name="The "threshold" property" link="gst-plugins-good-plugins-optv.html#GstOpTV--threshold"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4sink.html#idp15609504"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4sink.html#idp13595168"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4sink.html#idp13517072"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4sink.html#idp13642496"/> <keyword type="struct" name="struct GstOss4Sink" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink-struct"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device"/> <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device-name"/> <keyword type="property" name="The "mute" property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--mute"/> <keyword type="property" name="The "volume" property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--volume"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4src.html#idp13682592"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4src.html#idp13426240"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4src.html#idp13323888"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4src.html#idp12021600"/> <keyword type="struct" name="struct GstOss4Source" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source-struct"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device"/> <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device-name"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssink.html#idp5582064"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssink.html#idp14582432"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssink.html#idp11615264"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssink.html#idp15269472"/> <keyword type="struct" name="struct GstOssSink" link="gst-plugins-good-plugins-osssink.html#GstOssSink-struct"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-osssink.html#GstOssSink--device"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssrc.html#idp14571504"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssrc.html#idp16570864"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssrc.html#idp13759328"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssrc.html#idp13546272"/> <keyword type="struct" name="struct GstOssSrc" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc-struct"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device"/> <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device-name"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosink.html#idp17285328"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosink.html#idp16067888"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosink.html#idp14049248"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosink.html#idp13258704"/> <keyword type="struct" name="struct GstOsxAudioSink" link="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink--device"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosrc.html#idp15969136"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosrc.html#idp6861472"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosrc.html#idp10918048"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosrc.html#idp13610688"/> <keyword type="struct" name="struct GstOsxAudioSrc" link="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc--device"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxvideosink.html#idp14782080"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxvideosink.html#idp15205696"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxvideosink.html#idp14698720"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxvideosink.html#idp12578672"/> <keyword type="struct" name="struct GstOSXVideoSink" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink"/> <keyword type="property" name="The "embed" property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--embed"/> <keyword type="property" name="The "fullscreen" property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--fullscreen"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngdec.html#idp15865616"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngdec.html#idp13989344"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngdec.html#idp13556896"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngdec.html#idp8619616"/> <keyword type="struct" name="struct GstPngDec" link="gst-plugins-good-plugins-pngdec.html#GstPngDec-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngenc.html#idp9955424"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngenc.html#idp13784928"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngenc.html#idp16530336"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngenc.html#idp15946880"/> <keyword type="struct" name="struct GstPngEnc" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc-struct"/> <keyword type="property" name="The "compression-level" property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--compression-level"/> <keyword type="property" name="The "snapshot" property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--snapshot"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-progressreport.html#idp8942912"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-progressreport.html#idp16517664"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-progressreport.html#idp17893376"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-progressreport.html#idp14892784"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-progressreport.html#idp13902208"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-progressreport.html#idp12412560"/> <keyword type="struct" name="struct GstProgressReport" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport-struct"/> <keyword type="property" name="The "silent" property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent"/> <keyword type="property" name="The "update-freq" property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--update-freq"/> <keyword type="property" name="The "format" property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--format"/> <keyword type="property" name="The "do-query" property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--do-query"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesink.html#idp16373600"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesink.html#idp16191584"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesink.html#idp5958720"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesink.html#idp10975536"/> <keyword type="struct" name="struct GstPulseSink" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink-struct"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device"/> <keyword type="property" name="The "server" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--server"/> @@ -870,8 +883,8 @@ <keyword type="property" name="The "client" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client"/> <keyword type="property" name="The "stream-properties" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--stream-properties"/> <keyword type="property" name="The "client-name" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client-name"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesrc.html#idp13810464"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesrc.html#idp12221552"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesrc.html#idp11232992"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesrc.html#idp15340320"/> <keyword type="struct" name="struct GstPulseSrc" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc-struct"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device"/> <keyword type="property" name="The "server" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--server"/> @@ -882,19 +895,19 @@ <keyword type="property" name="The "source-output-index" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--source-output-index"/> <keyword type="property" name="The "volume" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--volume"/> <keyword type="property" name="The "client-name" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-quarktv.html#idp16254704"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-quarktv.html#idp16649088"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-quarktv.html#idp13710144"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-quarktv.html#idp15943808"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-quarktv.html#idp2854192"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-quarktv.html#idp14819328"/> <keyword type="struct" name="struct GstQuarkTV" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct"/> <keyword type="property" name="The "planes" property" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-qtdemux.html#idp14239072"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtdemux.html#idp13815808"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtdemux.html#idp17196752"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-qtdemux.html#idp13989168"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtdemux.html#idp17079568"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtdemux.html#idp17967088"/> <keyword type="struct" name="struct GstQTDemux" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct"/> <keyword type="signal" name="The "got-redirect" signal" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmux.html#idp16773744"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmux.html#idp16188544"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmux.html#idp17496992"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmux.html#idp15206944"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmux.html#idp14124592"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmux.html#idp17541040"/> <keyword type="struct" name="struct GstQTMux" link="gst-plugins-good-plugins-qtmux.html#GstQTMux-struct"/> <keyword type="property" name="The "dts-method" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method"/> <keyword type="property" name="The "faststart" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart"/> @@ -905,9 +918,9 @@ <keyword type="property" name="The "presentation-time" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--presentation-time"/> <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable"/> <keyword type="property" name="The "trak-timescale" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmoovrecover.html#idp13361136"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmoovrecover.html#idp14237152"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmoovrecover.html#idp8177600"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmoovrecover.html#idp13633488"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmoovrecover.html#idp16693408"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmoovrecover.html#idp11609568"/> <keyword type="struct" name="struct GstQTMoovRecover" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct"/> <keyword type="struct" name="struct GstQTMoovRecoverClass" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass"/> <keyword type="function" name="gst_qt_moov_recover_get_type ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type"/> @@ -916,37 +929,37 @@ <keyword type="property" name="The "faststart-mode" property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode"/> <keyword type="property" name="The "fixed-output" property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output"/> <keyword type="property" name="The "recovery-input" property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-radioactv.html#idp16246384"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-radioactv.html#idp16606416"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-radioactv.html#idp12934096"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-radioactv.html#idp16174128"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-radioactv.html#idp15350720"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-radioactv.html#idp15266832"/> <keyword type="struct" name="struct GstRadioacTV" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV-struct"/> <keyword type="property" name="The "color" property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--color"/> <keyword type="property" name="The "interval" property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--interval"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--mode"/> <keyword type="property" name="The "trigger" property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--trigger"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-revtv.html#idp15943984"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-revtv.html#idp17251312"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-revtv.html#idp15351008"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-revtv.html#idp13992896"/> <keyword type="struct" name="struct GstRevTV" link="gst-plugins-good-plugins-revtv.html#GstRevTV-struct"/> <keyword type="property" name="The "delay" property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--delay"/> <keyword type="property" name="The "gain" property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--gain"/> <keyword type="property" name="The "linespace" property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--linespace"/> - <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-rganalysis.html#idp13509680"/> - <keyword type="" name="Acknowledgements" link="gst-plugins-good-plugins-rganalysis.html#idp18290544"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rganalysis.html#idp14244320"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rganalysis.html#idp16896176"/> + <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-rganalysis.html#idp13417664"/> + <keyword type="" name="Acknowledgements" link="gst-plugins-good-plugins-rganalysis.html#idp17562416"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rganalysis.html#idp17435440"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rganalysis.html#idp16218992"/> <keyword type="struct" name="struct GstRgAnalysis" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis-struct"/> <keyword type="property" name="The "forced" property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--forced"/> <keyword type="property" name="The "num-tracks" property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks"/> <keyword type="property" name="The "reference-level" property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--reference-level"/> <keyword type="property" name="The "message" property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--message"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rglimiter.html#idp18680816"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rglimiter.html#idp14129792"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rglimiter.html#idp16733888"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rglimiter.html#idp17450096"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rglimiter.html#idp8747936"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rglimiter.html#idp18898784"/> <keyword type="struct" name="struct GstRgLimiter" link="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter-struct"/> <keyword type="property" name="The "enabled" property" link="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter--enabled"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rgvolume.html#idp16163360"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rgvolume.html#idp17474752"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rgvolume.html#idp15216384"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rgvolume.html#idp19002800"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rgvolume.html#idp17815248"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rgvolume.html#idp14617808"/> <keyword type="struct" name="struct GstRgVolume" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume-struct"/> <keyword type="property" name="The "album-mode" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode"/> <keyword type="property" name="The "fallback-gain" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain"/> @@ -954,14 +967,14 @@ <keyword type="property" name="The "pre-amp" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp"/> <keyword type="property" name="The "result-gain" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--result-gain"/> <keyword type="property" name="The "target-gain" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rippletv.html#idp17610640"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rippletv.html#idp7846688"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rippletv.html#idp14797408"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rippletv.html#idp18308720"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rippletv.html#idp14880432"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rippletv.html#idp17911536"/> <keyword type="struct" name="struct GstRippleTV" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV-struct"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode"/> <keyword type="property" name="The "reset" property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdec.html#idp16028448"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdec.html#idp17396624"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdec.html#idp12935072"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdec.html#idp14688224"/> <keyword type="struct" name="struct GstRTPDec" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct"/> <keyword type="property" name="The "skip" property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip"/> <keyword type="property" name="The "latency" property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency"/> @@ -973,19 +986,51 @@ <keyword type="signal" name="The "on-ssrc-collision" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision"/> <keyword type="signal" name="The "on-ssrc-validated" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated"/> <keyword type="signal" name="The "on-timeout" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpj2kpay.html#idp14138448"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpj2kpay.html#idp17483024"/> + <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3depay.html#idp12935200"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3depay.html#idp17437136"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3depay.html#idp16239920"/> + <keyword type="struct" name="struct GstRtpAC3Depay" link="gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct"/> + <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3pay.html#idp13604224"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3pay.html#idp18588384"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3pay.html#idp2044304"/> + <keyword type="struct" name="struct GstRtpAC3Pay" link="gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct"/> + <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrdepay.html#idp15313200"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrdepay.html#idp14843760"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrdepay.html#idp19151408"/> + <keyword type="struct" name="struct GstRtpAMRDepay" link="gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct"/> + <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrpay.html#idp14411824"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrpay.html#idp16919760"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrpay.html#idp16384240"/> + <keyword type="struct" name="struct GstRtpAMRPay" link="gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbvdepay.html#idp13216624"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvdepay.html#idp18808064"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbvpay.html#idp18820528"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvpay.html#idp13365888"/> + <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16depay.html#idp16065872"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16depay.html#idp16529344"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16depay.html#idp13216880"/> + <keyword type="struct" name="struct GstRtpL16Depay" link="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct"/> + <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16pay.html#idp17896736"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16pay.html#idp17547984"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16pay.html#idp13373584"/> + <keyword type="struct" name="struct GstRtpL16Pay" link="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpj2kpay.html#idp14631712"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpj2kpay.html#idp20087776"/> <keyword type="struct" name="struct GstRtpJ2KPay" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct"/> <keyword type="property" name="The "buffer-list" property" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjpegpay.html#idp11320240"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjpegpay.html#idp16802592"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjpegpay.html#idp19904880"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjpegpay.html#idp12353120"/> <keyword type="struct" name="struct GstRtpJPEGPay" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay-struct"/> <keyword type="property" name="The "quality" property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality"/> <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type"/> <keyword type="property" name="The "buffer-list" property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rtspsrc.html#idp17985952"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtspsrc.html#idp17881296"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtspsrc.html#idp17473664"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsbcpay.html#idp20126432"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsbcpay.html#idp15466496"/> + <keyword type="struct" name="struct GstRtpSBCPay" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct"/> + <keyword type="property" name="The "min-frames" property" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rtspsrc.html#idp20040016"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtspsrc.html#idp20069504"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtspsrc.html#idp20207648"/> <keyword type="struct" name="struct GstRTSPSrc" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct"/> <keyword type="property" name="The "debug" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug"/> <keyword type="property" name="The "location" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--location"/> @@ -1008,8 +1053,18 @@ <keyword type="property" name="The "do-rtsp-keep-alive" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive"/> <keyword type="property" name="The "drop-on-latency" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency"/> <keyword type="property" name="The "probation" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbin.html#idp19980688"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbin.html#idp20094640"/> + <keyword type="property" name="The "udp-reconnect" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect"/> + <keyword type="property" name="The "proxy-id" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id"/> + <keyword type="property" name="The "proxy-pw" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw"/> + <keyword type="property" name="The "multicast-iface" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface"/> + <keyword type="property" name="The "ntp-sync" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync"/> + <keyword type="property" name="The "use-pipeline-clock" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock"/> + <keyword type="signal" name="The "handle-request" signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"/> + <keyword type="signal" name="The "on-sdp" signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"/> + <keyword type="signal" name="The "select-stream" signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpbin.html#idp20609360"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbin.html#idp20616976"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbin.html#idp20624432"/> <keyword type="struct" name="struct GstRtpBin" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct"/> <keyword type="property" name="The "do-lost" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost"/> <keyword type="property" name="The "latency" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--latency"/> @@ -1037,8 +1092,22 @@ <keyword type="signal" name="The "request-pt-map" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map"/> <keyword type="signal" name="The "reset-sync" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync"/> <keyword type="signal" name="The "payload-type-change" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp18253936"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp18216176"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfmux.html#idp18793952"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfmux.html#idp15822704"/> + <keyword type="struct" name="struct GstRTPDTMFMux" link="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfsrc.html#idp18258736"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfsrc.html#idp15822960"/> + <keyword type="struct" name="struct GstRTPDTMFSrc" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct"/> + <keyword type="property" name="The "clock-rate" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate"/> + <keyword type="property" name="The "packet-redundancy" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy"/> + <keyword type="property" name="The "pt" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--pt"/> + <keyword type="property" name="The "seqnum" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum"/> + <keyword type="property" name="The "seqnum-offset" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum-offset"/> + <keyword type="property" name="The "ssrc" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc"/> + <keyword type="property" name="The "timestamp" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp"/> + <keyword type="property" name="The "timestamp-offset" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp19576432"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp19638416"/> <keyword type="struct" name="struct GstRtpJitterBuffer" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-struct"/> <keyword type="property" name="The "do-lost" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost"/> <keyword type="property" name="The "drop-on-latency" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--drop-on-latency"/> @@ -1051,15 +1120,23 @@ <keyword type="signal" name="The "on-npt-stop" signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop"/> <keyword type="signal" name="The "request-pt-map" signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map"/> <keyword type="signal" name="The "set-active" signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpptdemux.html#idp17391040"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpptdemux.html#idp15660240"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpmux.html#idp16057568"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpmux.html#idp20164288"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpmux.html#idp14784768"/> + <keyword type="struct" name="struct GstRTPMux" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct"/> + <keyword type="property" name="The "seqnum" property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum"/> + <keyword type="property" name="The "seqnum-offset" property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset"/> + <keyword type="property" name="The "ssrc" property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc"/> + <keyword type="property" name="The "timestamp-offset" property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpptdemux.html#idp18704016"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpptdemux.html#idp16942048"/> <keyword type="struct" name="struct GstRtpPtDemux" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-struct"/> <keyword type="signal" name="The "clear-pt-map" signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-clear-pt-map"/> <keyword type="signal" name="The "new-payload-type" signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type"/> <keyword type="signal" name="The "payload-type-change" signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change"/> <keyword type="signal" name="The "request-pt-map" signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsession.html#idp15770464"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsession.html#idp19111504"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsession.html#idp19928160"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsession.html#idp17619760"/> <keyword type="struct" name="struct GstRtpSession" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct"/> <keyword type="property" name="The "bandwidth" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth"/> <keyword type="property" name="The "internal-session" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session"/> @@ -1084,25 +1161,36 @@ <keyword type="signal" name="The "on-ssrc-validated" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated"/> <keyword type="signal" name="The "on-timeout" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout"/> <keyword type="signal" name="The "request-pt-map" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp18910240"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp19110160"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp20646592"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp5489984"/> <keyword type="struct" name="struct GstRtpSsrcDemux" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct"/> <keyword type="signal" name="The "clear-ssrc" signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc"/> <keyword type="signal" name="The "new-ssrc-pad" signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad"/> <keyword type="signal" name="The "removed-ssrc-pad" signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shagadelictv.html#idp17545888"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shagadelictv.html#idp8801728"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shagadelictv.html#idp18966656"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-sbcparse.html#idp21845472"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-sbcparse.html#idp5823488"/> + <keyword type="struct" name="struct GstSbcParse" link="gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-scaletempo.html#idp10147952"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-scaletempo.html#idp18367216"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-scaletempo.html#idp12706064"/> + <keyword type="struct" name="struct GstScaletempo" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct"/> + <keyword type="property" name="The "overlap" property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap"/> + <keyword type="property" name="The "rate" property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate"/> + <keyword type="property" name="The "search" property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search"/> + <keyword type="property" name="The "stride" property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shagadelictv.html#idp12809520"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shagadelictv.html#idp15318576"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shagadelictv.html#idp16711568"/> <keyword type="struct" name="struct GstShagadelicTV" link="gst-plugins-good-plugins-shagadelictv.html#GstShagadelicTV-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shapewipe.html#idp15946928"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shapewipe.html#idp18173456"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shapewipe.html#idp16893152"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shapewipe.html#idp19449664"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shapewipe.html#idp13166800"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shapewipe.html#idp16658832"/> <keyword type="struct" name="struct GstShapeWipe" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe-struct"/> <keyword type="property" name="The "border" property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--border"/> <keyword type="property" name="The "position" property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--position"/> - <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smpte.html#idp7715312"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smpte.html#idp16494912"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smpte.html#idp20368032"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smpte.html#idp17804352"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smpte.html#idp20131088"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smpte.html#idp18767456"/> <keyword type="struct" name="struct GstSMPTE" link="gst-plugins-good-plugins-smpte.html#GstSMPTE-struct"/> <keyword type="property" name="The "border" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--border"/> <keyword type="property" name="The "depth" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--depth"/> @@ -1110,17 +1198,17 @@ <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--type"/> <keyword type="property" name="The "duration" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--duration"/> <keyword type="property" name="The "invert" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--invert"/> - <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smptealpha.html#idp16071904"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smptealpha.html#idp14168832"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smptealpha.html#idp17946560"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smptealpha.html#idp20486816"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smptealpha.html#idp21775280"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smptealpha.html#idp19446880"/> <keyword type="struct" name="struct GstSMPTEAlpha" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct"/> <keyword type="property" name="The "border" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border"/> <keyword type="property" name="The "depth" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth"/> <keyword type="property" name="The "position" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position"/> <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type"/> <keyword type="property" name="The "invert" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-souphttpsrc.html#idp18084912"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-souphttpsrc.html#idp16583856"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-souphttpsrc.html#idp22749904"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-souphttpsrc.html#idp22084160"/> <keyword type="struct" name="struct GstSoupHTTPSrc" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc-struct"/> <keyword type="property" name="The "automatic-redirect" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--automatic-redirect"/> <keyword type="property" name="The "cookies" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--cookies"/> @@ -1139,9 +1227,9 @@ <keyword type="property" name="The "user-pw" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-pw"/> <keyword type="property" name="The "extra-headers" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--extra-headers"/> <keyword type="property" name="The "timeout" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--timeout"/> - <keyword type="" name="Example application" link="gst-plugins-good-plugins-spectrum.html#idp18246400"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-spectrum.html#idp18942304"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-spectrum.html#idp20858976"/> + <keyword type="" name="Example application" link="gst-plugins-good-plugins-spectrum.html#idp19280448"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-spectrum.html#idp18798464"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-spectrum.html#idp16674192"/> <keyword type="struct" name="struct GstSpectrum" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum-struct"/> <keyword type="property" name="The "bands" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--bands"/> <keyword type="property" name="The "interval" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval"/> @@ -1151,8 +1239,8 @@ <keyword type="property" name="The "message-phase" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase"/> <keyword type="property" name="The "post-messages" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages"/> <keyword type="property" name="The "multi-channel" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexenc.html#idp20620160"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexenc.html#idp19950896"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexenc.html#idp17926832"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexenc.html#idp22422992"/> <keyword type="struct" name="struct GstSpeexEnc" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc-struct"/> <keyword type="property" name="The "abr" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--abr"/> <keyword type="property" name="The "bitrate" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--bitrate"/> @@ -1164,28 +1252,28 @@ <keyword type="property" name="The "vad" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vad"/> <keyword type="property" name="The "vbr" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexdec.html#idp20449360"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexdec.html#idp22262960"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexdec.html#idp15659776"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexdec.html#idp15537584"/> <keyword type="struct" name="struct GstSpeexDec" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct"/> <keyword type="property" name="The "enh" property" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh"/> - <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-splitfilesrc.html#idp21461856"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-splitfilesrc.html#idp13129296"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-splitfilesrc.html#idp22299968"/> + <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-splitfilesrc.html#idp19158144"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-splitfilesrc.html#idp21955568"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-splitfilesrc.html#idp20463072"/> <keyword type="struct" name="struct GstSplitFileSrc" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc-struct"/> <keyword type="property" name="The "location" property" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-streaktv.html#idp18916224"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-streaktv.html#idp13665040"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-streaktv.html#idp18850976"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-streaktv.html#idp6328688"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-streaktv.html#idp5730240"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-streaktv.html#idp21689312"/> <keyword type="struct" name="struct GstStreakTV" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV-struct"/> <keyword type="property" name="The "feedback" property" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback"/> - <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-taginject.html#idp14798864"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-taginject.html#idp8282304"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-taginject.html#idp17510512"/> + <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-taginject.html#idp21637472"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-taginject.html#idp18914784"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-taginject.html#idp22777376"/> <keyword type="struct" name="struct GstTagInject" link="gst-plugins-good-plugins-taginject.html#GstTagInject-struct"/> <keyword type="property" name="The "tags" property" link="gst-plugins-good-plugins-taginject.html#GstTagInject--tags"/> - <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsrc.html#idp17776512"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsrc.html#idp22748688"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsrc.html#idp20504736"/> + <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsrc.html#idp23149408"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsrc.html#idp22406192"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsrc.html#idp21070560"/> <keyword type="struct" name="struct GstUDPSrc" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc-struct"/> <keyword type="property" name="The "caps" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps"/> <keyword type="property" name="The "multicast-group" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-group"/> @@ -1203,14 +1291,15 @@ <keyword type="property" name="The "close-socket" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket"/> <keyword type="property" name="The "socket" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket"/> <keyword type="property" name="The "used-socket" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket"/> - <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsink.html#idp18666624"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsink.html#idp18651392"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsink.html#idp14562336"/> + <keyword type="property" name="The "bind-address" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address"/> + <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsink.html#idp20366480"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsink.html#idp21894800"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsink.html#idp21567760"/> <keyword type="struct" name="struct GstUDPSink" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct"/> <keyword type="property" name="The "host" property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host"/> <keyword type="property" name="The "port" property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--port"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2src.html#idp17849376"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2src.html#idp18312560"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2src.html#idp21954384"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2src.html#idp18838560"/> <keyword type="struct" name="struct GstV4l2Src" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device"/> <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name"/> @@ -1225,9 +1314,12 @@ <keyword type="property" name="The "saturation" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation"/> <keyword type="property" name="The "norm" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm"/> <keyword type="property" name="The "io-mode" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode"/> + <keyword type="property" name="The "extra-controls" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls"/> + <keyword type="property" name="The "force-aspect-ratio" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio"/> + <keyword type="property" name="The "pixel-aspect-ratio" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio"/> <keyword type="signal" name="The "prepare-format" signal" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2sink.html#idp18683936"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2sink.html#idp21433120"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2sink.html#idp21954112"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2sink.html#idp20516960"/> <keyword type="struct" name="struct GstV4l2Sink" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink-struct"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device"/> <keyword type="property" name="The "device-fd" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-fd"/> @@ -1249,28 +1341,31 @@ <keyword type="property" name="The "min-queued-bufs" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs"/> <keyword type="property" name="The "io-mode" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode"/> <keyword type="property" name="The "norm" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2radio.html#idp19141536"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2radio.html#idp19783456"/> + <keyword type="property" name="The "extra-controls" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls"/> + <keyword type="property" name="The "force-aspect-ratio" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio"/> + <keyword type="property" name="The "pixel-aspect-ratio" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2radio.html#idp22480080"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2radio.html#idp19050880"/> <keyword type="struct" name="struct GstV4l2Radio" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct"/> <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device"/> <keyword type="property" name="The "frequency" property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-vertigotv.html#idp12293168"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vertigotv.html#idp22620368"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vertigotv.html#idp18046752"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-vertigotv.html#idp20200016"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vertigotv.html#idp18595744"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vertigotv.html#idp21148352"/> <keyword type="struct" name="struct GstVertigoTV" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-struct"/> <keyword type="property" name="The "speed" property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--speed"/> <keyword type="property" name="The "zoom-speed" property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--zoom-speed"/> <keyword type="signal" name="The "reset-parms" signal" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-reset-parms"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videobalance.html#idp18972416"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobalance.html#idp20333760"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobalance.html#idp21869040"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videobalance.html#idp18703072"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobalance.html#idp20200176"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobalance.html#idp16867104"/> <keyword type="struct" name="struct GstVideoBalance" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance-struct"/> <keyword type="property" name="The "brightness" property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--brightness"/> <keyword type="property" name="The "contrast" property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--contrast"/> <keyword type="property" name="The "hue" property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--hue"/> <keyword type="property" name="The "saturation" property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--saturation"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobox.html#idp18217712"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobox.html#idp18325296"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobox.html#idp23855600"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobox.html#idp22156112"/> <keyword type="struct" name="struct GstVideoBox" link="gst-plugins-good-plugins-videobox.html#GstVideoBox-struct"/> <keyword type="property" name="The "alpha" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--alpha"/> <keyword type="property" name="The "border-alpha" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--border-alpha"/> @@ -1280,33 +1375,33 @@ <keyword type="property" name="The "right" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--right"/> <keyword type="property" name="The "top" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--top"/> <keyword type="property" name="The "autocrop" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--autocrop"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videocrop.html#idp18893904"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videocrop.html#idp15231424"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videocrop.html#idp18384720"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videocrop.html#idp20648320"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videocrop.html#idp23616976"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videocrop.html#idp18971696"/> <keyword type="struct" name="struct GstVideoCrop" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop-struct"/> <keyword type="property" name="The "bottom" property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--bottom"/> <keyword type="property" name="The "left" property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--left"/> <keyword type="property" name="The "right" property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--right"/> <keyword type="property" name="The "top" property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videoflip.html#idp11271056"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videoflip.html#idp22652768"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videoflip.html#idp16249840"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videoflip.html#idp23604960"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videoflip.html#idp10678912"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videoflip.html#idp23961728"/> <keyword type="struct" name="struct GstVideoFlip" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip-struct"/> <keyword type="enum" name="enum GstVideoFlipMethod" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod"/> <keyword type="property" name="The "method" property" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip--method"/> - <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-videomixer.html#idp15866944"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videomixer.html#idp16747632"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videomixer.html#idp21685152"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8dec.html#idp21854144"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8dec.html#idp16422064"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-videomixer.html#idp19230608"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videomixer.html#idp16547136"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videomixer.html#idp23241472"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8dec.html#idp22516320"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8dec.html#idp21321776"/> <keyword type="struct" name="struct GstVP8Dec" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec-struct"/> <keyword type="property" name="The "deblocking-level" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--deblocking-level"/> <keyword type="property" name="The "noise-level" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--noise-level"/> <keyword type="property" name="The "post-processing" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing"/> <keyword type="property" name="The "post-processing-flags" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing-flags"/> <keyword type="property" name="The "threads" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--threads"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8enc.html#idp23900400"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8enc.html#idp23907808"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8enc.html#idp25147936"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8enc.html#idp25155344"/> <keyword type="struct" name="struct GstVP8Enc" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc-struct"/> <keyword type="property" name="The "arnr-maxframes" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-maxframes"/> <keyword type="property" name="The "arnr-strength" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-strength"/> @@ -1366,21 +1461,23 @@ <keyword type="property" name="The "twopass-vbr-minsection" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection"/> <keyword type="property" name="The "undershoot" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot"/> <keyword type="property" name="The "vertical-scaling-mode" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-warptv.html#idp23811936"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-warptv.html#idp9071744"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-warptv.html#idp19689024"/> + <keyword type="property" name="The "timebase" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-warptv.html#idp21797648"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-warptv.html#idp23932944"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-warptv.html#idp23695440"/> <keyword type="struct" name="struct GstWarpTV" link="gst-plugins-good-plugins-warptv.html#GstWarpTV-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavenc.html#idp19055744"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavenc.html#idp22133408"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavenc.html#idp24056928"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavenc.html#idp24974896"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavenc.html#idp7251776"/> <keyword type="struct" name="struct GstWavEnc" link="gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-waveformsink.html#idp15373696"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-waveformsink.html#idp22706464"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-waveformsink.html#idp25057792"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-waveformsink.html#idp23705008"/> <keyword type="struct" name="struct GstWaveFormSink" link="gst-plugins-good-plugins-waveformsink.html#GstWaveFormSink"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackdec.html#idp16756368"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackdec.html#idp16438000"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackdec.html#idp2869728"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackdec.html#idp9508704"/> <keyword type="struct" name="struct GstWavpackDec" link="gst-plugins-good-plugins-wavpackdec.html#GstWavpackDec-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackenc.html#idp12688160"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackenc.html#idp19750368"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackenc.html#idp20018592"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackenc.html#idp24230080"/> <keyword type="struct" name="struct GstWavpackEnc" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc-struct"/> <keyword type="property" name="The "bitrate" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bitrate"/> <keyword type="property" name="The "bits-per-sample" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bits-per-sample"/> @@ -1389,21 +1486,21 @@ <keyword type="property" name="The "joint-stereo-mode" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--joint-stereo-mode"/> <keyword type="property" name="The "md5" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--md5"/> <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--mode"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavpackparse.html#idp18042816"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackparse.html#idp22702560"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackparse.html#idp20437536"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavpackparse.html#idp24250064"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackparse.html#idp24764048"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackparse.html#idp6615088"/> <keyword type="struct" name="struct GstWavpackParse" link="gst-plugins-good-plugins-wavpackparse.html#GstWavpackParse-struct"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavparse.html#idp22595584"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavparse.html#idp23857184"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavparse.html#idp20482944"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavparse.html#idp21086512"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavparse.html#idp19290016"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavparse.html#idp17485552"/> <keyword type="struct" name="struct GstWavParse" link="gst-plugins-good-plugins-wavparse.html#GstWavParse-struct"/> <keyword type="property" name="The "ignore-length" property" link="gst-plugins-good-plugins-wavparse.html#GstWavParse--ignore-length"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-webmmux.html#idp21656528"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-webmmux.html#idp21654688"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-webmmux.html#idp21958912"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-webmmux.html#idp24063968"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-webmmux.html#idp22072640"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-webmmux.html#idp18408928"/> <keyword type="struct" name="struct GstWebMMux" link="gst-plugins-good-plugins-webmmux.html#GstWebMMux-struct"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ximagesrc.html#idp23238272"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ximagesrc.html#idp22667888"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ximagesrc.html#idp23832208"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ximagesrc.html#idp22572480"/> <keyword type="struct" name="struct GstXImageSrc" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc-struct"/> <keyword type="property" name="The "display-name" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--display-name"/> <keyword type="property" name="The "screen-num" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--screen-num"/> @@ -1416,9 +1513,9 @@ <keyword type="property" name="The "remote" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--remote"/> <keyword type="property" name="The "xid" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xid"/> <keyword type="property" name="The "xname" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xname"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-y4menc.html#idp22269456"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-y4menc.html#idp21858000"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-y4menc.html#idp18914368"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-y4menc.html#idp23969600"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-y4menc.html#idp23091712"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-y4menc.html#idp6050048"/> <keyword type="struct" name="struct GstY4mEncode" link="gst-plugins-good-plugins-y4menc.html#GstY4mEncode-struct"/> <keyword type="struct" name="struct GstIirEqualizer" link="GstIirEqualizer.html#GstIirEqualizer-struct"/> <keyword type="constant" name="ALPHA_METHOD_SET" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-SET:CAPS"/> diff --git a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html index bea2cac60b2f8c74f23c1689dc9f7dcc30ba7dd2..9f434952a236f0e2636610b4f3242046f7dd2d6a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>3gppmux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="ch01.html" title="gst-plugins-good Elements"> @@ -96,7 +96,7 @@ presentation-timestamp. <p> </p> <div class="refsect2"> -<a name="idp5897104"></a><h3>Example pipelines</h3> +<a name="idp6113488"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -119,9 +119,12 @@ Documentation last reviewed on 2011-04-21 <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5560000"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp9144864"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -142,9 +145,12 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="idp8034544"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp6311024"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -176,8 +182,11 @@ Documentation last reviewed on 2011-04-21 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -209,8 +218,11 @@ Documentation last reviewed on 2011-04-21 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html b/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html index 6cf38a6eb458daef798bd9774e24934b9df54f81..487d88505fe95c51d76ed1e63e27a07b48bfd1a8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html +++ b/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>GstVideoMixerPad</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch03.html" title="gst-plugins-good Base Classes"> <link rel="prev" href="GstIirEqualizer.html" title="GstIirEqualizer"> diff --git a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html index d8afd69718ba1bcc443a91a5a8a862753bf49ce7..e02dc73a6cbedebf2500249858c940c199c3d545 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>aacparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-3gppmux.html" title="3gppmux"> @@ -66,7 +66,7 @@ can also estimate playback position and clip duration. <p> </p> <div class="refsect2"> -<a name="idp8511120"></a><h3>Example launch line</h3> +<a name="idp2950000"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -84,9 +84,12 @@ can also estimate playback position and clip duration. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8039664"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5578864"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -107,9 +110,12 @@ can also estimate playback position and clip duration. </div> <hr> <div class="refsect2"> -<a name="idp6788592"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7021072"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -129,8 +135,11 @@ can also estimate playback position and clip duration. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-aasink.html index f676ac38da8e4c4b962efceb9bffdd5a21c9bcaf..7b83699abb9f6caac02c197dd1a405f3018b3fe2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-aasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-aasink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>aasink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-aacparse.html" title="aacparse"> @@ -86,9 +86,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7550848"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp9493872"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -109,9 +112,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp9686608"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8910368"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -233,8 +239,11 @@ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstaasink</code></em> :</span></p></td> @@ -256,8 +265,11 @@ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstaasink</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html index 5deb7f1fa6c0c525e9f10c202de2887bc36df271..56144796717db6d5b3de7d0fce56dbcd26df5f8b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ac3parse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-aasink.html" title="aasink"> @@ -61,7 +61,7 @@ This is an AC3 parser. <p> </p> <div class="refsect2"> -<a name="idp8534944"></a><h3>Example launch line</h3> +<a name="idp9031760"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -79,9 +79,12 @@ This is an AC3 parser. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8729040"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6596512"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -102,9 +105,12 @@ This is an AC3 parser. </div> <hr> <div class="refsect2"> -<a name="idp4996480"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8013712"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -130,10 +136,17 @@ This is an AC3 parser. <td><p><span class="term"></span></p></td> <td> audio/ac3</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/x-private1-ac3</td> +</tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html index dcb4200c3754b0e0dbe2cfdaebea5d4f140fc0d4..9260dcef7051cd0cccd9f6257858bd4b2625efba 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>agingtv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-ac3parse.html" title="ac3parse"> @@ -74,7 +74,7 @@ scratches and dust. <p> </p> <div class="refsect2"> -<a name="idp6588304"></a><h3>Example launch line</h3> +<a name="idp6143968"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -92,9 +92,12 @@ scratches and dust. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp4944256"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5767920"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -115,9 +118,12 @@ scratches and dust. </div> <hr> <div class="refsect2"> -<a name="idp5796816"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp5807664"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -137,8 +143,11 @@ scratches and dust. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html index b67a660e0476d06762815e12193dddd71413df7b..8ce4ef002fc8b720536eabff2e5d92a5cde0e6ab 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>alawdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor"> @@ -60,9 +60,12 @@ This element decodes alaw audio. Alaw coding is also known as G.711. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8768368"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6826464"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -83,9 +86,12 @@ This element decodes alaw audio. Alaw coding is also known as G.711. </div> <hr> <div class="refsect2"> -<a name="idp9490512"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9772352"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -105,8 +111,11 @@ This element decodes alaw audio. Alaw coding is also known as G.711. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html index e1141bcaf906b12ba8405690f8d929355a96b2dd..cc0a3d31cc3c83ef8295d34063954136758d2698 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>alawenc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-alawdec.html" title="alawdec"> @@ -49,9 +49,12 @@ This element encode alaw audio. Alaw coding is also known as G.711. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7009168"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6619840"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -72,9 +75,12 @@ This element encode alaw audio. Alaw coding is also known as G.711. </div> <hr> <div class="refsect2"> -<a name="idp6085760"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9450112"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -94,8 +100,11 @@ This element encode alaw audio. Alaw coding is also known as G.711. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-alpha.html index 8c371848cbbe94cec302108a51e1819f325f68fd..b7f641b84778bf038ce44067525e4bed620cdf5c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alpha.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alpha.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>alpha</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-agingtv.html" title="agingtv"> @@ -105,9 +105,12 @@ a snow video stream. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp9320896"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6082352"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -130,9 +133,12 @@ Jan Schmidt <thaytan@noraisin.net></td> </div> <hr> <div class="refsect2"> -<a name="idp8758864"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp5463632"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -152,8 +158,11 @@ Jan Schmidt <thaytan@noraisin.net></td> </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -196,8 +205,11 @@ Jan Schmidt <thaytan@noraisin.net></td> ALPHA_METHOD_CUSTOM, } GstAlphaMethod; </pre> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><a name="ALPHA-METHOD-SET:CAPS"></a><span class="term"><code class="literal">ALPHA_METHOD_SET</code></span></p></td> @@ -259,7 +271,7 @@ Jan Schmidt <thaytan@noraisin.net></td> <div class="refsect2"> <a name="GstAlpha--target-b"></a><h3>The <code class="literal">"target-b"</code> property</h3> <pre class="programlisting"> "target-b" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> -<p>The Blue target.</p> +<p>The blue color value for custom RGB chroma keying.</p> <p>Allowed values: <= 255</p> <p>Default value: 0</p> </div> @@ -267,7 +279,7 @@ Jan Schmidt <thaytan@noraisin.net></td> <div class="refsect2"> <a name="GstAlpha--target-g"></a><h3>The <code class="literal">"target-g"</code> property</h3> <pre class="programlisting"> "target-g" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> -<p>The Green target.</p> +<p>The green color value for custom RGB chroma keying.</p> <p>Allowed values: <= 255</p> <p>Default value: 255</p> </div> @@ -275,7 +287,7 @@ Jan Schmidt <thaytan@noraisin.net></td> <div class="refsect2"> <a name="GstAlpha--target-r"></a><h3>The <code class="literal">"target-r"</code> property</h3> <pre class="programlisting"> "target-r" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> -<p>The Red target.</p> +<p>The red color value for custom RGB chroma keying.</p> <p>Allowed values: <= 255</p> <p>Default value: 0</p> </div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html index a061cdacc12f67f70570d23565def90c0fef7d8a..6e6283874c19c76ad449d638fed67e691fed73c2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>alphacolor</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-alpha.html" title="alpha"> @@ -82,9 +82,12 @@ Sample pipeline: <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7961536"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp9405456"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -105,9 +108,12 @@ Sample pipeline: </div> <hr> <div class="refsect2"> -<a name="idp8479376"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7048096"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -127,8 +133,11 @@ Sample pipeline: </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html index d36b18ef66ff79beede85204b45a19482ad61920..4a68224b74380612d67e5f80fd84243d9028e7b2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>amrparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-alawenc.html" title="alawenc"> @@ -62,7 +62,7 @@ formats. <p> </p> <div class="refsect2"> -<a name="idp6831200"></a><h3>Example launch line</h3> +<a name="idp7779712"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -80,9 +80,12 @@ formats. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp6784240"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp8942016"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -103,9 +106,12 @@ formats. </div> <hr> <div class="refsect2"> -<a name="idp7301456"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp5623776"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -129,8 +135,11 @@ formats. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -167,15 +176,18 @@ formats. <p> The opaque GstAacParse data structure. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody></tbody> </table></div> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-amrparse.see-also"></a><h2>See Also</h2> -<span class="type">GstAmrnbDec</span>, <span class="type">GstAmrnbEnc</span> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/gst-plugins-ugly-plugins-amrnbdec.html#GstAmrnbDec"><span class="type">GstAmrnbDec</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/gst-plugins-ugly-plugins-amrnbenc.html#GstAmrnbEnc"><span class="type">GstAmrnbEnc</span></a> </div> </div> <div class="footer"> diff --git a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html index 6cc64a5bd7dfa27d47f221013d5c984ce19d065f..1110b4fc6098404cdc33d13a4eacfa512fd17896 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>apedemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-amrparse.html" title="amrparse"> @@ -72,7 +72,7 @@ information. <p> </p> <div class="refsect2"> -<a name="idp7879440"></a><h3>Example launch line</h3> +<a name="idp5795760"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -92,9 +92,12 @@ the appropriate mime type set on buffers produced from apedemux. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7679136"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp1531392"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -115,9 +118,12 @@ the appropriate mime type set on buffers produced from apedemux. </div> <hr> <div class="refsect2"> -<a name="idp10028064"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp6644736"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -137,8 +143,11 @@ the appropriate mime type set on buffers produced from apedemux. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html index b3aad55673b52b35626976a996b46b62ba226441..a967c89dd30edde81adadfe2d14afd7f9aca39ba 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>apev2mux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-apedemux.html" title="apedemux"> @@ -66,9 +66,12 @@ GstApev2Mux implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7608704"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6518416"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -89,9 +92,12 @@ GstApev2Mux implements </div> <hr> <div class="refsect2"> -<a name="idp5168992"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8450720"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -111,8 +117,11 @@ GstApev2Mux implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html index 8adf9c0b1ba69853b303808c7b1264571cdbb6e1..94dec5842f29ba2c3dd7771e44b6d41db2d26309 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html +++ b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>aspectratiocrop</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-apev2mux.html" title="apev2mux"> @@ -81,7 +81,7 @@ in pass-through mode. <p> </p> <div class="refsect2"> -<a name="idp9682640"></a><h3>Example launch line</h3> +<a name="idp9647744"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -99,9 +99,12 @@ in pass-through mode. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp9283408"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5724416"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -122,9 +125,12 @@ in pass-through mode. </div> <hr> <div class="refsect2"> -<a name="idp5076464"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8195472"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -140,12 +146,15 @@ in pass-through mode. </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -161,7 +170,7 @@ in pass-through mode. </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> </tbody> </table></div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html index e75b2044a2e1cb15459b91602cbe0e789bf3f226..7cd4f94c7ff5223ba7c3320721d90869cb670613 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audioamplify</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-aspectratiocrop.html" title="aspectratiocrop"> @@ -72,7 +72,7 @@ The difference between the clipping modes is best evaluated by testing. <p> </p> <div class="refsect2"> -<a name="idp8415536"></a><h3>Example launch line</h3> +<a name="idp8526960"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -94,9 +94,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp9042144"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp2988576"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -117,9 +120,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="idp9664656"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7125360"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -139,8 +145,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html index 3ddb0f9b1d6d580e674b16d90368dae3f10919fc..31fe063d7fbde2c47274e3b0470361feadb67c51 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audiochebband</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify"> @@ -103,7 +103,7 @@ a cutoff frequency at a quarter of the sampling rate. <p> </p> <div class="refsect2"> -<a name="idp7927952"></a><h3>Example launch line</h3> +<a name="idp6140608"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -125,9 +125,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8004864"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10187200"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -148,9 +151,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="idp5792464"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8821472"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -170,8 +176,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html index f25c9315fde62ed8aa36a41a834f4d9d5203f2b7..a4d63c6bca31b357bba8bc7a40a8a37501ea7412 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audiocheblimit</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audiochebband.html" title="audiochebband"> @@ -100,7 +100,7 @@ a cutoff frequency at a quarter of the sampling rate. <p> </p> <div class="refsect2"> -<a name="idp6577120"></a><h3>Example launch line</h3> +<a name="idp8331104"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -122,9 +122,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idm9120"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5477056"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -145,9 +148,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="idp7659936"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp5606368"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -167,8 +173,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html index c940a22845af0523759fc080124826a352ed90e5..770d841394d74ff42189ffad7b07d4f55b5c8c34 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audiodynamic</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audioecho.html" title="audioecho"> @@ -76,7 +76,7 @@ soft-knee mode is selected the ratio is applied smoothly. <p> </p> <div class="refsect2"> -<a name="idp6030816"></a><h3>Example launch line</h3> +<a name="idp7655024"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -98,9 +98,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp6497904"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp4774688"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -121,9 +124,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="idp8507408"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp6403648"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -143,8 +149,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html index ff57f921094168f5f0e703f899c8f7ea4e08c549..0d8b8fba22e271cfd472c70ef9a92458090ceb91 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audioecho</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit"> @@ -84,7 +84,7 @@ state and will be set to the current delay by default. <p> </p> <div class="refsect2"> -<a name="idp6077184"></a><h3>Example launch line</h3> +<a name="idp6028784"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -104,9 +104,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5749168"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp8851296"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -127,9 +130,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="idp6029888"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp6008928"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -149,8 +155,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html index e9b078cefcdf22b7bb80227ed5bbec4e0d687583..e2c089f0eb25f49f8516c6d04b4c47459ce71e1a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audiofirfilter</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audiocheblimit.html" title="audiocheblimit"> @@ -95,7 +95,7 @@ FIR filters as they're depending on the sampling rate. <p> </p> <div class="refsect2"> -<a name="idp8477488"></a><h3>Example application</h3> +<a name="idp9199184"></a><h3>Example application</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -280,8 +280,8 @@ FIR filters as they're depending on the sampling rate. <span class="comment"> *</span> <span class="comment"> * You should have received a copy of the GNU Library General Public</span> <span class="comment"> * License along with this library; if not, write to the</span> -<span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span> -<span class="comment"> * Boston, MA 02111-1307, USA.</span> +<span class="comment"> * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span> +<span class="comment"> * Boston, MA 02110-1301, USA.</span> <span class="comment"> */</span> <span class="comment">/* This small sample application creates a bandpass FIR filter</span> @@ -441,9 +441,12 @@ gint <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5956976"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp7991472"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -464,9 +467,12 @@ gint </div> <hr> <div class="refsect2"> -<a name="idp9251552"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10261952"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -486,8 +492,11 @@ gint </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -549,8 +558,11 @@ Will be emitted when the sampling rate changes. The callbacks will be called from the streaming thread and processing will stop until the event is handled. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html index 0112e2f39ed149c87b496698a730738fb6c487fd..8f73daeaf1244c948303706e658794b67c879895 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audioiirfilter</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audiofirfilter.html" title="audiofirfilter"> @@ -91,7 +91,7 @@ IIR filters as they're depending on the sampling rate. <p> </p> <div class="refsect2"> -<a name="idp4910688"></a><h3>Example application</h3> +<a name="idp6404928"></a><h3>Example application</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -252,8 +252,8 @@ IIR filters as they're depending on the sampling rate. <span class="comment"> *</span> <span class="comment"> * You should have received a copy of the GNU Library General Public</span> <span class="comment"> * License along with this library; if not, write to the</span> -<span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span> -<span class="comment"> * Boston, MA 02111-1307, USA.</span> +<span class="comment"> * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span> +<span class="comment"> * Boston, MA 02110-1301, USA.</span> <span class="comment"> */</span> <span class="comment">/* This small sample application creates a lowpass IIR filter</span> @@ -389,9 +389,12 @@ gint <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10393392"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp8145488"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -412,9 +415,12 @@ gint </div> <hr> <div class="refsect2"> -<a name="idp5693552"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9189216"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -434,8 +440,11 @@ gint </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -496,8 +505,11 @@ Will be emitted when the sampling rate changes. The callbacks will be called from the streaming thread and processing will stop until the event is handled. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html index 04a1c8adba364d1a96ce609c52871c326f2b9a86..0569b2780ef14baccdb37ac947b9883946d164c1 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audioinvert</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic"> @@ -72,7 +72,7 @@ Creating a stereo sample from a mono source, with one channel inverted produces <p> </p> <div class="refsect2"> -<a name="idp8563776"></a><h3>Example launch line</h3> +<a name="idp5762816"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -94,9 +94,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5154176"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp9076528"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -117,9 +120,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="idp6566272"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp5218224"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -139,8 +145,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html index ff6241c05302172be05aa3281bc7b1825bb90ca7..69e5fc0b4a3c76c06df34d59d4be30f898591de6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audiokaraoke</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama"> @@ -74,7 +74,7 @@ This plugin is useful for karaoke applications. <p> </p> <div class="refsect2"> -<a name="idp7106688"></a><h3>Example launch line</h3> +<a name="idp5419792"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -92,9 +92,12 @@ This plugin is useful for karaoke applications. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7811584"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp9252656"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -115,9 +118,12 @@ This plugin is useful for karaoke applications. </div> <hr> <div class="refsect2"> -<a name="idp5109584"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10378896"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -137,8 +143,11 @@ This plugin is useful for karaoke applications. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html index c735f7d3528cb99a2ecc207e3aebc41b2299e33d..a9f382735dd5b8e931ef76c36b55358d9f13bc0b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audiopanorama</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert"> @@ -71,7 +71,7 @@ which keeps the same perceived loudness, and a simple panning method that just c <p> </p> <div class="refsect2"> -<a name="idp8410144"></a><h3>Example launch line</h3> +<a name="idm11888"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -95,9 +95,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5566016"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp2876928"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -118,9 +121,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="idp6929344"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp11457312"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -136,16 +142,15 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)1, layout=(string)interleaved</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</td> +<td>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], layout=(string)interleaved</td> </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -161,7 +166,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>audio/x-raw, format=(string){ S32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</td> +<td>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved</td> </tr> </tbody> </table></div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html index a2c175fa3cce666df9d08ece0418ad670bfa9bce..a8a5cfd1018242deb595e9caff9cebdf03808739 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audiowsincband</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audioiirfilter.html" title="audioiirfilter"> @@ -83,7 +83,7 @@ disadvantage is the much slower execution time with larger kernels. <p> </p> <div class="refsect2"> -<a name="idp5244672"></a><h3>Example launch line</h3> +<a name="idp7302048"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -105,9 +105,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8579952"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10726912"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -128,9 +131,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="idp9508512"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp6534160"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -150,8 +156,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html index 61bc99533fa40b789afcbd6c2f0cae7116e373aa..bd58ec645a3d184c2ac4687a29013dfbaab955a7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audiowsinclimit</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audiowsincband.html" title="audiowsincband"> @@ -83,7 +83,7 @@ disadvantage is the much slower execution time with larger kernels. <p> </p> <div class="refsect2"> -<a name="idp6342304"></a><h3>Example launch line</h3> +<a name="idp6291792"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -91,9 +91,9 @@ disadvantage is the much slower execution time with larger kernels. <td class="listing_lines" align="right"><pre>1 2 3</pre></td> - <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc freq<span class="gtkdoc opt">=</span><span class="number">1500</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>low<span class="gtkdoc opt">-</span>pass frequency<span class="gtkdoc opt">=</span><span class="number">1000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink -gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span><span class="string">"melo1.ogg"</span> <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>high<span class="gtkdoc opt">-</span>pass frequency<span class="gtkdoc opt">=</span><span class="number">15000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink -gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc wave<span class="gtkdoc opt">=</span>white<span class="gtkdoc opt">-</span>noise <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>low<span class="gtkdoc opt">-</span>pass frequency<span class="gtkdoc opt">=</span><span class="number">1000</span> length<span class="gtkdoc opt">=</span><span class="number">10001</span> window<span class="gtkdoc opt">=</span>blackman <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc freq<span class="gtkdoc opt">=</span><span class="number">1500</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>low<span class="gtkdoc opt">-</span>pass cutoff<span class="gtkdoc opt">=</span><span class="number">1000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink +gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span><span class="string">"melo1.ogg"</span> <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>high<span class="gtkdoc opt">-</span>pass cutoff<span class="gtkdoc opt">=</span><span class="number">15000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink +gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc wave<span class="gtkdoc opt">=</span>white<span class="gtkdoc opt">-</span>noise <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>low<span class="gtkdoc opt">-</span>pass cutoff<span class="gtkdoc opt">=</span><span class="number">1000</span> length<span class="gtkdoc opt">=</span><span class="number">10001</span> window<span class="gtkdoc opt">=</span>blackman <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td> </tr> </tbody> </table> @@ -105,9 +105,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idm30832"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5754672"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -128,9 +131,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="idp5339824"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7033856"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -150,8 +156,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-auparse.html index 0892214a90466be29935a6b721815a1b4e34be5f..63925407682f6d5ea0abe44e3024ad2143a87f25 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-auparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-auparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>auparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke"> @@ -60,9 +60,12 @@ Parses .au files mostly originating from sun os based computers. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp9714160"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp8715792"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -83,9 +86,12 @@ Parses .au files mostly originating from sun os based computers. </div> <hr> <div class="refsect2"> -<a name="idp9822992"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9070240"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -105,8 +111,11 @@ Parses .au files mostly originating from sun os based computers. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html index 676e81ff5d81e12ebafeb92760f1993a7f27dd9b..87da569f8a5068a9e9b86998f96ffcbba32ddd36 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>autoaudiosink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-auparse.html" title="auparse"> @@ -81,7 +81,7 @@ of their element information, and also have a non-zero autoplugging rank. <p> </p> <div class="refsect2"> -<a name="idp5756432"></a><h3>Example launch line</h3> +<a name="idp8750000"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -99,9 +99,12 @@ of their element information, and also have a non-zero autoplugging rank. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11028320"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp8879536"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -122,9 +125,12 @@ of their element information, and also have a non-zero autoplugging rank. </div> <hr> <div class="refsect2"> -<a name="idp10099616"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9085088"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html index 578c2c1c6d8d73d239a14a0415bb008d90706bab..e314efc6a883ed6ea58cabfc83bbf098587f0cfc 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>autoaudiosrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-autoaudiosink.html" title="autoaudiosink"> @@ -80,7 +80,7 @@ of their element information, and also have a non-zero autoplugging rank. <p> </p> <div class="refsect2"> -<a name="idp10447440"></a><h3>Example launch line</h3> +<a name="idp9138832"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -98,9 +98,12 @@ of their element information, and also have a non-zero autoplugging rank. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5559200"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5345888"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -121,9 +124,12 @@ of their element information, and also have a non-zero autoplugging rank. </div> <hr> <div class="refsect2"> -<a name="idp7640272"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10553360"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html index 9b4fbe9706b4c8d112e1ee8a43e64db0bfcaa03f..d3b19882a071eed50a3129317d97abad41e2f025 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>autovideosink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-autoaudiosrc.html" title="autoaudiosrc"> @@ -81,7 +81,7 @@ of their element information, and also have a non-zero autoplugging rank. <p> </p> <div class="refsect2"> -<a name="idp10697584"></a><h3>Example launch line</h3> +<a name="idp6701440"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -99,9 +99,12 @@ of their element information, and also have a non-zero autoplugging rank. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp6525888"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp3260992"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -122,9 +125,12 @@ of their element information, and also have a non-zero autoplugging rank. </div> <hr> <div class="refsect2"> -<a name="idp5018176"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10730080"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html index a8bf0e039f8b47cc78f60ce9bec79480da075307..cfab3a6d3c46f56fd583b97b872dfb4033bbbb0f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>autovideosrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-autovideosink.html" title="autovideosink"> @@ -80,7 +80,7 @@ of their element information, and also have a non-zero autoplugging rank. <p> </p> <div class="refsect2"> -<a name="idp6896304"></a><h3>Example launch line</h3> +<a name="idp7064416"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -98,9 +98,12 @@ of their element information, and also have a non-zero autoplugging rank. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp6764640"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6356896"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -121,9 +124,12 @@ of their element information, and also have a non-zero autoplugging rank. </div> <hr> <div class="refsect2"> -<a name="idp5343072"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8468768"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html index fdde781498cf4fa44b74c0115ab0845de0dbf248..28d74fb081eccac54e59912c4c383e38875cb670 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>avidemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-autovideosrc.html" title="autovideosrc"> @@ -64,7 +64,7 @@ capabilities of the upstream elements. <p> </p> <div class="refsect2"> -<a name="idp11487216"></a><h3>Example launch line</h3> +<a name="idp11160144"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -88,9 +88,12 @@ Last reviewed on 2006-12-29 (0.10.6) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11484016"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp11157712"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -111,9 +114,12 @@ Last reviewed on 2006-12-29 (0.10.6) </div> <hr> <div class="refsect2"> -<a name="idp11478240"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp11151040"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -133,8 +139,11 @@ Last reviewed on 2006-12-29 (0.10.6) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -262,8 +271,11 @@ Last reviewed on 2006-12-29 (0.10.6) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -283,8 +295,11 @@ Last reviewed on 2006-12-29 (0.10.6) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -512,7 +527,7 @@ Last reviewed on 2006-12-29 (0.10.6) </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-wmv, wmvversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]</td> +<td> video/x-wmv, wmvversion=(int)3, format=(string)WMV3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]</td> </tr> <tr> <td><p><span class="term"></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-avimux.html b/docs/plugins/html/gst-plugins-good-plugins-avimux.html index 18309e1b98fd749ff7b9112dd48c3ba9fc50dae8..719a5c6456ccfdf92f912da5598f4b2bd6554227 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-avimux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-avimux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>avimux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-avidemux.html" title="avidemux"> @@ -76,7 +76,7 @@ Muxes raw or compressed audio and/or video streams into an AVI file. <p> </p> <div class="refsect2"> -<a name="idp6591376"></a><h3>Example launch lines</h3> +<a name="idp5273808"></a><h3>Example launch lines</h3> <p>(write everything in one line, without the backslash characters)</p> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> @@ -130,9 +130,12 @@ only work if you have the necessary encoder elements installed of course. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11660240"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5375904"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -153,9 +156,12 @@ only work if you have the necessary encoder elements installed of course. </div> <hr> <div class="refsect2"> -<a name="idp8881488"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10974672"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -199,8 +205,11 @@ only work if you have the necessary encoder elements installed of course. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -216,7 +225,7 @@ only work if you have the necessary encoder elements installed of course. </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ YUY2, I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ YUY2, I420, BGR, BGRx, BGRA, GRAY8 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> <tr> <td><p><span class="term"></span></p></td> @@ -264,8 +273,11 @@ only work if you have the necessary encoder elements installed of course. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html index d3a86719c4514d3a93280583ebe1a12c489fb0fc..decf46c9326cbdffddfd7c50eb035ee8e68227ed 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html +++ b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>avisubtitle</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-avimux.html" title="avimux"> @@ -57,7 +57,7 @@ <p> </p> <div class="refsect2"> -<a name="idp4891232"></a><h3>Example launch line</h3> +<a name="idp7552048"></a><h3>Example launch line</h3> <p> Parses the subtitle stream from an avi file. </p> @@ -78,9 +78,12 @@ Last reviewed on 2008-02-01 <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8992208"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5563312"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -101,9 +104,12 @@ Last reviewed on 2008-02-01 </div> <hr> <div class="refsect2"> -<a name="idp10442128"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9055968"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -123,8 +129,11 @@ Last reviewed on 2008-02-01 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html index f48dd46464b822a7a324b71a086fcd8be912a3d6..acd8abe6aa0ec896aaf7c0a8f457afd54549d349 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>cacasink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-avisubtitle.html" title="avisubtitle"> @@ -69,9 +69,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11117168"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6840112"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -92,9 +95,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp7605936"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp5432784"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -110,7 +116,7 @@ </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ RGB, RGBx, RGB16, RGB15 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ RGB, BGR, RGBx, xRGB, BGRx, xBGR, RGB16, RGB15 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> </tbody> </table></div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html index fb97b27e0f9ab0f2895a7a89e0cfedbe32c5c659..b9de1bf80797621dfc6e8865a06bd9fb95f502f3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>cairooverlay</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-cacasink.html" title="cacasink"> @@ -68,9 +68,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10694080"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp12083040"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -91,9 +94,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp5589152"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8612080"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -113,8 +119,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -157,8 +166,11 @@ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstcairooverlay</code></em> :</span></p></td> @@ -181,8 +193,11 @@ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstcairooverlay</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html index a36299bd2a570bc751bcb072f34fd9c5a06f2567..bbde8d179e53ac2d9afce93e0b6104b1b460883b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>capssetter</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-cairooverlay.html" title="cairooverlay"> @@ -68,7 +68,7 @@ <p> </p> <div class="refsect2"> -<a name="idp6441952"></a><p> +<a name="idp5938384"></a><p> Sets or merges caps on a stream's buffers. That is, a buffer's caps are updated using (fields of) <a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps" title='The "caps" property'>caps</a>. Note that this may @@ -99,9 +99,12 @@ alike. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11185184"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp7467344"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -122,9 +125,12 @@ alike. </div> <hr> <div class="refsect2"> -<a name="idp7152864"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp11516288"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -144,8 +150,11 @@ alike. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-cutter.html index cd134c5bb726f2f45852f3f18d17e1278c4a9930..1515d0ee0403cc90d9068070b6c02836fdcaec77 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cutter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cutter.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>cutter</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-capssetter.html" title="capssetter"> @@ -72,7 +72,7 @@ silence is signalled by bus messages named <code class="classname">"cutter"</code>. The message's structure contains two fields: </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <code class="classname">"timestamp"</code>: @@ -89,7 +89,7 @@ The message's structure contains two fields: <p> </p> <div class="refsect2"> -<a name="idp12095840"></a><h3>Example launch line</h3> +<a name="idp7650192"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -107,9 +107,12 @@ The message's structure contains two fields: <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10082784"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5415856"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -130,9 +133,12 @@ The message's structure contains two fields: </div> <hr> <div class="refsect2"> -<a name="idp10208496"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp11312080"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -152,8 +158,11 @@ The message's structure contains two fields: </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html index 8f45e5066ddc31594b743df14d0d87a9d15639b6..1d441cabcbbb6b767e761a7a19463eade8ba5b2f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>dcaparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-cutter.html" title="cutter"> @@ -61,7 +61,7 @@ This is a DCA (DTS Coherent Acoustics) parser. <p> </p> <div class="refsect2"> -<a name="idp7561104"></a><h3>Example launch line</h3> +<a name="idp8826816"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -79,9 +79,12 @@ This is a DCA (DTS Coherent Acoustics) parser. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10031984"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp11910560"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -102,9 +105,12 @@ This is a DCA (DTS Coherent Acoustics) parser. </div> <hr> <div class="refsect2"> -<a name="idp7268512"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12608576"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -122,10 +128,17 @@ This is a DCA (DTS Coherent Acoustics) parser. <td><p><span class="term">details</span></p></td> <td>audio/x-dts</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/x-private1-dts</td> +</tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html index 10cb382c7e1a1f99ae9cacf592b7662b1c992e09..2cb871c3c852c9b0510955f59838c9d9da9a92ef 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html +++ b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>deinterlace</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-dcaparse.html" title="dcaparse"> @@ -83,7 +83,7 @@ For this different algorithms can be selected which will be described later. <p> </p> <div class="refsect2"> -<a name="idp10271408"></a><h3>Example launch line</h3> +<a name="idp7050240"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -101,9 +101,12 @@ For this different algorithms can be selected which will be described later. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10539760"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp7026704"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -124,9 +127,12 @@ For this different algorithms can be selected which will be described later. </div> <hr> <div class="refsect2"> -<a name="idp8797088"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp11438208"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -146,8 +152,11 @@ For this different algorithms can be selected which will be described later. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -207,7 +216,7 @@ setting the appropiate properties on it. </p> <p> </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> tomsmocomp Motion Adaptive: Motion Search diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html index 383798e788fcbce19614360a0a367c2cf0e10ba3..3384cd448dd6667f41400c4f6a7bcf3b4d33ce92 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html +++ b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>deinterleave</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-deinterlace.html" title="deinterlace"> @@ -78,7 +78,7 @@ before further processing of the audio data. <p> </p> <div class="refsect2"> -<a name="idp6903024"></a><h3>Example launch line</h3> +<a name="idp9390448"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -110,9 +110,12 @@ channels exchanged. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8225520"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6460992"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -133,9 +136,12 @@ channels exchanged. </div> <hr> <div class="refsect2"> -<a name="idp11340160"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7416272"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -155,8 +161,11 @@ channels exchanged. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html index 901215bfd3b3a1e00fcdff73f5a6151215fb1f2a..592770b5d7295619e7b2cd6377d0ac8cf7ccf929 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>dicetv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-deinterleave.html" title="deinterleave"> @@ -83,7 +83,7 @@ consistent between each frame. <p> </p> <div class="refsect2"> -<a name="idp7340912"></a><h3>Example launch line</h3> +<a name="idp11683280"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -101,9 +101,12 @@ consistent between each frame. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp6547792"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp12679024"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -124,9 +127,12 @@ consistent between each frame. </div> <hr> <div class="refsect2"> -<a name="idp9061872"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp2830736"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -146,8 +152,11 @@ consistent between each frame. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -199,8 +208,11 @@ consistent between each frame. <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstdicetv</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html index 365446c6cbcaec1e7d52f46c6ff13727427e632d..cc3170c855e526f19623638c618fff6c2641170b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html @@ -3,11 +3,11 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>directsoundsink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-dicetv.html" title="dicetv"> -<link rel="next" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src"> +<link rel="next" href="gst-plugins-good-plugins-dtmfsrc.html" title="dtmfsrc"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -18,7 +18,7 @@ <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-dv1394src.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-dtmfsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#gst-plugins-good-plugins-directsoundsink.synopsis" class="shortcut">Top</a> @@ -45,9 +45,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8123472"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp7641248"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -68,7 +71,7 @@ </div> <hr> <div class="refsect2"> -<a name="idp10796912"></a><h3>Element Pads</h3> +<a name="idp6939312"></a><h3>Element Pads</h3> </div> </div> <p> diff --git a/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html new file mode 100644 index 0000000000000000000000000000000000000000..f795227900f10c7111fb1655181aab8ee415ac3c --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html @@ -0,0 +1,256 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>dtmfsrc</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-directsoundsink.html" title="directsoundsink"> +<link rel="next" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-directsoundsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-dv1394src.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-dtmfsrc.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-dtmfsrc.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-dtmfsrc.object-hierarchy" class="shortcut">Object Hierarchy</a> +  | + <a href="#gst-plugins-good-plugins-dtmfsrc.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-dtmfsrc"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-dtmfsrc.top_of_page"></a>dtmfsrc</span></h2> +<p>dtmfsrc — Generates DTMF tones</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-dtmfsrc.synopsis"></a><h2>Synopsis</h2> +<a name="GstDTMFSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct" title="struct GstDTMFSrc">GstDTMFSrc</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dtmfsrc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + +----GstDTMFSrc +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dtmfsrc.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval" title='The "interval" property'>interval</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dtmfsrc.description"></a><h2>Description</h2> +<p> +The DTMFSrc element generates DTMF (ITU-T Q.23 Specification) tone packets on request +from application. The application communicates the beginning and end of a +DTMF event using custom upstream gstreamer events. To report a DTMF event, an +application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a +structure of name "dtmf-event" with fields set according to the following +table: +</p> +<p> +</p> +<div class="informaltable"><table border="1"> +<colgroup> +<col class="Name"> +<col class="Type"> +<col class="Possible values"> +<col class="Purpose"> +</colgroup> +<thead><tr> +<th>Name</th> +<th>GType</th> +<th>Possible values</th> +<th>Purpose</th> +</tr></thead> +<tbody> +<tr> +<td>type</td> +<td>G_TYPE_INT</td> +<td>0-1</td> +<td>The application uses this field to specify which of the two methods +specified in RFC 2833 to use. The value should be 0 for tones and 1 for +named events. Tones are specified by their frequencies and events are specied +by their number. This element can only take events as input. Do not confuse +with "method" which specified the output. +</td> +</tr> +<tr> +<td>number</td> +<td>G_TYPE_INT</td> +<td>0-15</td> +<td>The event number.</td> +</tr> +<tr> +<td>volume</td> +<td>G_TYPE_INT</td> +<td>0-36</td> +<td>This field describes the power level of the tone, expressed in dBm0 +after dropping the sign. Power levels range from 0 to -63 dBm0. The range of +valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE. +</td> +</tr> +<tr> +<td>start</td> +<td>G_TYPE_BOOLEAN</td> +<td>True or False</td> +<td>Whether the event is starting or ending.</td> +</tr> +<tr> +<td>method</td> +<td>G_TYPE_INT</td> +<td>2</td> +<td>The method used for sending event, this element will react if this +field is absent or 2. +</td> +</tr> +</tbody> +</table></div> +<p> +</p> +<p> +For example, the following code informs the pipeline (and in turn, the +DTMFSrc element inside the pipeline) about the start of a DTMF named +event '1' of volume -25 dBm0: +</p> +<p> +</p> +<pre class="programlisting"> +structure = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, + "number", G_TYPE_INT, 1, + "volume", G_TYPE_INT, 25, + "start", G_TYPE_BOOLEAN, TRUE, NULL); + +event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure); +gst_element_send_event (pipeline, event); +</pre> +<p> +</p> +<p> +When a DTMF tone actually starts or stop, a "dtmf-event-processed" +element <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> with the same fields as the "dtmf-event" +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> that was used to request the event. Also, if any event +has not been processed when the element goes from the PAUSED to the +READY state, then a "dtmf-event-dropped" message is posted on the +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> in the order that they were received. +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp8551232"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-dtmf.html#plugin-dtmf">dtmf</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Youness Alaoui <youness.alaoui@collabora.co.uk></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Source/Audio</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp1524480"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)1</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dtmfsrc.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstDTMFSrc-struct"></a><h3>struct GstDTMFSrc</h3> +<pre class="programlisting">struct GstDTMFSrc;</pre> +<p> +The opaque <a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc"><span class="type">GstDTMFSrc</span></a> data structure. +</p> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody></tbody> +</table></div> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dtmfsrc.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="GstDTMFSrc--interval"></a><h3>The <code class="literal">"interval"</code> property</h3> +<pre class="programlisting"> "interval" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<p>Interval in ms between two tone packets.</p> +<p>Allowed values: [10,50]</p> +<p>Default value: 50</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dtmfsrc.see-also"></a><h2>See Also</h2> +rtpdtmsrc, rtpdtmfmuxx +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html index 1fb51c8301fe706dfb6129fbf8874b9a6ce69455..2e22d9d9a6c721a43d7a6d9f52c63c5d93ec3fdc 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html @@ -3,10 +3,10 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>dv1394src</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-directsoundsink.html" title="directsoundsink"> +<link rel="prev" href="gst-plugins-good-plugins-dtmfsrc.html" title="dtmfsrc"> <link rel="next" href="gst-plugins-good-plugins-dvdec.html" title="dvdec"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> @@ -14,7 +14,7 @@ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> <tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-directsoundsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-dtmfsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> @@ -64,7 +64,7 @@ <a name="gst-plugins-good-plugins-dv1394src.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstDV1394Src implements - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and GstPropertyProbe.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dv1394src.properties"></a><h2>Properties</h2> @@ -90,9 +90,12 @@ GstDV1394Src implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11860048"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp12835888"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -113,9 +116,12 @@ GstDV1394Src implements </div> <hr> <div class="refsect2"> -<a name="idp12289536"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10187328"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -219,8 +225,11 @@ GstDV1394Src implements <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstdv1394src</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html index cc7d44f379df97e4531c45be560d92952372c1a0..729166bac1799055a5a9b4c64d64015ba4c90e7d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>dvdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src"> @@ -68,9 +68,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7097840"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp7706496"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -91,9 +94,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp6806096"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp11012640"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -113,8 +119,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html index 25fc3140008ef79f001e0cf4662ae9765c148909..ba95044d2dcd6b5c3ea690e83d74d5afc5af4870 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>dvdemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-dvdec.html" title="dvdec"> @@ -57,9 +57,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp6014704"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6693648"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -80,9 +83,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp8210192"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp2905680"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -102,8 +108,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -123,8 +132,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html index f2d571297babf72d93fd1feb71a2ad3f359aa1ac..e2b4e533fd9480995d2631085d9237080799e556 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>edgetv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-dvdemux.html" title="dvdemux"> @@ -63,7 +63,7 @@ computer way. <p> </p> <div class="refsect2"> -<a name="idp10149312"></a><h3>Example launch line</h3> +<a name="idp3237120"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -81,9 +81,12 @@ computer way. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp6451872"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5831616"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -104,9 +107,12 @@ computer way. </div> <hr> <div class="refsect2"> -<a name="idp9435168"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp2972464"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -126,8 +132,11 @@ computer way. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html index 16a40d37b807ca6ce9401bffa5c5acf050e24907..6364ec9e2a921a5224c18740a944ed5a23cd3724 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html +++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>equalizer-10bands</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-edgetv.html" title="edgetv"> @@ -89,7 +89,7 @@ frequency bands between 30 Hz and 15 kHz. <p> </p> <div class="refsect2"> -<a name="idp13534352"></a><h3>Example launch line</h3> +<a name="idp6001760"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -107,9 +107,12 @@ frequency bands between 30 Hz and 15 kHz. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp6623344"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp12779712"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -130,9 +133,12 @@ frequency bands between 30 Hz and 15 kHz. </div> <hr> <div class="refsect2"> -<a name="idp10595952"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8770448"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -152,8 +158,11 @@ frequency bands between 30 Hz and 15 kHz. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html index b77c5b4aaabee88f37a8e98efd04759bb24aa94f..8972af90ed041cdf9292cedce1f3916787a21925 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html +++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>equalizer-3bands</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-equalizer-10bands.html" title="equalizer-10bands"> @@ -82,7 +82,7 @@ medium frequency and high frequency band. <p> </p> <div class="refsect2"> -<a name="idp8977312"></a><h3>Example launch line</h3> +<a name="idp7224000"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -100,9 +100,12 @@ medium frequency and high frequency band. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7613712"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp7630416"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -123,9 +126,12 @@ medium frequency and high frequency band. </div> <hr> <div class="refsect2"> -<a name="idp10507152"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp13362720"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -145,8 +151,11 @@ medium frequency and high frequency band. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html index ee11a708d96fc7ab7b97a6680cf87238485461e3..34c1824792e70aa957070350da1f5b697720215a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html +++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>equalizer-nbands</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-equalizer-3bands.html" title="equalizer-3bands"> @@ -81,7 +81,7 @@ the center frequency, band width and gain. <p> </p> <div class="refsect2"> -<a name="idp8715136"></a><h3>Example launch line</h3> +<a name="idp13123008"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -98,7 +98,7 @@ the center frequency, band width and gain. </p> <hr> <div class="refsect2"> -<a name="idp11969120"></a><h3>Example code</h3> +<a name="idp6721888"></a><h3>Example code</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -190,9 +190,12 @@ the center frequency, band width and gain. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp13549776"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13858176"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -213,9 +216,12 @@ the center frequency, band width and gain. </div> <hr> <div class="refsect2"> -<a name="idp8585888"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9036928"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -235,8 +241,11 @@ the center frequency, band width and gain. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html index 252dba2e0a300fff714de7115a90ec65472b622b..4528269bab12f08424bcf150118a3febb3909bd0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flacdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-equalizer-nbands.html" title="equalizer-nbands"> @@ -58,9 +58,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5748032"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5857840"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -81,9 +84,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp5491696"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7924768"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -103,8 +109,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html index dc89587e46dc1841f2fbc8f0edbeb8f2973855bd..ba864f8fad6d7d4aff1deecd6882013e8cf246cd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flacenc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-flacdec.html" title="flacdec"> @@ -88,9 +88,12 @@ GstFlacEnc implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11678144"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp6488240"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -111,9 +114,12 @@ GstFlacEnc implements </div> <hr> <div class="refsect2"> -<a name="idp10601536"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12478368"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -133,8 +139,11 @@ GstFlacEnc implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html index 0ceea1f6ba947a4e5bbe56846bf00e17df6316a0..e665cf7864e0b5f80c7655270200c1766faa40e5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flacparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-flacenc.html" title="flacenc"> @@ -80,7 +80,7 @@ format file to an ogg bitstream. <p> </p> <div class="refsect2"> -<a name="idp5519264"></a><h3>Example pipelines</h3> +<a name="idp8029600"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -102,9 +102,12 @@ buffer has the timestamp, duration, offset, and offset_end set. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5708976"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10572208"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -125,9 +128,12 @@ buffer has the timestamp, duration, offset, and offset_end set. </div> <hr> <div class="refsect2"> -<a name="idp6401344"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7222768"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -147,8 +153,11 @@ buffer has the timestamp, duration, offset, and offset_end set. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-flactag.html b/docs/plugins/html/gst-plugins-good-plugins-flactag.html index b8a9dbcc38841ce05d4085783a20650299caedd4..15d2e1d83cb1aaf3d68a3c92ddfdda9dc08dc1bb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flactag.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flactag.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flactag</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-flacparse.html" title="flacparse"> @@ -65,9 +65,12 @@ GstFlacTag implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11324016"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10581568"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -88,9 +91,12 @@ GstFlacTag implements </div> <hr> <div class="refsect2"> -<a name="idp4943664"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp5290368"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -110,8 +116,11 @@ GstFlacTag implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html index 51b00e35cf30ad9a7e3de856d9b5e4c0f450383c..a22bdf633cb89053929e8f56b8e00c9402efa20d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flvdemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-flactag.html" title="flactag"> @@ -60,7 +60,7 @@ flvdemux demuxes an FLV file into the different contained streams. <p> </p> <div class="refsect2"> -<a name="idp10202880"></a><h3>Example launch line</h3> +<a name="idp8004272"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -78,9 +78,12 @@ flvdemux demuxes an FLV file into the different contained streams. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp4946496"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10670784"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -101,9 +104,12 @@ flvdemux demuxes an FLV file into the different contained streams. </div> <hr> <div class="refsect2"> -<a name="idp9647008"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp11370464"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -123,8 +129,11 @@ flvdemux demuxes an FLV file into the different contained streams. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -172,8 +181,11 @@ flvdemux demuxes an FLV file into the different contained streams. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html index ea3786d9320c843adaa0f47500de8f681ee358c1..d75b15a42a633e8dc2a72b844eb90f85731b0c6b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flvmux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-flvdemux.html" title="flvdemux"> @@ -77,7 +77,7 @@ flvmux muxes different streams into an FLV file. <p> </p> <div class="refsect2"> -<a name="idp11059808"></a><h3>Example launch line</h3> +<a name="idp9551008"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -95,9 +95,12 @@ flvmux muxes different streams into an FLV file. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10884992"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp9844640"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -118,9 +121,12 @@ flvmux muxes different streams into an FLV file. </div> <hr> <div class="refsect2"> -<a name="idp8050880"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7407392"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -172,8 +178,11 @@ flvmux muxes different streams into an FLV file. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -209,8 +218,11 @@ flvmux muxes different streams into an FLV file. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html index 785701ffb7558cd58781a7178c339b8472cdf3c2..3fbc37d5e0997df1413e80189b9a3b0494d5eda0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flxdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-flvmux.html" title="flvmux"> @@ -60,9 +60,12 @@ This element decodes fli/flc/flx-video into raw video <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp6132928"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5747920"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -83,9 +86,12 @@ This element decodes fli/flc/flx-video into raw video </div> <hr> <div class="refsect2"> -<a name="idp9956224"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12874384"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -105,8 +111,11 @@ This element decodes fli/flc/flx-video into raw video </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-gamma.html b/docs/plugins/html/gst-plugins-good-plugins-gamma.html index 7e31a2276eef130c8f48c33b31f124a469df8b27..a5ef435993d9d4a68a294bfdfde99a92c2ff94a0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gamma.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gamma.html @@ -3,11 +3,11 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>gamma</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-flxdec.html" title="flxdec"> -<link rel="next" href="gst-plugins-good-plugins-gdkpixbufoverlay.html" title="gdkpixbufoverlay"> +<link rel="next" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -18,7 +18,7 @@ <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufoverlay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufsink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#gst-plugins-good-plugins-gamma.synopsis" class="shortcut">Top</a> @@ -70,7 +70,7 @@ Performs gamma correction on a video stream. <p> </p> <div class="refsect2"> -<a name="idp11177984"></a><h3>Example launch line</h3> +<a name="idp8112064"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -102,9 +102,12 @@ Last reviewed on 2010-04-18 (0.10.22) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10169584"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13238736"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -125,9 +128,12 @@ Last reviewed on 2010-04-18 (0.10.22) </div> <hr> <div class="refsect2"> -<a name="idp8107280"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp11657680"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -147,8 +153,11 @@ Last reviewed on 2010-04-18 (0.10.22) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html deleted file mode 100644 index 3b36e25025aea7087c6acab8d07f75f2ef695e60..0000000000000000000000000000000000000000 --- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html +++ /dev/null @@ -1,225 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>gdkpixbufoverlay</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> -<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> -<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-gamma.html" title="gamma"> -<link rel="next" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink"> -<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> -<link rel="stylesheet" href="style.css" type="text/css"> -</head> -<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-gamma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufsink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-gdkpixbufoverlay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-gdkpixbufoverlay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-gdkpixbufoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-gdkpixbufoverlay.properties" class="shortcut">Properties</a> -</td></tr> -</table> -<div class="refentry"> -<a name="gst-plugins-good-plugins-gdkpixbufoverlay"></a><div class="titlepage"></div> -<div class="refnamediv"><table width="100%"><tr> -<td valign="top"> -<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-gdkpixbufoverlay.top_of_page"></a>gdkpixbufoverlay</span></h2> -<p>gdkpixbufoverlay — Overlay an image onto a video stream</p> -</td> -<td valign="top" align="right"></td> -</tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-gdkpixbufoverlay.synopsis"></a><h2>Synopsis</h2> -<a name="GstGdkPixbufOverlay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay-struct" title="struct GstGdkPixbufOverlay">GstGdkPixbufOverlay</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-gdkpixbufoverlay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstGdkPixbufOverlay -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-gdkpixbufoverlay.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--location" title='The "location" property'>location</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-x" title='The "offset-x" property'>offset-x</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-y" title='The "offset-y" property'>offset-y</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-height" title='The "overlay-height" property'>overlay-height</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-width" title='The "overlay-width" property'>overlay-width</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-x" title='The "relative-x" property'>relative-x</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-y" title='The "relative-y" property'>relative-y</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--alpha" title='The "alpha" property'>alpha</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-gdkpixbufoverlay.description"></a><h2>Description</h2> -<div class="refsynopsisdiv"> -<h2>Synopsis</h2> -<div class="refsect2"> -<a name="idp6937424"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> -<col align="left" valign="top"> -<tbody> -<tr> -<td><p><span class="term">plugin</span></p></td> -<td> - <a class="link" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html#plugin-gdkpixbuf">gdkpixbuf</a> - </td> -</tr> -<tr> -<td><p><span class="term">author</span></p></td> -<td>Tim-Philipp Müller <tim centricular net></td> -</tr> -<tr> -<td><p><span class="term">class</span></p></td> -<td>Filter/Effect/Video</td> -</tr> -</tbody> -</table></div> -</div> -<hr> -<div class="refsect2"> -<a name="idp6829104"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> -<col align="left" valign="top"> -<tbody> -<tr> -<td><p><span class="term">name</span></p></td> -<td>sink</td> -</tr> -<tr> -<td><p><span class="term">direction</span></p></td> -<td>sink</td> -</tr> -<tr> -<td><p><span class="term">presence</span></p></td> -<td>always</td> -</tr> -<tr> -<td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ RGBx, RGB, BGR, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, YVYU, NV12, NV21, UYVP, RGB16, BGR16, RGB15, BGR15, UYVP, A420, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> -</tr> -</tbody> -</table></div> -<div class="variablelist"><table border="0"> -<col align="left" valign="top"> -<tbody> -<tr> -<td><p><span class="term">name</span></p></td> -<td>src</td> -</tr> -<tr> -<td><p><span class="term">direction</span></p></td> -<td>source</td> -</tr> -<tr> -<td><p><span class="term">presence</span></p></td> -<td>always</td> -</tr> -<tr> -<td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ RGBx, RGB, BGR, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, YVYU, NV12, NV21, UYVP, RGB16, BGR16, RGB15, BGR15, UYVP, A420, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> -</tr> -</tbody> -</table></div> -</div> -</div> -<p> -</p> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-gdkpixbufoverlay.details"></a><h2>Details</h2> -<div class="refsect2"> -<a name="GstGdkPixbufOverlay-struct"></a><h3>struct GstGdkPixbufOverlay</h3> -<pre class="programlisting">struct GstGdkPixbufOverlay;</pre> -<p> -</p> -</div> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-gdkpixbufoverlay.property-details"></a><h2>Property Details</h2> -<div class="refsect2"> -<a name="GstGdkPixbufOverlay--location"></a><h3>The <code class="literal">"location"</code> property</h3> -<pre class="programlisting"> "location" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> -<p>Location of image file to overlay.</p> -<p>Default value: NULL</p> -</div> -<hr> -<div class="refsect2"> -<a name="GstGdkPixbufOverlay--offset-x"></a><h3>The <code class="literal">"offset-x"</code> property</h3> -<pre class="programlisting"> "offset-x" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Horizontal offset of overlay image in pixels from top-left corner of video image.</p> -<p>Default value: 0</p> -</div> -<hr> -<div class="refsect2"> -<a name="GstGdkPixbufOverlay--offset-y"></a><h3>The <code class="literal">"offset-y"</code> property</h3> -<pre class="programlisting"> "offset-y" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Vertical offset of overlay image in pixels from top-left corner of video image.</p> -<p>Default value: 0</p> -</div> -<hr> -<div class="refsect2"> -<a name="GstGdkPixbufOverlay--overlay-height"></a><h3>The <code class="literal">"overlay-height"</code> property</h3> -<pre class="programlisting"> "overlay-height" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Height of overlay image in pixels (0 = same as overlay image).</p> -<p>Allowed values: >= 0</p> -<p>Default value: 0</p> -</div> -<hr> -<div class="refsect2"> -<a name="GstGdkPixbufOverlay--overlay-width"></a><h3>The <code class="literal">"overlay-width"</code> property</h3> -<pre class="programlisting"> "overlay-width" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Width of overlay image in pixels (0 = same as overlay image).</p> -<p>Allowed values: >= 0</p> -<p>Default value: 0</p> -</div> -<hr> -<div class="refsect2"> -<a name="GstGdkPixbufOverlay--relative-x"></a><h3>The <code class="literal">"relative-x"</code> property</h3> -<pre class="programlisting"> "relative-x" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> -<p>Horizontal offset of overlay image in fractions of video image width, from top-left corner of video image.</p> -<p>Allowed values: [0,1]</p> -<p>Default value: 0</p> -</div> -<hr> -<div class="refsect2"> -<a name="GstGdkPixbufOverlay--relative-y"></a><h3>The <code class="literal">"relative-y"</code> property</h3> -<pre class="programlisting"> "relative-y" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> -<p>Vertical offset of overlay image in fractions of video image height, from top-left corner of video image.</p> -<p>Allowed values: [0,1]</p> -<p>Default value: 0</p> -</div> -<hr> -<div class="refsect2"> -<a name="GstGdkPixbufOverlay--alpha"></a><h3>The <code class="literal">"alpha"</code> property</h3> -<pre class="programlisting"> "alpha" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> -<p>Global alpha of overlay image.</p> -<p>Allowed values: [0,1]</p> -<p>Default value: 1</p> -</div> -</div> -</div> -<div class="footer"> -<hr> - Generated by GTK-Doc V1.18</div> -</body> -</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html index dca10a51b5bbd602859cb4cab79b62c38d945c35..85720000a934c9ed9a6d1d5565d31229be0cb8d2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html @@ -3,10 +3,10 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>gdkpixbufsink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-gdkpixbufoverlay.html" title="gdkpixbufoverlay"> +<link rel="prev" href="gst-plugins-good-plugins-gamma.html" title="gamma"> <link rel="next" href="gst-plugins-good-plugins-goom.html" title="goom"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> @@ -14,7 +14,7 @@ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> <tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-gdkpixbufoverlay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-gamma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> @@ -59,7 +59,7 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-gdkpixbufsink.properties"></a><h2>Properties</h2> <pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf" title='The "last-pixbuf" property'>last-pixbuf</a>" <span class="type">GdkPixbuf</span>* : Read + "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf" title='The "last-pixbuf" property'>last-pixbuf</a>" <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>* : Read "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages" title='The "send-messages" property'>send-messages</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages" title='The "post-messages" property'>post-messages</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write </pre> @@ -69,9 +69,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp9785856"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14327136"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -92,9 +95,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp8501904"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp13834800"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -136,7 +142,7 @@ <a name="gst-plugins-good-plugins-gdkpixbufsink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> <a name="GstGdkPixbufSink--last-pixbuf"></a><h3>The <code class="literal">"last-pixbuf"</code> property</h3> -<pre class="programlisting"> "last-pixbuf" <span class="type">GdkPixbuf</span>* : Read</pre> +<pre class="programlisting"> "last-pixbuf" <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>* : Read</pre> <p>Last GdkPixbuf object rendered.</p> </div> <hr> diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom.html b/docs/plugins/html/gst-plugins-good-plugins-goom.html index 9e3c501c3ab0f88fa3d2f0d9d7ebd9a8b4c9d4ac..15e3ad36fe32ab56483dc856606467ec7742985d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-goom.html +++ b/docs/plugins/html/gst-plugins-good-plugins-goom.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>goom</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink"> @@ -61,7 +61,7 @@ based on the incoming audio signal. <p> </p> <div class="refsect2"> -<a name="idp4958320"></a><h3>Example launch line</h3> +<a name="idp8075696"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -79,9 +79,12 @@ based on the incoming audio signal. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7429952"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp12777376"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -102,9 +105,12 @@ based on the incoming audio signal. </div> <hr> <div class="refsect2"> -<a name="idp7878288"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10800704"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -128,8 +134,11 @@ based on the incoming audio signal. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html index 850d7a39d4cb74c0ebc3a62f98b613411552f41a..f6ce6ec83934cd545477b8b2a21a085910def4a7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html +++ b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>goom2k1</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-goom.html" title="goom"> @@ -62,7 +62,7 @@ visualisation. Also available is goom2k4, with a different look. <p> </p> <div class="refsect2"> -<a name="idp13606816"></a><h3>Example launch line</h3> +<a name="idp7213136"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -80,9 +80,12 @@ visualisation. Also available is goom2k4, with a different look. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp12728480"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10733168"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -103,9 +106,12 @@ visualisation. Also available is goom2k4, with a different look. </div> <hr> <div class="refsect2"> -<a name="idp12643216"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7664208"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -129,8 +135,11 @@ visualisation. Also available is goom2k4, with a different look. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html index 66e7f7276378ca8dda34449b05ce791e002746b9..52e087cf4b6750099bd17048d9dfb2dd93583807 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>hdv1394src</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1"> @@ -62,7 +62,7 @@ <a name="gst-plugins-good-plugins-hdv1394src.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstHDV1394Src implements - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and GstPropertyProbe.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-hdv1394src.properties"></a><h2>Properties</h2> @@ -79,9 +79,12 @@ GstHDV1394Src implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7639936"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp11067264"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -102,9 +105,12 @@ GstHDV1394Src implements </div> <hr> <div class="refsect2"> -<a name="idp8174608"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12878352"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html index c5fb0f4aa6bdad7a506a0e274ebc13cc74cac362..2c2e94e5cb6c6be6486030174a250a952f4552ab 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>icydemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-hdv1394src.html" title="hdv1394src"> @@ -64,7 +64,7 @@ on outgoing buffers. <p> </p> <div class="refsect2"> -<a name="idp7139136"></a><h3>Example launch line</h3> +<a name="idp6004736"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -85,9 +85,12 @@ or giosrc instead of souphttpsrc should also work.) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7666848"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp12253680"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -108,9 +111,12 @@ or giosrc instead of souphttpsrc should also work.) </div> <hr> <div class="refsect2"> -<a name="idp6475520"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10512640"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -130,8 +136,11 @@ or giosrc instead of souphttpsrc should also work.) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html index 8882d1c979e1a63d369819ad9b676ef94916bff7..d2996907f4b3188ed0afb62a82b706d5d7d37114 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>id3demux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-icydemux.html" title="icydemux"> @@ -83,7 +83,7 @@ relied on libid3tag from the MAD project. <p> </p> <div class="refsect2"> -<a name="idp7493360"></a><h3>Example launch line</h3> +<a name="idp13694928"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -103,9 +103,12 @@ the appropriate mime type set on buffers produced from id3demux. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10613856"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp8748560"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -126,9 +129,12 @@ the appropriate mime type set on buffers produced from id3demux. </div> <hr> <div class="refsect2"> -<a name="idp10493200"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8987504"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -148,8 +154,11 @@ the appropriate mime type set on buffers produced from id3demux. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html index 9f3b347c2d078a308a4a3bccb05e075b65e336d0..c1ddc7289ba5650f94116e52272a607d16ab4d7d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>id3v2mux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-id3demux.html" title="id3demux"> @@ -66,9 +66,12 @@ GstId3v2Mux implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp12483360"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10079808"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -89,9 +92,12 @@ GstId3v2Mux implements </div> <hr> <div class="refsect2"> -<a name="idp10105296"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9127024"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -111,8 +117,11 @@ GstId3v2Mux implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html index f64119a71243f2abd6837ed07fff28a51ca627a6..519952280be5f37bebb4e1fac042de3579f7fd9f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html +++ b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>imagefreeze</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-id3v2mux.html" title="id3v2mux"> @@ -62,7 +62,7 @@ by downstream, allows seeking and answers queries. <p> </p> <div class="refsect2"> -<a name="idp7499600"></a><h3>Example launch line</h3> +<a name="idp10208480"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -80,9 +80,12 @@ by downstream, allows seeking and answers queries. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp13402368"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp7996512"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -103,9 +106,12 @@ by downstream, allows seeking and answers queries. </div> <hr> <div class="refsect2"> -<a name="idp7925760"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10727264"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -125,8 +131,11 @@ by downstream, allows seeking and answers queries. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-interleave.html index 235f2c648ebdfa68848a6c527ed87364dd2b60dd..b8942c505cf92f6f5740e8b3b2b67069236a7ff2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-interleave.html +++ b/docs/plugins/html/gst-plugins-good-plugins-interleave.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>interleave</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze"> @@ -82,7 +82,7 @@ The channel number of every sinkpad in the out can be retrieved from the "channe <p> </p> <div class="refsect2"> -<a name="idp6613504"></a><h3>Example launch line</h3> +<a name="idp13974512"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -113,9 +113,12 @@ channels exchanged. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp9226512"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp7736688"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -136,9 +139,12 @@ channels exchanged. </div> <hr> <div class="refsect2"> -<a name="idp13999424"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp6771600"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -158,8 +164,11 @@ channels exchanged. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html index 644fdd73cd1914dd153afa9c4c35d6b649e71a7a..acef072fb3b82db53a29b2006ae0398caa15a724 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ismlmux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-interleave.html" title="interleave"> @@ -96,7 +96,7 @@ presentation-timestamp. <p> </p> <div class="refsect2"> -<a name="idp7724208"></a><h3>Example pipelines</h3> +<a name="idp9132352"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -119,9 +119,12 @@ Documentation last reviewed on 2011-04-21 <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp12796592"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp11817184"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -142,9 +145,12 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="idp6067232"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9575776"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -168,8 +174,11 @@ Documentation last reviewed on 2011-04-21 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -197,8 +206,11 @@ Documentation last reviewed on 2011-04-21 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html index c32d25529341f3850183d5b8e999d71c8d2131a8..1db5b6f7c7c97de23686844f527296a127335b11 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jackaudiosink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc"> @@ -71,9 +71,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10659552"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14272624"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -94,9 +97,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp14328128"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10322672"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html index 38679a24f0e9440b1d2885fd7694234b34c0c6f9..53cd488ce1b17e0715c98125d02714f37468c514 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jackaudiosrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-ismlmux.html" title="ismlmux"> @@ -72,9 +72,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp13375680"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp11949296"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -95,9 +98,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp2352432"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp13157344"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html index 04ad9f798544bf5a9b6269734d8517d79d20da68..d7d85f40ce4fdb8e3badf2f07bcf9b71205ac178 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jpegdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink"> @@ -67,9 +67,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11909936"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13242736"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -90,9 +93,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp12104720"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp14384176"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -112,8 +118,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html index 4bee26517df118e00609f90f5b76480a4024345a..b31d3892414270a91537f2b974304d5010a995e0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jpegenc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-jpegdec.html" title="jpegdec"> @@ -83,9 +83,12 @@ GstJpegEnc implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp10394976"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13076896"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -106,9 +109,12 @@ GstJpegEnc implements </div> <hr> <div class="refsect2"> -<a name="idp13368608"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9981728"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -128,8 +134,11 @@ GstJpegEnc implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -188,8 +197,11 @@ GstJpegEnc implements <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstjpegenc</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-level.html b/docs/plugins/html/gst-plugins-good-plugins-level.html index e0db3eb244cbf02808e748aeb9626adeeae05f39..e31013a0fbbefcb2ef76b38d7666ba48d37b5760 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-level.html +++ b/docs/plugins/html/gst-plugins-good-plugins-level.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>level</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-jpegenc.html" title="jpegenc"> @@ -62,6 +62,7 @@ "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--message" title='The "message" property'>message</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff" title='The "peak-falloff" property'>peak-falloff</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl" title='The "peak-ttl" property'>peak-ttl</a>" <span class="type">guint64</span> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--post-messages" title='The "post-messages" property'>post-messages</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write </pre> </div> <div class="refsect1"> @@ -73,7 +74,7 @@ is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.ht after each interval of time given by the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--interval" title='The "interval" property'><span class="type">"interval"</span></a> property. The message's structure contains these fields: </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <code class="classname">"timestamp"</code>: @@ -127,7 +128,7 @@ The message's structure contains these fields: <p> </p> <div class="refsect2"> -<a name="idp12781424"></a><h3>Example application</h3> +<a name="idp12940592"></a><h3>Example application</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -268,7 +269,10 @@ The message's structure contains these fields: 134 135 136 -137</pre></td> +137 +138 +139 +140</pre></td> <td class="listing_code"><pre class="programlisting"><span class="comment">/* GStreamer</span> <span class="comment"> * Copyright (C) 2000,2001,2002,2003,2005</span> <span class="comment"> * Thomas Vander Stichele <thomas at apestaart dot org></span> @@ -285,8 +289,8 @@ The message's structure contains these fields: <span class="comment"> *</span> <span class="comment"> * You should have received a copy of the GNU Library General Public</span> <span class="comment"> * License along with this library; if not, write to the</span> -<span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span> -<span class="comment"> * Boston, MA 02111-1307, USA.</span> +<span class="comment"> * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span> +<span class="comment"> * Boston, MA 02110-1301, USA.</span> <span class="comment"> */</span> <span class="gtkdoc ppc">#include <string.h></span> @@ -311,34 +315,37 @@ The message's structure contains these fields: gdouble rms<span class="gtkdoc opt">;</span> <span class="gtkdoc kwb">const</span> GValue <span class="gtkdoc opt">*</span>array_val<span class="gtkdoc opt">;</span> <span class="gtkdoc kwb">const</span> GValue <span class="gtkdoc opt">*</span>value<span class="gtkdoc opt">;</span> - GValueArray <span class="gtkdoc opt">*</span>arr<span class="gtkdoc opt">;</span> - + GValueArray <span class="gtkdoc opt">*</span>rms_arr<span class="gtkdoc opt">, *</span>peak_arr<span class="gtkdoc opt">, *</span>decay_arr<span class="gtkdoc opt">;</span> gint i<span class="gtkdoc opt">;</span> <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-get-clock-time">gst_structure_get_clock_time</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">"endtime"</span><span class="gtkdoc opt">, &</span>endtime<span class="gtkdoc opt">))</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">"Could not parse endtime"</span><span class="gtkdoc opt">);</span> - <span class="comment">/* we can get the number of channels as the length of any of the value</span> -<span class="comment"> * lists */</span> + + <span class="comment">/* the values are packed into GValueArrays with the value per channel */</span> array_val <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">"rms"</span><span class="gtkdoc opt">);</span> - arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span> - channels <span class="gtkdoc opt">=</span> arr<span class="gtkdoc opt">-></span>n_values<span class="gtkdoc opt">;</span> + rms_arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span> + + array_val <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">"peak"</span><span class="gtkdoc opt">);</span> + peak_arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span> + array_val <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">"decay"</span><span class="gtkdoc opt">);</span> + decay_arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span> + + <span class="comment">/* we can get the number of channels as the length of any of the value</span> +<span class="comment"> * arrays */</span> + channels <span class="gtkdoc opt">=</span> rms_arr<span class="gtkdoc opt">-></span>n_values<span class="gtkdoc opt">;</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">"endtime: %"</span> GST_TIME_FORMAT <span class="string">", channels: %d</span><span class="gtkdoc esc">\n</span><span class="string">"</span><span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span> <span class="gtkdoc opt">(</span>endtime<span class="gtkdoc opt">),</span> channels<span class="gtkdoc opt">);</span> <span class="keyword">for</span> <span class="gtkdoc opt">(</span>i <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> i <span class="gtkdoc opt"><</span> channels<span class="gtkdoc opt">; ++</span>i<span class="gtkdoc opt">) {</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">"channel %d</span><span class="gtkdoc esc">\n</span><span class="string">"</span><span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span> - array_val <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">"rms"</span><span class="gtkdoc opt">);</span> - arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span> - value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span> + value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>rms_arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span> rms_dB <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-double">g_value_get_double</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">);</span> - array_val <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">"peak"</span><span class="gtkdoc opt">);</span> - arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span> - value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span> + + value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>peak_arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span> peak_dB <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-double">g_value_get_double</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">);</span> - array_val <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">"decay"</span><span class="gtkdoc opt">);</span> - arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span> - value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span> + + value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>decay_arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span> decay_dB <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-double">g_value_get_double</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">);</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">" RMS: %f dB, peak: %f dB, decay: %f dB</span><span class="gtkdoc esc">\n</span><span class="string">"</span><span class="gtkdoc opt">,</span> rms_dB<span class="gtkdoc opt">,</span> peak_dB<span class="gtkdoc opt">,</span> decay_dB<span class="gtkdoc opt">);</span> @@ -389,7 +396,7 @@ The message's structure contains these fields: <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-error">g_error</a></span> <span class="gtkdoc opt">(</span><span class="string">"Failed to link level and fakesink"</span><span class="gtkdoc opt">);</span> <span class="comment">/* make sure we'll get messages */</span> - <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>level<span class="gtkdoc opt">),</span> <span class="string">"message"</span><span class="gtkdoc opt">,</span> TRUE<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span> + <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>level<span class="gtkdoc opt">),</span> <span class="string">"post-messages"</span><span class="gtkdoc opt">,</span> TRUE<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span> <span class="comment">/* run synced and not as fast as we can */</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>fakesink<span class="gtkdoc opt">),</span> <span class="string">"sync"</span><span class="gtkdoc opt">,</span> TRUE<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span> @@ -417,9 +424,12 @@ The message's structure contains these fields: <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14809568"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp15841856"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -440,9 +450,12 @@ The message's structure contains these fields: </div> <hr> <div class="refsect2"> -<a name="idp12208672"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp14134880"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -462,8 +475,11 @@ The message's structure contains these fields: </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -511,7 +527,7 @@ Opaque data structure. <div class="refsect2"> <a name="GstLevel--message"></a><h3>The <code class="literal">"message"</code> property</h3> <pre class="programlisting"> "message" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p>Post a level message for each passed interval.</p> +<p>Post a 'level' message for each passed interval (deprecated).</p> <p>Default value: TRUE</p> </div> <hr> @@ -529,6 +545,20 @@ Opaque data structure. <p>Time To Live of decay peak before it falls back (in nanoseconds).</p> <p>Default value: 300000000</p> </div> +<hr> +<div class="refsect2"> +<a name="GstLevel--post-messages"></a><h3>The <code class="literal">"post-messages"</code> property</h3> +<pre class="programlisting"> "post-messages" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"> +<h3 class="title">Warning</h3> +<p><code class="literal">GstLevel:post-messages</code> is deprecated and should not be used in newly-written code. use the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--post-messages" title='The "post-messages" property'><span class="type">"post-messages"</span></a> property</p> +</div> +<p> +Post messages on the bus with level information. +</p> +<p>Default value: TRUE</p> +<p class="since">Since 1.1.0</p> +</div> </div> </div> <div class="footer"> diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html index 1076035f91bd018e69f7c6a6e0491a0b21b35a2b..c80f713c10e0678ec1f2fff62c8f3aabb0a951ae 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>matroskademux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux"> @@ -68,7 +68,7 @@ matroskademux demuxes a Matroska file into the different contained streams. <p> </p> <div class="refsect2"> -<a name="idp6127648"></a><h3>Example launch line</h3> +<a name="idp14644768"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -86,9 +86,12 @@ matroskademux demuxes a Matroska file into the different contained streams. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14822464"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14025808"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -109,9 +112,12 @@ matroskademux demuxes a Matroska file into the different contained streams. </div> <hr> <div class="refsect2"> -<a name="idp11362096"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9089184"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -147,8 +153,11 @@ matroskademux demuxes a Matroska file into the different contained streams. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -168,8 +177,11 @@ matroskademux demuxes a Matroska file into the different contained streams. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -217,8 +229,11 @@ matroskademux demuxes a Matroska file into the different contained streams. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html index 458ebcb2b5182d6e4890b8c5d562c2ffdd56adac..90fbc67e112f7f91758d302d77718c7d5de1332b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>matroskamux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-level.html" title="level"> @@ -80,13 +80,13 @@ matroskamux muxes different input streams into a Matroska file. <p> </p> <div class="refsect2"> -<a name="idp14612624"></a><h3>Example launch line</h3> +<a name="idp14334992"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="listing_lines" align="right"><pre>1</pre></td> - <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>mp3 <span class="gtkdoc opt">!</span> mp3parse <span class="gtkdoc opt">!</span> matroskamux name<span class="gtkdoc opt">=</span>mux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>mkv filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>theora<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span></pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>mp3 <span class="gtkdoc opt">!</span> mpegaudioparse <span class="gtkdoc opt">!</span> matroskamux name<span class="gtkdoc opt">=</span>mux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>mkv filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>theora<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span></pre></td> </tr> </tbody> </table> @@ -109,9 +109,12 @@ matroskamux muxes different input streams into a Matroska file. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14746480"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp9168064"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -132,9 +135,12 @@ matroskamux muxes different input streams into a Matroska file. </div> <hr> <div class="refsect2"> -<a name="idp14080144"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12476352"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -206,8 +212,11 @@ matroskamux muxes different input streams into a Matroska file. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -251,8 +260,11 @@ matroskamux muxes different input streams into a Matroska file. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -324,8 +336,11 @@ matroskamux muxes different input streams into a Matroska file. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html index 416da4618e33b9e9c8c692f6d40b946949f2d78b..0650f3f3e234fc23ea6bd1369bd0576e298c8091 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>mj2mux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux"> @@ -133,7 +133,7 @@ presentation-timestamp. <p> </p> <div class="refsect2"> -<a name="idp15729024"></a><h3>Example pipelines</h3> +<a name="idp14752432"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -156,9 +156,12 @@ Documentation last reviewed on 2011-04-21 <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15732368"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14755488"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -179,9 +182,12 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="idp14813312"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp13537184"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -205,8 +211,11 @@ Documentation last reviewed on 2011-04-21 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -230,8 +239,11 @@ Documentation last reviewed on 2011-04-21 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -270,7 +282,7 @@ Documentation last reviewed on 2011-04-21 <div class="refsect2"> <a name="GstMJ2Mux--dts-method"></a><h3>The <code class="literal">"dts-method"</code> property</h3> <pre class="programlisting"> "dts-method" <span class="type">GstQTMuxDtsMethods</span> : Read / Write / Construct</pre> -<p>Method to determine DTS time.</p> +<p>(DEPRECATED) Method to determine DTS time.</p> <p>Default value: reorder</p> </div> <hr> diff --git a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html index 5c8216b67939742948451356372bc3ce888ea9cc..36b0b7aaaf12ae808253cdb7997227d49529c7ff 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html +++ b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>monoscope</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux"> @@ -24,6 +24,8 @@ <a href="#gst-plugins-good-plugins-monoscope.synopsis" class="shortcut">Top</a>  | <a href="#gst-plugins-good-plugins-monoscope.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-monoscope.object-hierarchy" class="shortcut">Object Hierarchy</a> </td></tr> </table> <div class="refentry"> @@ -37,7 +39,17 @@ </tr></table></div> <div class="refsynopsisdiv"> <a name="gst-plugins-good-plugins-monoscope.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-monoscope.html#GstMonoscope" title="struct GstMonoscope">GstMonoscope</a>; +<a name="GstMonoscope"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-monoscope.html#GstMonoscope-struct" title="struct GstMonoscope">GstMonoscope</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-monoscope.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----GstMonoscope </pre> </div> <div class="refsect1"> @@ -49,7 +61,7 @@ curve of the audio signal like on an oscilloscope. <p> </p> <div class="refsect2"> -<a name="idp10140656"></a><h3>Example launch line</h3> +<a name="idp10969296"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -67,9 +79,12 @@ curve of the audio signal like on an oscilloscope. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5124976"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13230656"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -90,9 +105,12 @@ curve of the audio signal like on an oscilloscope. </div> <hr> <div class="refsect2"> -<a name="idp14417904"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7571392"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -112,8 +130,11 @@ curve of the audio signal like on an oscilloscope. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -141,40 +162,8 @@ curve of the audio signal like on an oscilloscope. <div class="refsect1"> <a name="gst-plugins-good-plugins-monoscope.details"></a><h2>Details</h2> <div class="refsect2"> -<a name="GstMonoscope"></a><h3>struct GstMonoscope</h3> -<pre class="programlisting">struct GstMonoscope { - GstElement element; - - /* pads */ - GstPad *sinkpad; - GstPad *srcpad; - - GstAdapter *adapter; - - guint64 next_ts; /* expected timestamp of the next frame */ - guint64 frame_duration; /* video frame duration */ - gint rate; /* sample rate */ - guint bps; /* bytes per sample */ - guint spf; /* samples per video frame */ - GstBufferPool *pool; - - GstSegment segment; - - /* QoS stuff *//* with LOCK */ - gdouble proportion; - GstClockTime earliest_time; - - /* video state */ - gint fps_num; - gint fps_denom; - gint width; - gint height; - guint outsize; - - /* visualisation state */ - struct monoscope_state *visstate; -}; -</pre> +<a name="GstMonoscope-struct"></a><h3>struct GstMonoscope</h3> +<pre class="programlisting">struct GstMonoscope;</pre> <p> </p> </div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html index 105640cfe9e682fb90ba8dc28ef91c058edfe245..79ebceb7b5de716616fddc62e76e896c9a4aaf7d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>mp4mux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse"> @@ -133,7 +133,7 @@ presentation-timestamp. <p> </p> <div class="refsect2"> -<a name="idp10113824"></a><h3>Example pipelines</h3> +<a name="idp10367840"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -156,9 +156,12 @@ Documentation last reviewed on 2011-04-21 <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15678352"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13531488"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -179,9 +182,12 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="idp12626784"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp14918784"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -209,8 +215,11 @@ Documentation last reviewed on 2011-04-21 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -242,8 +251,11 @@ Documentation last reviewed on 2011-04-21 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -283,7 +295,7 @@ Documentation last reviewed on 2011-04-21 <div class="refsect2"> <a name="GstMP4Mux--dts-method"></a><h3>The <code class="literal">"dts-method"</code> property</h3> <pre class="programlisting"> "dts-method" <span class="type">GstQTMuxDtsMethods</span> : Read / Write / Construct</pre> -<p>Method to determine DTS time.</p> +<p>(DEPRECATED) Method to determine DTS time.</p> <p>Default value: reorder</p> </div> <hr> diff --git a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html index 1c500a621ebfab262157fc81f234e6dcee8ff325..d2ea25de389c1b3a1ea950641a8ef036970ef99e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>mpegaudioparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-monoscope.html" title="monoscope"> @@ -61,7 +61,7 @@ Parses and frames mpeg1 audio streams. Provides seeking. <p> </p> <div class="refsect2"> -<a name="idp7120048"></a><h3>Example launch line</h3> +<a name="idp16243328"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -79,9 +79,12 @@ Parses and frames mpeg1 audio streams. Provides seeking. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8793104"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp7740160"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -102,9 +105,12 @@ Parses and frames mpeg1 audio streams. Provides seeking. </div> <hr> <div class="refsect2"> -<a name="idp13371872"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12269616"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -124,8 +130,11 @@ Parses and frames mpeg1 audio streams. Provides seeking. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html index 0fcc6041cf894d160beaca9705bc8db816b7ad85..2dfeedb171e7160ae44303bb0271c844f37f41fa 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>mulawdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-mp4mux.html" title="mp4mux"> @@ -49,7 +49,8 @@ +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstMuLawDec + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a> + +----GstMuLawDec </pre> </div> <div class="refsect1"> @@ -60,9 +61,12 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7186464"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp12608960"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -83,9 +87,12 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711. </div> <hr> <div class="refsect2"> -<a name="idp8676240"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8258704"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -105,8 +112,11 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html index ecf0a4c5e10e58cbd9ae9c0d79cebb80248d5fd6..a4a0f768b3324995384b05dffee5ed546ec5420b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>mulawenc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec"> @@ -49,9 +49,12 @@ This element encode mulaw audio. Mulaw coding is also known as G.711. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp12881648"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10538176"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -72,9 +75,12 @@ This element encode mulaw audio. Mulaw coding is also known as G.711. </div> <hr> <div class="refsect2"> -<a name="idp10665888"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp5782128"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -94,8 +100,11 @@ This element encode mulaw audio. Mulaw coding is also known as G.711. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -132,9 +141,7 @@ This element encode mulaw audio. Mulaw coding is also known as G.711. <div class="refsect2"> <a name="GstMuLawEnc"></a><h3>struct GstMuLawEnc</h3> <pre class="programlisting">struct GstMuLawEnc { - GstElement element; - - GstPad *sinkpad,*srcpad; + GstAudioEncoder element; gint channels; gint rate; diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html index 21ef8e76f8ce41acd54922d2da3b1607d65ea0a7..7832a001b6fbc4fba5e0618f507d661e755e423c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>multifilesink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-mulawenc.html" title="mulawenc"> @@ -85,7 +85,7 @@ buffer. <p> The message's structure contains these fields: </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> * <code class="classname">"filename"</code>: @@ -132,7 +132,7 @@ The message's structure contains these fields: <p> </p> <div class="refsect2"> -<a name="idp13504496"></a><h3>Example launch line</h3> +<a name="idp15687424"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -155,9 +155,12 @@ Last reviewed on 2009-09-11 (0.10.17) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp12813328"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp15401296"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -178,9 +181,12 @@ Last reviewed on 2009-09-11 (0.10.17) </div> <hr> <div class="refsect2"> -<a name="idp12915296"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp15951312"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -227,8 +233,11 @@ Last reviewed on 2009-09-11 (0.10.17) <p> File splitting modes. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><a name="GST-MULTI-FILE-SINK-NEXT-BUFFER:CAPS"></a><span class="term"><code class="literal">GST_MULTI_FILE_SINK_NEXT_BUFFER</code></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html index 2881befee675fec22e5e70474dd6208e76f0f1bc..6e2f33b5e35156cd1e16bbda181d487f8b3490d0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>multifilesrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-multifilesink.html" title="multifilesink"> @@ -82,7 +82,7 @@ File names are created by replacing "%d" with the index using <code class="funct <p> </p> <div class="refsect2"> -<a name="idp12587536"></a><h3>Example launch line</h3> +<a name="idp6917552"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -105,9 +105,12 @@ files named img.0000.png, img.0001.png, etc. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11092496"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14719936"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -128,9 +131,12 @@ files named img.0000.png, img.0001.png, etc. </div> <hr> <div class="refsect2"> -<a name="idp8905968"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp15852592"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html index a541bbfaae2925680a09e85db90335b7e40e9753..6726f0d6814e6a6f60740a5378ee1b665c99924c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>multipartdemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-multifilesrc.html" title="multifilesrc"> @@ -83,13 +83,13 @@ otherwise it will be autodetected. <p> </p> <div class="refsect2"> -<a name="idp12937968"></a><h3>Sample pipelines</h3> +<a name="idp7623712"></a><h3>Sample pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="listing_lines" align="right"><pre>1</pre></td> - <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=/</span>tmp<span class="gtkdoc opt">/</span>test<span class="gtkdoc opt">.</span>multipart <span class="gtkdoc opt">!</span> multipartdemux <span class="gtkdoc opt">!</span> jpegdec <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> ximagesink</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=/</span>tmp<span class="gtkdoc opt">/</span>test<span class="gtkdoc opt">.</span>multipart <span class="gtkdoc opt">!</span> multipartdemux <span class="gtkdoc opt">!</span> image<span class="gtkdoc opt">/</span>jpeg<span class="gtkdoc opt">,</span>framerate<span class="gtkdoc opt">=</span>\<span class="gtkdoc opt">(</span>fraction\<span class="gtkdoc opt">)</span><span class="number">5</span><span class="gtkdoc opt">/</span><span class="number">1</span> <span class="gtkdoc opt">!</span> jpegparse <span class="gtkdoc opt">!</span> jpegdec <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td> </tr> </tbody> </table> @@ -102,9 +102,12 @@ containing JPEG frames. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14320496"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp16143408"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -125,9 +128,12 @@ containing JPEG frames. </div> <hr> <div class="refsect2"> -<a name="idp13713664"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12469088"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -147,8 +153,11 @@ containing JPEG frames. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html index eaffe8ac5da9e4ddb1feba4765dc9c0c96bc9363..25100cb095abdb39a8bc9681cb4c0cdaee45a293 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>multipartmux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-multipartdemux.html" title="multipartdemux"> @@ -70,7 +70,7 @@ multipart streams are sequential JPEG frames. <p> </p> <div class="refsect2"> -<a name="idp11933184"></a><h3>Sample pipelines</h3> +<a name="idp15404272"></a><h3>Sample pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -89,9 +89,12 @@ stored to a file. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp12708992"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp16080048"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -112,9 +115,12 @@ stored to a file. </div> <hr> <div class="refsect2"> -<a name="idp14552816"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp13513024"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -134,8 +140,11 @@ stored to a file. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html index d5d6ba961c3268fdb5ed368f8bae47b67b7a2835..69315871f64c2057ae311869fc53a853dbb7b033 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>multiudpsink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-multipartmux.html" title="multipartmux"> @@ -79,6 +79,10 @@ "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket" title='The "used-socket" property'>used-socket</a>" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--force-ipv4" title='The "force-ipv4" property'>force-ipv4</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface" title='The "multicast-iface" property'>multicast-iface</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write + "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-address" title='The "bind-address" property'>bind-address</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write + "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-port" title='The "bind-port" property'>bind-port</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6" title='The "socket-v6" property'>socket-v6</a>" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read / Write + "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket-v6" title='The "used-socket-v6" property'>used-socket-v6</a>" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read </pre> </div> <div class="refsect1"> @@ -102,9 +106,12 @@ It can be combined with rtp payload encoders to implement RTP streaming. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16298464"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14049856"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -125,9 +132,12 @@ It can be combined with rtp payload encoders to implement RTP streaming. </div> <hr> <div class="refsect2"> -<a name="idp11318592"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp16449600"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -282,7 +292,7 @@ It can be combined with rtp payload encoders to implement RTP streaming. <div class="refsect2"> <a name="GstMultiUDPSink--force-ipv4"></a><h3>The <code class="literal">"force-ipv4"</code> property</h3> <pre class="programlisting"> "force-ipv4" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p>Forcing the use of an IPv4 socket.</p> +<p>Forcing the use of an IPv4 socket (DEPRECATED, has no effect anymore).</p> <p>Default value: FALSE</p> </div> <hr> @@ -292,6 +302,33 @@ It can be combined with rtp payload encoders to implement RTP streaming. <p>The network interface on which to join the multicast group.</p> <p>Default value: NULL</p> </div> +<hr> +<div class="refsect2"> +<a name="GstMultiUDPSink--bind-address"></a><h3>The <code class="literal">"bind-address"</code> property</h3> +<pre class="programlisting"> "bind-address" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<p>Address to bind the socket to.</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstMultiUDPSink--bind-port"></a><h3>The <code class="literal">"bind-port"</code> property</h3> +<pre class="programlisting"> "bind-port" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<p>Port to bind the socket to.</p> +<p>Allowed values: [0,65535]</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstMultiUDPSink--socket-v6"></a><h3>The <code class="literal">"socket-v6"</code> property</h3> +<pre class="programlisting"> "socket-v6" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read / Write</pre> +<p>Socket to use for UDPv6 sending. (NULL == allocate).</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstMultiUDPSink--used-socket-v6"></a><h3>The <code class="literal">"used-socket-v6"</code> property</h3> +<pre class="programlisting"> "used-socket-v6" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read</pre> +<p>Socket currently in use for UDPv6 sending. (NULL == no socket).</p> +</div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multiudpsink.signal-details"></a><h2>Signal Details</h2> @@ -312,8 +349,11 @@ When a host/port pair is added multiple times, an equal amount of remove calls must be performed to actually remove the host/port pair from the list of destinations. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> @@ -342,8 +382,11 @@ of destinations. <p> Clear the list of clients. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> @@ -367,8 +410,11 @@ Clear the list of clients. Signal emited when a new client is added to the list of clients. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> @@ -400,8 +446,11 @@ clients. Signal emited when a client is removed from the list of clients. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> @@ -432,8 +481,11 @@ clients. <p> Get the statistics of the client with destination <em class="parameter"><code>host</code></em> and <em class="parameter"><code>port</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> @@ -470,8 +522,11 @@ connect_time (in epoch seconds), disconnect_time (in epoch seconds)</td> Remove the client with destination <em class="parameter"><code>host</code></em> and <em class="parameter"><code>port</code></em> from the list of clients. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-optv.html b/docs/plugins/html/gst-plugins-good-plugins-optv.html index 3898dce97f36cb9e0929cf5115981456472ae6ec..ef9c1d899e9ba437c64a8c1aeed92058f8ccbf70 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-optv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-optv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>optv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-multiudpsink.html" title="multiudpsink"> @@ -74,7 +74,7 @@ various optical pattern. <p> </p> <div class="refsect2"> -<a name="idp11304208"></a><h3>Example launch line</h3> +<a name="idp14597760"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -92,9 +92,12 @@ various optical pattern. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15371936"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10356160"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -115,9 +118,12 @@ various optical pattern. </div> <hr> <div class="refsect2"> -<a name="idp15748128"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp13586944"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -137,8 +143,11 @@ various optical pattern. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html index dc9d78e485f2928926e02ceba54a928779794cff..91b65af780e001cceed2779d4112e3580c7d22d7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>oss4sink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-optv.html" title="optv"> @@ -63,7 +63,7 @@ <a name="gst-plugins-good-plugins-oss4sink.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstOss4Sink implements - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a> and GstPropertyProbe.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-oss4sink.properties"></a><h2>Properties</h2> @@ -79,9 +79,12 @@ GstOss4Sink implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15609504"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13517072"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -102,9 +105,12 @@ GstOss4Sink implements </div> <hr> <div class="refsect2"> -<a name="idp13595168"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp13642496"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html index 54592e3958291ebcb9d434a32a9ed03a37aaecc4..2524967e39960bd03ffc7d7a4106921a27809d30 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>oss4src</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-oss4sink.html" title="oss4sink"> @@ -64,7 +64,7 @@ <a name="gst-plugins-good-plugins-oss4src.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstOss4Source implements - GstImplementsInterface, GstMixer and GstPropertyProbe.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-oss4src.properties"></a><h2>Properties</h2> @@ -78,9 +78,12 @@ GstOss4Source implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp13682592"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13323888"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -101,9 +104,12 @@ GstOss4Source implements </div> <hr> <div class="refsect2"> -<a name="idp13426240"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12021600"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssink.html b/docs/plugins/html/gst-plugins-good-plugins-osssink.html index b372fa567d0a0fe753d0b935aa22eeaba99fa0e5..c47d753b07db9d73c63d1961fedfde5c6e53c7fc 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osssink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osssink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>osssink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-oss4src.html" title="oss4src"> @@ -68,9 +68,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp5582064"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp11615264"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -91,9 +94,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp14582432"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp15269472"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html index 6ce7801a0c54e4bf00f85f0f5cc5561c81937b5e..39b4a814938c7487bb0a15761fc11f7b25eb8c6d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>osssrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-osssink.html" title="osssink"> @@ -64,7 +64,7 @@ <a name="gst-plugins-good-plugins-osssrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstOssSrc implements - GstImplementsInterface and GstMixer.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-osssrc.properties"></a><h2>Properties</h2> @@ -78,9 +78,12 @@ GstOssSrc implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14571504"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13759328"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -101,9 +104,12 @@ GstOssSrc implements </div> <hr> <div class="refsect2"> -<a name="idp16570864"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp13546272"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html index 43e27c45f2117c761b24215dead872abaf438d7d..1ace96883ed51f01f6e5a113788802dfda50373c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>osxaudiosink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-osssrc.html" title="osssrc"> @@ -53,9 +53,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp17285328"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14049248"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -76,7 +79,7 @@ </div> <hr> <div class="refsect2"> -<a name="idp16067888"></a><h3>Element Pads</h3> +<a name="idp13258704"></a><h3>Element Pads</h3> </div> </div> <p> diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html index 03e49b6dd6c79171d842295934b8c6663d3c5f53..f84ff921db86e9f02aa057f7b1e71fd3f4f3ec1b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>osxaudiosrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-osxaudiosink.html" title="osxaudiosink"> @@ -53,9 +53,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15969136"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10918048"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -76,7 +79,7 @@ </div> <hr> <div class="refsect2"> -<a name="idp6861472"></a><h3>Element Pads</h3> +<a name="idp13610688"></a><h3>Element Pads</h3> </div> </div> <p> diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html index 21fe0d72aae23d0340c9dbfefd604cfe1fbee41c..22eb00b07250e9f2135746807fa8a10cc23d1494 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>osxvideosink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-osxaudiosrc.html" title="osxaudiosrc"> @@ -54,9 +54,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14782080"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14698720"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -77,7 +80,7 @@ </div> <hr> <div class="refsect2"> -<a name="idp15205696"></a><h3>Element Pads</h3> +<a name="idp12578672"></a><h3>Element Pads</h3> </div> </div> <p> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html index 1ccf08f9d07913819ea8eb48f45a0f5456fd33ba..d09154a5ca878012984c8dcaebeb1069459b2541 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>1394</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="ch02.html" title="gst-plugins-good Plugins"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp20940176"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26023312"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25264544"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp19608480"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src">dv1394src</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html index 3c32070a7fce633a4389ef61414691025b4aeae8..80cc9e8bf846aabcdc3c1f19340edf4a12d289c7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>aasink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-1394.html" title="1394"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24682320"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp22584288"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp10217456"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24522832"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-aasink.html" title="aasink">aasink</a></span></p></td> <td>An ASCII art videosink</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html index cdd92afd91ae149a1b8e6e5695870a5d8d714eca..8c36b4d6ef887da1780cb08bf220d5756cd93fb3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>alaw</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-aasink.html" title="aasink"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25354688"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp22335152"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp19013408"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp26057520"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">alawdec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html index 3c971f9df51c172bfc2507c4624ae2b6044e3c0d..c99e1fa78c419c9ce9fb4db5f79072afb6232de0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>alpha</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-alaw.html" title="alaw"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp23804720"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25840256"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22564464"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp21784080"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-alpha.html" title="alpha">alpha</a></span></p></td> <td>Adds an alpha channel to video - uniform or via chroma-keying</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html index 426ce76bb53d5647950b1605f26d696dfd7725c0..f6a8b78da4d5db531f6dff379c045d71c14c5481 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>alphacolor</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24293904"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25562720"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24677696"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23867264"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">alphacolor</a></span></p></td> <td>ARGB from/to AYUV colorspace conversion preserving the alpha channel</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html index 9901be75a7562b36995eefb6619594817da02818..2c0948d8987768a1dba649feff162a40436c0e9e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>apetag</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24412240"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26433872"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp21469792"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25130240"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-apedemux.html" title="apedemux">apedemux</a></span></p></td> <td>Read and output APE tags while demuxing the contents</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html index 8564910940a91f61a64e65089d17cfc63db448f6..f0d3f278317cafe7986e5f9aea3abf3003a853d0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>audiofx</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-apetag.html" title="apetag"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25101792"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp23920128"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp20524224"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23283712"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify">audioamplify</a></span></p></td> @@ -109,6 +115,10 @@ <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">audiowsinclimit</a></span></p></td> <td>Low pass and high pass windowed sinc filter</td> </tr> +<tr> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo">scaletempo</a></span></p></td> +<td>Sync audio tempo with playback rate</td> +</tr> </tbody> </table></div> </div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html index c05effbb0a38acd53397fd8349a0c04e8344f6e9..9a5b0bd2d936012611421ccee1ed83ba145085fa 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>auparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-audiofx.html" title="audiofx"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25443376"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25517648"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp21545168"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp26058368"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-auparse.html" title="auparse">auparse</a></span></p></td> <td>Parse an .au file into raw audio</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html index 71c964c158fe436012f16b8b7c6050a16619ab3c..df2cee8a1d05403bb72a0cf593f4707fb8162881 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>autodetect</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-auparse.html" title="auparse"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25063984"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24414128"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22424400"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp20669392"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-autoaudiosink.html" title="autoaudiosink">autoaudiosink</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html index a2b04634ceda36f2ad95dac9dbd7919d9afb10ef..b76047fb8b8d41b51ac6a59be34ded8a2aedae69 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>avi</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-autodetect.html" title="autodetect"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp5141584"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25518288"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp14044528"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp26382656"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-avidemux.html" title="avidemux">avidemux</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html index 21039637d5607f028944bccf27220d303a45e653..bb7094af2da2f8bd0dce8dd2a1f274dc705a5744 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>cacasink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-avi.html" title="avi"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp23085168"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26346320"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp19907872"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp20240480"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-cacasink.html" title="cacasink">cacasink</a></span></p></td> <td>A colored ASCII art videosink</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html index 7f02ba639a68935c1abd245016fe6d5405b47f46..eaad4d050e982931ad311c841ed50f2fd6c500f6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>cairo</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-cacasink.html" title="cacasink"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24677184"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp23936544"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23082112"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24520512"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-cairooverlay.html" title="cairooverlay">cairooverlay</a></span></p></td> <td>Render overlay on a video stream using Cairo</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html index 8a7772a84f4b396a3e17937ad515a2cae5464b5d..687737df2b9ceae0ba747d49bdb5f46bdbd1037a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>cutter</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-cairo.html" title="cairo"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25525488"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24271488"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22703904"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp22744672"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-cutter.html" title="cutter">cutter</a></span></p></td> <td>Audio Cutter to split audio into non-silent bits</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html index c5053d9110afa7c91b777508132d75b5a9f85bf4..8be1d77027a1c2c16eb9e0d83ddc69884853afa1 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>debug</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-cutter.html" title="cutter"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25347328"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp22493040"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22601072"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24928944"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">breakmydata</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html index 5f55374b4344435f2257bdd1a71151dc819e5eee..1c462747376640c56a8da3fd935e33d100a93399 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>deinterlace</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-debug.html" title="debug"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp19616496"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24287888"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25459392"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23148544"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-deinterlace.html" title="deinterlace">deinterlace</a></span></p></td> <td>Deinterlace Methods ported from DScaler/TvTime</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html index 1d8f6cb4b8c106e4687604d8d023f278673ebecc..4f5ff1d367d90232d10c232a9e49710e7738583a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html @@ -3,11 +3,11 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>directsound</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-deinterlace.html" title="deinterlace"> -<link rel="next" href="gst-plugins-good-plugins-plugin-dv.html" title="dv"> +<link rel="next" href="gst-plugins-good-plugins-plugin-dtmf.html" title="dtmf"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -17,7 +17,7 @@ <td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dtmf.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-directsound"></a><div class="titlepage"></div> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24252704"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24304288"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp17978464"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24356896"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-directsoundsink.html" title="directsoundsink">directsoundsink</a></span></p></td> <td>DirectSound audio sink</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html new file mode 100644 index 0000000000000000000000000000000000000000..1e7a1f90d3f6d84dfd0515648044c03fb992c6ce --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html @@ -0,0 +1,90 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>dtmf</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> +<link rel="prev" href="gst-plugins-good-plugins-plugin-directsound.html" title="directsound"> +<link rel="next" href="gst-plugins-good-plugins-plugin-dv.html" title="dv"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-directsound.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr></table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-plugin-dtmf"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle">dtmf</span></h2> +<p>dtmf — <a name="plugin-dtmf"></a>DTMF plugins</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsect1"> +<a name="idp26377456"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">filename</span></p></td> +<td>libgstdtmf.so</td> +</tr> +<tr> +<td><p><span class="term">version</span></p></td> +<td>1.1.2</td> +</tr> +<tr> +<td><p><span class="term">run-time license</span></p></td> +<td>LGPL</td> +</tr> +<tr> +<td><p><span class="term">package</span></p></td> +<td>GStreamer Good Plug-ins source release</td> +</tr> +<tr> +<td><p><span class="term">origin</span></p></td> +<td>Unknown package origin</td> +</tr> +</tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="idp25408368"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-dtmfsrc.html" title="dtmfsrc">dtmfsrc</a></span></p></td> +<td>Generates DTMF tones</td> +</tr> +<tr> +<td><p><span class="term">rtpdtmfdepay</span></p></td> +<td>Generates DTMF Sound from telephone-event RTP packets</td> +</tr> +<tr> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">rtpdtmfsrc</a></span></p></td> +<td>Generates RTP DTMF packets</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html index a31e5bff4cbcd8431892d73cbaf1ca057fe1b448..5f1951dd95daed402cacbb5ab045f62c920785b2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html @@ -3,17 +3,17 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>dv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> -<link rel="prev" href="gst-plugins-good-plugins-plugin-directsound.html" title="directsound"> +<link rel="prev" href="gst-plugins-good-plugins-plugin-dtmf.html" title="dtmf"> <link rel="next" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-directsound.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-dtmf.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24555520"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24530496"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23654144"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23842800"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-dvdec.html" title="dvdec">dvdec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html index e637e88f50c583c704faa7a64597c2dc55303f95..f1024b397523406224438588e7c77af60c540466 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>effectv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24533328"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp21291472"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp21871328"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24843360"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-agingtv.html" title="agingtv">agingtv</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html index 332b1d5fa4527e6b5bdc6ca0b63ddf16f258fa5c..82d01ea9626647b7eec0cbc7cc251ea8e41fc011 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>equalizer</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-dv.html" title="dv"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp21871200"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26342304"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp21735584"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23828304"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html" title="equalizer-10bands">equalizer-10bands</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html index 3b87742d03f4443e55983850353899c60c47c003..86189b61898644ed69c744a873cb57d2e892fe3b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flac</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24139872"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25383312"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25529504"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp21285936"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-flacdec.html" title="flacdec">flacdec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html index d3c4affeb4f6f33e84215f233512fdd12681f7f6..d41f7cf75f314cdd7d6956cbd470a0fa51ced353 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-flac.html" title="flac"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp23452016"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp21893536"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24351408"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24905504"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-flvdemux.html" title="flvdemux">flvdemux</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html index dda4111a41ae3eef473f14a45e723a37fe1cd91b..ff7692bbd44e3930c6e46a54debddbdc57439145 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>flxdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-flv.html" title="flv"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp22434528"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp2924272"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23575680"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp20412880"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-flxdec.html" title="flxdec">flxdec</a></span></p></td> <td>FLC/FLI/FLX video decoder</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html index 094c044901d859d8064ebed9f815ded2a679d6af..42d128492c7f58dda4d4ce97eb1e5aa078175755 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>gdkpixbuf</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-flxdec.html" title="flxdec"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp7582160"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp23507376"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,16 +60,19 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25598000"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp22831072"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">gdkpixbufdec</span></p></td> <td>Decodes images in a video stream using GdkPixbuf</td> </tr> <tr> -<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html" title="gdkpixbufoverlay">gdkpixbufoverlay</a></span></p></td> +<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/gst-plugins-good-plugins-gdkpixbufoverlay.html">gdkpixbufoverlay</a></span></p></td> <td>Overlay an image onto a video stream</td> </tr> <tr> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html index 6025a494785514953a05bdaacd32c213bd6d22b0..6a65dd3001d35376f998e5a46241ac9e39c77793 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>goom</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html" title="gdkpixbuf"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24509712"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25911520"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22307616"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp26118640"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-goom.html" title="goom">goom</a></span></p></td> <td>Takes frames of data and outputs video frames using the GOOM filter</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html index 081ce919e87f77b855ab6504226dc41b5b206907..8912fc5030c9dadebc944f981d0b2fb4f64a6551 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>goom2k1</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-goom.html" title="goom"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24465184"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25927920"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22728976"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24692688"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">goom2k1</a></span></p></td> <td>Takes frames of data and outputs video frames using the GOOM 2k1 filter</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html index 4939ea4ad44d89eb164789221643a7978e552d3b..e564e92a8c43c6d286b1a3b467a42aeedeb06f05 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>icydemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-goom2k1.html" title="goom2k1"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp19983280"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25865408"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22449888"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24474176"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-icydemux.html" title="icydemux">icydemux</a></span></p></td> <td>Read and output ICY tags while demuxing the contents</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html index f775184ea668746a59e0c650891a0a929fce14b9..b871396c3deb4f9ef6cd2190ff3e357ecd7f0f98 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>id3demux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-icydemux.html" title="icydemux"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24664576"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26736768"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23706048"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23681664"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-id3demux.html" title="id3demux">id3demux</a></span></p></td> <td>Read and output ID3v1 and ID3v2 tags while demuxing the contents</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html index e95fc4a5e1b699585d1fd7e9ed4f5af3a5a25cd0..3ced9c33b104253e71bea4fca94f5cdc2bf39ebb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>imagefreeze</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-id3demux.html" title="id3demux"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp21016608"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26713104"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22256448"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24678816"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze">imagefreeze</a></span></p></td> <td>Generates a still frame stream from an image</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html index bfbaa2ea3603362e4a0db353379a98a9adc53f07..f02afde5fc2e09e71a4f22d0b28c10c0c4c9fa9b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>interleave</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-imagefreeze.html" title="imagefreeze"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp22010224"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25041184"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23699312"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24638704"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-deinterleave.html" title="deinterleave">deinterleave</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html index c60b28f7b08958d59f327f88356448b4155d943d..c7388fa5588767dc8065e093b00d7453475b58e3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>isomp4</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-interleave.html" title="interleave"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24434720"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24262240"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24415872"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24907600"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-3gppmux.html" title="3gppmux">3gppmux</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html index 550b686efc5ddf6767ea9d277c916a96b3b6dbeb..7be211431bc011efb7404a5a11c6275f5d0344cb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jack</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-isomp4.html" title="isomp4"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25717040"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp22569920"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22544784"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25854800"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">jackaudiosink</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html index e29674a44db71744a2079decbb92acb90d7d28cf..c571e70c89958e77a017e339a3a940c86ee777ee 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jpeg</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-jack.html" title="jack"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp23572704"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26444768"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp18084096"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23302352"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-jpegdec.html" title="jpegdec">jpegdec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html index 1dedbb18df9fc4ce5f2238b1da1d607c32d4351b..5f5a92c8e026b4b2d1930befba961a6d29aa79a3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>level</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-jpeg.html" title="jpeg"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp16209552"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp13204288"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25294384"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25993696"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-level.html" title="level">level</a></span></p></td> <td>RMS/Peak/Decaying Peak Level messager for audio/raw</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html index 9ca897f1b8eb11e9009373aa639f5b344ca4c1a4..268d328f4bfdf9e074916db879498473ca0c4f4f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>matroska</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-level.html" title="level"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25334432"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp9308720"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24283456"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp18568672"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">matroskademux</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html index 4f799cff2ec8f11ad68b0ca1b258ff7ca0ea08ba..22b0a1e4ad3a77b9bba79c759a480be9c0d8fceb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>monoscope</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-matroska.html" title="matroska"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp19090512"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26233696"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>0.11.94.1</td> +<td>1.1.1.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25355888"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp22836592"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">monoscope</a></span></p></td> <td>Displays a highly stabilised waveform of audio input</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html index 1000bd971a37940470c4d31a87b11b8eb3088ecf..e9db6e92ab854960a1a7e1b4674f34db953ef8e7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>mulaw</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-monoscope.html" title="monoscope"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp19701104"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp17919760"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24269728"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23872432"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">mulawdec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html index feac309d04c1797ec11c520a180c411fc8d44950..b130884e76873c71076d94b276821e8bffa53537 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>multifile</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-mulaw.html" title="mulaw"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25497616"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp23291264"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp18938960"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp22486416"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-multifilesink.html" title="multifilesink">multifilesink</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html index 5cd72b1e8ac05fecc681c99a2fcf3a39f666b893..2f13f69a4379d495941d5573eaf181712467e813 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>multipart</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-multifile.html" title="multifile"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25385648"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26156448"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24353536"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23291392"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-multipartdemux.html" title="multipartdemux">multipartdemux</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html index 9636ee48cd05b27bd1557935c59dce46652e5a5b..880829f035413347a0773e1e87328b20cc011a78 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>navigationtest</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-multipart.html" title="multipart"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp19193920"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24734288"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp19762160"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24143440"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term">navigationtest</span></p></td> <td>Handle navigation events showing a black square following mouse pointer</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html index cef704acdc0a151099e7543f35ab227f76740cc3..d0dd6feb31c5e11d59efed475f3482fe6e00c7e9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>oss4</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-navigationtest.html" title="navigationtest"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24638576"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24386096"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23557696"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp27016592"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-oss4sink.html" title="oss4sink">oss4sink</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html index 7ffebe6ab0e6f25edf2814aed2f78d8adfabc54e..52f9659b6c07874000578bb464055b4761462fc0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ossaudio</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-oss4.html" title="oss4"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24669616"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp23526368"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23700512"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp27043776"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-osssink.html" title="osssink">osssink</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html index 10f685c357881ad8bc4f6d70380be51e0f7ddb33..03ddf7abbdd402271826023b6f3d5357f3641fa8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>osxaudio</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-ossaudio.html" title="ossaudio"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp23870000"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp23786304"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24436928"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp23285952"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-osxaudiosink.html" title="osxaudiosink">osxaudiosink</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html index c46bb4b7508cfeeaaf591312e2b2e3595088d6a0..d7e47962a65c89c6df0bf54426c620e7ee1ffd6a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>osxvideo</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-osxaudio.html" title="osxaudio"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24459344"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp22393728"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24567376"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24998992"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-osxvideosink.html" title="osxvideosink">osxvideosink</a></span></p></td> <td>OSX native videosink</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html index 19369f4343a09ca869930508bb2618246fddfee5..507213795f1c2b0fbf2261d54464d80c5351aab4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>png</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-osxvideo.html" title="osxvideo"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp23505296"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26138976"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23794768"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25082848"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-pngdec.html" title="pngdec">pngdec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html index 0ceec8f96845d21a5641e278b3711642f6d91b73..53a393be1cafbe77cbe9e75255539d9f41af9600 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>pulseaudio</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-png.html" title="png"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25902864"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24337728"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24649824"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp21613648"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-pulsesink.html" title="pulsesink">pulsesink</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html index 55e588afd572642c228093beb9e4c57c31b5e64e..335e94435d8a9fa98e9f84e64c5b3f20fcaebf6e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>replaygain</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-pulseaudio.html" title="pulseaudio"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp26184592"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp19282720"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp18316096"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25417360"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rganalysis.html" title="rganalysis">rganalysis</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html index 0b26f180efc42f296e2b4293e46b7c1a3ca1ef14..ffb7ea1c12cb2fbf2f00700c72e865de198c2889 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtp</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-replaygain.html" title="replaygain"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp23111984"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26065696"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,44 +60,47 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25076656"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25427008"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">asteriskh263</span></p></td> <td>Extracts H263 video from RTP and encodes in Asterisk H263 format</td> </tr> <tr> -<td><p><span class="term">rtpL16depay</span></p></td> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">rtpL16depay</a></span></p></td> <td>Extracts raw audio from RTP packets</td> </tr> <tr> -<td><p><span class="term">rtpL16pay</span></p></td> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">rtpL16pay</a></span></p></td> <td>Payload-encode Raw audio into RTP packets (RFC 3551)</td> </tr> <tr> -<td><p><span class="term">rtpac3depay</span></p></td> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay">rtpac3depay</a></span></p></td> <td>Extracts AC3 audio from RTP packets (RFC 4184)</td> </tr> <tr> -<td><p><span class="term">rtpac3pay</span></p></td> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay">rtpac3pay</a></span></p></td> <td>Payload AC3 audio as RTP packets (RFC 4184)</td> </tr> <tr> -<td><p><span class="term">rtpamrdepay</span></p></td> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpamrdepay.html" title="rtpamrdepay">rtpamrdepay</a></span></p></td> <td>Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)</td> </tr> <tr> -<td><p><span class="term">rtpamrpay</span></p></td> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay">rtpamrpay</a></span></p></td> <td>Payload-encode AMR or AMR-WB audio into RTP packets (RFC 3267)</td> </tr> <tr> -<td><p><span class="term">rtpbvdepay</span></p></td> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay">rtpbvdepay</a></span></p></td> <td>Extracts BroadcomVoice audio from RTP packets (RFC 4298)</td> </tr> <tr> -<td><p><span class="term">rtpbvpay</span></p></td> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay">rtpbvpay</a></span></p></td> <td>Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</td> </tr> <tr> @@ -290,6 +296,14 @@ <td>Extracts QDM2 audio from RTP packets (no RFC)</td> </tr> <tr> +<td><p><span class="term">rtpsbcdepay</span></p></td> +<td>Extracts SBC audio from RTP packets</td> +</tr> +<tr> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">rtpsbcpay</a></span></p></td> +<td>Payload SBC audio as RTP packets</td> +</tr> +<tr> <td><p><span class="term">rtpsirendepay</span></p></td> <td>Extracts Siren audio from RTP packets</td> </tr> @@ -326,6 +340,14 @@ <td>Payload-encode Vorbis audio into RTP packets (RFC 5215)</td> </tr> <tr> +<td><p><span class="term">rtpvp8depay</span></p></td> +<td>Extracts VP8 video from RTP packets)</td> +</tr> +<tr> +<td><p><span class="term">rtpvp8pay</span></p></td> +<td>Puts VP8 video in RTP packets)</td> +</tr> +<tr> <td><p><span class="term">rtpvrawdepay</span></p></td> <td>Extracts raw video from RTP packets (RFC 4175)</td> </tr> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html index 45049366e40ea194adfd657db5d2f8a2d576137d..3fd25d421796ebea07a31318302dceaf67f947e6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtpmanager</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp26094512"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24278448"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,19 +60,30 @@ </table></div> </div> <div class="refsect1"> -<a name="idp21922400"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp26112192"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">rtpbin</a></span></p></td> <td>Real-Time Transport Protocol bin</td> </tr> <tr> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux">rtpdtmfmux</a></span></p></td> +<td>mixes RTP DTMF streams into other RTP streams</td> +</tr> +<tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">rtpjitterbuffer</a></span></p></td> <td>A buffer that deals with network jitter and other transmission faults</td> </tr> <tr> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">rtpmux</a></span></p></td> +<td>multiplex N rtp streams into one</td> +</tr> +<tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">rtpptdemux</a></span></p></td> <td>Parses codec streams transmitted in the same RTP session</td> </tr> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html index 545d89c186181449761573c9dbeb47012dafd48e..43e5bf89bb2e020c2393f0da320a4aa56749615d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtsp</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24687200"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24916816"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23185760"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp26284752"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">rtpdec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html index ad0f9a939051990b2d09872a0b4121dfc8e19007..6e83369067ca1b0545d03acd887ad144bafb618c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>shapewipe</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-rtsp.html" title="rtsp"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp15957712"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24205424"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23788944"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24257840"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe">shapewipe</a></span></p></td> <td>Adds a shape wipe transition to a video stream</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html index 71bf1ca89585085f8a8d331fa4552707d6a08eb0..fc83d55e93a808c9b0ce9ff85287bad7f0c1f872 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>shout2send</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-shapewipe.html" title="shapewipe"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25827296"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27479232"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23410256"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25409264"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term">shout2send</span></p></td> <td>Sends data to an icecast server</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html index 3aac912900b5047d4fb46d80ca554e41f29c7094..278f9df34bca0df30474f599fcd4a2ae14ab7f25 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>smpte</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-shout2send.html" title="shout2send"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24632048"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp25937392"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25382448"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24237088"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-smpte.html" title="smpte">smpte</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html index 5336ff0bb1663c1a22339dca92202aeaf7f6bd98..d7ac1247f1e2f2c8b38802f14532838c3d3560ee 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>soup</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-smpte.html" title="smpte"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24627216"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27192768"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24276768"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24386880"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">souphttpclientsink</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html index 8dc6fbb7f06214edcd5bab589ba202e9e5c25fa5..95092f2aafe61647f0889b61b2a5f9f8f24d5f1e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>spectrum</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-soup.html" title="soup"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp26081568"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp11998176"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24468464"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp27075296"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">spectrum</a></span></p></td> <td>Run an FFT on the audio signal, output spectrum data</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html index b5a3d2260e4eac5ce0497046f728c15256194fb3..4f638ed86f5c8beddaabd3c1f5a44663f09b5237 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>speex</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-spectrum.html" title="spectrum"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24770288"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26276240"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25377392"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp27503520"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">speexdec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html index 54bbf7ddd7c5b3097da062e1d777b6ee86d489be..8796bcdbc99e42fd03de23a0a9bd34dd04dfb50b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>taglib</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-speex.html" title="speex"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25931536"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp12158144"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22260896"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24258992"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-apev2mux.html" title="apev2mux">apev2mux</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html index 6f9ea30991615a77e518bad25a426b64679e7d4d..28b2dd1c6b29a493221099522a5f7cc410bee91a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>udp</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-taglib.html" title="taglib"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24409200"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp24441392"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25947808"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25453952"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">dynudpsink</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html index 5cf85efc8332d0c936d0321e06a2f2486a4ccd77..9ed51a6b497fb7bccf062a7170ee686b9f545156 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>video4linux2</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-udp.html" title="udp"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25708944"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27101824"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23279776"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp26310432"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">v4l2radio</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html index abfdca6d9f9fae863666d73c201a0c25dd14a10e..66b55b46767bdc0b9ea2f58a85245dc8520cd414 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>videobox</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-video4linux2.html" title="video4linux2"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp20589520"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27347488"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp26219472"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp26737856"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-videobox.html" title="videobox">videobox</a></span></p></td> <td>Resizes a video by adding borders or cropping</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html index c94f2f1681357d4efff03c40707d6750aa1d7193..193ccdc9ad0aab6cb332890812da2bd3eadf0b14 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>videocrop</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-videobox.html" title="videobox"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24924464"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26208464"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp17948560"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp22403024"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-aspectratiocrop.html" title="aspectratiocrop">aspectratiocrop</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html index 2dd31bd1024c54ceadd4689a2f2514a172241642..f838f59744c281363d25a9dee31390b7a792dc8e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>videofilter</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-videocrop.html" title="videocrop"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24660368"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27507216"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp23733584"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp26738368"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-gamma.html" title="gamma">gamma</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html index 48cf899acc68d2b0789653090645b156b66d829b..c7d9cbb34480ccdd37da43cb33138eaa214d310f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>videomixer</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-videofilter.html" title="videofilter"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24968752"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27615024"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25707584"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25496656"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-videomixer.html" title="videomixer">videomixer</a></span></p></td> <td>Mix multiple video streams</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html index b5eefb80bad1a2fdd055fb239bd0bb21bb72a7e1..e14f827e9af19b82e69dece6b08640119e9837c2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>vpx</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-videomixer.html" title="videomixer"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24538064"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26293072"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25709712"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25853392"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-vp8dec.html" title="vp8dec">vp8dec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html index 702cced322dcfca4485694656be3574a37ab01ee..b11c9e60cf9cae415ed7d4c61333c297a11ae821 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>waveform</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-vpx.html" title="vpx"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24526400"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27591808"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25327264"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24405152"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">waveformsink</a></span></p></td> <td>WaveForm audio sink</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html index 9811b612a86b42e03532b9c75b41ce31d7eda20e..8467a8dc78f211f3c8fc55e7162eed55c2dc89f7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>wavenc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-waveform.html" title="waveform"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24691088"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26564576"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp24629424"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24911008"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">wavenc</a></span></p></td> <td>Encode raw audio into WAV</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html index 691dbabed0ab72bf92cb3657f7e89a6abf31af26..a39a7362741ccfaf530c620ecf7000e8208f8b02 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>wavpack</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-wavenc.html" title="wavenc"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24782464"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27371120"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp22707888"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25916176"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec">wavpackdec</a></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html index 7ad34f6fd226258e6c291031cc1b305f1a2fd440..a589727de449aa4ce1d3b055a8e40f46c41ac08b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>wavparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-wavpack.html" title="wavpack"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp26648304"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27064656"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25026048"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp25485872"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-wavparse.html" title="wavparse">wavparse</a></span></p></td> <td>Parse a .wav file into raw audio</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html index 6c4f5e51d51b400d466abbe38c2882b1b6caa0cc..82d1f0c1549735e4883132e3b50d542964f7484d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ximagesrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-wavparse.html" title="wavparse"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp24482176"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp26076992"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp21947856"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp24911136"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html" title="ximagesrc">ximagesrc</a></span></p></td> <td>Creates a screenshot video stream</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html index d33bdc24bdbbe3e5d915e89c6e7ea0f6699d50dc..ae39fe583ee95d89069842120e3cc47ca3f7efde 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>y4menc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch02.html" title="gst-plugins-good Plugins"> <link rel="prev" href="gst-plugins-good-plugins-plugin-ximagesrc.html" title="ximagesrc"> @@ -29,9 +29,12 @@ <td valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> -<a name="idp25360768"></a><h2>Plugin Information</h2> -<div class="variablelist"><table border="0"> +<a name="idp27037024"></a><h2>Plugin Information</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">filename</span></p></td> @@ -39,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.0.8</td> +<td>1.1.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -57,9 +60,12 @@ </table></div> </div> <div class="refsect1"> -<a name="idp25597248"></a><h2>Elements</h2> -<div class="variablelist"><table border="0"> +<a name="idp27034192"></a><h2>Elements</h2> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody><tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-y4menc.html" title="y4menc">y4menc</a></span></p></td> <td>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html index f7a40eb53dc1c639e65c7fa75c97691afdf22e5b..e71b5de3cddd2ee3ac51fc9db74505c39d93794d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>pngdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-osxvideosink.html" title="osxvideosink"> @@ -58,9 +58,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15865616"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13556896"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -81,9 +84,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp13989344"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp8619616"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -103,8 +109,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html index fec433caf2d1a835dcfc35d70b5abe56ca216f28..8657712a2ae76e7985553c3b9a197fb9f28da542 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>pngenc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-pngdec.html" title="pngdec"> @@ -75,9 +75,12 @@ GstPngEnc implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp9955424"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp16530336"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -98,9 +101,12 @@ GstPngEnc implements </div> <hr> <div class="refsect2"> -<a name="idp13784928"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp15946880"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -120,8 +126,11 @@ GstPngEnc implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html index b3dd23a10dd4dc8855759cc9764a188655a7c2eb..3eb43c3bc05ba1882701995bcc8c42fdcaef6356 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html +++ b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>progressreport</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-pngenc.html" title="pngenc"> @@ -104,7 +104,7 @@ a whole). <p> </p> <div class="refsect2"> -<a name="idp8942912"></a><h3>Example launch line</h3> +<a name="idp14892784"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -133,9 +133,12 @@ a whole). <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16517664"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13902208"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -156,9 +159,12 @@ a whole). </div> <hr> <div class="refsect2"> -<a name="idp17893376"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12412560"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -178,8 +184,11 @@ a whole). </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html index 8ac8995095381e29fc693326a9b2c36813596a66..66aecbcc453b4f1a772613155cf0aa379ee5ce2a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>pulsesink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-progressreport.html" title="progressreport"> @@ -62,7 +62,7 @@ <a name="gst-plugins-good-plugins-pulsesink.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstPulseSink implements - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>, GstImplementsInterface and GstPropertyProbe.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-pulsesink.properties"></a><h2>Properties</h2> @@ -82,9 +82,12 @@ GstPulseSink implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16373600"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5958720"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -105,9 +108,12 @@ GstPulseSink implements </div> <hr> <div class="refsect2"> -<a name="idp16191584"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp10975536"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -220,7 +226,7 @@ GstPulseSink implements <a name="GstPulseSink--client-name"></a><h3>The <code class="literal">"client-name"</code> property</h3> <pre class="programlisting"> "client-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> <p>The PulseAudio client name to use.</p> -<p>Default value: "lt-gst-plugins-good-plugins-scan"</p> +<p>Default value: "gst-plugins-good-plugins-scan"</p> </div> </div> </div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html index 9b412f10b5bb7e50c1aa162d42122ba781d23024..3c3897d9bb26f1802ad8233e5a8ed90f5a4060de 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>pulsesrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-pulsesink.html" title="pulsesink"> @@ -64,7 +64,7 @@ <a name="gst-plugins-good-plugins-pulsesrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstPulseSrc implements - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>, GstImplementsInterface, GstMixer and GstPropertyProbe.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-pulsesrc.properties"></a><h2>Properties</h2> @@ -85,9 +85,12 @@ GstPulseSrc implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp13810464"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp11232992"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -108,9 +111,12 @@ GstPulseSrc implements </div> <hr> <div class="refsect2"> -<a name="idp12221552"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp15340320"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -214,7 +220,7 @@ GstPulseSrc implements <a name="GstPulseSrc--client-name"></a><h3>The <code class="literal">"client-name"</code> property</h3> <pre class="programlisting"> "client-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> <p>The PulseAudio client_name_to_use.</p> -<p>Default value: "lt-gst-plugins-good-plugins-scan"</p> +<p>Default value: "gst-plugins-good-plugins-scan"</p> </div> </div> </div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html index b970000d9113b92595a117ba72ef445162325ccf..db285cbaee59cf87bb52ec3484b9bdd4790587d3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>qtdemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-quarktv.html" title="quarktv"> @@ -72,7 +72,7 @@ capabilities of the upstream elements. <p> </p> <div class="refsect2"> -<a name="idp14239072"></a><h3>Example launch line</h3> +<a name="idp13989168"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -96,9 +96,12 @@ Last reviewed on 2006-12-29 (0.10.5) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp13815808"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp17079568"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -119,9 +122,12 @@ Last reviewed on 2006-12-29 (0.10.5) </div> <hr> <div class="refsect2"> -<a name="idp17196752"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp17967088"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -153,8 +159,11 @@ Last reviewed on 2006-12-29 (0.10.5) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -174,8 +183,11 @@ Last reviewed on 2006-12-29 (0.10.5) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -195,8 +207,11 @@ Last reviewed on 2006-12-29 (0.10.5) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -239,8 +254,11 @@ Last reviewed on 2006-12-29 (0.10.5) <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstqtdemux</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html index 555f53b6df945e01c727ef3ff402b29d73523c24..07c5977f91759559ee6a5562a0be2a6c5a1aaa91 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html +++ b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>qtmoovrecover</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-qtmux.html" title="qtmux"> @@ -81,7 +81,7 @@ GstQTMoovRecover implements <p> </p> <div class="refsect2"> -<a name="idp13361136"></a><h3>Example pipelines</h3> +<a name="idp13633488"></a><h3>Example pipelines</h3> <p> This element recovers quicktime files created with qtmux using the moov recovery feature. @@ -102,9 +102,12 @@ Documentation last reviewed on 2011-04-21 <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14237152"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp16693408"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -125,7 +128,7 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="idp8177600"></a><h3>Element Pads</h3> +<a name="idp11609568"></a><h3>Element Pads</h3> </div> </div> <p> diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html index f61291f33a7f9f83ddd7dd1d3c34ed20d7c8bccd..daa2a4ce7a6122ad73e6cb6caed31ebcaced6656 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>qtmux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux"> @@ -118,22 +118,9 @@ If such fragmented layout is intended for streaming purposes, then index metadata (at the end of file). </p> <p> -<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method" title='The "dts-method" property'>dts-method</a> allows selecting a -method for managing input timestamps (stay tuned for 0.11 to have this -automagically settled). The default delta/duration method should handle nice -(aka perfect streams) just fine, but may experience problems otherwise -(e.g. input stream with re-ordered B-frames and/or with frame dropping). -The re-ordering approach re-assigns incoming timestamps in ascending order -to incoming buffers and offers an alternative in such cases. In cases where -that might fail, the remaining method can be tried, which is exact and -according to specs, but might experience playback on not so spec-wise players. -Note that this latter approach also requires one to enable -presentation-timestamp. -</p> -<p> </p> <div class="refsect2"> -<a name="idp16773744"></a><h3>Example pipelines</h3> +<a name="idp15206944"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -155,9 +142,12 @@ Last reviewed on 2010-12-03 <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16188544"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14124592"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -178,9 +168,12 @@ Last reviewed on 2010-12-03 </div> <hr> <div class="refsect2"> -<a name="idp17496992"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp17541040"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -244,8 +237,11 @@ Last reviewed on 2010-12-03 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -305,8 +301,11 @@ Last reviewed on 2010-12-03 </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -349,7 +348,7 @@ Last reviewed on 2010-12-03 <div class="refsect2"> <a name="GstQTMux--dts-method"></a><h3>The <code class="literal">"dts-method"</code> property</h3> <pre class="programlisting"> "dts-method" <span class="type">GstQTMuxDtsMethods</span> : Read / Write / Construct</pre> -<p>Method to determine DTS time.</p> +<p>(DEPRECATED) Method to determine DTS time.</p> <p>Default value: reorder</p> </div> <hr> diff --git a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html index 4a17219a2cef4cfca9baf42288c369235ae26d22..16f5554f68f5bccc89348adc7537bcccdf61673e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>quarktv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-pulsesrc.html" title="pulsesrc"> @@ -65,33 +65,37 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-quarktv.description"></a><h2>Description</h2> <p> -QuarkTV disolves moving objects. It picks up pixels from -the last frames randomly. +RevTV acts like a video waveform monitor for each line of video +processed. This creates a pseudo 3D effect based on the brightness +of the video along each line. </p> <p> </p> <div class="refsect2"> -<a name="idp16254704"></a><h3>Example launch line</h3> +<a name="idp15943808"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="listing_lines" align="right"><pre>1</pre></td> - <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> quarktv <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> revtv <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td> </tr> </tbody> </table> </div> - This pipeline shows the effect of quarktv on a test stream. + This pipeline shows the effect of revtv on a test stream. </div> <p> </p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16649088"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp2854192"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -112,9 +116,12 @@ the last frames randomly. </div> <hr> <div class="refsect2"> -<a name="idp13710144"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp14819328"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -134,8 +141,11 @@ the last frames randomly. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html index 788d5197d500a80bea46f9d25d431038538b963b..347356bf4f7e6abd22a004f3fa61c419e9880a3e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>radioactv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover"> @@ -83,7 +83,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. <p> </p> <div class="refsect2"> -<a name="idp16246384"></a><h3>Example launch line</h3> +<a name="idp16174128"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -101,9 +101,12 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16606416"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp15350720"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -124,9 +127,12 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. </div> <hr> <div class="refsect2"> -<a name="idp12934096"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp15266832"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -146,8 +152,11 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-revtv.html b/docs/plugins/html/gst-plugins-good-plugins-revtv.html index 68866004a69f57d78d26170f85a5eadff3b465cb..81de59c0c99ccdd7cd4712a9fb9a86e992d183ba 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-revtv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-revtv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>revtv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-radioactv.html" title="radioactv"> @@ -69,9 +69,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15943984"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp15351008"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -92,9 +95,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp17251312"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp13992896"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -114,8 +120,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html index cbe243ead1022ebaead6683c3424dd60cdbd9747..88c8debd69113c93c928eea796cae419eeb41b61 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rganalysis</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-revtv.html" title="revtv"> @@ -90,7 +90,7 @@ an album, not just the last one. <p> </p> <div class="refsect2"> -<a name="idp13509680"></a><h3>Example launch lines</h3> +<a name="idp13417664"></a><h3>Example launch lines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -138,7 +138,7 @@ property documentation for more information. </p> <hr> <div class="refsect2"> -<a name="idp18290544"></a><h3>Acknowledgements</h3> +<a name="idp17562416"></a><h3>Acknowledgements</h3> <p> This element is based on code used in the <a class="ulink" href="http://sjeng.org/vorbisgain.html" target="_top">vorbisgain</a> program and many others. The relevant parts are copyrighted by David Robinson, Glen Sawyer @@ -150,9 +150,12 @@ and Frank Klemm. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14244320"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp17435440"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -173,9 +176,12 @@ and Frank Klemm. </div> <hr> <div class="refsect2"> -<a name="idp16896176"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp16218992"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -199,8 +205,11 @@ and Frank Klemm. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html index d9d7105388aa784ddf411f1b05c947dd9eb47658..cde19ccb1e5ab88550ebadf5461e73b2000dc32a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rglimiter</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-rganalysis.html" title="rganalysis"> @@ -71,7 +71,7 @@ threshold of -6 dB. This type of filter is mentioned in the proposed <a class=" <p> </p> <div class="refsect2"> -<a name="idp18680816"></a><h3>Example launch line</h3> +<a name="idp17450096"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -93,9 +93,12 @@ Playback of a file <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14129792"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp8747936"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -116,9 +119,12 @@ Playback of a file </div> <hr> <div class="refsect2"> -<a name="idp16733888"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp18898784"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -138,8 +144,11 @@ Playback of a file </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html index 166e037bf8b50b132e901e27756c6e68e0a46aac..599cba8792f7ded3b05baecbb72b51991ecfe882 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rgvolume</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-rglimiter.html" title="rglimiter"> @@ -82,7 +82,7 @@ This element applies volume changes to streams as lined out in the proposed interprets the ReplayGain meta data tags and carries out the adjustment (by using a volume element internally). The relevant tags are: </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-GAIN:CAPS"><span class="type">GST_TAG_TRACK_GAIN</span></a></li> <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-PEAK:CAPS"><span class="type">GST_TAG_TRACK_PEAK</span></a></li> <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-ALBUM-GAIN:CAPS"><span class="type">GST_TAG_ALBUM_GAIN</span></a></li> @@ -104,7 +104,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard. <p> </p> <div class="refsect2"> -<a name="idp16163360"></a><h3>Example launch line</h3> +<a name="idp19002800"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -124,9 +124,12 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp17474752"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp17815248"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -147,9 +150,12 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard. </div> <hr> <div class="refsect2"> -<a name="idp15216384"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp14617808"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -169,8 +175,11 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -330,7 +339,7 @@ these simple formulas: </p> <p> </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"> <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title='The "pre-amp" property'>pre-amp</a> + album gain of the stream</li> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html index b64ed7a8c3d7deb548f02c6ae372bd815407bc8d..550e51e516f744b3278ba39f600a379f3e9af9b3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rippletv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-rgvolume.html" title="rgvolume"> @@ -72,7 +72,7 @@ by motion or random rain drops. <p> </p> <div class="refsect2"> -<a name="idp17610640"></a><h3>Example launch line</h3> +<a name="idp18308720"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -90,9 +90,12 @@ by motion or random rain drops. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp7846688"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14880432"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -113,9 +116,12 @@ by motion or random rain drops. </div> <hr> <div class="refsect2"> -<a name="idp14797408"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp17911536"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -135,8 +141,11 @@ by motion or random rain drops. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html new file mode 100644 index 0000000000000000000000000000000000000000..dde7fbbaf27e43fac146f8d08d523736ad52b09f --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html @@ -0,0 +1,189 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpL16depay</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay"> +<link rel="next" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbvpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpL16depay.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpL16depay.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpL16depay.object-hierarchy" class="shortcut">Object Hierarchy</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpL16depay"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpL16depay.top_of_page"></a>rtpL16depay</span></h2> +<p>rtpL16depay — Extracts raw audio from RTP packets</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpL16depay.synopsis"></a><h2>Synopsis</h2> +<a name="GstRtpL16Depay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct" title="struct GstRtpL16Depay">GstRtpL16Depay</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16depay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a> + +----GstRtpL16Depay +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16depay.description"></a><h2>Description</h2> +<p> +Extract raw audio from RTP packets according to RFC 3551. +For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp16065872"></a><h3>Example pipeline</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch udpsrc caps<span class="gtkdoc opt">=</span><span class="string">'application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)L16, encoding-params=(string)1, channels=(int)1, payload=(int)96'</span> <span class="gtkdoc opt">!</span> rtpL16depay <span class="gtkdoc opt">!</span> pulsesink</pre></td> + </tr> + </tbody> + </table> +</div> + This example pipeline will depayload an RTP raw audio stream. Refer to +the rtpL16pay example to create the RTP stream. +</div> +<p> +</p> +<p> +Last reviewed on 2013-04-25 (1.1.0) +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp16529344"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Zeeshan Ali <zak147@yahoo.com>,Wim Taymans <wim.taymans@gmail.com></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Depayloader/Network/RTP</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp13216880"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-rtp, media=(string)audio, payload=(int){ 10, 11 }, clock-rate=(int)[ 1, 2147483647 ]</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-raw, format=(string)S16BE, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16depay.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRtpL16Depay-struct"></a><h3>struct GstRtpL16Depay</h3> +<pre class="programlisting">struct GstRtpL16Depay;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16depay.see-also"></a><h2>See Also</h2> +rtpL16pay +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html new file mode 100644 index 0000000000000000000000000000000000000000..5dd15c7947be2094836d2a7b6d4d6fa665af7333 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html @@ -0,0 +1,194 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpL16pay</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay"> +<link rel="next" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpL16pay.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpL16pay.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpL16pay.object-hierarchy" class="shortcut">Object Hierarchy</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpL16pay"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpL16pay.top_of_page"></a>rtpL16pay</span></h2> +<p>rtpL16pay — Payload-encode Raw audio into RTP packets (RFC 3551)</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpL16pay.synopsis"></a><h2>Synopsis</h2> +<a name="GstRtpL16Pay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct" title="struct GstRtpL16Pay">GstRtpL16Pay</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16pay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload">GstRTPBaseAudioPayload</a> + +----GstRtpL16Pay +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16pay.description"></a><h2>Description</h2> +<p> +Payload raw audio into RTP packets according to RFC 3551. +For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp17896736"></a><h3>Example pipeline</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v audiotestsrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> rtpL16pay <span class="gtkdoc opt">!</span> udpsink</pre></td> + </tr> + </tbody> + </table> +</div> + This example pipeline will payload raw audio. Refer to +the rtpL16depay example to depayload and play the RTP stream. +</div> +<p> +</p> +<p> +Last reviewed on 2013-04-25 (1.1.0) +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp17547984"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Wim Taymans <wim.taymans@gmail.com></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Payloader/Network/RTP</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp13373584"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-raw, format=(string)S16BE, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16, channels=(int)[ 1, 2147483647 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-rtp, media=(string)audio, encoding-name=(string)L16, payload=(int)10, clock-rate=(int)44100</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-rtp, media=(string)audio, encoding-name=(string)L16, payload=(int)11, clock-rate=(int)44100</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16pay.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRtpL16Pay-struct"></a><h3>struct GstRtpL16Pay</h3> +<pre class="programlisting">struct GstRtpL16Pay;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16pay.see-also"></a><h2>See Also</h2> +rtpL16depay +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html new file mode 100644 index 0000000000000000000000000000000000000000..cba4d0e323e369101fc2fc44bb9a1e06af6c60ec --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html @@ -0,0 +1,185 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpac3depay</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec"> +<link rel="next" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3pay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpac3depay.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpac3depay.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpac3depay.object-hierarchy" class="shortcut">Object Hierarchy</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpac3depay"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpac3depay.top_of_page"></a>rtpac3depay</span></h2> +<p>rtpac3depay — Extracts AC3 audio from RTP packets (RFC 4184)</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpac3depay.synopsis"></a><h2>Synopsis</h2> +<a name="GstRtpAC3Depay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct" title="struct GstRtpAC3Depay">GstRtpAC3Depay</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3depay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a> + +----GstRtpAC3Depay +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3depay.description"></a><h2>Description</h2> +<p> +Extract AC3 audio from RTP packets according to RFC 4184. +For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp12935200"></a><h3>Example pipeline</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> udpsrc caps<span class="gtkdoc opt">=</span><span class="string">'application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)AC3, payload=(int)96'</span> <span class="gtkdoc opt">!</span> rtpac3depay <span class="gtkdoc opt">!</span> a52dec <span class="gtkdoc opt">!</span> pulsesink</pre></td> + </tr> + </tbody> + </table> +</div> + This example pipeline will depayload and decode an RTP AC3 stream. Refer to +the rtpac3pay example to create the RTP stream. +</div> +<p> +</p> +<p> +Last reviewed on 2013-04-25 (1.1.0) +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp17437136"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Wim Taymans <wim.taymans@gmail.com></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Depayloader/Network/RTP</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp16239920"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/ac3</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3depay.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRtpAC3Depay-struct"></a><h3>struct GstRtpAC3Depay</h3> +<pre class="programlisting">struct GstRtpAC3Depay;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3depay.see-also"></a><h2>See Also</h2> +rtpac3pay +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html new file mode 100644 index 0000000000000000000000000000000000000000..0f78cec9320945afe5a4b5f1fb5e6f360aa93419 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html @@ -0,0 +1,189 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpac3pay</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay"> +<link rel="next" href="gst-plugins-good-plugins-rtpamrdepay.html" title="rtpamrdepay"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpac3depay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpamrdepay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpac3pay.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpac3pay.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpac3pay.object-hierarchy" class="shortcut">Object Hierarchy</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpac3pay"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpac3pay.top_of_page"></a>rtpac3pay</span></h2> +<p>rtpac3pay — Payload AC3 audio as RTP packets (RFC 4184)</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpac3pay.synopsis"></a><h2>Synopsis</h2> +<a name="GstRtpAC3Pay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct" title="struct GstRtpAC3Pay">GstRtpAC3Pay</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3pay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + +----GstRtpAC3Pay +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3pay.description"></a><h2>Description</h2> +<p> +Payload AC3 audio into RTP packets according to RFC 4184. +For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp13604224"></a><h3>Example pipeline</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v audiotestsrc <span class="gtkdoc opt">!</span> avenc_ac3 <span class="gtkdoc opt">!</span> rtpac3pay <span class="gtkdoc opt">!</span> udpsink</pre></td> + </tr> + </tbody> + </table> +</div> + This example pipeline will encode and payload AC3 stream. Refer to +the rtpac3depay example to depayload and decode the RTP stream. +</div> +<p> +</p> +<p> +Last reviewed on 2013-04-25 (1.1.0) +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp18588384"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Wim Taymans <wim.taymans@gmail.com></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Payloader/Network/RTP</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp2044304"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/ac3</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/x-ac3</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3pay.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRtpAC3Pay-struct"></a><h3>struct GstRtpAC3Pay</h3> +<pre class="programlisting">struct GstRtpAC3Pay;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3pay.see-also"></a><h2>See Also</h2> +rtpac3depay +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html new file mode 100644 index 0000000000000000000000000000000000000000..fb4f9b4aa683716f2f56a97007b95d2a08815b78 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html @@ -0,0 +1,193 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpamrdepay</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay"> +<link rel="next" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpac3pay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpamrpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpamrdepay.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpamrdepay.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpamrdepay.object-hierarchy" class="shortcut">Object Hierarchy</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpamrdepay"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpamrdepay.top_of_page"></a>rtpamrdepay</span></h2> +<p>rtpamrdepay — Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpamrdepay.synopsis"></a><h2>Synopsis</h2> +<a name="GstRtpAMRDepay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct" title="struct GstRtpAMRDepay">GstRtpAMRDepay</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrdepay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a> + +----GstRtpAMRDepay +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrdepay.description"></a><h2>Description</h2> +<p> +Extract AMR audio from RTP packets according to RFC 3267. +For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp15313200"></a><h3>Example pipeline</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> udpsrc caps<span class="gtkdoc opt">=</span><span class="string">'application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1, payload=(int)96'</span> <span class="gtkdoc opt">!</span> rtpamrdepay <span class="gtkdoc opt">!</span> amrnbdec <span class="gtkdoc opt">!</span> pulsesink</pre></td> + </tr> + </tbody> + </table> +</div> + This example pipeline will depayload and decode an RTP AMR stream. Refer to +the rtpamrpay example to create the RTP stream. +</div> +<p> +</p> +<p> +Last reviewed on 2013-04-25 (1.1.0) +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp14843760"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Wim Taymans <wim.taymans@gmail.com></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Depayloader/Network/RTP</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp19151408"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/AMR, channels=(int)1, rate=(int)8000</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/AMR-WB, channels=(int)1, rate=(int)16000</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrdepay.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRtpAMRDepay-struct"></a><h3>struct GstRtpAMRDepay</h3> +<pre class="programlisting">struct GstRtpAMRDepay;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrdepay.see-also"></a><h2>See Also</h2> +rtpamrpay +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html new file mode 100644 index 0000000000000000000000000000000000000000..4878e2ba0f42b5588c7f51752062d382f57a1637 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html @@ -0,0 +1,193 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpamrpay</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpamrdepay.html" title="rtpamrdepay"> +<link rel="next" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpamrdepay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvdepay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpamrpay.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpamrpay.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpamrpay.object-hierarchy" class="shortcut">Object Hierarchy</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpamrpay"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpamrpay.top_of_page"></a>rtpamrpay</span></h2> +<p>rtpamrpay — Payload-encode AMR or AMR-WB audio into RTP packets (RFC 3267)</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpamrpay.synopsis"></a><h2>Synopsis</h2> +<a name="GstRtpAMRPay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct" title="struct GstRtpAMRPay">GstRtpAMRPay</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrpay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + +----GstRtpAMRPay +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrpay.description"></a><h2>Description</h2> +<p> +Payload AMR audio into RTP packets according to RFC 3267. +For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp14411824"></a><h3>Example pipeline</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v audiotestsrc <span class="gtkdoc opt">!</span> amrnbenc <span class="gtkdoc opt">!</span> rtpamrpay <span class="gtkdoc opt">!</span> udpsink</pre></td> + </tr> + </tbody> + </table> +</div> + This example pipeline will encode and payload an AMR stream. Refer to +the rtpamrdepay example to depayload and decode the RTP stream. +</div> +<p> +</p> +<p> +Last reviewed on 2013-04-25 (1.1.0) +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp16919760"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Wim Taymans <wim.taymans@gmail.com></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Payloader/Network/RTP</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp16384240"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/AMR, channels=(int)1, rate=(int)8000</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/AMR-WB, channels=(int)1, rate=(int)16000</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1, crc=(string)0, robust-sorting=(string)0, interleaving=(string)0, mode-set=(int)[ 0, 7 ], mode-change-period=(int)[ 1, 2147483647 ], mode-change-neighbor=(string){ 0, 1 }, maxptime=(int)[ 20, 2147483647 ], ptime=(int)[ 20, 2147483647 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1, crc=(string)0, robust-sorting=(string)0, interleaving=(string)0, mode-set=(int)[ 0, 7 ], mode-change-period=(int)[ 1, 2147483647 ], mode-change-neighbor=(string){ 0, 1 }, maxptime=(int)[ 20, 2147483647 ], ptime=(int)[ 20, 2147483647 ]</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrpay.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRtpAMRPay-struct"></a><h3>struct GstRtpAMRPay</h3> +<pre class="programlisting">struct GstRtpAMRPay;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrpay.see-also"></a><h2>See Also</h2> +rtpamrdepay +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html index 7f9edb43f15f37997a881a20942d302ee40f6704..ac1d7ee3c3e8dbbf3eca5f35d531cbe41db35334 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html @@ -3,11 +3,11 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtpbin</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc"> -<link rel="next" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer"> +<link rel="next" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -18,7 +18,7 @@ <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#gst-plugins-good-plugins-rtpbin.synopsis" class="shortcut">Top</a> @@ -103,12 +103,162 @@ GstRtpBin implements </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbin.description"></a><h2>Description</h2> +<p> +RTP bin combines the functions of <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a>, <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a>, +<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> and <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> in one element. It allows for multiple +RTP sessions that will be synchronized together using RTCP SR packets. +</p> +<p> +<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> is configured with a number of request pads that define the +functionality that is activated, similar to the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> element. +</p> +<p> +To use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as an RTP receiver, request a recv_rtp_sink_%u pad. The session +number must be specified in the pad name. +Data received on the recv_rtp_sink_%u pad will be processed in the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> +manager and after being validated forwarded on <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a> element. Each +RTP stream is demuxed based on the SSRC and send to a <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a>. After +the packets are released from the jitterbuffer, they will be forwarded to a +<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> element. The <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> element will demux the packets based +on the payload type and will create a unique pad recv_rtp_src_%u_%u_%u on +rtpbin with the session number, SSRC and payload type respectively as the pad +name. +</p> +<p> +To also use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as an RTCP receiver, request a recv_rtcp_sink_%u pad. The +session number must be specified in the pad name. +</p> +<p> +If you want the session manager to generate and send RTCP packets, request +the send_rtcp_src_%u pad with the session number in the pad name. Packet pushed +on this pad contain SR/RR RTCP reports that should be sent to all participants +in the session. +</p> +<p> +To use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as a sender, request a send_rtp_sink_%u pad, which will +automatically create a send_rtp_src_%u pad. If the session number is not provided, +the pad from the lowest available session will be returned. The session manager will modify the +SSRC in the RTP packets to its own SSRC and wil forward the packets on the +send_rtp_src_%u pad after updating its internal state. +</p> +<p> +The session manager needs the clock-rate of the payload types it is handling +and will signal the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a> signal when it needs such a +mapping. One can clear the cached values with the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title='The "clear-pt-map" signal'><span class="type">"clear-pt-map"</span></a> +signal. +</p> +<p> +Access to the internal statistics of rtpbin is provided with the +get-internal-session property. This action signal gives access to the +RTPSession object which further provides action signals to retrieve the +internal source and other sources. +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp20609360"></a><h3>Example pipelines</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1 +2</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtp, ..."</span> <span class="gtkdoc opt">! .</span>recv_rtp_sink_0 \ + rtpbin <span class="gtkdoc opt">!</span> rtptheoradepay <span class="gtkdoc opt">!</span> theoradec <span class="gtkdoc opt">!</span> xvimagesink</pre></td> + </tr> + </tbody> + </table> +</div> + Receive RTP data from port 5000 and send to the session 0 in rtpbin. +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1 +2 +3 +4 +5 +6 +7 +8 +9</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> rtpbin name<span class="gtkdoc opt">=</span>rtpbin \ + v4l2src <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> ffenc_h263 <span class="gtkdoc opt">!</span> rtph263ppay <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>send_rtp_sink_0 \ + rtpbin<span class="gtkdoc opt">.</span>send_rtp_src_0 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5000</span> \ + rtpbin<span class="gtkdoc opt">.</span>send_rtcp_src_0 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5001</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span> \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5005</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtcp_sink_0 \ + audiotestsrc <span class="gtkdoc opt">!</span> amrnbenc <span class="gtkdoc opt">!</span> rtpamrpay <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>send_rtp_sink_1 \ + rtpbin<span class="gtkdoc opt">.</span>send_rtp_src_1 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5002</span> \ + rtpbin<span class="gtkdoc opt">.</span>send_rtcp_src_1 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5003</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span> \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5007</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtcp_sink_1</pre></td> + </tr> + </tbody> + </table> +</div> + Encode and payload H263 video captured from a v4l2src. Encode and payload AMR +audio generated from audiotestsrc. The video is sent to session 0 in rtpbin +and the audio is sent to session 1. Video packets are sent on UDP port 5000 +and audio packets on port 5002. The video RTCP packets for session 0 are sent +on port 5001 and the audio RTCP packets for session 0 are sent on port 5003. +RTCP packets for session 0 are received on port 5005 and RTCP for session 1 +is received on port 5007. Since RTCP packets from the sender should be sent +as soon as possible and do not participate in preroll, sync=false and +async=false is configured on udpsink +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v rtpbin name<span class="gtkdoc opt">=</span>rtpbin \ + udpsrc caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998"</span> \ + port<span class="gtkdoc opt">=</span><span class="number">5000</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtp_sink_0 \ + rtpbin<span class="gtkdoc opt">. !</span> rtph263pdepay <span class="gtkdoc opt">!</span> ffdec_h263 <span class="gtkdoc opt">!</span> xvimagesink \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5001</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtcp_sink_0 \ + rtpbin<span class="gtkdoc opt">.</span>send_rtcp_src_0 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5005</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span> \ + udpsrc caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)AMR,encoding-params=(string)1,octet-align=(string)1"</span> \ + port<span class="gtkdoc opt">=</span><span class="number">5002</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtp_sink_1 \ + rtpbin<span class="gtkdoc opt">. !</span> rtpamrdepay <span class="gtkdoc opt">!</span> amrnbdec <span class="gtkdoc opt">!</span> alsasink \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5003</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtcp_sink_1 \ + rtpbin<span class="gtkdoc opt">.</span>send_rtcp_src_1 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5007</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td> + </tr> + </tbody> + </table> +</div> + Receive H263 on port 5000, send it through rtpbin in session 0, depayload, +decode and display the video. +Receive AMR on port 5002, send it through rtpbin in session 1, depayload, +decode and play the audio. +Receive server RTCP packets for session 0 on port 5001 and RTCP packets for +session 1 on port 5003. These packets will be used for session management and +synchronisation. +Send RTCP reports for session 0 on port 5005 and RTCP reports for session 1 +on port 5007. +</div> +<p> +</p> +<p> +Last reviewed on 2007-08-30 (0.10.6) +</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp19980688"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp20616976"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -129,9 +279,12 @@ GstRtpBin implements </div> <hr> <div class="refsect2"> -<a name="idp20094640"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp20624432"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -151,8 +304,11 @@ GstRtpBin implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -172,8 +328,11 @@ GstRtpBin implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -193,8 +352,11 @@ GstRtpBin implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -214,8 +376,11 @@ GstRtpBin implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -235,8 +400,11 @@ GstRtpBin implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -358,8 +526,11 @@ GstRtpBin implements Clear all previously cached pt-mapping obtained with <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -381,8 +552,11 @@ Clear all previously cached pt-mapping obtained with <p> Request the internal RTPSession object as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> in session <em class="parameter"><code>id</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -409,8 +583,11 @@ Request the internal RTPSession object as <a href="http://library.gnome.org/deve <p> Notify of an SSRC that became inactive because of a BYE packet. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -441,8 +618,11 @@ Notify of an SSRC that became inactive because of a BYE packet. <p> Notify of an SSRC that has timed out because of BYE </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -473,8 +653,11 @@ Notify of an SSRC that has timed out because of BYE <p> Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -505,8 +688,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em <p> Notify that SSRC sender has sent data up to the configured NPT stop time. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -537,8 +723,11 @@ Notify that SSRC sender has sent data up to the configured NPT stop time. <p> Notify of a sender SSRC that has timed out and became a receiver </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -569,8 +758,11 @@ Notify of a sender SSRC that has timed out and became a receiver <p> Notify of a SSRC that is active, i.e., sending RTCP. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -601,8 +793,11 @@ Notify of a SSRC that is active, i.e., sending RTCP. <p> Notify when we have an SSRC collision </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -633,8 +828,11 @@ Notify when we have an SSRC collision <p> Notify of a SSRC that is active, i.e., sending RTCP. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -665,8 +863,11 @@ Notify of a SSRC that is active, i.e., sending RTCP. <p> Notify of a new SSRC that became validated. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -697,8 +898,11 @@ Notify of a new SSRC that became validated. <p> Notify of an SSRC that has timed out </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -729,8 +933,11 @@ Notify of an SSRC that has timed out <p> Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> in <em class="parameter"><code>session</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -760,8 +967,11 @@ Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/g Reset all currently configured lip-sync parameters and require new SR packets for all streams before lip-sync is attempted again. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -784,8 +994,11 @@ packets for all streams before lip-sync is attempted again. <p> Signal that the current payload type changed to <em class="parameter"><code>pt</code></em> in <em class="parameter"><code>session</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -808,6 +1021,10 @@ Signal that the current payload type changed to <em class="parameter"><code>pt</ <p class="since">Since 0.10.17</p> </div> </div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbin.see-also"></a><h2>See Also</h2> +rtpjitterbuffer, rtpsession, rtpptdemux, rtpssrcdemux +</div> </div> <div class="footer"> <hr> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html new file mode 100644 index 0000000000000000000000000000000000000000..03e476550184b22c97ba491485cb5c8f194632b5 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html @@ -0,0 +1,150 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpbvdepay</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay"> +<link rel="next" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpamrpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpbvdepay.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpbvdepay.description" class="shortcut">Description</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpbvdepay"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpbvdepay.top_of_page"></a>rtpbvdepay</span></h2> +<p>rtpbvdepay — Extracts BroadcomVoice audio from RTP packets (RFC 4298)</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpbvdepay.synopsis"></a><h2>Synopsis</h2> +<pre class="synopsis"></pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvdepay.description"></a><h2>Description</h2> +<p> +Extract BroadcomVoice audio from RTP packets according to RFC 4298. +For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt +</p> +<p> +Last reviewed on 2013-04-25 (1.1.0) +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp13216624"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Wim Taymans <wim.taymans@collabora.co.uk></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Depayloader/Network/RTP</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp18808064"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)BV16</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)BV32</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-bv, mode=(int){ 16, 32 }</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvdepay.details"></a><h2>Details</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvdepay.see-also"></a><h2>See Also</h2> +rtpbvpay +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html new file mode 100644 index 0000000000000000000000000000000000000000..2e5af86e799bd162acdfe83bd5c7f857f50f93b6 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html @@ -0,0 +1,150 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpbvpay</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay"> +<link rel="next" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbvdepay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpbvpay.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpbvpay.description" class="shortcut">Description</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpbvpay"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpbvpay.top_of_page"></a>rtpbvpay</span></h2> +<p>rtpbvpay — Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpbvpay.synopsis"></a><h2>Synopsis</h2> +<pre class="synopsis"></pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvpay.description"></a><h2>Description</h2> +<p> +Payload BroadcomVoice audio into RTP packets according to RFC 4298. +For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt +</p> +<p> +Last reviewed on 2013-04-25 (1.1.0) +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp18820528"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Wim Taymans <wim.taymans@collabora.co.uk></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Payloader/Network/RTP</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp13365888"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-bv, mode=(int){ 16, 32 }</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)BV16</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)BV32</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvpay.details"></a><h2>Details</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvpay.see-also"></a><h2>See Also</h2> +rtpbvdepay +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html index 2fd9b75b95907381edad86e5ec1d9183dc700f05..2271c37468a5d7de578c92ef2135d1875b36782b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html @@ -3,11 +3,11 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtpdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-rippletv.html" title="rippletv"> -<link rel="next" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay"> +<link rel="next" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -18,7 +18,7 @@ <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3depay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#gst-plugins-good-plugins-rtpdec.synopsis" class="shortcut">Top</a> @@ -87,9 +87,12 @@ Last reviewed on 2006-06-20 (0.10.4) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16028448"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp12935072"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -110,9 +113,12 @@ Last reviewed on 2006-06-20 (0.10.4) </div> <hr> <div class="refsect2"> -<a name="idp17396624"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp14688224"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -132,8 +138,11 @@ Last reviewed on 2006-06-20 (0.10.4) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -153,8 +162,11 @@ Last reviewed on 2006-06-20 (0.10.4) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -174,8 +186,11 @@ Last reviewed on 2006-06-20 (0.10.4) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -233,8 +248,11 @@ Last reviewed on 2006-06-20 (0.10.4) <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstrtpdec</code></em> :</span></p></td> @@ -257,8 +275,11 @@ Last reviewed on 2006-06-20 (0.10.4) <p> Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> in <em class="parameter"><code>session</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpdec</code></em> :</span></p></td> @@ -289,8 +310,11 @@ Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/g <p> Notify of an SSRC that became inactive because of a BYE packet. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -321,8 +345,11 @@ Notify of an SSRC that became inactive because of a BYE packet. <p> Notify of an SSRC that has timed out because of BYE </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -353,8 +380,11 @@ Notify of an SSRC that has timed out because of BYE <p> Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> @@ -384,8 +414,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstrtpdec</code></em> :</span></p></td> @@ -407,8 +440,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstrtpdec</code></em> :</span></p></td> @@ -431,8 +467,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em <p> Notify of an SSRC that has timed out </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html new file mode 100644 index 0000000000000000000000000000000000000000..601e5c54b44f997bc134e7bda36fa950df49a0c1 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html @@ -0,0 +1,195 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpdtmfmux</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin"> +<link rel="next" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpdtmfmux.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpdtmfmux.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy" class="shortcut">Object Hierarchy</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpdtmfmux"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpdtmfmux.top_of_page"></a>rtpdtmfmux</span></h2> +<p>rtpdtmfmux — mixes RTP DTMF streams into other RTP streams</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpdtmfmux.synopsis"></a><h2>Synopsis</h2> +<a name="GstRTPDTMFMux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct" title="struct GstRTPDTMFMux">GstRTPDTMFMux</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux">GstRTPMux</a> + +----GstRTPDTMFMux +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfmux.description"></a><h2>Description</h2> +<p> +The RTP "DTMF" Muxer muxes multiple RTP streams into a valid RTP +stream. It does exactly what its parent (<span class="type">rtpmux</span>) does, except +that it prevent buffers coming over a regular sink_%<code class="literal">u</code> pad from going through +for the duration of buffers that came in a priority_sink_%<code class="literal">u</code> pad. +</p> +<p> +This is especially useful if a discontinuous source like dtmfsrc or +rtpdtmfsrc are connected to the priority sink pads. This way, the generated +DTMF signal can replace the recorded audio while the tone is being sent. +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp18793952"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Zeeshan Ali <first.last@nokia.com></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Muxer</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp15822704"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>priority_sink_%u</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>request</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink_%u</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>request</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfmux.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRTPDTMFMux-struct"></a><h3>struct GstRTPDTMFMux</h3> +<pre class="programlisting">struct GstRTPDTMFMux;</pre> +<p> +The opaque <a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux"><span class="type">GstRTPDTMFMux</span></a> structure. +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfmux.see-also"></a><h2>See Also</h2> +rtpdtmfsrc, dtmfsrc, rtpmux +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html new file mode 100644 index 0000000000000000000000000000000000000000..8d19e532bae8abc1a72c4176a83759f2e9bbb9a2 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html @@ -0,0 +1,315 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpdtmfsrc</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux"> +<link rel="next" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpdtmfsrc.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpdtmfsrc.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy" class="shortcut">Object Hierarchy</a> +  | + <a href="#gst-plugins-good-plugins-rtpdtmfsrc.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpdtmfsrc.top_of_page"></a>rtpdtmfsrc</span></h2> +<p>rtpdtmfsrc — Generates RTP DTMF packets</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.synopsis"></a><h2>Synopsis</h2> +<a name="GstRTPDTMFSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct" title="struct GstRTPDTMFSrc">GstRTPDTMFSrc</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + +----GstRTPDTMFSrc +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate" title='The "clock-rate" property'>clock-rate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy" title='The "packet-redundancy" property'>packet-redundancy</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--pt" title='The "pt" property'>pt</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum" title='The "seqnum" property'>seqnum</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read + "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum-offset" title='The "seqnum-offset" property'>seqnum-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc" title='The "ssrc" property'>ssrc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp" title='The "timestamp" property'>timestamp</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read + "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.description"></a><h2>Description</h2> +<p> +The RTPDTMFSrc element generates RTP DTMF (RFC 2833) event packets on request +from application. The application communicates the beginning and end of a +DTMF event using custom upstream gstreamer events. To report a DTMF event, an +application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a +structure of name "dtmf-event" with fields set according to the following +table: +</p> +<p> +</p> +<div class="informaltable"><table border="1"> +<colgroup> +<col class="Name"> +<col class="Type"> +<col class="Possible values"> +<col class="Purpose"> +</colgroup> +<thead><tr> +<th>Name</th> +<th>GType</th> +<th>Possible values</th> +<th>Purpose</th> +</tr></thead> +<tbody> +<tr> +<td>type</td> +<td>G_TYPE_INT</td> +<td>0-1</td> +<td>The application uses this field to specify which of the two methods +specified in RFC 2833 to use. The value should be 0 for tones and 1 for +named events. Tones are specified by their frequencies and events are specied +by their number. This element can only take events as input. Do not confuse +with "method" which specified the output. +</td> +</tr> +<tr> +<td>number</td> +<td>G_TYPE_INT</td> +<td>0-15</td> +<td>The event number.</td> +</tr> +<tr> +<td>volume</td> +<td>G_TYPE_INT</td> +<td>0-36</td> +<td>This field describes the power level of the tone, expressed in dBm0 +after dropping the sign. Power levels range from 0 to -63 dBm0. The range of +valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE. +</td> +</tr> +<tr> +<td>start</td> +<td>G_TYPE_BOOLEAN</td> +<td>True or False</td> +<td>Whether the event is starting or ending.</td> +</tr> +<tr> +<td>method</td> +<td>G_TYPE_INT</td> +<td>1</td> +<td>The method used for sending event, this element will react if this +field is absent or 1. +</td> +</tr> +</tbody> +</table></div> +<p> +</p> +<p> +For example, the following code informs the pipeline (and in turn, the +RTPDTMFSrc element inside the pipeline) about the start of an RTP DTMF named +event '1' of volume -25 dBm0: +</p> +<p> +</p> +<pre class="programlisting"> +structure = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, + "number", G_TYPE_INT, 1, + "volume", G_TYPE_INT, 25, + "start", G_TYPE_BOOLEAN, TRUE, NULL); + +event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure); +gst_element_send_event (pipeline, event); +</pre> +<p> +</p> +<p> +When a DTMF tone actually starts or stop, a "dtmf-event-processed" +element <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> with the same fields as the "dtmf-event" +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> that was used to request the event. Also, if any event +has not been processed when the element goes from the PAUSED to the +READY state, then a "dtmf-event-dropped" message is posted on the +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> in the order that they were received. +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp18258736"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-dtmf.html#plugin-dtmf">dtmf</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Zeeshan Ali <zeeshan.ali@nokia.com></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Source/Network</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp15822960"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRTPDTMFSrc-struct"></a><h3>struct GstRTPDTMFSrc</h3> +<pre class="programlisting">struct GstRTPDTMFSrc;</pre> +<p> +The opaque <a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc"><span class="type">GstRTPDTMFSrc</span></a> data structure. +</p> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody></tbody> +</table></div> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="GstRTPDTMFSrc--clock-rate"></a><h3>The <code class="literal">"clock-rate"</code> property</h3> +<pre class="programlisting"> "clock-rate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<p>The clock-rate at which to generate the dtmf packets.</p> +<p>Default value: 8000</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPDTMFSrc--packet-redundancy"></a><h3>The <code class="literal">"packet-redundancy"</code> property</h3> +<pre class="programlisting"> "packet-redundancy" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<p>Number of packets to send to indicate start and stop dtmf events.</p> +<p>Allowed values: [1,5]</p> +<p>Default value: 1</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPDTMFSrc--pt"></a><h3>The <code class="literal">"pt"</code> property</h3> +<pre class="programlisting"> "pt" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<p>The payload type of the packets.</p> +<p>Allowed values: <= 128</p> +<p>Default value: 96</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPDTMFSrc--seqnum"></a><h3>The <code class="literal">"seqnum"</code> property</h3> +<pre class="programlisting"> "seqnum" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> +<p>The RTP sequence number of the last processed packet.</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPDTMFSrc--seqnum-offset"></a><h3>The <code class="literal">"seqnum-offset"</code> property</h3> +<pre class="programlisting"> "seqnum-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<p>Offset to add to all outgoing seqnum (-1 = random).</p> +<p>Allowed values: >= G_MAXULONG</p> +<p>Default value: -1</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPDTMFSrc--ssrc"></a><h3>The <code class="literal">"ssrc"</code> property</h3> +<pre class="programlisting"> "ssrc" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<p>The SSRC of the packets (-1 == random).</p> +<p>Default value: 4294967295</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPDTMFSrc--timestamp"></a><h3>The <code class="literal">"timestamp"</code> property</h3> +<pre class="programlisting"> "timestamp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> +<p>The RTP timestamp of the last processed packet.</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPDTMFSrc--timestamp-offset"></a><h3>The <code class="literal">"timestamp-offset"</code> property</h3> +<pre class="programlisting"> "timestamp-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<p>Offset to add to all outgoing timestamps (-1 = random).</p> +<p>Allowed values: >= G_MAXULONG</p> +<p>Default value: -1</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.see-also"></a><h2>See Also</h2> +dtmfsrc, rtpdtmfdepay, rtpdtmfmux +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html index ee9ea00c19cfb2023d4b7c89c5203b132db5b7cc..dd78c6c2283d1212f4c156f95774ca069fb46eb6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html @@ -3,10 +3,10 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtpj2kpay</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec"> +<link rel="prev" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay"> <link rel="next" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> @@ -14,7 +14,7 @@ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> <tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> @@ -75,9 +75,12 @@ codestream. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14138448"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp14631712"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -98,9 +101,12 @@ codestream. </div> <hr> <div class="refsect2"> -<a name="idp17483024"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp20087776"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -120,8 +126,11 @@ codestream. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html index 8481fe804e2e0b702817bb4e1f3d4af549cb8b2c..70a3926099ff4bf1f1cd27c7b5a94ffef925b563 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html @@ -3,22 +3,22 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtpjitterbuffer</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin"> -<link rel="next" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux"> +<link rel="prev" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc"> +<link rel="next" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> <tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#gst-plugins-good-plugins-rtpjitterbuffer.synopsis" class="shortcut">Top</a> @@ -82,9 +82,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp18253936"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp19576432"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -105,9 +108,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp18216176"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp19638416"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -127,8 +133,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -148,8 +157,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -239,8 +251,11 @@ Opaque jitterbuffer structure. Invalidate the clock-rate as obtained with the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a> signal. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> @@ -262,8 +277,11 @@ Invalidate the clock-rate as obtained with the <p> Be notified of new sync values. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> @@ -289,8 +307,11 @@ Be notified of new sync values. Signal that the jitterbufer has pushed the RTP packet that corresponds to the npt-stop position. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> @@ -312,8 +333,11 @@ the npt-stop position. <p> Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> @@ -341,8 +365,11 @@ Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/g Start pushing out packets with the given base time. This signal is only useful in buffering mode. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html index 2c0ee849e2be78b1501fbc412e295334f99ff41e..cef8b45f6dc907a398a0d02780879f6ad479953f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html @@ -3,11 +3,11 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtpjpegpay</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay"> -<link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc"> +<link rel="next" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -18,7 +18,7 @@ <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtspsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#gst-plugins-good-plugins-rtpjpegpay.synopsis" class="shortcut">Top</a> @@ -80,9 +80,12 @@ The payloader assumes that correct width and height is found in the caps. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp11320240"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp19904880"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -103,9 +106,12 @@ The payloader assumes that correct width and height is found in the caps. </div> <hr> <div class="refsect2"> -<a name="idp16802592"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp12353120"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -129,8 +135,11 @@ The payloader assumes that correct width and height is found in the caps. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -146,7 +155,7 @@ The payloader assumes that correct width and height is found in the caps. </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG</td> +<td>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG, width=(int)[ 1, 65536 ], height=(int)[ 1, 65536 ]</td> </tr> </tbody> </table></div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html new file mode 100644 index 0000000000000000000000000000000000000000..fe176c9ce097635e61ae1d06805f3a78e5338689 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html @@ -0,0 +1,241 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpmux</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer"> +<link rel="next" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpmux.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpmux.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpmux.object-hierarchy" class="shortcut">Object Hierarchy</a> +  | + <a href="#gst-plugins-good-plugins-rtpmux.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpmux"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpmux.top_of_page"></a>rtpmux</span></h2> +<p>rtpmux — multiplex N rtp streams into one</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpmux.synopsis"></a><h2>Synopsis</h2> +<a name="GstRTPMux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct" title="struct GstRTPMux">GstRTPMux</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpmux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----GstRTPMux + +----<a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux">GstRTPDTMFMux</a> +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpmux.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum" title='The "seqnum" property'>seqnum</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read + "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset" title='The "seqnum-offset" property'>seqnum-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc" title='The "ssrc" property'>ssrc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpmux.description"></a><h2>Description</h2> +<p> +The rtp muxer takes multiple RTP streams having the same clock-rate and +muxes into a single stream with a single SSRC. +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp16057568"></a><h3>Example pipelines</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1 +2 +3 +4 +5 +6</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch rtpmux name<span class="gtkdoc opt">=</span>mux <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="number">127.0.0.1</span> port<span class="gtkdoc opt">=</span><span class="number">8888</span> \ + alsasrc <span class="gtkdoc opt">!</span> alawenc <span class="gtkdoc opt">!</span> rtppcmapay <span class="gtkdoc opt">!</span> \ + application<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>rtp<span class="gtkdoc opt">,</span> payload<span class="gtkdoc opt">=</span><span class="number">8</span><span class="gtkdoc opt">,</span> rate<span class="gtkdoc opt">=</span><span class="number">8000</span> <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span>sink_0 \ + audiotestsrc is<span class="gtkdoc opt">-</span>live<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> \ + mulawenc <span class="gtkdoc opt">!</span> rtppcmupay <span class="gtkdoc opt">!</span> \ + application<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>rtp<span class="gtkdoc opt">,</span> payload<span class="gtkdoc opt">=</span><span class="number">0</span><span class="gtkdoc opt">,</span> rate<span class="gtkdoc opt">=</span><span class="number">8000</span> <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span>sink_1</pre></td> + </tr> + </tbody> + </table> +</div> + +In this example, an audio stream is captured from ALSA and another is +generated, both are encoded into different payload types and muxed together +so they can be sent on the same port. +</div> +<p> +</p> +<p> +Last reviewed on 2010-09-30 (0.10.21) +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp20164288"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Zeeshan Ali <first.last@nokia.com></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Muxer</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp14784768"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink_%u</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>request</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpmux.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRTPMux-struct"></a><h3>struct GstRTPMux</h3> +<pre class="programlisting">struct GstRTPMux;</pre> +<p> +The opaque <a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux"><span class="type">GstRTPMux</span></a> structure. +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpmux.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="GstRTPMux--seqnum"></a><h3>The <code class="literal">"seqnum"</code> property</h3> +<pre class="programlisting"> "seqnum" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> +<p>The RTP sequence number of the last processed packet.</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPMux--seqnum-offset"></a><h3>The <code class="literal">"seqnum-offset"</code> property</h3> +<pre class="programlisting"> "seqnum-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<p>Offset to add to all outgoing seqnum (-1 = random).</p> +<p>Allowed values: >= G_MAXULONG</p> +<p>Default value: -1</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPMux--ssrc"></a><h3>The <code class="literal">"ssrc"</code> property</h3> +<pre class="programlisting"> "ssrc" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<p>The SSRC of the packets (-1 == random).</p> +<p>Default value: 4294967295</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTPMux--timestamp-offset"></a><h3>The <code class="literal">"timestamp-offset"</code> property</h3> +<pre class="programlisting"> "timestamp-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<p>Offset to add to all outgoing timestamps (-1 = random).</p> +<p>Allowed values: >= G_MAXULONG</p> +<p>Default value: -1</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpmux.see-also"></a><h2>See Also</h2> +rtpdtmfmux +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html index bbf088d740f22d7378f06a79e781bf32f749fa63..04296620c77286b2304e86b795a6726b3f10fa28 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html @@ -3,10 +3,10 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtpptdemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer"> +<link rel="prev" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux"> <link rel="next" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> @@ -14,7 +14,7 @@ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> <tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> @@ -68,9 +68,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp17391040"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp18704016"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -91,9 +94,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp15660240"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp16942048"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -113,8 +119,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -158,8 +167,11 @@ The application can call this signal to instruct the element to discard the currently cached payload type map. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> @@ -182,8 +194,11 @@ currently cached payload type map. <p> Emited when a new payload type pad has been created in <em class="parameter"><code>demux</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> @@ -213,8 +228,11 @@ Emited when a new payload type pad has been created in <em class="parameter"><co <p> Emited when the payload type changed. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> @@ -240,8 +258,11 @@ Emited when the payload type changed. <p> Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html new file mode 100644 index 0000000000000000000000000000000000000000..e5ff1117ece18e016ccc1acc68fa00cd58517b8d --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html @@ -0,0 +1,173 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>rtpsbcpay</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay"> +<link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtspsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-rtpsbcpay.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-rtpsbcpay.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-rtpsbcpay.object-hierarchy" class="shortcut">Object Hierarchy</a> +  | + <a href="#gst-plugins-good-plugins-rtpsbcpay.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtpsbcpay"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpsbcpay.top_of_page"></a>rtpsbcpay</span></h2> +<p>rtpsbcpay — Payload SBC audio as RTP packets</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-rtpsbcpay.synopsis"></a><h2>Synopsis</h2> +<a name="GstRtpSBCPay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct" title="struct GstRtpSBCPay">GstRtpSBCPay</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsbcpay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + +----GstRtpSBCPay +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsbcpay.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames" title='The "min-frames" property'>min-frames</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsbcpay.description"></a><h2>Description</h2> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp20126432"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Thiago Sousa Santos <thiagoss@lcc.ufcg.edu.br></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Payloader/Network</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp15466496"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-sbc, rate=(int){ 16000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], channel-mode=(string){ mono, dual, stereo, joint }, blocks=(int){ 4, 8, 12, 16 }, subbands=(int){ 4, 8 }, allocation-method=(string){ snr, loudness }, bitpool=(int)[ 2, 64 ]</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 16000, 32000, 44100, 48000 }, encoding-name=(string)SBC</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsbcpay.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstRtpSBCPay-struct"></a><h3>struct GstRtpSBCPay</h3> +<pre class="programlisting">struct GstRtpSBCPay;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsbcpay.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="GstRtpSBCPay--min-frames"></a><h3>The <code class="literal">"min-frames"</code> property</h3> +<pre class="programlisting"> "min-frames" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<p>Minimum quantity of frames to send in one packet (-1 for maximum allowed by the mtu).</p> +<p>Allowed values: >= G_MAXULONG</p> +<p>Default value: 0</p> +</div> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html index 37ca16c7e11cceb4c89ef2f0b988b511817c8b9a..e843158f3e7d154e389d4238c2eba10399ec3a5b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtpsession</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux"> @@ -94,9 +94,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15770464"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp19928160"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -117,9 +120,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp19111504"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp17619760"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -139,8 +145,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -160,8 +169,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -181,8 +193,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -202,8 +217,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -223,8 +241,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -244,8 +265,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -376,8 +400,11 @@ <p> Clear the cached pt-maps requested with <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> @@ -399,8 +426,11 @@ Clear the cached pt-maps requested with <a class="link" href="gst-plugins-good-p <p> Notify of an SSRC that became inactive because of a BYE packet. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> @@ -426,8 +456,11 @@ Notify of an SSRC that became inactive because of a BYE packet. <p> Notify of an SSRC that has timed out because of BYE </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> @@ -453,8 +486,11 @@ Notify of an SSRC that has timed out because of BYE <p> Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> @@ -480,8 +516,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em <p> Notify of a sender SSRC that has timed out and became a receiver </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> @@ -506,8 +545,11 @@ Notify of a sender SSRC that has timed out and became a receiver <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstrtpsession</code></em> :</span></p></td> @@ -528,8 +570,11 @@ Notify of a sender SSRC that has timed out and became a receiver <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstrtpsession</code></em> :</span></p></td> @@ -551,8 +596,11 @@ Notify of a sender SSRC that has timed out and became a receiver <p> Notify that a new SDES was received for SSRC. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> @@ -577,8 +625,11 @@ Notify that a new SDES was received for SSRC. <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstrtpsession</code></em> :</span></p></td> @@ -600,8 +651,11 @@ Notify that a new SDES was received for SSRC. <p> Notify of an SSRC that has timed out </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> @@ -627,8 +681,11 @@ Notify of an SSRC that has timed out <p> Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html index 4c9b8766ddc8edbfc18fed41bac5ae59d8bcaaf9..78f4a530fa57e4104d55414cbf3a221cb3af7ea2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html @@ -3,11 +3,11 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtpssrcdemux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession"> -<link rel="next" href="gst-plugins-good-plugins-shagadelictv.html" title="shagadelictv"> +<link rel="next" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -18,7 +18,7 @@ <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-shagadelictv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-sbcparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#gst-plugins-good-plugins-rtpssrcdemux.synopsis" class="shortcut">Top</a> @@ -67,9 +67,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp18910240"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp20646592"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -90,9 +93,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp19110160"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp5489984"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -112,8 +118,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -133,8 +142,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -154,8 +166,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -199,8 +214,11 @@ <p> Action signal to remove the pad for SSRC. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> @@ -227,8 +245,11 @@ Action signal to remove the pad for SSRC. <p> Emited when a new SSRC pad has been created. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> @@ -259,8 +280,11 @@ Emited when a new SSRC pad has been created. <p> Emited when a SSRC pad has been removed. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html index 86be71bd6efdb1d335a6611a1817de3689271972..cce478cd6f7ce3632d7759d9c9efdec4d61a9671 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html @@ -3,10 +3,10 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rtspsrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay"> +<link rel="prev" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay"> <link rel="next" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> @@ -14,7 +14,7 @@ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> <tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> @@ -30,6 +30,8 @@ <a href="#gst-plugins-good-plugins-rtspsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a>  | <a href="#gst-plugins-good-plugins-rtspsrc.properties" class="shortcut">Properties</a> +  | + <a href="#gst-plugins-good-plugins-rtspsrc.signals" class="shortcut">Signals</a> </td></tr> </table> <div class="refentry"> @@ -87,6 +89,20 @@ GstRTSPSrc implements "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive" title='The "do-rtsp-keep-alive" property'>do-rtsp-keep-alive</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency" title='The "drop-on-latency" property'>drop-on-latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation" title='The "probation" property'>probation</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect" title='The "udp-reconnect" property'>udp-reconnect</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id" title='The "proxy-id" property'>proxy-id</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw" title='The "proxy-pw" property'>proxy-pw</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface" title='The "multicast-iface" property'>multicast-iface</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync" title='The "ntp-sync" property'>ntp-sync</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock" title='The "use-pipeline-clock" property'>use-pipeline-clock</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtspsrc.signals"></a><h2>Signals</h2> +<pre class="synopsis"> + "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request" title='The "handle-request" signal'>handle-request</a>" + "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp" title='The "on-sdp" signal'>on-sdp</a>" + "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream" title='The "select-stream" signal'>select-stream</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a> </pre> </div> <div class="refsect1"> @@ -122,7 +138,7 @@ PLAYING state. <p> </p> <div class="refsect2"> -<a name="idp17985952"></a><h3>Example launch line</h3> +<a name="idp20040016"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -144,9 +160,12 @@ Last reviewed on 2006-08-18 (0.10.5) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp17881296"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp20069504"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -167,9 +186,12 @@ Last reviewed on 2006-08-18 (0.10.5) </div> <hr> <div class="refsect2"> -<a name="idp17473664"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp20207648"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -359,6 +381,181 @@ Last reviewed on 2006-08-18 (0.10.5) <p>Consecutive packet sequence numbers to accept the source.</p> <p>Default value: 2</p> </div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc--udp-reconnect"></a><h3>The <code class="literal">"udp-reconnect"</code> property</h3> +<pre class="programlisting"> "udp-reconnect" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<p>Reconnect to the server if RTSP connection is closed when doing UDP.</p> +<p>Default value: TRUE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc--proxy-id"></a><h3>The <code class="literal">"proxy-id"</code> property</h3> +<pre class="programlisting"> "proxy-id" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<p>HTTP proxy URI user id for authentication.</p> +<p>Default value: ""</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc--proxy-pw"></a><h3>The <code class="literal">"proxy-pw"</code> property</h3> +<pre class="programlisting"> "proxy-pw" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<p>HTTP proxy URI user password for authentication.</p> +<p>Default value: ""</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc--multicast-iface"></a><h3>The <code class="literal">"multicast-iface"</code> property</h3> +<pre class="programlisting"> "multicast-iface" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<p>The network interface on which to join the multicast group.</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc--ntp-sync"></a><h3>The <code class="literal">"ntp-sync"</code> property</h3> +<pre class="programlisting"> "ntp-sync" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<p>Synchronize received streams to the NTP clock.</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc--use-pipeline-clock"></a><h3>The <code class="literal">"use-pipeline-clock"</code> property</h3> +<pre class="programlisting"> "use-pipeline-clock" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<p>Use the pipeline running-time to set the NTP time in the RTCP SR messages.</p> +<p>Default value: FALSE</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtspsrc.signal-details"></a><h2>Signal Details</h2> +<div class="refsect2"> +<a name="GstRTSPSrc-handle-request"></a><h3>The <code class="literal">"handle-request"</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> request, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> response, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p> +Handle a server request in <em class="parameter"><code>request</code></em> and prepare <em class="parameter"><code>response</code></em>. +</p> +<p> +This signal is called from the streaming thread, you should therefore not +do any state changes on <em class="parameter"><code>rtspsrc</code></em> because this might deadlock. If you want +to modify the state as a result of this signal, post a +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS"><span class="type">GST_MESSAGE_REQUEST_STATE</span></a> message on the bus or signal the main thread +in some other way. +</p> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>rtspsrc</code></em> :</span></p></td> +<td>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>request</code></em> :</span></p></td> +<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>response</code></em> :</span></p></td> +<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> +<td>user data set when the signal handler was connected.</td> +</tr> +</tbody> +</table></div> +<p class="since">Since 1.2</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc-on-sdp"></a><h3>The <code class="literal">"on-sdp"</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"><span class="type">GstSDPMessage</span></a> *sdp, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p> +Emited when the client has retrieved the SDP and before it configures the +streams in the SDP. <em class="parameter"><code>sdp</code></em> can be inspected and modified. +</p> +<p> +This signal is called from the streaming thread, you should therefore not +do any state changes on <em class="parameter"><code>rtspsrc</code></em> because this might deadlock. If you want +to modify the state as a result of this signal, post a +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS"><span class="type">GST_MESSAGE_REQUEST_STATE</span></a> message on the bus or signal the main thread +in some other way. +</p> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>rtspsrc</code></em> :</span></p></td> +<td>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>sdp</code></em> :</span></p></td> +<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"><span class="type">GstSDPMessage</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> +<td>user data set when the signal handler was connected.</td> +</tr> +</tbody> +</table></div> +<p class="since">Since 1.2</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc-select-stream"></a><h3>The <code class="literal">"select-stream"</code> signal</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre> +<p> +Emited before the client decides to configure the stream <em class="parameter"><code>num</code></em> with +<em class="parameter"><code>caps</code></em>. +</p> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>rtspsrc</code></em> :</span></p></td> +<td>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td> +<td>the stream number</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td> +<td>the stream caps</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> +<td>user data set when the signal handler was connected.</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the stream should be selected, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when the stream +is to be ignored.</td> +</tr> +</tbody> +</table></div> +<p class="since">Since 1.2</p> +</div> </div> </div> <div class="footer"> diff --git a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html new file mode 100644 index 0000000000000000000000000000000000000000..0c8909f50ac65e9b6b546fb34abcf758c7039c3a --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html @@ -0,0 +1,163 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>sbcparse</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux"> +<link rel="next" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpssrcdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-scaletempo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-sbcparse.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-sbcparse.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-sbcparse.object-hierarchy" class="shortcut">Object Hierarchy</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-sbcparse"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-sbcparse.top_of_page"></a>sbcparse</span></h2> +<p>sbcparse — Parses an SBC bluetooth audio stream</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-sbcparse.synopsis"></a><h2>Synopsis</h2> +<a name="GstSbcParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct" title="struct GstSbcParse">GstSbcParse</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-sbcparse.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> + +----GstSbcParse +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-sbcparse.description"></a><h2>Description</h2> +<p> +The sbcparse element will parse a bluetooth SBC audio stream into +frames and timestamp them properly. +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp21845472"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + audioparsers + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Tim-Philipp Müller <tim.muller@collabora.co.uk></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec/Parser/Audio</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp5823488"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-sbc</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-sbc, parsed=(boolean)true, channels=(int)[ 1, 2 ], rate=(int){ 16000, 32000, 44100, 48000 }</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-sbcparse.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstSbcParse-struct"></a><h3>struct GstSbcParse</h3> +<pre class="programlisting">struct GstSbcParse;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-sbcparse.see-also"></a><h2>See Also</h2> +sbcdec, sbcenc +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html new file mode 100644 index 0000000000000000000000000000000000000000..d46ab8020bfb5753b29d1929da8beea188d19534 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html @@ -0,0 +1,274 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>scaletempo</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> +<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> +<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse"> +<link rel="next" href="gst-plugins-good-plugins-shagadelictv.html" title="shagadelictv"> +<meta name="generator" content="GTK-Doc V1.18 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> +<tr valign="middle"> +<td><a accesskey="p" href="gst-plugins-good-plugins-sbcparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> +<td><a accesskey="n" href="gst-plugins-good-plugins-shagadelictv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#gst-plugins-good-plugins-scaletempo.synopsis" class="shortcut">Top</a> +  | + <a href="#gst-plugins-good-plugins-scaletempo.description" class="shortcut">Description</a> +  | + <a href="#gst-plugins-good-plugins-scaletempo.object-hierarchy" class="shortcut">Object Hierarchy</a> +  | + <a href="#gst-plugins-good-plugins-scaletempo.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-scaletempo"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-scaletempo.top_of_page"></a>scaletempo</span></h2> +<p>scaletempo — Sync audio tempo with playback rate</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="gst-plugins-good-plugins-scaletempo.synopsis"></a><h2>Synopsis</h2> +<a name="GstScaletempo"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct" title="struct GstScaletempo">GstScaletempo</a>; +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-scaletempo.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="synopsis"> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + +----GstScaletempo +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-scaletempo.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap" title='The "overlap" property'>overlap</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate" title='The "rate" property'>rate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read + "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search" title='The "search" property'>search</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride" title='The "stride" property'>stride</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-scaletempo.description"></a><h2>Description</h2> +<p> +Scale tempo while maintaining pitch +(WSOLA-like technique with cross correlation) +Inspired by SoundTouch library by Olli Parviainen +</p> +<p> +Use Sceletempo to apply playback rates without the chipmunk effect. +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp10147952"></a><h3>Example pipelines</h3> +<p> +</p> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1 +2 +3</pre></td> + <td class="listing_code"><pre class="programlisting">filesrc location<span class="gtkdoc opt">=</span>media<span class="gtkdoc opt">.</span>ext <span class="gtkdoc opt">!</span> decodebin name<span class="gtkdoc opt">=</span>d \ + d<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> scaletempo <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink \ + d<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td> + </tr> + </tbody> + </table> +</div> + +<p> +OR +</p> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1</pre></td> + <td class="listing_code"><pre class="programlisting">playbin uri<span class="gtkdoc opt">=...</span> audio_sink<span class="gtkdoc opt">=</span><span class="string">"scaletempo ! audioconvert ! audioresample ! autoaudiosink"</span></pre></td> + </tr> + </tbody> + </table> +</div> + +<p> +When an application sends a seek event with rate != 1.0, Scaletempo applies +the rate change by scaling the tempo without scaling the pitch. +</p> +<p> +Scaletempo works by producing audio in constant sized chunks +(<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride" title='The "stride" property'><span class="type">"stride"</span></a>) but consuming chunks proportional to the playback +rate. +</p> +<p> +Scaletempo then smooths the output by blending the end of one stride with +the next (<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap" title='The "overlap" property'><span class="type">"overlap"</span></a>). +</p> +<p> +Scaletempo smooths the overlap further by searching within the input buffer +for the best overlap position. Scaletempo uses a statistical cross +correlation (roughly a dot-product). Scaletempo consumes most of its CPU +cycles here. One can use the <a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search" title='The "search" property'><span class="type">"search"</span></a> propery to tune how far +the algoritm looks. +</p> +</div> +<p> +</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="idp18367216"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-audiofx.html#plugin-audiofx">audiofx</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Rov Juvano <rovjuvano@users.sourceforge.net></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Filter/Effect/Rate</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="idp12706064"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-raw, format=(string)F32LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>audio/x-raw, format=(string)F32LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-scaletempo.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="GstScaletempo-struct"></a><h3>struct GstScaletempo</h3> +<pre class="programlisting">struct GstScaletempo;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-scaletempo.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="GstScaletempo--overlap"></a><h3>The <code class="literal">"overlap"</code> property</h3> +<pre class="programlisting"> "overlap" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<p>Percentage of stride to overlap.</p> +<p>Allowed values: [0,1]</p> +<p>Default value: 0.2</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstScaletempo--rate"></a><h3>The <code class="literal">"rate"</code> property</h3> +<pre class="programlisting"> "rate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read</pre> +<p>Current playback rate.</p> +<p>Allowed values: [-2.14748e+09,2.14748e+09]</p> +<p>Default value: 1</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstScaletempo--search"></a><h3>The <code class="literal">"search"</code> property</h3> +<pre class="programlisting"> "search" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<p>Length in milliseconds to search for best overlap position.</p> +<p>Allowed values: <= 500</p> +<p>Default value: 14</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstScaletempo--stride"></a><h3>The <code class="literal">"stride"</code> property</h3> +<pre class="programlisting"> "stride" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<p>Length in milliseconds to output each stride.</p> +<p>Allowed values: [1,5000]</p> +<p>Default value: 30</p> +</div> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html index ad6b5cc2d8fa7240cc3c1e93757809bf31de230e..3dbc6dbe076e59bbf0a489bd800d959f3ef36954 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html @@ -3,10 +3,10 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>shagadelictv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux"> +<link rel="prev" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo"> <link rel="next" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> @@ -14,7 +14,7 @@ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> <tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpssrcdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-scaletempo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> @@ -62,7 +62,7 @@ Oh behave, ShagedelicTV makes images shagadelic! <p> </p> <div class="refsect2"> -<a name="idp17545888"></a><h3>Example launch line</h3> +<a name="idp12809520"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -80,9 +80,12 @@ Oh behave, ShagedelicTV makes images shagadelic! <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8801728"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp15318576"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -103,9 +106,12 @@ Oh behave, ShagedelicTV makes images shagadelic! </div> <hr> <div class="refsect2"> -<a name="idp18966656"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp16711568"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -125,8 +131,11 @@ Oh behave, ShagedelicTV makes images shagadelic! </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html index 7d623d82c0df17e4eea073b7059ebea5f91cde6f..49b79e9b20d30d2aae562400233800f070926da2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html +++ b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>shapewipe</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-shagadelictv.html" title="shagadelictv"> @@ -77,13 +77,13 @@ page. <p> </p> <div class="refsect2"> -<a name="idp15946928"></a><h3>Example launch line</h3> +<a name="idp19449664"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="listing_lines" align="right"><pre>1</pre></td> - <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=(</span>string<span class="gtkdoc opt">)</span>AYUV<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">640</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">480</span> <span class="gtkdoc opt">!</span> shapewipe position<span class="gtkdoc opt">=</span><span class="number">0.5</span> name<span class="gtkdoc opt">=</span>shape <span class="gtkdoc opt">!</span> videomixer name<span class="gtkdoc opt">=</span>mixer <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink filesrc location<span class="gtkdoc opt">=</span>mask<span class="gtkdoc opt">.</span>png <span class="gtkdoc opt">!</span> typefind <span class="gtkdoc opt">!</span> decodebin2 <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> shape<span class="gtkdoc opt">.</span>mask_sink videotestsrc pattern<span class="gtkdoc opt">=</span>snow <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=(</span>string<span class="gtkdoc opt">)</span>AYUV<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">640</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">480</span> <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> mixer<span class="gtkdoc opt">.</span></pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=</span>AYUV<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">640</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">480</span> <span class="gtkdoc opt">!</span> shapewipe position<span class="gtkdoc opt">=</span><span class="number">0.5</span> name<span class="gtkdoc opt">=</span>shape <span class="gtkdoc opt">!</span> videomixer name<span class="gtkdoc opt">=</span>mixer <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink filesrc location<span class="gtkdoc opt">=</span>mask<span class="gtkdoc opt">.</span>png <span class="gtkdoc opt">!</span> typefind <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> shape<span class="gtkdoc opt">.</span>mask_sink videotestsrc pattern<span class="gtkdoc opt">=</span>snow <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=</span>AYUV<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">640</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">480</span> <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> mixer<span class="gtkdoc opt">.</span></pre></td> </tr> </tbody> </table> @@ -95,9 +95,12 @@ page. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp18173456"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp13166800"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -118,9 +121,12 @@ page. </div> <hr> <div class="refsect2"> -<a name="idp16893152"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp16658832"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -144,8 +150,11 @@ page. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -165,8 +174,11 @@ page. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-smpte.html index 39e483f65273a7b8cb743f59784f493a9a27f5df..9772eb7c404d7139c811ffd2f01685b774b6c91c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-smpte.html +++ b/docs/plugins/html/gst-plugins-good-plugins-smpte.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>smpte</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe"> @@ -80,7 +80,7 @@ banding. <p> </p> <div class="refsect2"> -<a name="idp7715312"></a><h3>Sample pipelines</h3> +<a name="idp17804352"></a><h3>Sample pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -101,9 +101,12 @@ edges of the transition are smoothed with a 20000 big border. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16494912"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp20131088"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -124,9 +127,12 @@ edges of the transition are smoothed with a 20000 big border. </div> <hr> <div class="refsect2"> -<a name="idp20368032"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp18767456"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -146,8 +152,11 @@ edges of the transition are smoothed with a 20000 big border. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -167,8 +176,11 @@ edges of the transition are smoothed with a 20000 big border. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html index 8441007026cedf87a0916b030f04dc68e6a134c4..c5b8bd20c8be8ec1430857cc75b901d489bfd933 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html +++ b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>smptealpha</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-smpte.html" title="smpte"> @@ -87,7 +87,7 @@ avoid banding. <p> </p> <div class="refsect2"> -<a name="idp16071904"></a><h3>Sample pipelines</h3> +<a name="idp20486816"></a><h3>Sample pipelines</h3> <p> Here is a pipeline to demonstrate the smpte transition : </p> @@ -106,9 +106,12 @@ transparent image. The edges of the transition are smoothed with a <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp14168832"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp21775280"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -129,9 +132,12 @@ transparent image. The edges of the transition are smoothed with a </div> <hr> <div class="refsect2"> -<a name="idp17946560"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp19446880"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -175,8 +181,11 @@ transparent image. The edges of the transition are smoothed with a </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html index d6f0af59b259a247fdf8a7a57f993664eb6d82d5..bee9acbf13582897abe795109ae647c54b6bb162 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>souphttpsrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha"> @@ -91,9 +91,12 @@ GstSoupHTTPSrc implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp18084912"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp22749904"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -114,9 +117,12 @@ GstSoupHTTPSrc implements </div> <hr> <div class="refsect2"> -<a name="idp16583856"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp22084160"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html index 0b97fddcca2991e7b6eb27811efa169abc92a96a..b80775e5b47c5b5aa656874bb9eb8c640c509205 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html +++ b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>spectrum</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc"> @@ -81,7 +81,7 @@ by the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum- <p> The message's structure contains some combination of these fields: </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <code class="classname">"timestamp"</code>: @@ -126,13 +126,13 @@ The message's structure contains some combination of these fields: </p> <p> If <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel" title='The "multi-channel" property'><span class="type">"multi-channel"</span></a> property is set to true. magnitude and phase -fields will be each a nested <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html#GstValueArray"><span class="type">GstValueArray</span></a>. The first dimension are the +fields will be each a nested <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstControlSource.html#GstValueArray"><span class="type">GstValueArray</span></a>. The first dimension are the channels and the second dimension are the values. </p> <p> </p> <div class="refsect2"> -<a name="idp18246400"></a><h3>Example application</h3> +<a name="idp19280448"></a><h3>Example application</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -277,8 +277,8 @@ channels and the second dimension are the values. <span class="comment"> *</span> <span class="comment"> * You should have received a copy of the GNU Library General Public</span> <span class="comment"> * License along with this library; if not, write to the</span> -<span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span> -<span class="comment"> * Boston, MA 02111-1307, USA.</span> +<span class="comment"> * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span> +<span class="comment"> * Boston, MA 02110-1301, USA.</span> <span class="comment"> */</span> <span class="gtkdoc ppc">#include <stdio.h></span> @@ -399,9 +399,12 @@ Last reviewed on 2011-03-10 (0.10.29) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp18942304"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp18798464"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -422,9 +425,12 @@ Last reviewed on 2011-03-10 (0.10.29) </div> <hr> <div class="refsect2"> -<a name="idp20858976"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp16674192"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -444,8 +450,11 @@ Last reviewed on 2011-03-10 (0.10.29) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -528,21 +537,15 @@ Last reviewed on 2011-03-10 (0.10.29) <div class="refsect2"> <a name="GstSpectrum--post-messages"></a><h3>The <code class="literal">"post-messages"</code> property</h3> <pre class="programlisting"> "post-messages" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -Post messages on the bus with spectrum information. -</p> +<p>Whether to post a 'spectrum' element message on the bus for each passed interval.</p> <p>Default value: TRUE</p> -<p class="since">Since 0.10.17</p> </div> <hr> <div class="refsect2"> <a name="GstSpectrum--multi-channel"></a><h3>The <code class="literal">"multi-channel"</code> property</h3> <pre class="programlisting"> "multi-channel" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -Send separate results for each channel -</p> +<p>Send separate results for each channel.</p> <p>Default value: FALSE</p> -<p class="since">Since 0.10.29</p> </div> </div> </div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html index 84714614f75b3bbf48d6557973e83229204a5a90..b897bd7c5ae1a899f52fef60c6303de2b6e3fc92 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>speexdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-speexenc.html" title="speexenc"> @@ -66,9 +66,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp20449360"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp15659776"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -89,9 +92,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp22262960"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp15537584"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -111,8 +117,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html index 9a8ec3e749a945b0edc1ba15baf1f3e0ea1f126b..bf8585215fdf1c184126dc6c23d753af6e1c3e9f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>speexenc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-spectrum.html" title="spectrum"> @@ -83,9 +83,12 @@ GstSpeexEnc implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp20620160"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp17926832"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -106,9 +109,12 @@ GstSpeexEnc implements </div> <hr> <div class="refsect2"> -<a name="idp19950896"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp22422992"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -132,8 +138,11 @@ GstSpeexEnc implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html index f93df20e274a829324e8f2b128afded2596215fd..444adeed16cb4c0b989e85f4549c149b9cfa6e87 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>splitfilesrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-speexdec.html" title="speexdec"> @@ -85,7 +85,7 @@ directories). The results will be sorted. <p> </p> <div class="refsect2"> -<a name="idp21461856"></a><h3>Example launch lines</h3> +<a name="idp19158144"></a><h3>Example launch lines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -114,9 +114,12 @@ directories). The results will be sorted. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp13129296"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp21955568"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -137,9 +140,12 @@ directories). The results will be sorted. </div> <hr> <div class="refsect2"> -<a name="idp22299968"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp20463072"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html index 3501d1881ef4c555570e8ce5f116666c89e7cfc2..27960532ffd8e1601cc75b454eed0bdb057fbce0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>streaktv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc"> @@ -70,7 +70,7 @@ StreakTV makes after images of moving objects. <p> </p> <div class="refsect2"> -<a name="idp18916224"></a><h3>Example launch line</h3> +<a name="idp6328688"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -88,9 +88,12 @@ StreakTV makes after images of moving objects. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp13665040"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp5730240"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -111,9 +114,12 @@ StreakTV makes after images of moving objects. </div> <hr> <div class="refsect2"> -<a name="idp18850976"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp21689312"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -133,8 +139,11 @@ StreakTV makes after images of moving objects. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-taginject.html b/docs/plugins/html/gst-plugins-good-plugins-taginject.html index 997722bfc4e2bdc6147b2191e273d82564fad3cb..4c7ca9c899c59194762766ed7d421fc20ba762d8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-taginject.html +++ b/docs/plugins/html/gst-plugins-good-plugins-taginject.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>taginject</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-streaktv.html" title="streaktv"> @@ -70,7 +70,7 @@ unmodified. <p> </p> <div class="refsect2"> -<a name="idp14798864"></a><h3>Example launch lines</h3> +<a name="idp21637472"></a><h3>Example launch lines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -99,9 +99,12 @@ unmodified. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp8282304"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp18914784"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -122,9 +125,12 @@ unmodified. </div> <hr> <div class="refsect2"> -<a name="idp17510512"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp22777376"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -144,8 +150,11 @@ unmodified. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html index d93e9fb81d05108bae0a7629d25afd3fddc8dd0f..e72eb94c4328905e9b61c990b88f322e3b42da0b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>udpsink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc"> @@ -80,7 +80,7 @@ It can be combined with RTP payloaders to implement RTP streaming. <p> </p> <div class="refsect2"> -<a name="idp18666624"></a><h3>Examples</h3> +<a name="idp20366480"></a><h3>Examples</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -98,9 +98,12 @@ It can be combined with RTP payloaders to implement RTP streaming. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp18651392"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp21894800"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -121,9 +124,12 @@ It can be combined with RTP payloaders to implement RTP streaming. </div> <hr> <div class="refsect2"> -<a name="idp14562336"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp21567760"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html index 7bebc12a7522b1650ebd7630c93caa2c78140a82..1da6d372274de456692dd64626155f731ad0e5a1 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>udpsrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-taginject.html" title="taginject"> @@ -83,6 +83,7 @@ GstUDPSrc implements "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket" title='The "close-socket" property'>close-socket</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket" title='The "socket" property'>socket</a>" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read / Write "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket" title='The "used-socket" property'>used-socket</a>" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read + "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address" title='The "bind-address" property'>bind-address</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write </pre> </div> <div class="refsect1"> @@ -141,7 +142,7 @@ will generate an element message named if no data was recieved in the given timeout. The message's structure contains one field: </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> <span class="type">guint64</span> <code class="classname">"timeout"</code>: the timeout in microseconds that expired when waiting for data. @@ -160,7 +161,7 @@ is responsible for closing the file descriptor. <p> </p> <div class="refsect2"> -<a name="idp17776512"></a><h3>Examples</h3> +<a name="idp23149408"></a><h3>Examples</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -206,9 +207,12 @@ Last reviewed on 2007-09-20 (0.10.7) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp22748688"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp22406192"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -229,9 +233,12 @@ Last reviewed on 2007-09-20 (0.10.7) </div> <hr> <div class="refsect2"> -<a name="idp20504736"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp21070560"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -380,6 +387,13 @@ Last reviewed on 2007-09-20 (0.10.7) <pre class="programlisting"> "used-socket" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read</pre> <p>Socket currently in use for UDP reception. (NULL = no socket).</p> </div> +<hr> +<div class="refsect2"> +<a name="GstUDPSrc--bind-address"></a><h3>The <code class="literal">"bind-address"</code> property</h3> +<pre class="programlisting"> "bind-address" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<p>Address to bind the socket to. This is equivalent to the multicast-group property.</p> +<p>Default value: "0.0.0.0"</p> +</div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-udpsrc.see-also"></a><h2>See Also</h2> diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html index af41c4755465d1828f81dca50cba5279c8fdf810..424ae3abb08c69c85f662c637ff41faf17cf25c8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>v4l2radio</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink"> @@ -60,7 +60,7 @@ <a name="gst-plugins-good-plugins-v4l2radio.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstV4l2Radio implements - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and GstTuner.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html#GstTuner">GstTuner</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2radio.properties"></a><h2>Properties</h2> @@ -74,9 +74,12 @@ GstV4l2Radio implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp19141536"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp22480080"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -97,7 +100,7 @@ GstV4l2Radio implements </div> <hr> <div class="refsect2"> -<a name="idp19783456"></a><h3>Element Pads</h3> +<a name="idp19050880"></a><h3>Element Pads</h3> </div> </div> <p> diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html index 24fcd436257871dc76aa83297162c06c94b96cda..00fae9fd34da657bee1a2f830c045d46f37a8310 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>v4l2sink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src"> @@ -62,7 +62,7 @@ <a name="gst-plugins-good-plugins-v4l2sink.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstV4l2Sink implements - GstTuner, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>, GstNavigation, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html#GstTuner">GstTuner</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2sink.properties"></a><h2>Properties</h2> @@ -87,6 +87,9 @@ GstV4l2Sink implements "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs" title='The "min-queued-bufs" property'>min-queued-bufs</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode" title='The "io-mode" property'>io-mode</a>" <span class="type">GstV4l2IOMode</span> : Read / Write "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm" title='The "norm" property'>norm</a>" <span class="type">V4L2_TV_norms</span> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls" title='The "extra-controls" property'>extra-controls</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write + "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio" title='The "force-aspect-ratio" property'>force-aspect-ratio</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'>pixel-aspect-ratio</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write </pre> </div> <div class="refsect1"> @@ -94,9 +97,12 @@ GstV4l2Sink implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp18683936"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp21954112"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -117,9 +123,12 @@ GstV4l2Sink implements </div> <hr> <div class="refsect2"> -<a name="idp21433120"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp20516960"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -227,6 +236,14 @@ GstV4l2Sink implements </tr> <tr> <td><p><span class="term"></span></p></td> +<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> <td> video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> </tr> <tr> @@ -404,6 +421,26 @@ GstV4l2Sink implements <p>video standard.</p> <p>Default value: none</p> </div> +<hr> +<div class="refsect2"> +<a name="GstV4l2Sink--extra-controls"></a><h3>The <code class="literal">"extra-controls"</code> property</h3> +<pre class="programlisting"> "extra-controls" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<p>Extra v4l2 controls (CIDs) for the device.</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstV4l2Sink--force-aspect-ratio"></a><h3>The <code class="literal">"force-aspect-ratio"</code> property</h3> +<pre class="programlisting"> "force-aspect-ratio" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<p>When enabled, the pixel aspect ratio will be enforced.</p> +<p>Default value: TRUE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstV4l2Sink--pixel-aspect-ratio"></a><h3>The <code class="literal">"pixel-aspect-ratio"</code> property</h3> +<pre class="programlisting"> "pixel-aspect-ratio" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<p>Overwrite the pixel aspect ratio of the device.</p> +<p>Default value: "1/1"</p> +</div> </div> </div> <div class="footer"> diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html index 58550d2b45a85de4f6049a84c51d7f76a7a564a0..6c3696d3658f13b316c6bc6ad83217a587665b03 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>v4l2src</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-udpsink.html" title="udpsink"> @@ -64,7 +64,7 @@ <a name="gst-plugins-good-plugins-v4l2src.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstV4l2Src implements - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>, GstTuner, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html#GstTuner">GstTuner</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2src.properties"></a><h2>Properties</h2> @@ -82,6 +82,9 @@ GstV4l2Src implements "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation" title='The "saturation" property'>saturation</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm" title='The "norm" property'>norm</a>" <span class="type">V4L2_TV_norms</span> : Read / Write "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode" title='The "io-mode" property'>io-mode</a>" <span class="type">GstV4l2IOMode</span> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls" title='The "extra-controls" property'>extra-controls</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write + "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio" title='The "force-aspect-ratio" property'>force-aspect-ratio</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'>pixel-aspect-ratio</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write </pre> </div> <div class="refsect1"> @@ -95,9 +98,12 @@ GstV4l2Src implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp17849376"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp21954384"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -118,9 +124,12 @@ GstV4l2Src implements </div> <hr> <div class="refsect2"> -<a name="idp18312560"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp18838560"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -228,6 +237,14 @@ GstV4l2Src implements </tr> <tr> <td><p><span class="term"></span></p></td> +<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> <td> video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> </tr> <tr> @@ -356,6 +373,26 @@ GstV4l2Src implements <p>I/O mode.</p> <p>Default value: GST_V4L2_IO_AUTO</p> </div> +<hr> +<div class="refsect2"> +<a name="GstV4l2Src--extra-controls"></a><h3>The <code class="literal">"extra-controls"</code> property</h3> +<pre class="programlisting"> "extra-controls" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<p>Extra v4l2 controls (CIDs) for the device.</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstV4l2Src--force-aspect-ratio"></a><h3>The <code class="literal">"force-aspect-ratio"</code> property</h3> +<pre class="programlisting"> "force-aspect-ratio" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<p>When enabled, the pixel aspect ratio will be enforced.</p> +<p>Default value: TRUE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstV4l2Src--pixel-aspect-ratio"></a><h3>The <code class="literal">"pixel-aspect-ratio"</code> property</h3> +<pre class="programlisting"> "pixel-aspect-ratio" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<p>Overwrite the pixel aspect ratio of the device.</p> +<p>Default value: "1/1"</p> +</div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2src.signal-details"></a><h2>Signal Details</h2> @@ -363,14 +400,15 @@ GstV4l2Src implements <a name="GstV4l2Src-prepare-format"></a><h3>The <code class="literal">"prepare-format"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src"><span class="type">GstV4l2Src</span></a> *gstv4l2src, <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> arg1, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg2, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg3, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg4, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *arg2, <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstv4l2src</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html index 0c4c5cfed52ba6b41dca3612b89d21d3365c4aee..acb48635d8d78abac92ba5336965e4f0c81832e5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>vertigotv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio"> @@ -79,7 +79,7 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. <p> </p> <div class="refsect2"> -<a name="idp12293168"></a><h3>Example launch line</h3> +<a name="idp20200016"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -97,9 +97,12 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp22620368"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp18595744"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -120,9 +123,12 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. </div> <hr> <div class="refsect2"> -<a name="idp18046752"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp21148352"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -142,8 +148,11 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -203,8 +212,11 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre> <p> </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>gstvertigotv</code></em> :</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html index 8ef57d6ded7a0ecf6604caa2b8c267ed8bf748ce..3958d325524da58363569be39df1af0109b2a9e4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>videobalance</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-vertigotv.html" title="vertigotv"> @@ -62,7 +62,7 @@ <a name="gst-plugins-good-plugins-videobalance.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GstVideoBalance implements - GstImplementsInterface and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p> + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videobalance.properties"></a><h2>Properties</h2> @@ -81,7 +81,7 @@ Adjusts brightness, contrast, hue, saturation on a video stream. <p> </p> <div class="refsect2"> -<a name="idp18972416"></a><h3>Example launch line</h3> +<a name="idp18703072"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -103,9 +103,12 @@ Last reviewed on 2010-04-18 (0.10.22) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp20333760"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp20200176"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -126,9 +129,12 @@ Last reviewed on 2010-04-18 (0.10.22) </div> <hr> <div class="refsect2"> -<a name="idp21869040"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp16867104"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -148,8 +154,11 @@ Last reviewed on 2010-04-18 (0.10.22) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-videobox.html index 7d824d9ffa2d39a26ab4258bd0b252d691966d20..bbb3d7c6b59fdc8266e4272295b2cddd4a4b035b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videobox.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videobox.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>videobox</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-videobalance.html" title="videobalance"> @@ -122,9 +122,12 @@ Sample pipeline: <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp18217712"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp23855600"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -145,9 +148,12 @@ Sample pipeline: </div> <hr> <div class="refsect2"> -<a name="idp18325296"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp22156112"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -167,8 +173,11 @@ Sample pipeline: </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html index 2642dc238de60b71f123db69a73eef9fb2078138..bd59b8f932020e146565345a06ba910603f2482e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>videocrop</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-videobox.html" title="videobox"> @@ -92,7 +92,7 @@ most use cases, but it might matter for yours. <p> </p> <div class="refsect2"> -<a name="idp18893904"></a><h3>Example launch line</h3> +<a name="idp20648320"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -110,9 +110,12 @@ most use cases, but it might matter for yours. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15231424"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp23616976"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -133,9 +136,12 @@ most use cases, but it might matter for yours. </div> <hr> <div class="refsect2"> -<a name="idp18384720"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp18971696"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -151,12 +157,15 @@ most use cases, but it might matter for yours. </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -172,7 +181,7 @@ most use cases, but it might matter for yours. </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> </tbody> </table></div> @@ -195,32 +204,32 @@ most use cases, but it might matter for yours. <div class="refsect2"> <a name="GstVideoCrop--bottom"></a><h3>The <code class="literal">"bottom"</code> property</h3> <pre class="programlisting"> "bottom" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Pixels to crop at bottom.</p> -<p>Allowed values: >= 0</p> +<p>Pixels to crop at bottom (-1 to auto-crop).</p> +<p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> <a name="GstVideoCrop--left"></a><h3>The <code class="literal">"left"</code> property</h3> <pre class="programlisting"> "left" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Pixels to crop at left.</p> -<p>Allowed values: >= 0</p> +<p>Pixels to crop at left (-1 to auto-crop).</p> +<p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> <a name="GstVideoCrop--right"></a><h3>The <code class="literal">"right"</code> property</h3> <pre class="programlisting"> "right" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Pixels to crop at right.</p> -<p>Allowed values: >= 0</p> +<p>Pixels to crop at right (-1 to auto-crop).</p> +<p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> <a name="GstVideoCrop--top"></a><h3>The <code class="literal">"top"</code> property</h3> <pre class="programlisting"> "top" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Pixels to crop at top.</p> -<p>Allowed values: >= 0</p> +<p>Pixels to crop at top (-1 to auto-crop).</p> +<p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> </div> diff --git a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html index fcfe5159c919330dc9fea373bbf8a36dc533f77e..238a1a0ca329a3d82708c1c722c1cdc8586d93ec 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>videoflip</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-videocrop.html" title="videocrop"> @@ -71,7 +71,7 @@ Flips and rotates video. <p> </p> <div class="refsect2"> -<a name="idp11271056"></a><h3>Example launch line</h3> +<a name="idp23604960"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -92,9 +92,12 @@ Last reviewed on 2010-04-18 (0.10.22) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp22652768"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp10678912"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -115,9 +118,12 @@ Last reviewed on 2010-04-18 (0.10.22) </div> <hr> <div class="refsect2"> -<a name="idp16249840"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp23961728"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -133,12 +139,15 @@ Last reviewed on 2010-04-18 (0.10.22) </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -154,7 +163,7 @@ Last reviewed on 2010-04-18 (0.10.22) </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> </tbody> </table></div> @@ -189,8 +198,11 @@ Opaque datastructure. <p> The different flip methods. </p> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><a name="GST-VIDEO-FLIP-METHOD-IDENTITY:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_IDENTITY</code></span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html index 099ee4c47e9c63c753a1d0745429228a53b181b0..9d9a049700ed293b11f859e0352ce704c21b030d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>videomixer</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-videoflip.html" title="videoflip"> @@ -54,12 +54,12 @@ No colorspace conversion is done. </p> <p> Individual parameters for each input stream can be configured on the -<span class="type">GstVideoMixer2Pad</span>. +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/GstVideoMixer2Pad.html"><span class="type">GstVideoMixer2Pad</span></a>. </p> <p> </p> <div class="refsect2"> -<a name="idp15866944"></a><h3>Sample pipelines</h3> +<a name="idp19230608"></a><h3>Sample pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -160,9 +160,12 @@ framerate of the output video is 10 frames per second. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16747632"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp16547136"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -183,9 +186,12 @@ framerate of the output video is 10 frames per second. </div> <hr> <div class="refsect2"> -<a name="idp21685152"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp23241472"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -205,8 +211,11 @@ framerate of the output video is 10 frames per second. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html index c36a69646097eb842d5546c4d53b7eea64b97466..317abe41d51edf8713f580df286ca721a06bd3bd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>vp8dec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-videomixer.html" title="videomixer"> @@ -70,9 +70,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp21854144"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp22516320"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -93,9 +96,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp16422064"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp21321776"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -115,8 +121,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html index ad6a51b7f19f305fcad2a07ce6836aa7edbdc21e..c8a87fb14c902011d271cb18ebe3a3e0470429ae 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>vp8enc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-vp8dec.html" title="vp8dec"> @@ -124,6 +124,7 @@ GstVP8Enc implements "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection" title='The "twopass-vbr-minsection" property'>twopass-vbr-minsection</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot" title='The "undershoot" property'>undershoot</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode" title='The "vertical-scaling-mode" property'>vertical-scaling-mode</a>" <span class="type">GstVP8EncScalingMode</span> : Read / Write + "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase" title='The "timebase" property'>timebase</a>" <span class="type">GstFraction</span> : Read / Write </pre> </div> <div class="refsect1"> @@ -131,9 +132,12 @@ GstVP8Enc implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp23900400"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp25147936"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -154,9 +158,12 @@ GstVP8Enc implements </div> <hr> <div class="refsect2"> -<a name="idp23907808"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp25155344"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -176,8 +183,11 @@ GstVP8Enc implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -649,6 +659,12 @@ GstVP8Enc implements <p>Vertical scaling mode.</p> <p>Default value: Normal</p> </div> +<hr> +<div class="refsect2"> +<a name="GstVP8Enc--timebase"></a><h3>The <code class="literal">"timebase"</code> property</h3> +<pre class="programlisting"> "timebase" <span class="type">GstFraction</span> : Read / Write</pre> +<p>Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate.</p> +</div> </div> </div> <div class="footer"> diff --git a/docs/plugins/html/gst-plugins-good-plugins-warptv.html b/docs/plugins/html/gst-plugins-good-plugins-warptv.html index 707fafc5fd9214fbf9c346a8a7167ac46def7459..3c45109e857d307158733fa239e162c05a64803d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-warptv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-warptv.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>warptv</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-vp8enc.html" title="vp8enc"> @@ -62,7 +62,7 @@ WarpTV does realtime goo'ing of the video input. <p> </p> <div class="refsect2"> -<a name="idp23811936"></a><h3>Example launch line</h3> +<a name="idp21797648"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -80,9 +80,12 @@ WarpTV does realtime goo'ing of the video input. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp9071744"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp23932944"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -103,9 +106,12 @@ WarpTV does realtime goo'ing of the video input. </div> <hr> <div class="refsect2"> -<a name="idp19689024"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp23695440"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -125,8 +131,11 @@ WarpTV does realtime goo'ing of the video input. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html index a7fb0014d9ee0f5b974854511a8b81e160e53468..228939628b53ad561c9370b1de50b0e1d972e7f2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>waveformsink</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-wavenc.html" title="wavenc"> @@ -45,9 +45,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp15373696"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp25057792"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -68,7 +71,7 @@ </div> <hr> <div class="refsect2"> -<a name="idp22706464"></a><h3>Element Pads</h3> +<a name="idp23705008"></a><h3>Element Pads</h3> </div> </div> <p> diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html index 430c9668b1ba26564afe4567c3e103d3b9f5a57d..5f5a1b7bb52d6ffc1d6fd59623d3267b5ee00e25 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>wavenc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-warptv.html" title="warptv"> @@ -26,6 +26,8 @@ <a href="#gst-plugins-good-plugins-wavenc.description" class="shortcut">Description</a>  | <a href="#gst-plugins-good-plugins-wavenc.object-hierarchy" class="shortcut">Object Hierarchy</a> +  | + <a href="#gst-plugins-good-plugins-wavenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> </td></tr> </table> <div class="refentry"> @@ -53,16 +55,54 @@ </pre> </div> <div class="refsect1"> +<a name="gst-plugins-good-plugins-wavenc.implemented-interfaces"></a><h2>Implemented Interfaces</h2> +<p> +GstWavEnc implements + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTocSetter.html#GstTocSetter">GstTocSetter</a>.</p> +</div> +<div class="refsect1"> <a name="gst-plugins-good-plugins-wavenc.description"></a><h2>Description</h2> <p> -Format a audio stream into the wav format. +Format an audio stream into the wav format. +</p> +<p> +</p> +<div class="refsect2"> +<a name="idp24056928"></a><h3>Example launch line</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> cdparanoiasrc mode<span class="gtkdoc opt">=</span>continuous <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> wavenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>cd<span class="gtkdoc opt">.</span>wav</pre></td> + </tr> + </tbody> + </table> +</div> + Rip a whole audio CD into a single wav file, with the track table written into a CUE sheet inside the file +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> cdparanoiasrc track<span class="gtkdoc opt">=</span><span class="number">5</span> <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> wavenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>track5<span class="gtkdoc opt">.</span>wav</pre></td> + </tr> + </tbody> + </table> +</div> + Rip track 5 of an audio CD into a single wav file containing unencoded raw audio samples. +</div> +<p> </p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp19055744"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp24974896"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -83,9 +123,12 @@ Format a audio stream into the wav format. </div> <hr> <div class="refsect2"> -<a name="idp22133408"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp7251776"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -117,8 +160,11 @@ Format a audio stream into the wav format. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html index 4790ff4b2d45082501a1757df396e6dd715e299a..a63c571c05f9dab43d56979b61be72917d1e3362 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>wavpackdec</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink"> @@ -58,9 +58,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp16756368"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp2869728"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -81,9 +84,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp16438000"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp9508704"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -103,8 +109,11 @@ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html index 2e1a3e6431daa84bd0d131a1e46b6850f908106c..b09404b020e307b30b5795e05527a19ba0893bff 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>wavpackenc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec"> @@ -80,9 +80,12 @@ GstWavpackEnc implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp12688160"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp20018592"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -103,9 +106,12 @@ GstWavpackEnc implements </div> <hr> <div class="refsect2"> -<a name="idp19750368"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp24230080"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -125,8 +131,11 @@ GstWavpackEnc implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -146,8 +155,11 @@ GstWavpackEnc implements </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html index 68b3ffd2d71c547007d0608b5a2c4b97a5550cea..30314fe78ded02afb38bf652f42a91f21aff3cde 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>wavpackparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-wavpackenc.html" title="wavpackenc"> @@ -61,7 +61,7 @@ This is an Wavpack parser. <p> </p> <div class="refsect2"> -<a name="idp18042816"></a><h3>Example launch line</h3> +<a name="idp24250064"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -79,9 +79,12 @@ This is an Wavpack parser. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp22702560"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp24764048"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -102,9 +105,12 @@ This is an Wavpack parser. </div> <hr> <div class="refsect2"> -<a name="idp20437536"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp6615088"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -124,8 +130,11 @@ This is an Wavpack parser. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html index 8f3b7b8f3418fabc6b2e34cc12cedd9c1bfc0656..e054cb7822f27a1353e1cd8f80b0ef07cc68281c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>wavparse</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-wavpackparse.html" title="wavpackparse"> @@ -72,7 +72,7 @@ stream from a network source. <p> </p> <div class="refsect2"> -<a name="idp22595584"></a><h3>Example launch line</h3> +<a name="idp21086512"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -105,9 +105,12 @@ Last reviewed on 2007-02-14 (0.10.6) <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp23857184"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp19290016"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -128,9 +131,12 @@ Last reviewed on 2007-02-14 (0.10.6) </div> <hr> <div class="refsect2"> -<a name="idp20482944"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp17485552"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -150,8 +156,11 @@ Last reviewed on 2007-02-14 (0.10.6) </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html index 4b17ab28600c74efb9e9af0db42cabd7fc2c28a1..bced445468c078ccbf048ba3c45ad0cfe6b304f3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>webmmux</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-wavparse.html" title="wavparse"> @@ -69,7 +69,7 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. <p> </p> <div class="refsect2"> -<a name="idp21656528"></a><h3>Example launch line</h3> +<a name="idp24063968"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -108,9 +108,12 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp21654688"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp22072640"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -131,9 +134,12 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. </div> <hr> <div class="refsect2"> -<a name="idp21958912"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp18408928"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -153,8 +159,11 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -198,8 +207,11 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -217,10 +229,17 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. <td><p><span class="term">details</span></p></td> <td>video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> video/x-vp9, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +</tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html index 795adaee17e2d83d6ed99eaa621ad4df506e65a0..c4a7cc607744e4228d34fc283fe9ba370d9d2633 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ximagesrc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-webmmux.html" title="webmmux"> @@ -77,9 +77,12 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp23238272"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp23832208"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -100,9 +103,12 @@ </div> <hr> <div class="refsect2"> -<a name="idp22667888"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp22572480"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html index 213e969ffbd24f5a4d8a814234072733e27d0c14..9e74de280d147dba25af85d3ae1afc7a699a1443 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>y4menc</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> <link rel="prev" href="gst-plugins-good-plugins-ximagesrc.html" title="ximagesrc"> @@ -57,7 +57,7 @@ <p> </p> <div class="refsect2"> -<a name="idp22269456"></a><h3>Example launch line</h3> +<a name="idp23969600"></a><h3>Example launch line</h3> <p> Creates a YU4MPEG2 raw video stream as defined by the mjpegtools project. </p> @@ -77,9 +77,12 @@ gst-launch-0.10 videotestsrc num-buffers=250 \ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="idp21858000"></a><h3>Element Information</h3> -<div class="variablelist"><table border="0"> +<a name="idp23091712"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">plugin</span></p></td> @@ -100,9 +103,12 @@ gst-launch-0.10 videotestsrc num-buffers=250 \ </div> <hr> <div class="refsect2"> -<a name="idp18914368"></a><h3>Element Pads</h3> -<div class="variablelist"><table border="0"> +<a name="idp6050048"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> @@ -122,8 +128,11 @@ gst-launch-0.10 videotestsrc num-buffers=250 \ </tr> </tbody> </table></div> -<div class="variablelist"><table border="0"> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> <col align="left" valign="top"> +<col> +</colgroup> <tbody> <tr> <td><p><span class="term">name</span></p></td> diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html index c6cac8b64158643f40b17477cde08cb590d11edd..3be048f6d930079b06c7aab673bcbc5c84f2f7c3 100644 --- a/docs/plugins/html/index.html +++ b/docs/plugins/html/index.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>GStreamer Good Plugins 1.0 Plugins Reference Manual</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> <link rel="next" href="ch01.html" title="gst-plugins-good Elements"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> @@ -15,14 +15,14 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Good Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for GStreamer Good Plugins 1.0 (1.0.8) + for GStreamer Good Plugins 1.0 (1.1.2) The latest version of this documentation can be found on-line at <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/</a>. </p></div> </div> <hr> </div> -<div class="toc"><dl> +<div class="toc"><dl class="toc"> <dt><span class="chapter"><a href="ch01.html">gst-plugins-good Elements</a></span></dt> <dd><dl> <dt> @@ -152,6 +152,9 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-directsoundsink.html">directsoundsink</a></span><span class="refpurpose"> — DirectSound audio sink</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-dtmfsrc.html">dtmfsrc</a></span><span class="refpurpose"> — Generates DTMF tones</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-dv1394src.html">dv1394src</a></span><span class="refpurpose"> — Source for DV video data from firewire port</span> </dt> <dt> @@ -197,9 +200,6 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-gamma.html">gamma</a></span><span class="refpurpose"> — Adjusts gamma on a video stream</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufoverlay.html">gdkpixbufoverlay</a></span><span class="refpurpose"> — Overlay an image onto a video stream</span> -</dt> -<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufsink.html">gdkpixbufsink</a></span><span class="refpurpose"> — Output images as GdkPixbuf objects in bus messages</span> </dt> <dt> @@ -356,21 +356,57 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdec.html">rtpdec</a></span><span class="refpurpose"> — Accepts raw RTP and RTCP packets and sends them forward</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3depay.html">rtpac3depay</a></span><span class="refpurpose"> — Extracts AC3 audio from RTP packets (RFC 4184)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3pay.html">rtpac3pay</a></span><span class="refpurpose"> — Payload AC3 audio as RTP packets (RFC 4184)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrdepay.html">rtpamrdepay</a></span><span class="refpurpose"> — Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrpay.html">rtpamrpay</a></span><span class="refpurpose"> — Payload-encode AMR or AMR-WB audio into RTP packets (RFC 3267)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvdepay.html">rtpbvdepay</a></span><span class="refpurpose"> — Extracts BroadcomVoice audio from RTP packets (RFC 4298)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvpay.html">rtpbvpay</a></span><span class="refpurpose"> — Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"> — Extracts raw audio from RTP packets</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16pay.html">rtpL16pay</a></span><span class="refpurpose"> — Payload-encode Raw audio into RTP packets (RFC 3551)</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpj2kpay.html">rtpj2kpay</a></span><span class="refpurpose"> — Payload-encodes JPEG 2000 pictures into RTP packets (RFC 5371)</span> </dt> <dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjpegpay.html">rtpjpegpay</a></span><span class="refpurpose"> — Payload-encodes JPEG pictures into RTP packets (RFC 2435)</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsbcpay.html">rtpsbcpay</a></span><span class="refpurpose"> — Payload SBC audio as RTP packets</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtspsrc.html">rtspsrc</a></span><span class="refpurpose"> — Receive data over the network via RTSP (RFC 2326)</span> </dt> <dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbin.html">rtpbin</a></span><span class="refpurpose"> — Real-Time Transport Protocol bin</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfmux.html">rtpdtmfmux</a></span><span class="refpurpose"> — mixes RTP DTMF streams into other RTP streams</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfsrc.html">rtpdtmfsrc</a></span><span class="refpurpose"> — Generates RTP DTMF packets</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjitterbuffer.html">rtpjitterbuffer</a></span><span class="refpurpose"> — A buffer that deals with network jitter and other transmission faults</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmux.html">rtpmux</a></span><span class="refpurpose"> — multiplex N rtp streams into one</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpptdemux.html">rtpptdemux</a></span><span class="refpurpose"> — Parses codec streams transmitted in the same RTP session</span> </dt> <dt> @@ -380,6 +416,12 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"> — Splits RTP streams based on the SSRC</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-sbcparse.html">sbcparse</a></span><span class="refpurpose"> — Parses an SBC bluetooth audio stream</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-scaletempo.html">scaletempo</a></span><span class="refpurpose"> — Sync audio tempo with playback rate</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-shagadelictv.html">shagadelictv</a></span><span class="refpurpose"> — Oh behave, ShagedelicTV makes images shagadelic!</span> </dt> <dt> @@ -485,211 +527,214 @@ <dt><span class="chapter"><a href="ch02.html">gst-plugins-good Plugins</a></span></dt> <dd><dl> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-1394.html">1394</a></span><span class="refpurpose"> — <a name="plugin-1394"></a>Source for video data via IEEE1394 interface</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-1394.html">1394</a></span><span class="refpurpose">Source for video data via IEEE1394 interface</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-aasink.html">aasink</a></span><span class="refpurpose">ASCII Art video sink</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-aasink.html">aasink</a></span><span class="refpurpose"> — <a name="plugin-aasink"></a>ASCII Art video sink</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose">ALaw audio conversion routines</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose"> — <a name="plugin-alaw"></a>ALaw audio conversion routines</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose">adds an alpha channel to video - constant or via chroma-keying</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose"> — <a name="plugin-alpha"></a>adds an alpha channel to video - constant or via chroma-keying</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose">RGBA from/to AYUV colorspace conversion preserving the alpha channel</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose"> — <a name="plugin-alphacolor"></a>RGBA from/to AYUV colorspace conversion preserving the alpha channel</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose">APEv1/2 tag reader</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose"> — <a name="plugin-apetag"></a>APEv1/2 tag reader</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose">Audio effects plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose"> — <a name="plugin-audiofx"></a>Audio effects plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose">parses au streams</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose"> — <a name="plugin-auparse"></a>parses au streams</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-autodetect.html">autodetect</a></span><span class="refpurpose">Plugin contains auto-detection plugins for video/audio in- and outputs</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-autodetect.html">autodetect</a></span><span class="refpurpose"> — <a name="plugin-autodetect"></a>Plugin contains auto-detection plugins for video/audio in- and outputs</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-avi.html">avi</a></span><span class="refpurpose">AVI stream handling</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-avi.html">avi</a></span><span class="refpurpose"> — <a name="plugin-avi"></a>AVI stream handling</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cacasink.html">cacasink</a></span><span class="refpurpose">Colored ASCII Art video sink</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cacasink.html">cacasink</a></span><span class="refpurpose"> — <a name="plugin-cacasink"></a>Colored ASCII Art video sink</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cairo.html">cairo</a></span><span class="refpurpose">Cairo-based elements</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cairo.html">cairo</a></span><span class="refpurpose"> — <a name="plugin-cairo"></a>Cairo-based elements</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cutter.html">cutter</a></span><span class="refpurpose">Audio Cutter to split audio into non-silent bits</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cutter.html">cutter</a></span><span class="refpurpose"> — <a name="plugin-cutter"></a>Audio Cutter to split audio into non-silent bits</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-debug.html">debug</a></span><span class="refpurpose">elements for testing and debugging</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-debug.html">debug</a></span><span class="refpurpose"> — <a name="plugin-debug"></a>elements for testing and debugging</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-deinterlace.html">deinterlace</a></span><span class="refpurpose">Deinterlacer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-deinterlace.html">deinterlace</a></span><span class="refpurpose"> — <a name="plugin-deinterlace"></a>Deinterlacer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-directsound.html">directsound</a></span><span class="refpurpose">DirectSound plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-directsound.html">directsound</a></span><span class="refpurpose"> — <a name="plugin-directsound"></a>DirectSound plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dtmf.html">dtmf</a></span><span class="refpurpose">DTMF plugins</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose"> — <a name="plugin-dv"></a>DV demuxer and decoder based on libdv (libdv.sf.net)</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose">DV demuxer and decoder based on libdv (libdv.sf.net)</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose"> — <a name="plugin-equalizer"></a>GStreamer audio equalizers</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose">GStreamer audio equalizers</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose"> — <a name="plugin-effectv"></a>effect plugins from the effectv project</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose">effect plugins from the effectv project</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose"> — <a name="plugin-flac"></a>The FLAC Lossless compressor Codec</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose">The FLAC Lossless compressor Codec</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flv.html">flv</a></span><span class="refpurpose"> — <a name="plugin-flv"></a>FLV muxing and demuxing plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flv.html">flv</a></span><span class="refpurpose">FLV muxing and demuxing plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flxdec.html">flxdec</a></span><span class="refpurpose"> — <a name="plugin-flxdec"></a>FLC/FLI/FLX video decoder</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flxdec.html">flxdec</a></span><span class="refpurpose">FLC/FLI/FLX video decoder</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose"> — <a name="plugin-gdkpixbuf"></a>GdkPixbuf-based image decoder, overlay and sink</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose">GdkPixbuf-based image decoder, overlay and sink</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose"> — <a name="plugin-goom"></a>GOOM visualization filter</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose">GOOM visualization filter</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose"> — <a name="plugin-goom2k1"></a>GOOM 2k1 visualization filter</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose">GOOM 2k1 visualization filter</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose"> — <a name="plugin-icydemux"></a>Demux ICY tags from a stream</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose">Demux ICY tags from a stream</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-id3demux.html">id3demux</a></span><span class="refpurpose"> — <a name="plugin-id3demux"></a>Demux ID3v1 and ID3v2 tags from a file</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-id3demux.html">id3demux</a></span><span class="refpurpose">Demux ID3v1 and ID3v2 tags from a file</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-imagefreeze.html">imagefreeze</a></span><span class="refpurpose"> — <a name="plugin-imagefreeze"></a>Still frame stream generator</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-imagefreeze.html">imagefreeze</a></span><span class="refpurpose">Still frame stream generator</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-interleave.html">interleave</a></span><span class="refpurpose"> — <a name="plugin-interleave"></a>Audio interleaver/deinterleaver</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-interleave.html">interleave</a></span><span class="refpurpose">Audio interleaver/deinterleaver</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-isomp4.html">isomp4</a></span><span class="refpurpose"> — <a name="plugin-isomp4"></a>ISO base media file format support (mp4, 3gpp, qt, mj2)</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-isomp4.html">isomp4</a></span><span class="refpurpose">ISO base media file format support (mp4, 3gpp, qt, mj2)</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jack.html">jack</a></span><span class="refpurpose"> — <a name="plugin-jack"></a>JACK audio elements</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jack.html">jack</a></span><span class="refpurpose">JACK audio elements</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jpeg.html">jpeg</a></span><span class="refpurpose"> — <a name="plugin-jpeg"></a>JPeg plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jpeg.html">jpeg</a></span><span class="refpurpose">JPeg plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose"> — <a name="plugin-level"></a>Audio level plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose">Audio level plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-matroska.html">matroska</a></span><span class="refpurpose"> — <a name="plugin-matroska"></a>Matroska and WebM stream handling</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-matroska.html">matroska</a></span><span class="refpurpose">Matroska and WebM stream handling</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-monoscope.html">monoscope</a></span><span class="refpurpose"> — <a name="plugin-monoscope"></a>Monoscope visualization</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-monoscope.html">monoscope</a></span><span class="refpurpose">Monoscope visualization</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-mulaw.html">mulaw</a></span><span class="refpurpose"> — <a name="plugin-mulaw"></a>MuLaw audio conversion routines</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-mulaw.html">mulaw</a></span><span class="refpurpose">MuLaw audio conversion routines</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multifile.html">multifile</a></span><span class="refpurpose"> — <a name="plugin-multifile"></a>Reads/Writes buffers from/to sequentially named files</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multifile.html">multifile</a></span><span class="refpurpose">Reads/Writes buffers from/to sequentially named files</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multipart.html">multipart</a></span><span class="refpurpose"> — <a name="plugin-multipart"></a>multipart stream manipulation</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multipart.html">multipart</a></span><span class="refpurpose">multipart stream manipulation</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-navigationtest.html">navigationtest</a></span><span class="refpurpose"> — <a name="plugin-navigationtest"></a>Template for a video filter</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-navigationtest.html">navigationtest</a></span><span class="refpurpose">Template for a video filter</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-oss4.html">oss4</a></span><span class="refpurpose"> — <a name="plugin-oss4"></a>Open Sound System (OSS) version 4 support for GStreamer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-oss4.html">oss4</a></span><span class="refpurpose">Open Sound System (OSS) version 4 support for GStreamer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ossaudio.html">ossaudio</a></span><span class="refpurpose"> — <a name="plugin-ossaudio"></a>OSS (Open Sound System) support for GStreamer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ossaudio.html">ossaudio</a></span><span class="refpurpose">OSS (Open Sound System) support for GStreamer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxaudio.html">osxaudio</a></span><span class="refpurpose"> — <a name="plugin-osxaudio"></a>OSX (Mac OS X) audio support for GStreamer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxaudio.html">osxaudio</a></span><span class="refpurpose">OSX (Mac OS X) audio support for GStreamer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxvideo.html">osxvideo</a></span><span class="refpurpose"> — <a name="plugin-osxvideo"></a>OSX native video output plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxvideo.html">osxvideo</a></span><span class="refpurpose">OSX native video output plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-png.html">png</a></span><span class="refpurpose"> — <a name="plugin-png"></a>PNG plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-png.html">png</a></span><span class="refpurpose">PNG plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-pulseaudio.html">pulseaudio</a></span><span class="refpurpose"> — <a name="plugin-pulseaudio"></a>PulseAudio plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-pulseaudio.html">pulseaudio</a></span><span class="refpurpose">PulseAudio plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose"> — <a name="plugin-replaygain"></a>ReplayGain volume normalization</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose">ReplayGain volume normalization</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose"> — <a name="plugin-rtp"></a>Real-time protocol plugins</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose">Real-time protocol plugins</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose"> — <a name="plugin-rtpmanager"></a>RTP session management plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose">RTP session management plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose"> — <a name="plugin-rtsp"></a>transfer data via RTSP</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose">transfer data via RTSP</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shapewipe.html">shapewipe</a></span><span class="refpurpose"> — <a name="plugin-shapewipe"></a>Shape Wipe transition filter</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shapewipe.html">shapewipe</a></span><span class="refpurpose">Shape Wipe transition filter</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shout2send.html">shout2send</a></span><span class="refpurpose"> — <a name="plugin-shout2send"></a>Sends data to an icecast server using libshout2</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shout2send.html">shout2send</a></span><span class="refpurpose">Sends data to an icecast server using libshout2</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-smpte.html">smpte</a></span><span class="refpurpose"> — <a name="plugin-smpte"></a>Apply the standard SMPTE transitions on video images</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-smpte.html">smpte</a></span><span class="refpurpose">Apply the standard SMPTE transitions on video images</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-soup.html">soup</a></span><span class="refpurpose"> — <a name="plugin-soup"></a>libsoup HTTP client src/sink</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-soup.html">soup</a></span><span class="refpurpose">libsoup HTTP client src/sink</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-spectrum.html">spectrum</a></span><span class="refpurpose"> — <a name="plugin-spectrum"></a>Run an FFT on the audio signal, output spectrum data</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-spectrum.html">spectrum</a></span><span class="refpurpose">Run an FFT on the audio signal, output spectrum data</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-speex.html">speex</a></span><span class="refpurpose"> — <a name="plugin-speex"></a>Speex plugin library</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-speex.html">speex</a></span><span class="refpurpose">Speex plugin library</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-taglib.html">taglib</a></span><span class="refpurpose"> — <a name="plugin-taglib"></a>Tag writing plug-in based on taglib</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-taglib.html">taglib</a></span><span class="refpurpose">Tag writing plug-in based on taglib</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-udp.html">udp</a></span><span class="refpurpose"> — <a name="plugin-udp"></a>transfer data via UDP</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-udp.html">udp</a></span><span class="refpurpose">transfer data via UDP</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-video4linux2.html">video4linux2</a></span><span class="refpurpose"> — <a name="plugin-video4linux2"></a>elements for Video 4 Linux</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-video4linux2.html">video4linux2</a></span><span class="refpurpose">elements for Video 4 Linux</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videobox.html">videobox</a></span><span class="refpurpose"> — <a name="plugin-videobox"></a>resizes a video by adding borders or cropping</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videobox.html">videobox</a></span><span class="refpurpose">resizes a video by adding borders or cropping</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videocrop.html">videocrop</a></span><span class="refpurpose"> — <a name="plugin-videocrop"></a>Crops video into a user-defined region</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videocrop.html">videocrop</a></span><span class="refpurpose">Crops video into a user-defined region</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videofilter.html">videofilter</a></span><span class="refpurpose"> — <a name="plugin-videofilter"></a>Video filters plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videofilter.html">videofilter</a></span><span class="refpurpose">Video filters plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videomixer.html">videomixer</a></span><span class="refpurpose"> — <a name="plugin-videomixer"></a>Video mixer</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videomixer.html">videomixer</a></span><span class="refpurpose">Video mixer</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-vpx.html">vpx</a></span><span class="refpurpose"> — <a name="plugin-vpx"></a>VP8 plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-vpx.html">vpx</a></span><span class="refpurpose">VP8 plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-waveform.html">waveform</a></span><span class="refpurpose"> — <a name="plugin-waveform"></a>WaveForm API based plugin</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-waveform.html">waveform</a></span><span class="refpurpose">WaveForm API based plugin</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavenc.html">wavenc</a></span><span class="refpurpose"> — <a name="plugin-wavenc"></a>Encode raw audio into WAV</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavenc.html">wavenc</a></span><span class="refpurpose">Encode raw audio into WAV</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavpack.html">wavpack</a></span><span class="refpurpose"> — <a name="plugin-wavpack"></a>Wavpack lossless/lossy audio format handling</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavpack.html">wavpack</a></span><span class="refpurpose">Wavpack lossless/lossy audio format handling</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavparse.html">wavparse</a></span><span class="refpurpose"> — <a name="plugin-wavparse"></a>Parse a .wav file into raw audio</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavparse.html">wavparse</a></span><span class="refpurpose">Parse a .wav file into raw audio</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ximagesrc.html">ximagesrc</a></span><span class="refpurpose"> — <a name="plugin-ximagesrc"></a>X11 video input plugin using standard Xlib calls</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ximagesrc.html">ximagesrc</a></span><span class="refpurpose">X11 video input plugin using standard Xlib calls</span> </dt> <dt> -<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-y4menc.html">y4menc</a></span><span class="refpurpose"> — <a name="plugin-y4menc"></a>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</span> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-y4menc.html">y4menc</a></span><span class="refpurpose">Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</span> </dt> </dl></dd> <dt><span class="chapter"><a href="ch03.html">gst-plugins-good Base Classes</a></span></dt> diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml index 4c77d302ce0d7b9daee9b4ef0671b72a3e039834..270b80f01e3fd514e836bcdf5117629180a7068b 100644 --- a/docs/plugins/html/index.sgml +++ b/docs/plugins/html/index.sgml @@ -478,6 +478,17 @@ <ANCHOR id="gst-plugins-good-plugins-directsoundsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.description"> <ANCHOR id="gst-plugins-good-plugins-directsoundsink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.details"> <ANCHOR id="GstDirectSoundSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#GstDirectSoundSink"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.synopsis"> +<ANCHOR id="GstDTMFSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.properties"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.description"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.details"> +<ANCHOR id="GstDTMFSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.property-details"> +<ANCHOR id="GstDTMFSrc--interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.see-also"> <ANCHOR id="gst-plugins-good-plugins-dv1394src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html"> <ANCHOR id="gst-plugins-good-plugins-dv1394src.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.synopsis"> <ANCHOR id="GstDV1394Src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#GstDV1394Src"> @@ -657,23 +668,6 @@ <ANCHOR id="GstGamma-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#GstGamma-struct"> <ANCHOR id="gst-plugins-good-plugins-gamma.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.property-details"> <ANCHOR id="GstGamma--gamma" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#GstGamma--gamma"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.synopsis"> -<ANCHOR id="GstGdkPixbufOverlay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.properties"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.description"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.details"> -<ANCHOR id="GstGdkPixbufOverlay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay-struct"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.property-details"> -<ANCHOR id="GstGdkPixbufOverlay--location" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--location"> -<ANCHOR id="GstGdkPixbufOverlay--offset-x" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-x"> -<ANCHOR id="GstGdkPixbufOverlay--offset-y" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-y"> -<ANCHOR id="GstGdkPixbufOverlay--overlay-height" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-height"> -<ANCHOR id="GstGdkPixbufOverlay--overlay-width" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-width"> -<ANCHOR id="GstGdkPixbufOverlay--relative-x" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-x"> -<ANCHOR id="GstGdkPixbufOverlay--relative-y" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-y"> -<ANCHOR id="GstGdkPixbufOverlay--alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--alpha"> <ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html"> <ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.synopsis"> <ANCHOR id="GstGdkPixbufSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink"> @@ -832,6 +826,7 @@ <ANCHOR id="GstLevel--message" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--message"> <ANCHOR id="GstLevel--peak-falloff" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--peak-falloff"> <ANCHOR id="GstLevel--peak-ttl" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--peak-ttl"> +<ANCHOR id="GstLevel--post-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--post-messages"> <ANCHOR id="gst-plugins-good-plugins-matroskamux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html"> <ANCHOR id="gst-plugins-good-plugins-matroskamux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.synopsis"> <ANCHOR id="GstMatroskaMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux"> @@ -877,9 +872,11 @@ <ANCHOR id="GstMJ2Mux--trak-timescale" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale"> <ANCHOR id="gst-plugins-good-plugins-monoscope" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html"> <ANCHOR id="gst-plugins-good-plugins-monoscope.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.synopsis"> +<ANCHOR id="GstMonoscope" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#GstMonoscope"> +<ANCHOR id="gst-plugins-good-plugins-monoscope.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-monoscope.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.description"> <ANCHOR id="gst-plugins-good-plugins-monoscope.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.details"> -<ANCHOR id="GstMonoscope" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#GstMonoscope"> +<ANCHOR id="GstMonoscope-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#GstMonoscope-struct"> <ANCHOR id="gst-plugins-good-plugins-monoscope.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.see-also"> <ANCHOR id="gst-plugins-good-plugins-mpegaudioparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html"> <ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.synopsis"> @@ -1011,6 +1008,10 @@ <ANCHOR id="GstMultiUDPSink--used-socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket"> <ANCHOR id="GstMultiUDPSink--force-ipv4" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--force-ipv4"> <ANCHOR id="GstMultiUDPSink--multicast-iface" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface"> +<ANCHOR id="GstMultiUDPSink--bind-address" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-address"> +<ANCHOR id="GstMultiUDPSink--bind-port" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-port"> +<ANCHOR id="GstMultiUDPSink--socket-v6" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6"> +<ANCHOR id="GstMultiUDPSink--used-socket-v6" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket-v6"> <ANCHOR id="gst-plugins-good-plugins-multiudpsink.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.signal-details"> <ANCHOR id="GstMultiUDPSink-add" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-add"> <ANCHOR id="GstMultiUDPSink-clear" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-clear"> @@ -1328,6 +1329,64 @@ <ANCHOR id="GstRTPDec-on-ssrc-collision" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision"> <ANCHOR id="GstRTPDec-on-ssrc-validated" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated"> <ANCHOR id="GstRTPDec-on-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.synopsis"> +<ANCHOR id="GstRtpAC3Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.details"> +<ANCHOR id="GstRtpAC3Depay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.see-also"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.synopsis"> +<ANCHOR id="GstRtpAC3Pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.details"> +<ANCHOR id="GstRtpAC3Pay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.see-also"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.synopsis"> +<ANCHOR id="GstRtpAMRDepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.details"> +<ANCHOR id="GstRtpAMRDepay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.see-also"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.synopsis"> +<ANCHOR id="GstRtpAMRPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.details"> +<ANCHOR id="GstRtpAMRPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.see-also"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.see-also"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.see-also"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.synopsis"> +<ANCHOR id="GstRtpL16Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.details"> +<ANCHOR id="GstRtpL16Depay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.see-also"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.synopsis"> +<ANCHOR id="GstRtpL16Pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.details"> +<ANCHOR id="GstRtpL16Pay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpj2kpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html"> <ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.synopsis"> <ANCHOR id="GstRtpJ2KPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay"> @@ -1350,12 +1409,23 @@ <ANCHOR id="GstRtpJPEGPay--quality" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality"> <ANCHOR id="GstRtpJPEGPay--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type"> <ANCHOR id="GstRtpJPEGPay--buffer-list" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.synopsis"> +<ANCHOR id="GstRtpSBCPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.properties"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.details"> +<ANCHOR id="GstRtpSBCPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.property-details"> +<ANCHOR id="GstRtpSBCPay--min-frames" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.synopsis"> <ANCHOR id="GstRTSPSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.implemented-interfaces"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.properties"> +<ANCHOR id="gst-plugins-good-plugins-rtspsrc.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.signals"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.description"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.details"> <ANCHOR id="GstRTSPSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct"> @@ -1381,6 +1451,16 @@ <ANCHOR id="GstRTSPSrc--do-rtsp-keep-alive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive"> <ANCHOR id="GstRTSPSrc--drop-on-latency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency"> <ANCHOR id="GstRTSPSrc--probation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation"> +<ANCHOR id="GstRTSPSrc--udp-reconnect" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect"> +<ANCHOR id="GstRTSPSrc--proxy-id" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id"> +<ANCHOR id="GstRTSPSrc--proxy-pw" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw"> +<ANCHOR id="GstRTSPSrc--multicast-iface" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface"> +<ANCHOR id="GstRTSPSrc--ntp-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync"> +<ANCHOR id="GstRTSPSrc--use-pipeline-clock" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock"> +<ANCHOR id="gst-plugins-good-plugins-rtspsrc.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.signal-details"> +<ANCHOR id="GstRTSPSrc-handle-request" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"> +<ANCHOR id="GstRTSPSrc-on-sdp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"> +<ANCHOR id="GstRTSPSrc-select-stream" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"> <ANCHOR id="gst-plugins-good-plugins-rtpbin" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html"> <ANCHOR id="gst-plugins-good-plugins-rtpbin.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.synopsis"> <ANCHOR id="GstRtpBin" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin"> @@ -1419,6 +1499,33 @@ <ANCHOR id="GstRtpBin-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map"> <ANCHOR id="GstRtpBin-reset-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync"> <ANCHOR id="GstRtpBin-payload-type-change" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change"> +<ANCHOR id="gst-plugins-good-plugins-rtpbin.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.see-also"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.synopsis"> +<ANCHOR id="GstRTPDTMFMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.details"> +<ANCHOR id="GstRTPDTMFMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.see-also"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.synopsis"> +<ANCHOR id="GstRTPDTMFSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.properties"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.details"> +<ANCHOR id="GstRTPDTMFSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.property-details"> +<ANCHOR id="GstRTPDTMFSrc--clock-rate" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate"> +<ANCHOR id="GstRTPDTMFSrc--packet-redundancy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy"> +<ANCHOR id="GstRTPDTMFSrc--pt" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--pt"> +<ANCHOR id="GstRTPDTMFSrc--seqnum" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum"> +<ANCHOR id="GstRTPDTMFSrc--seqnum-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum-offset"> +<ANCHOR id="GstRTPDTMFSrc--ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc"> +<ANCHOR id="GstRTPDTMFSrc--timestamp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp"> +<ANCHOR id="GstRTPDTMFSrc--timestamp-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html"> <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.synopsis"> <ANCHOR id="GstRtpJitterBuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"> @@ -1441,6 +1548,20 @@ <ANCHOR id="GstRtpJitterBuffer-on-npt-stop" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop"> <ANCHOR id="GstRtpJitterBuffer-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map"> <ANCHOR id="GstRtpJitterBuffer-set-active" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.synopsis"> +<ANCHOR id="GstRTPMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.properties"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.description"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.details"> +<ANCHOR id="GstRTPMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.property-details"> +<ANCHOR id="GstRTPMux--seqnum" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum"> +<ANCHOR id="GstRTPMux--seqnum-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset"> +<ANCHOR id="GstRTPMux--ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc"> +<ANCHOR id="GstRTPMux--timestamp-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpptdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html"> <ANCHOR id="gst-plugins-good-plugins-rtpptdemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.synopsis"> <ANCHOR id="GstRtpPtDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"> @@ -1500,6 +1621,27 @@ <ANCHOR id="GstRtpSsrcDemux-clear-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc"> <ANCHOR id="GstRtpSsrcDemux-new-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad"> <ANCHOR id="GstRtpSsrcDemux-removed-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad"> +<ANCHOR id="gst-plugins-good-plugins-sbcparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html"> +<ANCHOR id="gst-plugins-good-plugins-sbcparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.synopsis"> +<ANCHOR id="GstSbcParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#GstSbcParse"> +<ANCHOR id="gst-plugins-good-plugins-sbcparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-sbcparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.description"> +<ANCHOR id="gst-plugins-good-plugins-sbcparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.details"> +<ANCHOR id="GstSbcParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct"> +<ANCHOR id="gst-plugins-good-plugins-sbcparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.see-also"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.synopsis"> +<ANCHOR id="GstScaletempo" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.properties"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.description"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.details"> +<ANCHOR id="GstScaletempo-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.property-details"> +<ANCHOR id="GstScaletempo--overlap" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap"> +<ANCHOR id="GstScaletempo--rate" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate"> +<ANCHOR id="GstScaletempo--search" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search"> +<ANCHOR id="GstScaletempo--stride" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride"> <ANCHOR id="gst-plugins-good-plugins-shagadelictv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html"> <ANCHOR id="gst-plugins-good-plugins-shagadelictv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#gst-plugins-good-plugins-shagadelictv.synopsis"> <ANCHOR id="GstShagadelicTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#GstShagadelicTV"> @@ -1679,6 +1821,7 @@ <ANCHOR id="GstUDPSrc--close-socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket"> <ANCHOR id="GstUDPSrc--socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket"> <ANCHOR id="GstUDPSrc--used-socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket"> +<ANCHOR id="GstUDPSrc--bind-address" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address"> <ANCHOR id="gst-plugins-good-plugins-udpsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.see-also"> <ANCHOR id="gst-plugins-good-plugins-udpsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html"> <ANCHOR id="gst-plugins-good-plugins-udpsink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.synopsis"> @@ -1717,6 +1860,9 @@ <ANCHOR id="GstV4l2Src--saturation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation"> <ANCHOR id="GstV4l2Src--norm" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm"> <ANCHOR id="GstV4l2Src--io-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode"> +<ANCHOR id="GstV4l2Src--extra-controls" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls"> +<ANCHOR id="GstV4l2Src--force-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio"> +<ANCHOR id="GstV4l2Src--pixel-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio"> <ANCHOR id="gst-plugins-good-plugins-v4l2src.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.signal-details"> <ANCHOR id="GstV4l2Src-prepare-format" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format"> <ANCHOR id="gst-plugins-good-plugins-v4l2sink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html"> @@ -1749,6 +1895,9 @@ <ANCHOR id="GstV4l2Sink--min-queued-bufs" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs"> <ANCHOR id="GstV4l2Sink--io-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode"> <ANCHOR id="GstV4l2Sink--norm" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm"> +<ANCHOR id="GstV4l2Sink--extra-controls" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls"> +<ANCHOR id="GstV4l2Sink--force-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio"> +<ANCHOR id="GstV4l2Sink--pixel-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio"> <ANCHOR id="gst-plugins-good-plugins-v4l2radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html"> <ANCHOR id="gst-plugins-good-plugins-v4l2radio.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.synopsis"> <ANCHOR id="GstV4l2Radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio"> @@ -1926,6 +2075,7 @@ <ANCHOR id="GstVP8Enc--twopass-vbr-minsection" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection"> <ANCHOR id="GstVP8Enc--undershoot" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot"> <ANCHOR id="GstVP8Enc--vertical-scaling-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode"> +<ANCHOR id="GstVP8Enc--timebase" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase"> <ANCHOR id="gst-plugins-good-plugins-warptv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html"> <ANCHOR id="gst-plugins-good-plugins-warptv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.synopsis"> <ANCHOR id="GstWarpTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#GstWarpTV"> @@ -1937,6 +2087,7 @@ <ANCHOR id="gst-plugins-good-plugins-wavenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.synopsis"> <ANCHOR id="GstWavEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#GstWavEnc"> <ANCHOR id="gst-plugins-good-plugins-wavenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-wavenc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.implemented-interfaces"> <ANCHOR id="gst-plugins-good-plugins-wavenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.description"> <ANCHOR id="gst-plugins-good-plugins-wavenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.details"> <ANCHOR id="GstWavEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct"> @@ -2054,6 +2205,8 @@ <ANCHOR id="plugin-deinterlace" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-deinterlace.html#plugin-deinterlace"> <ANCHOR id="gst-plugins-good-plugins-plugin-directsound" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-directsound.html"> <ANCHOR id="plugin-directsound" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-directsound.html#plugin-directsound"> +<ANCHOR id="gst-plugins-good-plugins-plugin-dtmf" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dtmf.html"> +<ANCHOR id="plugin-dtmf" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dtmf.html#plugin-dtmf"> <ANCHOR id="gst-plugins-good-plugins-plugin-dv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dv.html"> <ANCHOR id="plugin-dv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dv.html#plugin-dv"> <ANCHOR id="gst-plugins-good-plugins-plugin-equalizer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-equalizer.html"> diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml index da40af2a839eb0a7d60a67535d33347ffd13107d..7d1dcc8433fb434e602741e743c2d3843d15b945 100644 --- a/docs/plugins/inspect/plugin-1394.xml +++ b/docs/plugins/inspect/plugin-1394.xml @@ -3,7 +3,7 @@ <description>Source for video data via IEEE1394 interface</description> <filename>../../ext/raw1394/.libs/libgst1394.so</filename> <basename>libgst1394.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-aasink.xml b/docs/plugins/inspect/plugin-aasink.xml index 420cd91be3ec4c2219f7a919536757bac8539bb5..cf16c514e76651add34d77f4a9b70a032e7814fd 100644 --- a/docs/plugins/inspect/plugin-aasink.xml +++ b/docs/plugins/inspect/plugin-aasink.xml @@ -3,7 +3,7 @@ <description>ASCII Art video sink</description> <filename>../../ext/aalib/.libs/libgstaasink.so</filename> <basename>libgstaasink.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-alaw.xml b/docs/plugins/inspect/plugin-alaw.xml index a10f431aa0f5476a9f246f5c3ee2c8b1b8e7c3cc..8829efc3d5ed5da619a1b81d598bb3e520ff8eb0 100644 --- a/docs/plugins/inspect/plugin-alaw.xml +++ b/docs/plugins/inspect/plugin-alaw.xml @@ -3,7 +3,7 @@ <description>ALaw audio conversion routines</description> <filename>../../gst/law/.libs/libgstalaw.so</filename> <basename>libgstalaw.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-alpha.xml b/docs/plugins/inspect/plugin-alpha.xml index 7847a21a358548c1b8e811e98ac9655e086a37c0..93c33e05ce24ad7676792d4fc24c9d23468d2510 100644 --- a/docs/plugins/inspect/plugin-alpha.xml +++ b/docs/plugins/inspect/plugin-alpha.xml @@ -3,7 +3,7 @@ <description>adds an alpha channel to video - constant or via chroma-keying</description> <filename>../../gst/alpha/.libs/libgstalpha.so</filename> <basename>libgstalpha.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-alphacolor.xml b/docs/plugins/inspect/plugin-alphacolor.xml index f82363bac97185fb1a1ef092e3828c2403efafc1..d942200e0088f4462772eba8952fc08ca678b231 100644 --- a/docs/plugins/inspect/plugin-alphacolor.xml +++ b/docs/plugins/inspect/plugin-alphacolor.xml @@ -3,7 +3,7 @@ <description>RGBA from/to AYUV colorspace conversion preserving the alpha channel</description> <filename>../../gst/alpha/.libs/libgstalphacolor.so</filename> <basename>libgstalphacolor.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-annodex.xml b/docs/plugins/inspect/plugin-annodex.xml new file mode 100644 index 0000000000000000000000000000000000000000..5d8448290455f1ffbfd6b87c8d31c78fc13e7ec2 --- /dev/null +++ b/docs/plugins/inspect/plugin-annodex.xml @@ -0,0 +1,55 @@ +<plugin> + <name>annodex</name> + <description>annodex stream manipulation (info about annodex: http://www.annodex.net)</description> + <filename>../../ext/annodex/.libs/libgstannodex.so</filename> + <basename>libgstannodex.so</basename> + <version>0.11.91.1</version> + <license>LGPL</license> + <source>gst-plugins-good</source> + <package>GStreamer Good Plug-ins git</package> + <origin>Unknown package origin</origin> + <elements> + <element> + <name>cmmldec</name> + <longname>CMML stream decoder</longname> + <class>Codec/Decoder</class> + <description>Decodes CMML streams</description> + <author>Alessandro Decina <alessandro@nnva.org></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>text/x-cmml, encoded=(boolean)true</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>text/x-cmml, encoded=(boolean)false</details> + </caps> + </pads> + </element> + <element> + <name>cmmlenc</name> + <longname>CMML streams encoder</longname> + <class>Codec/Encoder</class> + <description>Encodes CMML streams</description> + <author>Alessandro Decina <alessandro@nnva.org></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>text/x-cmml, encoded=(boolean)false</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>text/x-cmml, encoded=(boolean)true</details> + </caps> + </pads> + </element> + </elements> +</plugin> \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-apetag.xml b/docs/plugins/inspect/plugin-apetag.xml index 82a1599887ffac10d9571b3d5c91dcca8cd23398..73125f5ddfef447b513a12914b0e4c98db4c854e 100644 --- a/docs/plugins/inspect/plugin-apetag.xml +++ b/docs/plugins/inspect/plugin-apetag.xml @@ -3,7 +3,7 @@ <description>APEv1/2 tag reader</description> <filename>../../gst/apetag/.libs/libgstapetag.so</filename> <basename>libgstapetag.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-audiofx.xml b/docs/plugins/inspect/plugin-audiofx.xml index 66889d61814b013f1eaab72ea2b2fb2c7f76a4ca..5559b1913adc964fd9a2b38fb5198529ff6c5e53 100644 --- a/docs/plugins/inspect/plugin-audiofx.xml +++ b/docs/plugins/inspect/plugin-audiofx.xml @@ -3,7 +3,7 @@ <description>Audio effects plugin</description> <filename>../../gst/audiofx/.libs/libgstaudiofx.so</filename> <basename>libgstaudiofx.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -209,13 +209,13 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)1, layout=(string)interleaved; audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</details> + <details>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], layout=(string)interleaved</details> </caps> <caps> <name>src</name> <direction>source</direction> <presence>always</presence> - <details>audio/x-raw, format=(string){ S32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</details> + <details>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved</details> </caps> </pads> </element> @@ -261,5 +261,26 @@ </caps> </pads> </element> + <element> + <name>scaletempo</name> + <longname>Scaletempo</longname> + <class>Filter/Effect/Rate</class> + <description>Sync audio tempo with playback rate</description> + <author>Rov Juvano <rovjuvano@users.sourceforge.net></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>audio/x-raw, format=(string)F32LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>audio/x-raw, format=(string)F32LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details> + </caps> + </pads> + </element> </elements> </plugin> \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-audioparsers.xml b/docs/plugins/inspect/plugin-audioparsers.xml index 0b62d6e6f67f8854b8e17801563ab33cce44111d..58141b947f7a7cc8112995b16d771e0ef3a502d0 100644 --- a/docs/plugins/inspect/plugin-audioparsers.xml +++ b/docs/plugins/inspect/plugin-audioparsers.xml @@ -3,7 +3,7 @@ <description>Parsers for various audio formats</description> <filename>../../gst/audioparsers/.libs/libgstaudioparsers.so</filename> <basename>libgstaudioparsers.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -41,7 +41,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>audio/x-ac3; audio/x-eac3; audio/ac3</details> + <details>audio/x-ac3; audio/x-eac3; audio/ac3; audio/x-private1-ac3</details> </caps> <caps> <name>src</name> @@ -83,7 +83,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>audio/x-dts</details> + <details>audio/x-dts; audio/x-private1-dts</details> </caps> <caps> <name>src</name> @@ -135,6 +135,27 @@ </caps> </pads> </element> + <element> + <name>sbcparse</name> + <longname>SBC audio parser</longname> + <class>Codec/Parser/Audio</class> + <description>Parses an SBC bluetooth audio stream</description> + <author>Tim-Philipp Müller <tim.muller@collabora.co.uk></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>audio/x-sbc</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>audio/x-sbc, parsed=(boolean)true, channels=(int)[ 1, 2 ], rate=(int){ 16000, 32000, 44100, 48000 }</details> + </caps> + </pads> + </element> <element> <name>wavpackparse</name> <longname>Wavpack audio stream parser</longname> diff --git a/docs/plugins/inspect/plugin-auparse.xml b/docs/plugins/inspect/plugin-auparse.xml index 030c57d68214eb5cb96dd19de7ed16bd0eb19778..1f42b6de229eac9fdb6443f1e9fe065aebc89d2e 100644 --- a/docs/plugins/inspect/plugin-auparse.xml +++ b/docs/plugins/inspect/plugin-auparse.xml @@ -3,7 +3,7 @@ <description>parses au streams</description> <filename>../../gst/auparse/.libs/libgstauparse.so</filename> <basename>libgstauparse.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-autodetect.xml b/docs/plugins/inspect/plugin-autodetect.xml index 5bf06e1dd20b48804b0adf416e83a842d9aef29b..82c487146d125d86384c4e6b832d1ed449657402 100644 --- a/docs/plugins/inspect/plugin-autodetect.xml +++ b/docs/plugins/inspect/plugin-autodetect.xml @@ -3,7 +3,7 @@ <description>Plugin contains auto-detection plugins for video/audio in- and outputs</description> <filename>../../gst/autodetect/.libs/libgstautodetect.so</filename> <basename>libgstautodetect.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-avi.xml b/docs/plugins/inspect/plugin-avi.xml index c52a8972f80f58ff85028cfffe596a498292461e..974dcc9bc4e1c6b4237c04190afe88feb7ebbc7d 100644 --- a/docs/plugins/inspect/plugin-avi.xml +++ b/docs/plugins/inspect/plugin-avi.xml @@ -3,7 +3,7 @@ <description>AVI stream handling</description> <filename>../../gst/avi/.libs/libgstavi.so</filename> <basename>libgstavi.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -38,7 +38,7 @@ <name>video_%u</name> <direction>source</direction> <presence>sometimes</presence> - <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cirrus-logic-accupak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camstudio, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-compressed-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string){ RGB8P, BGR, BGRx }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)25, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)50, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-flash-video, flvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lucent, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-huffyuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-intel-h263, variant=(string)intel, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)microsoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/jpeg, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)42, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)43, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)41, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mszh, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/png, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-rle, layout=(string)microsoft, depth=(int)[ 1, 64 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/sp5x, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camtasia, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ultimotion, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)UYVY, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vdolive, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vivo, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vmnc, version=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)videosoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-xan, wcversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YUY2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YVU9, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zlib, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cinepak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msvideocodec, msvideoversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)xirlink, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dirac, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ffv, ffvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-kmvc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp7, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp8, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mimic, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-apple-video, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-theora, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-fraps, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-aasc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-loco, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zmbv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)v210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)r210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)true; video/x-avi-unknown</details> + <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cirrus-logic-accupak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camstudio, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-compressed-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string){ RGB8P, BGR, BGRx }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)25, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)50, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-flash-video, flvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lucent, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-huffyuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-intel-h263, variant=(string)intel, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)microsoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/jpeg, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)42, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)43, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)41, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mszh, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/png, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-rle, layout=(string)microsoft, depth=(int)[ 1, 64 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/sp5x, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camtasia, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ultimotion, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)UYVY, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vdolive, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vivo, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vmnc, version=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)videosoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)3, format=(string)WMV3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-xan, wcversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YUY2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YVU9, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zlib, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cinepak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msvideocodec, msvideoversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)xirlink, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dirac, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ffv, ffvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-kmvc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp7, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp8, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mimic, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-apple-video, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-theora, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-fraps, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-aasc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-loco, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zmbv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)v210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)r210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)true; video/x-avi-unknown</details> </caps> </pads> </element> @@ -59,7 +59,7 @@ <name>video_%u</name> <direction>sink</direction> <presence>request</presence> - <details>video/x-raw, format=(string){ YUY2, I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], divxversion=(int)[ 3, 5 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-wmv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)[ 1, 3 ]; image/x-jpc, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ YUY2, I420, BGR, BGRx, BGRA, GRAY8 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], divxversion=(int)[ 3, 5 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-wmv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)[ 1, 3 ]; image/x-jpc, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> <caps> <name>src</name> diff --git a/docs/plugins/inspect/plugin-cacasink.xml b/docs/plugins/inspect/plugin-cacasink.xml index 8ded273c87a07a2161ee55e3ce8ea8b66f2e9290..1ae93e072da1756ebf0417795b5d0e5a5e2ae123 100644 --- a/docs/plugins/inspect/plugin-cacasink.xml +++ b/docs/plugins/inspect/plugin-cacasink.xml @@ -3,7 +3,7 @@ <description>Colored ASCII Art video sink</description> <filename>../../ext/libcaca/.libs/libgstcacasink.so</filename> <basename>libgstcacasink.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -20,7 +20,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ RGB, RGBx, RGB16, RGB15 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ RGB, BGR, RGBx, xRGB, BGRx, xBGR, RGB16, RGB15 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> </pads> </element> diff --git a/docs/plugins/inspect/plugin-cairo.xml b/docs/plugins/inspect/plugin-cairo.xml index 59b46962e9cc08fa074dc33ee594d48597efee4e..d1bdc2dd8bd353a46ee07c39dfbbe89d0418c733 100644 --- a/docs/plugins/inspect/plugin-cairo.xml +++ b/docs/plugins/inspect/plugin-cairo.xml @@ -3,7 +3,7 @@ <description>Cairo-based elements</description> <filename>../../ext/cairo/.libs/libgstcairo.so</filename> <basename>libgstcairo.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-cutter.xml b/docs/plugins/inspect/plugin-cutter.xml index c0cfaea10bee24a442638d682e4f7ca2cec759b9..910ba86d85d8fe79e2be750527060550386fb4d3 100644 --- a/docs/plugins/inspect/plugin-cutter.xml +++ b/docs/plugins/inspect/plugin-cutter.xml @@ -3,7 +3,7 @@ <description>Audio Cutter to split audio into non-silent bits</description> <filename>../../gst/cutter/.libs/libgstcutter.so</filename> <basename>libgstcutter.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-debug.xml b/docs/plugins/inspect/plugin-debug.xml index 15561a5f15e42c435ec0f9897237d24bc220c220..4133edbd6f6980ddf31a1a72dc29f2a3fa18035f 100644 --- a/docs/plugins/inspect/plugin-debug.xml +++ b/docs/plugins/inspect/plugin-debug.xml @@ -3,7 +3,7 @@ <description>elements for testing and debugging</description> <filename>../../gst/debugutils/.libs/libgstdebug.so</filename> <basename>libgstdebug.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-deinterlace.xml b/docs/plugins/inspect/plugin-deinterlace.xml index 97aa39d8706c949cc2309a85770dd5756f213c52..43e50e1f9a419863a1d31c09c7568800e0dadab0 100644 --- a/docs/plugins/inspect/plugin-deinterlace.xml +++ b/docs/plugins/inspect/plugin-deinterlace.xml @@ -3,7 +3,7 @@ <description>Deinterlacer</description> <filename>../../gst/deinterlace/.libs/libgstdeinterlace.so</filename> <basename>libgstdeinterlace.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-dtmf.xml b/docs/plugins/inspect/plugin-dtmf.xml new file mode 100644 index 0000000000000000000000000000000000000000..10def88d16efaddf03fb6feb2429fcbad9a73418 --- /dev/null +++ b/docs/plugins/inspect/plugin-dtmf.xml @@ -0,0 +1,64 @@ +<plugin> + <name>dtmf</name> + <description>DTMF plugins</description> + <filename>../../gst/dtmf/.libs/libgstdtmf.so</filename> + <basename>libgstdtmf.so</basename> + <version>1.1.2</version> + <license>LGPL</license> + <source>gst-plugins-good</source> + <package>GStreamer Good Plug-ins source release</package> + <origin>Unknown package origin</origin> + <elements> + <element> + <name>dtmfsrc</name> + <longname>DTMF tone generator</longname> + <class>Source/Audio</class> + <description>Generates DTMF tones</description> + <author>Youness Alaoui <youness.alaoui@collabora.co.uk></author> + <pads> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)1</details> + </caps> + </pads> + </element> + <element> + <name>rtpdtmfdepay</name> + <longname>RTP DTMF packet depayloader</longname> + <class>Codec/Depayloader/Network</class> + <description>Generates DTMF Sound from telephone-event RTP packets</description> + <author>Youness Alaoui <youness.alaoui@collabora.co.uk></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)1</details> + </caps> + </pads> + </element> + <element> + <name>rtpdtmfsrc</name> + <longname>RTP DTMF packet generator</longname> + <class>Source/Network</class> + <description>Generates RTP DTMF packets</description> + <author>Zeeshan Ali <zeeshan.ali@nokia.com></author> + <pads> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT</details> + </caps> + </pads> + </element> + </elements> +</plugin> \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dv.xml b/docs/plugins/inspect/plugin-dv.xml index ac9a4fe079926d03e7c6b681eeb0a13ecc4d6eca..0a50664dfbd00daf5f39f9706400273bc04a6b34 100644 --- a/docs/plugins/inspect/plugin-dv.xml +++ b/docs/plugins/inspect/plugin-dv.xml @@ -3,7 +3,7 @@ <description>DV demuxer and decoder based on libdv (libdv.sf.net)</description> <filename>../../ext/dv/.libs/libgstdv.so</filename> <basename>libgstdv.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-effectv.xml b/docs/plugins/inspect/plugin-effectv.xml index 0e61a0a0dec0bb365ee89aa9791f9ce1fc21a1bc..1a87448f96aa0ffd74cdac90ac2322720deccd96 100644 --- a/docs/plugins/inspect/plugin-effectv.xml +++ b/docs/plugins/inspect/plugin-effectv.xml @@ -3,7 +3,7 @@ <description>effect plugins from the effectv project</description> <filename>../../gst/effectv/.libs/libgsteffectv.so</filename> <basename>libgsteffectv.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-equalizer.xml b/docs/plugins/inspect/plugin-equalizer.xml index 05aa482bcccd6ff3e179b786f9c1a34735e8d074..5b614acb2d04652e0a5de900c00cf74d37bfd2c6 100644 --- a/docs/plugins/inspect/plugin-equalizer.xml +++ b/docs/plugins/inspect/plugin-equalizer.xml @@ -3,7 +3,7 @@ <description>GStreamer audio equalizers</description> <filename>../../gst/equalizer/.libs/libgstequalizer.so</filename> <basename>libgstequalizer.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-flac.xml b/docs/plugins/inspect/plugin-flac.xml index 49f709a85a8b695b3ef0fefb8e0a7c9b9bd24119..781296ece231b196645c413a7eef4036cbe0abdd 100644 --- a/docs/plugins/inspect/plugin-flac.xml +++ b/docs/plugins/inspect/plugin-flac.xml @@ -3,7 +3,7 @@ <description>The FLAC Lossless compressor Codec</description> <filename>../../ext/flac/.libs/libgstflac.so</filename> <basename>libgstflac.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-flv.xml b/docs/plugins/inspect/plugin-flv.xml index a991403c616c3c8c3c30931d37dc7fb264de37d4..d9dd2dc7d242e8df72761769de59918bb997d32a 100644 --- a/docs/plugins/inspect/plugin-flv.xml +++ b/docs/plugins/inspect/plugin-flv.xml @@ -3,7 +3,7 @@ <description>FLV muxing and demuxing plugin</description> <filename>../../gst/flv/.libs/libgstflv.so</filename> <basename>libgstflv.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-flxdec.xml b/docs/plugins/inspect/plugin-flxdec.xml index f32691c88085273e08d1a892314f0006194beaa7..4a257ed56eff38fd7e13fa7bfc1998e2b6bb42d0 100644 --- a/docs/plugins/inspect/plugin-flxdec.xml +++ b/docs/plugins/inspect/plugin-flxdec.xml @@ -3,7 +3,7 @@ <description>FLC/FLI/FLX video decoder</description> <filename>../../gst/flx/.libs/libgstflxdec.so</filename> <basename>libgstflxdec.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-gdkpixbuf.xml b/docs/plugins/inspect/plugin-gdkpixbuf.xml index eca8f90cd26adf3711e786aeef6f8736282ab271..50943716f2450c89354bca17e7079d5f51b1001c 100644 --- a/docs/plugins/inspect/plugin-gdkpixbuf.xml +++ b/docs/plugins/inspect/plugin-gdkpixbuf.xml @@ -3,7 +3,7 @@ <description>GdkPixbuf-based image decoder, overlay and sink</description> <filename>../../ext/gdk_pixbuf/.libs/libgstgdkpixbuf.so</filename> <basename>libgstgdkpixbuf.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-goom.xml b/docs/plugins/inspect/plugin-goom.xml index d80573c994a6461af7cb607d4f23bfeca4527f26..e35c54b1b0de64f63c0f2b288b6018abd09dc4a0 100644 --- a/docs/plugins/inspect/plugin-goom.xml +++ b/docs/plugins/inspect/plugin-goom.xml @@ -3,7 +3,7 @@ <description>GOOM visualization filter</description> <filename>../../gst/goom/.libs/libgstgoom.so</filename> <basename>libgstgoom.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-goom2k1.xml b/docs/plugins/inspect/plugin-goom2k1.xml index 7be1bc5f20762ae40dc7600d6b8d2e849d9e9e7c..3719d97a3af9f5887bdaf469cf2f711bd5c7a5f4 100644 --- a/docs/plugins/inspect/plugin-goom2k1.xml +++ b/docs/plugins/inspect/plugin-goom2k1.xml @@ -3,7 +3,7 @@ <description>GOOM 2k1 visualization filter</description> <filename>../../gst/goom2k1/.libs/libgstgoom2k1.so</filename> <basename>libgstgoom2k1.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-icydemux.xml b/docs/plugins/inspect/plugin-icydemux.xml index 660d481ec1f669aea3fcb9d88bcfd8cee7b69610..64218e33ca9c3cfaa074e639d2b8fcfa338e5dc0 100644 --- a/docs/plugins/inspect/plugin-icydemux.xml +++ b/docs/plugins/inspect/plugin-icydemux.xml @@ -3,7 +3,7 @@ <description>Demux ICY tags from a stream</description> <filename>../../gst/icydemux/.libs/libgsticydemux.so</filename> <basename>libgsticydemux.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-id3demux.xml b/docs/plugins/inspect/plugin-id3demux.xml index 3fa1a55cc8267e31df4e552348e6245203a66005..171b04e51bd099e114bd448feeb2947f9a2c2174 100644 --- a/docs/plugins/inspect/plugin-id3demux.xml +++ b/docs/plugins/inspect/plugin-id3demux.xml @@ -3,7 +3,7 @@ <description>Demux ID3v1 and ID3v2 tags from a file</description> <filename>../../gst/id3demux/.libs/libgstid3demux.so</filename> <basename>libgstid3demux.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-imagefreeze.xml b/docs/plugins/inspect/plugin-imagefreeze.xml index c294e06507cd1a77e0d2b2316269a86ffab7ba6c..8e14b1cd5ea31fcd98315cdb925d39d56c52d3bd 100644 --- a/docs/plugins/inspect/plugin-imagefreeze.xml +++ b/docs/plugins/inspect/plugin-imagefreeze.xml @@ -3,7 +3,7 @@ <description>Still frame stream generator</description> <filename>../../gst/imagefreeze/.libs/libgstimagefreeze.so</filename> <basename>libgstimagefreeze.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-interleave.xml b/docs/plugins/inspect/plugin-interleave.xml index a8ac8525ebe5f879d56bdab5cebfa2c3307c27b9..00620c749ae9c75177f680f4e8dfcdbe688cf6ca 100644 --- a/docs/plugins/inspect/plugin-interleave.xml +++ b/docs/plugins/inspect/plugin-interleave.xml @@ -3,7 +3,7 @@ <description>Audio interleaver/deinterleaver</description> <filename>../../gst/interleave/.libs/libgstinterleave.so</filename> <basename>libgstinterleave.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-isomp4.xml b/docs/plugins/inspect/plugin-isomp4.xml index df87e181a769ad03bc48a8bd27388860cdbeef55..5baaf107d464a2928bc2df28902e790a3f1f670d 100644 --- a/docs/plugins/inspect/plugin-isomp4.xml +++ b/docs/plugins/inspect/plugin-isomp4.xml @@ -3,7 +3,7 @@ <description>ISO base media file format support (mp4, 3gpp, qt, mj2)</description> <filename>../../gst/isomp4/.libs/libgstisomp4.so</filename> <basename>libgstisomp4.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-jack.xml b/docs/plugins/inspect/plugin-jack.xml index 512470564743cf550711ba472b04e1410af73a64..526c7a0f04ac8fe53baf507525bb727a9c3d30ad 100644 --- a/docs/plugins/inspect/plugin-jack.xml +++ b/docs/plugins/inspect/plugin-jack.xml @@ -3,7 +3,7 @@ <description>JACK audio elements</description> <filename>../../ext/jack/.libs/libgstjack.so</filename> <basename>libgstjack.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-jpeg.xml b/docs/plugins/inspect/plugin-jpeg.xml index ebd8e763bbf7d0deff4e24f623dde27b33dc6d50..94374ace17dd4f81d12397c2d8185a2b1fd5e3ce 100644 --- a/docs/plugins/inspect/plugin-jpeg.xml +++ b/docs/plugins/inspect/plugin-jpeg.xml @@ -3,7 +3,7 @@ <description>JPeg plugin library</description> <filename>../../ext/jpeg/.libs/libgstjpeg.so</filename> <basename>libgstjpeg.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-level.xml b/docs/plugins/inspect/plugin-level.xml index 2f6da981f6603f8aa000c7816d5bd137a9c4b3c1..3541af03c7e593272091644a9d4acfbcc9828e79 100644 --- a/docs/plugins/inspect/plugin-level.xml +++ b/docs/plugins/inspect/plugin-level.xml @@ -3,7 +3,7 @@ <description>Audio level plugin</description> <filename>../../gst/level/.libs/libgstlevel.so</filename> <basename>libgstlevel.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-matroska.xml b/docs/plugins/inspect/plugin-matroska.xml index 338461d84c1ec585b27f175137935a81e3ac4e2c..0a551d3bfb6a6ac05e94973f1f4fa5237dac40bf 100644 --- a/docs/plugins/inspect/plugin-matroska.xml +++ b/docs/plugins/inspect/plugin-matroska.xml @@ -3,7 +3,7 @@ <description>Matroska and WebM stream handling</description> <filename>../../gst/matroska/.libs/libgstmatroska.so</filename> <basename>libgstmatroska.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -119,7 +119,7 @@ <name>video_%u</name> <direction>sink</direction> <presence>request</presence> - <details>video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp9, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> <caps> <name>src</name> diff --git a/docs/plugins/inspect/plugin-monoscope.xml b/docs/plugins/inspect/plugin-monoscope.xml index ac10183b89d077b417a3636030266764121acff4..49178c1fe4e1fcc9cfc13b474f685ff42474fb1f 100644 --- a/docs/plugins/inspect/plugin-monoscope.xml +++ b/docs/plugins/inspect/plugin-monoscope.xml @@ -3,7 +3,7 @@ <description>Monoscope visualization</description> <filename>../../gst/monoscope/.libs/libgstmonoscope.so</filename> <basename>libgstmonoscope.so</basename> - <version>0.11.94.1</version> + <version>1.1.1.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins git</package> diff --git a/docs/plugins/inspect/plugin-mulaw.xml b/docs/plugins/inspect/plugin-mulaw.xml index ff27c8ca39a110f0ad1baf8986c29333b0439ab8..049789e76badc7e35825fa3afb77ba5fd09aefa9 100644 --- a/docs/plugins/inspect/plugin-mulaw.xml +++ b/docs/plugins/inspect/plugin-mulaw.xml @@ -3,7 +3,7 @@ <description>MuLaw audio conversion routines</description> <filename>../../gst/law/.libs/libgstmulaw.so</filename> <basename>libgstmulaw.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-multifile.xml b/docs/plugins/inspect/plugin-multifile.xml index 347bb3978a0fe62ed2829ba8955fd2d0ac7d0ecb..7660cc1098b28462658ee131626dc9a44806ecaf 100644 --- a/docs/plugins/inspect/plugin-multifile.xml +++ b/docs/plugins/inspect/plugin-multifile.xml @@ -3,7 +3,7 @@ <description>Reads/Writes buffers from/to sequentially named files</description> <filename>../../gst/multifile/.libs/libgstmultifile.so</filename> <basename>libgstmultifile.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-multipart.xml b/docs/plugins/inspect/plugin-multipart.xml index 43148561989037aa40410c4d1d6276074bd6b0e9..8e3141cca21993bab25e4e6c2b001f921c296dfb 100644 --- a/docs/plugins/inspect/plugin-multipart.xml +++ b/docs/plugins/inspect/plugin-multipart.xml @@ -3,7 +3,7 @@ <description>multipart stream manipulation</description> <filename>../../gst/multipart/.libs/libgstmultipart.so</filename> <basename>libgstmultipart.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-navigationtest.xml b/docs/plugins/inspect/plugin-navigationtest.xml index 551081a6723f5b84b3870a6fc9b23c1028cfc08d..1f2e99afdf9a7419fcdee361bb21f60d1449dfab 100644 --- a/docs/plugins/inspect/plugin-navigationtest.xml +++ b/docs/plugins/inspect/plugin-navigationtest.xml @@ -3,7 +3,7 @@ <description>Template for a video filter</description> <filename>../../gst/debugutils/.libs/libgstnavigationtest.so</filename> <basename>libgstnavigationtest.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-oss4.xml b/docs/plugins/inspect/plugin-oss4.xml index 2aecbd3cd503dac2543370df5915fa3a073550fb..6c6598dafe1fa8291f584c04096e8b72cf78dc81 100644 --- a/docs/plugins/inspect/plugin-oss4.xml +++ b/docs/plugins/inspect/plugin-oss4.xml @@ -3,7 +3,7 @@ <description>Open Sound System (OSS) version 4 support for GStreamer</description> <filename>../../sys/oss4/.libs/libgstoss4audio.so</filename> <basename>libgstoss4audio.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-ossaudio.xml b/docs/plugins/inspect/plugin-ossaudio.xml index 5502a189df1170557ea0c75142498b4a059e948a..42061e1996407264cadbb8ec6364a5b6ec0ff788 100644 --- a/docs/plugins/inspect/plugin-ossaudio.xml +++ b/docs/plugins/inspect/plugin-ossaudio.xml @@ -3,7 +3,7 @@ <description>OSS (Open Sound System) support for GStreamer</description> <filename>../../sys/oss/.libs/libgstossaudio.so</filename> <basename>libgstossaudio.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-png.xml b/docs/plugins/inspect/plugin-png.xml index 5f3981fc0333230d22011fb48f04bcc2c94a8ce9..9d81954b96525ace787ebc00e0bdf539e192b2a1 100644 --- a/docs/plugins/inspect/plugin-png.xml +++ b/docs/plugins/inspect/plugin-png.xml @@ -3,7 +3,7 @@ <description>PNG plugin library</description> <filename>../../ext/libpng/.libs/libgstpng.so</filename> <basename>libgstpng.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-pulseaudio.xml b/docs/plugins/inspect/plugin-pulseaudio.xml index 0bcfc0fe0a10126a19c47a7b0749cd32093ccbc5..cd6703126f80cc9ee49b706c20324fe2817b2102 100644 --- a/docs/plugins/inspect/plugin-pulseaudio.xml +++ b/docs/plugins/inspect/plugin-pulseaudio.xml @@ -3,7 +3,7 @@ <description>PulseAudio plugin library</description> <filename>../../ext/pulse/.libs/libgstpulse.so</filename> <basename>libgstpulse.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-replaygain.xml b/docs/plugins/inspect/plugin-replaygain.xml index 21f393c625fc7b0d48ce6ec9f114b0c00db096a9..f7210baa0f65ce406cd2bd0153ac8d53ead63718 100644 --- a/docs/plugins/inspect/plugin-replaygain.xml +++ b/docs/plugins/inspect/plugin-replaygain.xml @@ -3,7 +3,7 @@ <description>ReplayGain volume normalization</description> <filename>../../gst/replaygain/.libs/libgstreplaygain.so</filename> <basename>libgstreplaygain.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-rtp.xml b/docs/plugins/inspect/plugin-rtp.xml index 30eadfdef7ed21d6ce93f22459ab20d5e61e3419..0c80d722ebef8b0923a3314fc8b30f0f220d6ddf 100644 --- a/docs/plugins/inspect/plugin-rtp.xml +++ b/docs/plugins/inspect/plugin-rtp.xml @@ -3,7 +3,7 @@ <description>Real-time protocol plugins</description> <filename>../../gst/rtp/.libs/libgstrtp.so</filename> <basename>libgstrtp.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -41,7 +41,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16; application/x-rtp, media=(string)audio, payload=(int){ 10, 11 }, clock-rate=(int)[ 1, 2147483647 ]</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16; application/x-rtp, media=(string)audio, payload=(int){ 10, 11 }, clock-rate=(int)[ 1, 2147483647 ]</details> </caps> <caps> <name>src</name> @@ -83,7 +83,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</details> </caps> <caps> <name>src</name> @@ -125,7 +125,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1; application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1</details> </caps> <caps> <name>src</name> @@ -167,7 +167,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)BV16; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)BV32</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)BV16; application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)BV32</details> </caps> <caps> <name>src</name> @@ -209,7 +209,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 32000, 48000 ], encoding-name=(string)CELT</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 32000, 48000 ], encoding-name=(string)CELT</details> </caps> <caps> <name>src</name> @@ -251,7 +251,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string){ video, audio }, payload=(int)[ 96, 127 ], encoding-name=(string)DV, clock-rate=(int)90000, encode=(string){ SD-VCR/525-60, SD-VCR/625-50, HD-VCR/1125-60, HD-VCR/1250-50, SDL-VCR/525-60, SDL-VCR/625-50, 306M/525-60, 306M/625-50, 314M-25/525-60, 314M-25/625-50, 314M-50/525-60, 314M-50/625-50 }</details> + <details>application/x-rtp, media=(string){ video, audio }, encoding-name=(string)DV, clock-rate=(int)90000, encode=(string){ SD-VCR/525-60, SD-VCR/625-50, HD-VCR/1125-60, HD-VCR/1250-50, SDL-VCR/525-60, SDL-VCR/625-50, 306M/525-60, 306M/625-50, 314M-25/525-60, 314M-25/625-50, 314M-50/525-60, 314M-50/625-50 }</details> </caps> <caps> <name>src</name> @@ -293,7 +293,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G722; application/x-rtp, media=(string)audio, payload=(int)9, clock-rate=(int)[ 1, 2147483647 ]</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)G722; application/x-rtp, media=(string)audio, payload=(int)9, clock-rate=(int)[ 1, 2147483647 ]</details> </caps> <caps> <name>src</name> @@ -335,7 +335,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G723; application/x-rtp, media=(string)audio, payload=(int)4, clock-rate=(int)8000</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)G723; application/x-rtp, media=(string)audio, payload=(int)4, clock-rate=(int)8000</details> </caps> <caps> <name>src</name> @@ -377,7 +377,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string){ G726, G726-16, G726-24, G726-32, G726-40, AAL2-G726-16, AAL2-G726-24, AAL2-G726-32, AAL2-G726-40 }, clock-rate=(int)8000</details> + <details>application/x-rtp, media=(string)audio, encoding-name=(string){ G726, G726-16, G726-24, G726-32, G726-40, AAL2-G726-16, AAL2-G726-24, AAL2-G726-32, AAL2-G726-40 }, clock-rate=(int)8000</details> </caps> <caps> <name>src</name> @@ -419,7 +419,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G729; application/x-rtp, media=(string)audio, payload=(int)18, clock-rate=(int)8000</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)G729; application/x-rtp, media=(string)audio, payload=(int)18, clock-rate=(int)8000</details> </caps> <caps> <name>src</name> @@ -461,7 +461,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)GSM; application/x-rtp, media=(string)audio, payload=(int)3, clock-rate=(int)8000</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)GSM; application/x-rtp, media=(string)audio, payload=(int)3, clock-rate=(int)8000</details> </caps> <caps> <name>src</name> @@ -503,7 +503,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)application, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)X-GST</details> + <details>application/x-rtp, media=(string)application, clock-rate=(int)90000, encoding-name=(string)X-GST</details> </caps> <caps> <name>src</name> @@ -545,7 +545,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)34, clock-rate=(int)90000, encoding-name=(string)H263; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H263</details> + <details>application/x-rtp, media=(string)video, payload=(int)34, clock-rate=(int)90000; application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H263</details> </caps> <caps> <name>src</name> @@ -587,7 +587,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-1998; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-2000</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-1998; application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-2000</details> </caps> <caps> <name>src</name> @@ -629,7 +629,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H264</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264</details> </caps> <caps> <name>src</name> @@ -671,7 +671,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)ILBC, mode=(string){ 20, 30 }</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)ILBC, mode=(string){ 20, 30 }</details> </caps> <caps> <name>src</name> @@ -713,7 +713,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG2000</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG2000</details> </caps> <caps> <name>src</name> @@ -755,7 +755,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG; application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG; application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000</details> </caps> <caps> <name>src</name> @@ -782,7 +782,7 @@ <name>src</name> <direction>source</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG</details> + <details>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG, width=(int)[ 1, 65536 ], height=(int)[ 1, 65536 ]</details> </caps> </pads> </element> @@ -797,7 +797,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)other, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S</details> + <details>application/x-rtp, media=(string)other, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S; application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S</details> </caps> <caps> <name>src</name> @@ -818,7 +818,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ MP2T, MP2T-ES }; application/x-rtp, media=(string)video, payload=(int)33, clock-rate=(int)[ 1, 2147483647 ]</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ MP2T, MP2T-ES }; application/x-rtp, media=(string)video, payload=(int)33, clock-rate=(int)[ 1, 2147483647 ]</details> </caps> <caps> <name>src</name> @@ -860,7 +860,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM</details> </caps> <caps> <name>src</name> @@ -902,7 +902,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string){ video, audio, application }, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MPEG4-GENERIC, mode=(string){ generic, CELP-cbr, CELP-vbr, AAC-lbr, AAC-hbr }</details> + <details>application/x-rtp, media=(string){ video, audio, application }, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MPEG4-GENERIC, mode=(string){ generic, CELP-cbr, CELP-vbr, AAC-lbr, AAC-hbr }</details> </caps> <caps> <name>src</name> @@ -944,7 +944,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4V-ES</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4V-ES</details> </caps> <caps> <name>src</name> @@ -986,7 +986,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPA; application/x-rtp, media=(string)audio, payload=(int)14, clock-rate=(int)90000</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA; application/x-rtp, media=(string)audio, payload=(int)14, clock-rate=(int)90000</details> </caps> <caps> <name>src</name> @@ -1028,7 +1028,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPA-ROBUST; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ X-MP3-DRAFT-00, X-MP3-DRAFT-01, X-MP3-DRAFT-02, X-MP3-DRAFT-03, X-MP3-DRAFT-04, X-MP3-DRAFT-05, X-MP3-DRAFT-06 }</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA-ROBUST; application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ X-MP3-DRAFT-00, X-MP3-DRAFT-01, X-MP3-DRAFT-02, X-MP3-DRAFT-03, X-MP3-DRAFT-04, X-MP3-DRAFT-05, X-MP3-DRAFT-06 }</details> </caps> <caps> <name>src</name> @@ -1049,7 +1049,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPV; application/x-rtp, media=(string)video, payload=(int)32, clock-rate=(int)90000</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MPV; application/x-rtp, media=(string)video, payload=(int)32, clock-rate=(int)90000</details> </caps> <caps> <name>src</name> @@ -1091,7 +1091,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000, encoding-name=(string)PCMA; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA</details> + <details>application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000; application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA</details> </caps> <caps> <name>src</name> @@ -1133,7 +1133,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)0, encoding-name=(string)PCMU, clock-rate=(int)8000; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string)PCMU, clock-rate=(int)[ 1, 2147483647 ]</details> + <details>application/x-rtp, media=(string)audio, payload=(int)0, clock-rate=(int)8000; application/x-rtp, media=(string)audio, encoding-name=(string)PCMU, clock-rate=(int)[ 1, 2147483647 ]</details> </caps> <caps> <name>src</name> @@ -1175,7 +1175,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)QCELP; application/x-rtp, media=(string)audio, payload=(int)12, clock-rate=(int)8000</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)QCELP; application/x-rtp, media=(string)audio, payload=(int)12, clock-rate=(int)8000</details> </caps> <caps> <name>src</name> @@ -1196,7 +1196,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string)X-QDM</details> + <details>application/x-rtp, media=(string)audio, encoding-name=(string)X-QDM</details> </caps> <caps> <name>src</name> @@ -1206,6 +1206,48 @@ </caps> </pads> </element> + <element> + <name>rtpsbcdepay</name> + <longname>RTP SBC audio depayloader</longname> + <class>Codec/Depayloader/Network/RTP</class> + <description>Extracts SBC audio from RTP packets</description> + <author>Arun Raghavan <arun.raghavan@collabora.co.uk></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 16000, 32000, 44100, 48000 }, encoding-name=(string)SBC</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>audio/x-sbc, rate=(int){ 16000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], mode=(string){ mono, dual, stereo, joint }, blocks=(int){ 4, 8, 12, 16 }, subbands=(int){ 4, 8 }, allocation-method=(string){ snr, loudness }, bitpool=(int)[ 2, 64 ]</details> + </caps> + </pads> + </element> + <element> + <name>rtpsbcpay</name> + <longname>RTP packet payloader</longname> + <class>Codec/Payloader/Network</class> + <description>Payload SBC audio as RTP packets</description> + <author>Thiago Sousa Santos <thiagoss@lcc.ufcg.edu.br></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>audio/x-sbc, rate=(int){ 16000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], channel-mode=(string){ mono, dual, stereo, joint }, blocks=(int){ 4, 8, 12, 16 }, subbands=(int){ 4, 8 }, allocation-method=(string){ snr, loudness }, bitpool=(int)[ 2, 64 ]</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 16000, 32000, 44100, 48000 }, encoding-name=(string)SBC</details> + </caps> + </pads> + </element> <element> <name>rtpsirendepay</name> <longname>RTP Siren packet depayloader</longname> @@ -1217,7 +1259,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)SIREN, dct-length=(int)320</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SIREN, dct-length=(int)320</details> </caps> <caps> <name>src</name> @@ -1259,7 +1301,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 6000, 48000 ], encoding-name=(string)SPEEX, encoding-params=(string)1</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 6000, 48000 ], encoding-name=(string)SPEEX, encoding-params=(string)1</details> </caps> <caps> <name>src</name> @@ -1301,7 +1343,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string){ X-SV3V-ES, X-SORENSON-VIDEO, X-SORENSONVIDEO, X-SorensonVideo }</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string){ X-SV3V-ES, X-SORENSON-VIDEO, X-SORENSONVIDEO, X-SorensonVideo }</details> </caps> <caps> <name>src</name> @@ -1322,7 +1364,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)THEORA</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)THEORA</details> </caps> <caps> <name>src</name> @@ -1364,7 +1406,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)VORBIS</details> + <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)VORBIS</details> </caps> <caps> <name>src</name> @@ -1395,6 +1437,48 @@ </caps> </pads> </element> + <element> + <name>rtpvp8depay</name> + <longname>RTP VP8 depayloader</longname> + <class>Codec/Depayloader/Network/RTP</class> + <description>Extracts VP8 video from RTP packets)</description> + <author>Sjoerd Simons <sjoerd@luon.net></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>application/x-rtp, clock-rate=(int)90000, media=(string)video, encoding-name=(string)VP8-DRAFT-IETF-01</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>video/x-vp8</details> + </caps> + </pads> + </element> + <element> + <name>rtpvp8pay</name> + <longname>RTP VP8 payloader</longname> + <class>Codec/Payloader/Network/RTP</class> + <description>Puts VP8 video in RTP packets)</description> + <author>Sjoerd Simons <sjoerd@luon.net></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>video/x-vp8</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>application/x-rtp, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-IETF-01</details> + </caps> + </pads> + </element> <element> <name>rtpvrawdepay</name> <longname>RTP Raw Video depayloader</longname> @@ -1406,7 +1490,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)RAW</details> + <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)RAW</details> </caps> <caps> <name>src</name> diff --git a/docs/plugins/inspect/plugin-rtpmanager.xml b/docs/plugins/inspect/plugin-rtpmanager.xml index 5703f01e859a20c901fb848122e12abbd51f8dd3..4310ae44af96d99d80b530f8e3b03c2a4d1e4cf8 100644 --- a/docs/plugins/inspect/plugin-rtpmanager.xml +++ b/docs/plugins/inspect/plugin-rtpmanager.xml @@ -3,7 +3,7 @@ <description>RTP session management plugin library</description> <filename>../../gst/rtpmanager/.libs/libgstrtpmanager.so</filename> <basename>libgstrtpmanager.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -54,6 +54,33 @@ </caps> </pads> </element> + <element> + <name>rtpdtmfmux</name> + <longname>RTP muxer</longname> + <class>Codec/Muxer</class> + <description>mixes RTP DTMF streams into other RTP streams</description> + <author>Zeeshan Ali <first.last@nokia.com></author> + <pads> + <caps> + <name>priority_sink_%u</name> + <direction>sink</direction> + <presence>request</presence> + <details>application/x-rtp</details> + </caps> + <caps> + <name>sink_%u</name> + <direction>sink</direction> + <presence>request</presence> + <details>application/x-rtp</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>application/x-rtp</details> + </caps> + </pads> + </element> <element> <name>rtpjitterbuffer</name> <longname>RTP packet jitter-buffer</longname> @@ -81,6 +108,27 @@ </caps> </pads> </element> + <element> + <name>rtpmux</name> + <longname>RTP muxer</longname> + <class>Codec/Muxer</class> + <description>multiplex N rtp streams into one</description> + <author>Zeeshan Ali <first.last@nokia.com></author> + <pads> + <caps> + <name>sink_%u</name> + <direction>sink</direction> + <presence>request</presence> + <details>application/x-rtp</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>application/x-rtp</details> + </caps> + </pads> + </element> <element> <name>rtpptdemux</name> <longname>RTP Demux</longname> diff --git a/docs/plugins/inspect/plugin-rtsp.xml b/docs/plugins/inspect/plugin-rtsp.xml index 7f1f9064b2de3cfc43ba0a3a1cf0316bc0a5d990..7c9ad709bb202dac9d9a31552d1a7a3ab42591b7 100644 --- a/docs/plugins/inspect/plugin-rtsp.xml +++ b/docs/plugins/inspect/plugin-rtsp.xml @@ -3,7 +3,7 @@ <description>transfer data via RTSP</description> <filename>../../gst/rtsp/.libs/libgstrtsp.so</filename> <basename>libgstrtsp.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-shapewipe.xml b/docs/plugins/inspect/plugin-shapewipe.xml index d42f71073cad7300d8c750f10fcfc687da0add98..c5b7d6ca4b3e6c785029d9fca13a7aeead10db3b 100644 --- a/docs/plugins/inspect/plugin-shapewipe.xml +++ b/docs/plugins/inspect/plugin-shapewipe.xml @@ -3,7 +3,7 @@ <description>Shape Wipe transition filter</description> <filename>../../gst/shapewipe/.libs/libgstshapewipe.so</filename> <basename>libgstshapewipe.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-shout2send.xml b/docs/plugins/inspect/plugin-shout2send.xml index 56ce5c2029d0d28637a56e26439d973c1f2fed92..2fae63d411fd93735184b720c0a9b6d5f8378a50 100644 --- a/docs/plugins/inspect/plugin-shout2send.xml +++ b/docs/plugins/inspect/plugin-shout2send.xml @@ -3,7 +3,7 @@ <description>Sends data to an icecast server using libshout2</description> <filename>../../ext/shout2/.libs/libgstshout2.so</filename> <basename>libgstshout2.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>libshout2</package> @@ -20,7 +20,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>application/ogg; audio/ogg; video/ogg; audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]</details> + <details>application/ogg; audio/ogg; video/ogg; audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]; video/webm; audio/webm</details> </caps> </pads> </element> diff --git a/docs/plugins/inspect/plugin-smpte.xml b/docs/plugins/inspect/plugin-smpte.xml index 699031bac06ac7ca092b427ebfb213f513ccbfa3..bf2e3a7e06c38dc56293e41175ca40733403f1c1 100644 --- a/docs/plugins/inspect/plugin-smpte.xml +++ b/docs/plugins/inspect/plugin-smpte.xml @@ -3,7 +3,7 @@ <description>Apply the standard SMPTE transitions on video images</description> <filename>../../gst/smpte/.libs/libgstsmpte.so</filename> <basename>libgstsmpte.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-soup.xml b/docs/plugins/inspect/plugin-soup.xml index 566e83ac6979f58b9a316d6a44b546d4aa983299..d0aefd3d3624f7cc1a47f39d1ae7ebd692c1c997 100644 --- a/docs/plugins/inspect/plugin-soup.xml +++ b/docs/plugins/inspect/plugin-soup.xml @@ -3,7 +3,7 @@ <description>libsoup HTTP client src/sink</description> <filename>../../ext/soup/.libs/libgstsouphttpsrc.so</filename> <basename>libgstsouphttpsrc.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-spectrum.xml b/docs/plugins/inspect/plugin-spectrum.xml index 5af9887c54b603dec32b71cdc0da28ced2126121..e20124c3fb61a2bfbf20a8a96eb6adc6a7d9d42e 100644 --- a/docs/plugins/inspect/plugin-spectrum.xml +++ b/docs/plugins/inspect/plugin-spectrum.xml @@ -3,7 +3,7 @@ <description>Run an FFT on the audio signal, output spectrum data</description> <filename>../../gst/spectrum/.libs/libgstspectrum.so</filename> <basename>libgstspectrum.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-speex.xml b/docs/plugins/inspect/plugin-speex.xml index aed402df38d3f5a6e6f940722dc5582320cc4cd4..d64b4a260dc57bd1f360467e968bf199734a7fec 100644 --- a/docs/plugins/inspect/plugin-speex.xml +++ b/docs/plugins/inspect/plugin-speex.xml @@ -3,7 +3,7 @@ <description>Speex plugin library</description> <filename>../../ext/speex/.libs/libgstspeex.so</filename> <basename>libgstspeex.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-taglib.xml b/docs/plugins/inspect/plugin-taglib.xml index cdd930e073e331d4b9bfb7fcd5f16221132f6ed3..2a434e6d853b1b82970f7d822b5b6ccbc7a8c2d9 100644 --- a/docs/plugins/inspect/plugin-taglib.xml +++ b/docs/plugins/inspect/plugin-taglib.xml @@ -3,7 +3,7 @@ <description>Tag writing plug-in based on taglib</description> <filename>../../ext/taglib/.libs/libgsttaglib.so</filename> <basename>libgsttaglib.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-udp.xml b/docs/plugins/inspect/plugin-udp.xml index 5dc2eaa2000284ce11a9188b1f1a06a4f0c8f002..36276214e6ad14f262c242c59d812cc9be329da0 100644 --- a/docs/plugins/inspect/plugin-udp.xml +++ b/docs/plugins/inspect/plugin-udp.xml @@ -3,7 +3,7 @@ <description>transfer data via UDP</description> <filename>../../gst/udp/.libs/libgstudp.so</filename> <basename>libgstudp.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-video4linux2.xml b/docs/plugins/inspect/plugin-video4linux2.xml index 271151d88b9c9b73e0bdc5fd4268ec0e3e76176d..0e4dabfde09a26d99eefb56bc77945c2f28ef27f 100644 --- a/docs/plugins/inspect/plugin-video4linux2.xml +++ b/docs/plugins/inspect/plugin-video4linux2.xml @@ -3,7 +3,7 @@ <description>elements for Video 4 Linux</description> <filename>../../sys/v4l2/.libs/libgstvideo4linux2.so</filename> <basename>libgstvideo4linux2.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -29,7 +29,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details> + <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details> </caps> </pads> </element> @@ -44,7 +44,7 @@ <name>src</name> <direction>source</direction> <presence>always</presence> - <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details> + <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details> </caps> </pads> </element> diff --git a/docs/plugins/inspect/plugin-videobox.xml b/docs/plugins/inspect/plugin-videobox.xml index a75c64865376469c4d1a6c17919fa767518f1cdf..77f0f31be30e599f7bae00fe49c5c6a8685b112e 100644 --- a/docs/plugins/inspect/plugin-videobox.xml +++ b/docs/plugins/inspect/plugin-videobox.xml @@ -3,7 +3,7 @@ <description>resizes a video by adding borders or cropping</description> <filename>../../gst/videobox/.libs/libgstvideobox.so</filename> <basename>libgstvideobox.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-videocrop.xml b/docs/plugins/inspect/plugin-videocrop.xml index 9d711be2c5f9c720d090cfdec904b9f218c559c8..d1245588f96ab6d74d51c9c78820a6c6d71d3242 100644 --- a/docs/plugins/inspect/plugin-videocrop.xml +++ b/docs/plugins/inspect/plugin-videocrop.xml @@ -3,7 +3,7 @@ <description>Crops video into a user-defined region</description> <filename>../../gst/videocrop/.libs/libgstvideocrop.so</filename> <basename>libgstvideocrop.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -20,13 +20,13 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> <caps> <name>src</name> <direction>source</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> </pads> </element> @@ -41,13 +41,13 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> <caps> <name>src</name> <direction>source</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> </pads> </element> diff --git a/docs/plugins/inspect/plugin-videofilter.xml b/docs/plugins/inspect/plugin-videofilter.xml index a106e6f8445d539543ad8fd75ce495977d2afd62..63cf7dd0077377f2a3bd3be15b2ad18326f86aa2 100644 --- a/docs/plugins/inspect/plugin-videofilter.xml +++ b/docs/plugins/inspect/plugin-videofilter.xml @@ -3,7 +3,7 @@ <description>Video filters plugin</description> <filename>../../gst/videofilter/.libs/libgstvideofilter.so</filename> <basename>libgstvideofilter.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -62,13 +62,13 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> <caps> <name>src</name> <direction>source</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> </pads> </element> diff --git a/docs/plugins/inspect/plugin-videomixer.xml b/docs/plugins/inspect/plugin-videomixer.xml index 074aed93b99dce1dfcb522f36e477e76687ecd9c..36a8e25a278408ef067d47b17e5038e3098dada9 100644 --- a/docs/plugins/inspect/plugin-videomixer.xml +++ b/docs/plugins/inspect/plugin-videomixer.xml @@ -3,7 +3,7 @@ <description>Video mixer</description> <filename>../../gst/videomixer/.libs/libgstvideomixer.so</filename> <basename>libgstvideomixer.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-vpx.xml b/docs/plugins/inspect/plugin-vpx.xml index 236dd3c3290d3948f555e8777b081c0145e4feb5..81427279b181a35e27b7cceaf3a0c5656433fe2f 100644 --- a/docs/plugins/inspect/plugin-vpx.xml +++ b/docs/plugins/inspect/plugin-vpx.xml @@ -3,7 +3,7 @@ <description>VP8 plugin</description> <filename>../../ext/vpx/.libs/libgstvpx.so</filename> <basename>libgstvpx.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-wavenc.xml b/docs/plugins/inspect/plugin-wavenc.xml index 31ecd12b60acbac60bcdbbfd921c58f60f35ee26..a6df90819e2fa84625359b64f66aa4015131f507 100644 --- a/docs/plugins/inspect/plugin-wavenc.xml +++ b/docs/plugins/inspect/plugin-wavenc.xml @@ -3,7 +3,7 @@ <description>Encode raw audio into WAV</description> <filename>../../gst/wavenc/.libs/libgstwavenc.so</filename> <basename>libgstwavenc.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-wavpack.xml b/docs/plugins/inspect/plugin-wavpack.xml index 52b6b7e5ff7c709eb59fe68e7f038e1cc838eb3c..4b2978935ad6c622e86074fc3d877cd4feef79fc 100644 --- a/docs/plugins/inspect/plugin-wavpack.xml +++ b/docs/plugins/inspect/plugin-wavpack.xml @@ -3,7 +3,7 @@ <description>Wavpack lossless/lossy audio format handling</description> <filename>../../ext/wavpack/.libs/libgstwavpack.so</filename> <basename>libgstwavpack.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-wavparse.xml b/docs/plugins/inspect/plugin-wavparse.xml index 15bd30db5d3ad7e484853efa22145cb195a291c2..3b03d19519275fce2ae5fc9a738c5e590ed18e27 100644 --- a/docs/plugins/inspect/plugin-wavparse.xml +++ b/docs/plugins/inspect/plugin-wavparse.xml @@ -3,7 +3,7 @@ <description>Parse a .wav file into raw audio</description> <filename>../../gst/wavparse/.libs/libgstwavparse.so</filename> <basename>libgstwavparse.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-ximagesrc.xml b/docs/plugins/inspect/plugin-ximagesrc.xml index f11a4a96ac1517d6bc18cd33a26daeb135b0f638..d8f9caa9801751c9aca62401d6db7b564cae1a42 100644 --- a/docs/plugins/inspect/plugin-ximagesrc.xml +++ b/docs/plugins/inspect/plugin-ximagesrc.xml @@ -3,7 +3,7 @@ <description>X11 video input plugin using standard Xlib calls</description> <filename>../../sys/ximage/.libs/libgstximagesrc.so</filename> <basename>libgstximagesrc.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-y4menc.xml b/docs/plugins/inspect/plugin-y4menc.xml index 5a7e2abfd05d99fb92e2a3b9ae617603762514bd..facd1b7b018458372c71193905d3617ae7758fbf 100644 --- a/docs/plugins/inspect/plugin-y4menc.xml +++ b/docs/plugins/inspect/plugin-y4menc.xml @@ -3,7 +3,7 @@ <description>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</description> <filename>../../gst/y4m/.libs/libgsty4menc.so</filename> <basename>libgsty4menc.so</basename> - <version>1.0.8</version> + <version>1.1.2</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/ext/Makefile.in b/ext/Makefile.in index 3abda7a7df5d9a648de5c8005146ef6e50d2f8dd..b37d92945729cbce821346ed5a6aa4e30acfb12a 100644 --- a/ext/Makefile.in +++ b/ext/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -20,23 +19,51 @@ # descending into all subdirectories a second time, but only after the first # (parallel) run has finished, so it should go right through the second time. VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -56,8 +83,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/common/parallel-subdirs.mak +DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \ + $(srcdir)/Makefile.in $(srcdir)/Makefile.am subdir = ext ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -65,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -101,21 +127,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -123,9 +156,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -319,6 +372,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -601,22 +655,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -631,57 +688,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -697,12 +709,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -714,15 +721,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -731,6 +734,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -891,22 +909,20 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am .PHONY: independent-subdirs $(SUBDIRS) diff --git a/ext/aalib/Makefile.in b/ext/aalib/Makefile.in index 0845305d7ba57680aefddb6edce44061a9d49f81..d75842635de1173c207334e0bb15020466621692 100644 --- a/ext/aalib/Makefile.in +++ b/ext/aalib/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/aalib -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgstaasink_la_OBJECTS = $(am_libgstaasink_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstaasink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstaasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstaasink_la_CFLAGS) $(CFLAGS) \ $(libgstaasink_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstaasink_la_SOURCES) DIST_SOURCES = $(libgstaasink_la_SOURCES) am__can_run_installinfo = \ @@ -174,6 +209,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -342,6 +394,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstaasink.la: $(libgstaasink_la_OBJECTS) $(libgstaasink_la_DEPENDENCIES) $(EXTRA_libgstaasink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstaasink_la_LINK) -rpath $(plugindir) $(libgstaasink_la_OBJECTS) $(libgstaasink_la_LIBADD) $(LIBS) @@ -620,26 +677,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -651,15 +697,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -668,6 +710,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -812,19 +869,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/aalib/gstaasink.c b/ext/aalib/gstaasink.c index 8187287e28a51fbaefe225c2a7c63fab0dca5c71..6e2365ed74f24669b6d3415aacdd65288be54e2e 100644 --- a/ext/aalib/gstaasink.c +++ b/ext/aalib/gstaasink.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-aasink diff --git a/ext/aalib/gstaasink.h b/ext/aalib/gstaasink.h index 33229d816e1c469ca1e5d81bbaf23e0f20a92828..6386c25a02181aa933484a469eb09378f3556573 100644 --- a/ext/aalib/gstaasink.h +++ b/ext/aalib/gstaasink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/cairo/Makefile.am b/ext/cairo/Makefile.am index ef68bce973b9f28c55e6c9a9da84f7a15334a343..0e0b57ba24a4407ba3432559b9482c105f1b51ce 100644 --- a/ext/cairo/Makefile.am +++ b/ext/cairo/Makefile.am @@ -1,13 +1,5 @@ plugin_LTLIBRARIES = libgstcairo.la -# we probably don't really want to port these -# gsttimeoverlay.h -# gsttextoverlay.h -# gstcairorender.h -# gsttimeoverlay.c -# gsttextoverlay.c -# gstcairorender.c - noinst_HEADERS = \ gstcairooverlay.h libgstcairo_la_SOURCES = \ diff --git a/ext/cairo/Makefile.in b/ext/cairo/Makefile.in index b2348ec85b810c6c7c80ec5ed59e76259b1c035b..6f66043c2bd8f1bd01b32e335fddd41b641eedb5 100644 --- a/ext/cairo/Makefile.in +++ b/ext/cairo/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/cairo -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstcairo_la_OBJECTS = $(am_libgstcairo_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstcairo_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstcairo_la_CFLAGS) $(CFLAGS) \ $(libgstcairo_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstcairo_la_SOURCES) DIST_SOURCES = $(libgstcairo_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -504,14 +557,6 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstcairo.la - -# we probably don't really want to port these -# gsttimeoverlay.h -# gsttextoverlay.h -# gstcairorender.h -# gsttimeoverlay.c -# gsttextoverlay.c -# gstcairorender.c noinst_HEADERS = \ gstcairooverlay.h @@ -564,6 +609,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -590,12 +636,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstcairo.la: $(libgstcairo_la_OBJECTS) $(libgstcairo_la_DEPENDENCIES) $(EXTRA_libgstcairo_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcairo_la_LINK) -rpath $(plugindir) $(libgstcairo_la_OBJECTS) $(libgstcairo_la_LIBADD) $(LIBS) @@ -649,26 +698,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -680,15 +718,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -697,6 +731,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -841,19 +890,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/cairo/gstcairo.c b/ext/cairo/gstcairo.c index ef044b21312ca28dba9af69629e7f8d9d0639785..5b943874084721c2fa5fd2db08f645ef19ffd3d1 100644 --- a/ext/cairo/gstcairo.c +++ b/ext/cairo/gstcairo.c @@ -14,20 +14,14 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#if 0 -#include <gsttimeoverlay.h> -#include <gsttextoverlay.h> -#include <gstcairorender.h> -#endif - #include <gstcairooverlay.h> #include <string.h> @@ -38,16 +32,6 @@ GST_DEBUG_CATEGORY (cairo_debug); static gboolean plugin_init (GstPlugin * plugin) { -#if 0 - /* we probably don't want to port these */ - gst_element_register (plugin, "cairotextoverlay", GST_RANK_NONE, - GST_TYPE_CAIRO_TEXT_OVERLAY); - gst_element_register (plugin, "cairotimeoverlay", GST_RANK_NONE, - GST_TYPE_CAIRO_TIME_OVERLAY); - gst_element_register (plugin, "cairorender", GST_RANK_SECONDARY, - GST_TYPE_CAIRO_RENDER); -#endif - gst_element_register (plugin, "cairooverlay", GST_RANK_NONE, GST_TYPE_CAIRO_OVERLAY); diff --git a/ext/cairo/gstcairooverlay.c b/ext/cairo/gstcairooverlay.c index 34bfe82cfd97b7d18144da8d8e0bbd96eec8176d..af32dfe0195fbe7561f45530cbce65261e4025a9 100644 --- a/ext/cairo/gstcairooverlay.c +++ b/ext/cairo/gstcairooverlay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/ext/cairo/gstcairooverlay.h b/ext/cairo/gstcairooverlay.h index 36801b1e95948b2490e27eefcabb7ac867e39e06..9c67a7b4fb107a1cecb6744f1817e0002adde101 100644 --- a/ext/cairo/gstcairooverlay.h +++ b/ext/cairo/gstcairooverlay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_CAIRO_OVERLAY_H__ diff --git a/ext/dv/Makefile.in b/ext/dv/Makefile.in index bd0b4092baaf4a79f8bf6be655cf8e9985d53e95..ff018b63bd09bcb39982c825a666514ccbac272a 100644 --- a/ext/dv/Makefile.in +++ b/ext/dv/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -18,23 +17,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -56,15 +83,14 @@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = smpte_test$(EXEEXT) subdir = ext/dv -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -138,6 +164,7 @@ libgstdv_la_OBJECTS = $(am_libgstdv_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstdv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstdv_la_CFLAGS) $(CFLAGS) $(libgstdv_la_LDFLAGS) \ @@ -150,6 +177,18 @@ smpte_test_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) smpte_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(smpte_test_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -162,20 +201,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstdv_la_SOURCES) $(smpte_test_SOURCES) DIST_SOURCES = $(libgstdv_la_SOURCES) $(smpte_test_SOURCES) am__can_run_installinfo = \ @@ -184,6 +219,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -352,6 +404,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -560,6 +613,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -586,12 +640,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstdv.la: $(libgstdv_la_OBJECTS) $(libgstdv_la_DEPENDENCIES) $(EXTRA_libgstdv_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdv_la_LINK) -rpath $(plugindir) $(libgstdv_la_OBJECTS) $(libgstdv_la_LIBADD) $(LIBS) @@ -603,6 +660,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + smpte_test$(EXEEXT): $(smpte_test_OBJECTS) $(smpte_test_DEPENDENCIES) $(EXTRA_smpte_test_DEPENDENCIES) @rm -f smpte_test$(EXEEXT) $(AM_V_CCLD)$(smpte_test_LINK) $(smpte_test_OBJECTS) $(smpte_test_LDADD) $(LIBS) @@ -703,26 +761,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -734,15 +781,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -751,6 +794,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -895,20 +953,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS clean-pluginLTLIBRARIES \ - ctags distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-pluginLTLIBRARIES install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-pluginLTLIBRARIES + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pluginLTLIBRARIES install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/dv/gstdv.c b/ext/dv/gstdv.c index 359df9eb3de7c7668474a7da7823b86f3cb86334..9861bf6f809d16efa5d18e712f9b7e39e2a6b32e 100644 --- a/ext/dv/gstdv.c +++ b/ext/dv/gstdv.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/ext/dv/gstdvdec.c b/ext/dv/gstdvdec.c index 3cbd4dd6ce25dd703759b97ebb4bee95dda0fbdb..370363e7e9e0d43c99bd2f5188df394125d233a1 100644 --- a/ext/dv/gstdvdec.c +++ b/ext/dv/gstdvdec.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/ext/dv/gstdvdec.h b/ext/dv/gstdvdec.h index 0e52de0f0a00ed98b4b25e102c5e125355e3197a..b37a90d403b3d372e91c6eb0b7da89d907eb6ff0 100644 --- a/ext/dv/gstdvdec.h +++ b/ext/dv/gstdvdec.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c index 48778a677639d96509a8eef25393b5e82241e502..a2b89f48512cff0a67ca1fa61ba5cb18576abfad 100644 --- a/ext/dv/gstdvdemux.c +++ b/ext/dv/gstdvdemux.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/ext/dv/gstdvdemux.h b/ext/dv/gstdvdemux.h index 9303e4da2b26d2edadc6f0d9a9230a8b1a41cb61..7a8210043e0ea6f6e1fa178e8c3b3cf75c81d06e 100644 --- a/ext/dv/gstdvdemux.h +++ b/ext/dv/gstdvdemux.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/dv/gstsmptetimecode.c b/ext/dv/gstsmptetimecode.c index 40a36d3f39bd71e24ae25f3e8c8fd0a5b6886234..8b15a6b6311b3d8e33cf54e1b8ed391f29a6d64a 100644 --- a/ext/dv/gstsmptetimecode.c +++ b/ext/dv/gstsmptetimecode.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/ext/dv/gstsmptetimecode.h b/ext/dv/gstsmptetimecode.h index cdda03e6fff4e96f0f09754a8d20666feff79fa5..2042046a019479d245a25f4479cf0f98d58aae4d 100644 --- a/ext/dv/gstsmptetimecode.h +++ b/ext/dv/gstsmptetimecode.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GST_SMPTE_TIME_CODE_H_ diff --git a/ext/flac/Makefile.in b/ext/flac/Makefile.in index 5479d621d757e390feafb41e3b164f10978b401f..03b3b2b912ef8d41fde3d0b36449e01f98c1570d 100644 --- a/ext/flac/Makefile.in +++ b/ext/flac/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/flac -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -138,10 +164,23 @@ libgstflac_la_OBJECTS = $(am_libgstflac_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstflac_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstflac_la_CFLAGS) $(CFLAGS) \ $(libgstflac_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstflac_la_SOURCES) DIST_SOURCES = $(libgstflac_la_SOURCES) am__can_run_installinfo = \ @@ -176,6 +211,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -344,6 +396,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -551,6 +604,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -577,12 +631,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstflac.la: $(libgstflac_la_OBJECTS) $(libgstflac_la_DEPENDENCIES) $(EXTRA_libgstflac_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstflac_la_LINK) -rpath $(plugindir) $(libgstflac_la_OBJECTS) $(libgstflac_la_LIBADD) $(LIBS) @@ -652,26 +709,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -683,15 +729,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -700,6 +742,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -844,19 +901,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/flac/gstflac.c b/ext/flac/gstflac.c index febf3d511a4c5d1395daab227ef56688cc322984..2b88b2a4ccfee373eccffc8159eee6f5fe890d96 100644 --- a/ext/flac/gstflac.c +++ b/ext/flac/gstflac.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c index e2387f207bb86fae0e858160779c0c30350393c7..153748543f3cc0cea85a13a9f81b27746383d05c 100644 --- a/ext/flac/gstflacdec.c +++ b/ext/flac/gstflacdec.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/ext/flac/gstflacdec.h b/ext/flac/gstflacdec.h index 12447f8e67f128a1f35aceaac771d2e77a4171e2..e8d073a5105942530df79afb6727a6c142a9b6e4 100644 --- a/ext/flac/gstflacdec.h +++ b/ext/flac/gstflacdec.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/flac/gstflacenc.c b/ext/flac/gstflacenc.c index 07361d227b848d32aaf00312fd7afeaa69a4cec7..3e6cd8a21e17a2f37d5cc53fce645cbaad857223 100644 --- a/ext/flac/gstflacenc.c +++ b/ext/flac/gstflacenc.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-flacenc @@ -22,13 +22,20 @@ * * flacenc encodes FLAC streams. * <ulink url="http://flac.sourceforge.net/">FLAC</ulink> - * is a Free Lossless Audio Codec. + * is a Free Lossless Audio Codec. FLAC audio can directly be written into + * a file, or embedded into containers such as oggmux or matroskamux. * * <refsect2> * <title>Example launch line</title> * |[ * gst-launch-1.0 audiotestsrc num-buffers=100 ! flacenc ! filesink location=beep.flac - * ]| + * ]| Encode a short sine wave into FLAC + * |[ + * gst-launch-1.0 cdparanoiasrc mode=continuous ! queue ! audioconvert ! flacenc ! filesink location=cd.flac + * ]| Rip a whole audio CD into a single FLAC file, with the track table saved as a CUE sheet inside the FLAC file + * |[ + * gst-launch-1.0 cdparanoiasrc track=5 ! queue ! audioconvert ! flacenc ! filesink location=track5.flac + * ]| Rip track 5 of an audio CD and encode it losslessly to a FLAC file * </refsect2> */ @@ -331,14 +338,6 @@ gst_flac_enc_class_init (GstFlacEncClass * klass) "parameters, use best", 0, FLAC__MAX_RICE_PARTITION_ORDER, flacenc_params[DEFAULT_QUALITY].rice_parameter_search_dist, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); - - /** - * GstFlacEnc:padding - * - * Write a PADDING block with this length in bytes - * - * Since: 0.10.16 - **/ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PADDING, g_param_spec_uint ("padding", @@ -346,15 +345,6 @@ gst_flac_enc_class_init (GstFlacEncClass * klass) "Write a PADDING block with this length in bytes", 0, G_MAXUINT, DEFAULT_PADDING, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); - - /** - * GstFlacEnc:seekpoints - * - * Write a SEEKTABLE block with a specific number of seekpoints - * or with a specific interval spacing. - * - * Since: 0.10.18 - **/ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEEKPOINTS, g_param_spec_int ("seekpoints", @@ -1171,8 +1161,7 @@ gst_flac_enc_write_callback (const FLAC__StreamEncoder * encoder, ret = gst_pad_push (GST_AUDIO_ENCODER_SRC_PAD (flacenc), outbuf); } else { /* regular frame data, pass to base class */ - GST_LOG ("Pushing buffer: ts=%" GST_TIME_FORMAT ", samples=%u, size=%u, " - "pos=%" G_GUINT64_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)), + GST_LOG ("Pushing buffer: samples=%u, size=%u, pos=%" G_GUINT64_FORMAT, samples, (guint) bytes, flacenc->offset); ret = gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (flacenc), outbuf, samples); @@ -1213,7 +1202,8 @@ gst_flac_enc_sink_event (GstAudioEncoder * enc, GstEvent * event) flacenc = GST_FLAC_ENC (enc); - GST_DEBUG ("Received %s event on sinkpad", GST_EVENT_TYPE_NAME (event)); + GST_DEBUG ("Received %s event on sinkpad, %" GST_PTR_FORMAT, + GST_EVENT_TYPE_NAME (event), event); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_EOS: @@ -1281,6 +1271,7 @@ gst_flac_enc_handle_frame (GstAudioEncoder * enc, GstBuffer * buffer) if (G_UNLIKELY (!buffer)) { if (flacenc->eos) { + GST_DEBUG_OBJECT (flacenc, "finish encoding"); FLAC__stream_encoder_finish (flacenc->encoder); } else { /* can't handle intermittent draining/resyncing */ @@ -1298,6 +1289,8 @@ gst_flac_enc_handle_frame (GstAudioEncoder * enc, GstBuffer * buffer) data = g_malloc (samples * sizeof (FLAC__int32)); samples /= channels; + GST_LOG_OBJECT (flacenc, "processing %d samples, %d channels", samples, + channels); if (width == 8) { gint8 *indata = (gint8 *) map.data; diff --git a/ext/flac/gstflacenc.h b/ext/flac/gstflacenc.h index 690b098e28640ba252685306dcd5326e7dcd92a4..c9caecd4a0266eec8923e04ff658e71e6640a0ba 100644 --- a/ext/flac/gstflacenc.h +++ b/ext/flac/gstflacenc.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/flac/gstflactag.c b/ext/flac/gstflactag.c index 69c4716c6a4c22e748caf4cd2639dfecb9affd56..5f524f1c279d18b6b05b883faeb451df6162b8fa 100644 --- a/ext/flac/gstflactag.c +++ b/ext/flac/gstflactag.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -74,18 +74,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_CAPS ("audio/x-flac") ); -/* signals and args */ -enum -{ - /* FILL ME */ - LAST_SIGNAL -}; - -enum -{ - ARG_0 - /* FILL ME */ -}; static void gst_flac_tag_dispose (GObject * object); @@ -172,9 +160,21 @@ gst_flac_tag_init (GstFlacTag * tag) static gboolean gst_flac_tag_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) { + GstFlacTag *tag; gboolean ret; + tag = GST_FLAC_TAG (parent); + + GST_DEBUG_OBJECT (pad, "Received %s event on sinkpad, %" GST_PTR_FORMAT, + GST_EVENT_TYPE_NAME (event), event); + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CAPS: + /* FIXME: parse and store the caps. Once we parsed and built the headers, + * update the "streamheader" field in the caps and send a new caps event + */ + ret = gst_pad_push_event (tag->srcpad, event); + break; default: ret = gst_pad_event_default (pad, parent, event); break; @@ -199,6 +199,8 @@ gst_flac_tag_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) gst_adapter_push (tag->adapter, buffer); + GST_LOG_OBJECT (pad, "state: %d", tag->state); + /* Initial state, we don't even know if we are dealing with a flac file */ if (tag->state == GST_FLAC_TAG_STATE_INIT) { GstBuffer *id_buffer; @@ -428,7 +430,7 @@ gst_flac_tag_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) } cleanup: - + GST_LOG_OBJECT (pad, "state: %d, ret: %d", tag->state, ret); return ret; /* ERRORS */ diff --git a/ext/flac/gstflactag.h b/ext/flac/gstflactag.h index a6f90f5e230857da8b88f82608dd67ba9e1fb73f..106541a0510ed272468a01d071327124a6844387 100644 --- a/ext/flac/gstflactag.h +++ b/ext/flac/gstflactag.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GST_FLAC_TAG_H diff --git a/ext/gdk_pixbuf/Makefile.in b/ext/gdk_pixbuf/Makefile.in index 34f0d9c8988d463eba2c0a33a35ff15ca5f85b2f..c33c87c398a9b1e5d38a19184a25b308c905a1f9 100644 --- a/ext/gdk_pixbuf/Makefile.in +++ b/ext/gdk_pixbuf/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/gdk_pixbuf -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -139,10 +165,23 @@ libgstgdkpixbuf_la_OBJECTS = $(am_libgstgdkpixbuf_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstgdkpixbuf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) \ $(libgstgdkpixbuf_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -155,20 +194,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstgdkpixbuf_la_SOURCES) DIST_SOURCES = $(libgstgdkpixbuf_la_SOURCES) am__can_run_installinfo = \ @@ -177,6 +212,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -345,6 +397,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -570,6 +623,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -596,12 +650,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstgdkpixbuf.la: $(libgstgdkpixbuf_la_OBJECTS) $(libgstgdkpixbuf_la_DEPENDENCIES) $(EXTRA_libgstgdkpixbuf_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgdkpixbuf_la_LINK) -rpath $(plugindir) $(libgstgdkpixbuf_la_OBJECTS) $(libgstgdkpixbuf_la_LIBADD) $(LIBS) @@ -671,26 +728,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -702,15 +748,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -719,6 +761,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -863,19 +920,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/gdk_pixbuf/gstgdkpixbufdec.c b/ext/gdk_pixbuf/gstgdkpixbufdec.c index 820f1a2e979550c6af7a051602605ecd984e336d..fc42ed194480bdb15410516dd9ba4e33de2a7cb6 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufdec.c +++ b/ext/gdk_pixbuf/gstgdkpixbufdec.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -295,6 +295,7 @@ gst_gdk_pixbuf_dec_flush (GstGdkPixbufDec * filter) if (GST_VIDEO_INFO_FORMAT (&filter->info) == GST_VIDEO_FORMAT_UNKNOWN) { GstVideoInfo info; GstVideoFormat fmt; + GList *l; GST_DEBUG ("Set size to %dx%d", width, height); @@ -323,6 +324,11 @@ gst_gdk_pixbuf_dec_flush (GstGdkPixbufDec * filter) gst_caps_unref (caps); gst_gdk_pixbuf_dec_setup_pool (filter, &info); + + for (l = filter->pending_events; l; l = l->next) + gst_pad_push_event (filter->srcpad, l->data); + g_list_free (filter->pending_events); + filter->pending_events = NULL; } ret = gst_buffer_pool_acquire_buffer (filter->pool, &outbuf, NULL); @@ -412,8 +418,12 @@ gst_gdk_pixbuf_dec_sink_event (GstPad * pad, GstObject * parent, } } break; - case GST_EVENT_SEGMENT: case GST_EVENT_FLUSH_STOP: + g_list_free_full (pixbuf->pending_events, + (GDestroyNotify) gst_event_unref); + pixbuf->pending_events = NULL; + /* Fall through */ + case GST_EVENT_SEGMENT: if (pixbuf->pixbuf_loader != NULL) { gdk_pixbuf_loader_close (pixbuf->pixbuf_loader, NULL); g_object_unref (G_OBJECT (pixbuf->pixbuf_loader)); @@ -424,7 +434,16 @@ gst_gdk_pixbuf_dec_sink_event (GstPad * pad, GstObject * parent, break; } if (forward) { - ret = gst_pad_event_default (pad, parent, event); + if (!gst_pad_has_current_caps (pixbuf->srcpad) && + GST_EVENT_IS_SERIALIZED (event) + && GST_EVENT_TYPE (event) > GST_EVENT_CAPS + && GST_EVENT_TYPE (event) != GST_EVENT_FLUSH_STOP + && GST_EVENT_TYPE (event) != GST_EVENT_EOS) { + ret = TRUE; + pixbuf->pending_events = g_list_prepend (pixbuf->pending_events, event); + } else { + ret = gst_pad_event_default (pad, parent, event); + } } else { gst_event_unref (event); } @@ -516,6 +535,8 @@ gst_gdk_pixbuf_dec_change_state (GstElement * element, gst_buffer_pool_set_active (dec->pool, FALSE); gst_object_replace ((GstObject **) & dec->pool, NULL); } + g_list_free_full (dec->pending_events, (GDestroyNotify) gst_event_unref); + dec->pending_events = NULL; break; default: break; diff --git a/ext/gdk_pixbuf/gstgdkpixbufdec.h b/ext/gdk_pixbuf/gstgdkpixbufdec.h index c47b8ccf002d32bbdddc4dd13bbcdf5bb6e38dfc..832a30b4107f7a67c3145c80ca705aaf89933d28 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufdec.h +++ b/ext/gdk_pixbuf/gstgdkpixbufdec.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_GDK_PIXBUF_DEC_H__ @@ -54,6 +54,7 @@ struct _GstGdkPixbufDec GstVideoInfo info; GstBufferPool *pool; + GList *pending_events; }; struct _GstGdkPixbufDecClass diff --git a/ext/gdk_pixbuf/gstgdkpixbufoverlay.c b/ext/gdk_pixbuf/gstgdkpixbufoverlay.c index b011b850da9276336d892b261b577908e27dd895..46adfb65a825b819af892c1321e276ea3db717ef 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufoverlay.c +++ b/ext/gdk_pixbuf/gstgdkpixbufoverlay.c @@ -138,14 +138,16 @@ gst_gdk_pixbuf_overlay_class_init (GstGdkPixbufOverlayClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_OFFSET_X, g_param_spec_int ("offset-x", "X Offset", - "Horizontal offset of overlay image in pixels from top-left corner " - "of video image", G_MININT, G_MAXINT, 0, + "For positive value, horizontal offset of overlay image in pixels from" + " left of video image. For negative value, horizontal offset of overlay" + " image in pixels from right of video image", G_MININT, G_MAXINT, 0, GST_PARAM_CONTROLLABLE | GST_PARAM_MUTABLE_PLAYING | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_OFFSET_Y, g_param_spec_int ("offset-y", "Y Offset", - "Vertical offset of overlay image in pixels from top-left corner " - "of video image", G_MININT, G_MAXINT, 0, + "For positive value, vertical offset of overlay image in pixels from" + " top of video image. For negative value, vertical offset of overlay" + " image in pixels from bottom of video image", G_MININT, G_MAXINT, 0, GST_PARAM_CONTROLLABLE | GST_PARAM_MUTABLE_PLAYING | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_RELATIVE_X, @@ -436,6 +438,8 @@ gst_gdk_pixbuf_overlay_update_composition (GstGdkPixbufOverlay * overlay) GstVideoOverlayRectangle *rect; GstVideoMeta *overlay_meta; gint x, y, width, height; + gint video_width = GST_VIDEO_INFO_WIDTH (&GST_VIDEO_FILTER (overlay)->in_info); + gint video_height = GST_VIDEO_INFO_HEIGHT (&GST_VIDEO_FILTER (overlay)->in_info); if (overlay->comp) { gst_video_overlay_composition_unref (overlay->comp); @@ -447,14 +451,14 @@ gst_gdk_pixbuf_overlay_update_composition (GstGdkPixbufOverlay * overlay) overlay_meta = gst_buffer_get_video_meta (overlay->pixels); - x = overlay->offset_x + (overlay->relative_x * overlay_meta->width); - y = overlay->offset_y + (overlay->relative_y * overlay_meta->height); - - /* FIXME: this should work, but seems to crash */ - if (x < 0) - x = 0; - if (y < 0) - y = 0; + x = overlay->offset_x < 0 ? + video_width + overlay->offset_x - overlay_meta->width + + (overlay->relative_x * overlay_meta->width) : + overlay->offset_x + (overlay->relative_x * overlay_meta->width); + y = overlay->offset_y < 0 ? + video_height + overlay->offset_y - overlay_meta->height + + (overlay->relative_y * overlay_meta->height) : + overlay->offset_y + (overlay->relative_y * overlay_meta->height); width = overlay->overlay_width; if (width == 0) @@ -472,8 +476,7 @@ gst_gdk_pixbuf_overlay_update_composition (GstGdkPixbufOverlay * overlay) overlay->overlay_height, overlay->overlay_width); GST_DEBUG_OBJECT (overlay, "overlay rendered: %d x %d @ %d,%d (onto %d x %d)", width, height, x, y, - GST_VIDEO_INFO_WIDTH (&GST_VIDEO_FILTER (overlay)->in_info), - GST_VIDEO_INFO_HEIGHT (&GST_VIDEO_FILTER (overlay)->in_info)); + video_width, video_height); rect = gst_video_overlay_rectangle_new_raw (overlay->pixels, x, y, width, height, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE); diff --git a/ext/gdk_pixbuf/gstgdkpixbufoverlay.h b/ext/gdk_pixbuf/gstgdkpixbufoverlay.h index 3d45e4fb1583914e0c17f5984c7c39030603a32a..0e863df4a29e462adc9ab47813318430b744853b 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufoverlay.h +++ b/ext/gdk_pixbuf/gstgdkpixbufoverlay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GST_GDK_PIXBUF_OVERLAY_H_ diff --git a/ext/gdk_pixbuf/gstgdkpixbufplugin.c b/ext/gdk_pixbuf/gstgdkpixbufplugin.c index e589efa422187fe8742488f62af6acec4a3fc1bd..4f58b9d478613f144602d78bdfd5e1218972e472 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufplugin.c +++ b/ext/gdk_pixbuf/gstgdkpixbufplugin.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/ext/gdk_pixbuf/gstgdkpixbufsink.c b/ext/gdk_pixbuf/gstgdkpixbufsink.c index 5cac8bc5c1a13bee42c90b2c970d12d8d506f55c..5a8305d7d4d366686417a8b42e00b6001bb086d7 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufsink.c +++ b/ext/gdk_pixbuf/gstgdkpixbufsink.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -339,6 +339,16 @@ gst_gdk_pixbuf_sink_handle_buffer (GstBaseSink * basesink, GstBuffer * buf, if (do_post) { GstStructure *s; GstMessage *msg; + GstFormat format; + GstClockTime timestamp; + GstClockTime running_time, stream_time; + + GstSegment *segment = &basesink->segment; + format = segment->format; + + timestamp = GST_BUFFER_PTS (buf); + running_time = gst_segment_to_running_time (segment, format, timestamp); + stream_time = gst_segment_to_stream_time (segment, format, timestamp); /* it's okay to keep using pixbuf here, we can be sure no one is going to * unref or change sink->last_pixbuf before we return from this function. @@ -346,7 +356,9 @@ gst_gdk_pixbuf_sink_handle_buffer (GstBaseSink * basesink, GstBuffer * buf, s = gst_structure_new (msg_name, "pixbuf", GDK_TYPE_PIXBUF, pixbuf, "pixel-aspect-ratio", GST_TYPE_FRACTION, sink->par_n, sink->par_d, - NULL); + "timestamp", G_TYPE_UINT64, timestamp, + "stream-time", G_TYPE_UINT64, stream_time, + "running-time", G_TYPE_UINT64, running_time, NULL); msg = gst_message_new_element (GST_OBJECT_CAST (sink), s); gst_element_post_message (GST_ELEMENT_CAST (sink), msg); diff --git a/ext/gdk_pixbuf/gstgdkpixbufsink.h b/ext/gdk_pixbuf/gstgdkpixbufsink.h index f42436eaf9f65f38fe84635fc03368953c0fd0ec..964437aa1c79c80ec8579e668a4dadce4ea8b44c 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufsink.h +++ b/ext/gdk_pixbuf/gstgdkpixbufsink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GST_GDK_PIXBUF_SINK_H diff --git a/ext/jack/Makefile.in b/ext/jack/Makefile.in index ecf259e42affa47eabe3921724ccc5506311712e..6c829589c56504cfbc4e14d6c33e5b0c06db0de1 100644 --- a/ext/jack/Makefile.in +++ b/ext/jack/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/jack -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -138,10 +164,23 @@ libgstjack_la_OBJECTS = $(am_libgstjack_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstjack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstjack_la_CFLAGS) $(CFLAGS) \ $(libgstjack_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstjack_la_SOURCES) DIST_SOURCES = $(libgstjack_la_SOURCES) am__can_run_installinfo = \ @@ -176,6 +211,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -344,6 +396,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -545,6 +598,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -571,12 +625,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstjack.la: $(libgstjack_la_OBJECTS) $(libgstjack_la_DEPENDENCIES) $(EXTRA_libgstjack_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstjack_la_LINK) -rpath $(plugindir) $(libgstjack_la_OBJECTS) $(libgstjack_la_LIBADD) $(LIBS) @@ -654,26 +711,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -685,15 +731,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -702,6 +744,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -846,19 +903,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/jack/gstjack.c b/ext/jack/gstjack.c index 8cbed12000a4c699dc662521a097ddb477700b5e..ca98dc40592b4e8a977fa218d5bd05b641cef220 100644 --- a/ext/jack/gstjack.c +++ b/ext/jack/gstjack.c @@ -13,14 +13,15 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif +#include "gstjack.h" #include "gstjackaudiosrc.h" #include "gstjackaudiosink.h" diff --git a/ext/jack/gstjack.h b/ext/jack/gstjack.h index 1291bc7e73a879294b4dc97d9ad07cb7c4ec32c8..15b040e8ab56868f289ea18ef41c8ba6a79783ad 100644 --- a/ext/jack/gstjack.h +++ b/ext/jack/gstjack.h @@ -15,13 +15,15 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GST_JACK_H_ #define _GST_JACK_H_ +#include <jack/jack.h> +#include <gst/audio/audio.h> /** * GstJackConnect: diff --git a/ext/jack/gstjackaudioclient.c b/ext/jack/gstjackaudioclient.c index f7f6be6c144a749fea729552740cd88c8653bab2..525b1c5becdb92f0447961e89bdb14d97949588d 100644 --- a/ext/jack/gstjackaudioclient.c +++ b/ext/jack/gstjackaudioclient.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> diff --git a/ext/jack/gstjackaudioclient.h b/ext/jack/gstjackaudioclient.h index f2669c9f841a6bd341adb0e1151c41f4100004c3..5dcd70c31043739f95e0cf34076626b1fe72a11a 100644 --- a/ext/jack/gstjackaudioclient.h +++ b/ext/jack/gstjackaudioclient.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_JACK_AUDIO_CLIENT_H__ diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c index 103db4ed4bdf7295651c4a3b08f642cd4a2d5781..e33ed181390ebd66bedc78449e8307fb11fc32cf 100644 --- a/ext/jack/gstjackaudiosink.c +++ b/ext/jack/gstjackaudiosink.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -62,6 +62,7 @@ #include <gst/gst-i18n-plugin.h> #include <stdlib.h> #include <string.h> +#include <gst/audio/audio.h> #include "gstjackaudiosink.h" #include "gstjackringbuffer.h" diff --git a/ext/jack/gstjackaudiosink.h b/ext/jack/gstjackaudiosink.h index e8b28903a311e06f4af830228ac197747f55bbd7..b2377c43f407804378f3db864f949445932c72ff 100644 --- a/ext/jack/gstjackaudiosink.h +++ b/ext/jack/gstjackaudiosink.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_JACK_AUDIO_SINK_H__ diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c index d21bc048d8da20ba418cd9208f5801f1719827e5..eb5951a896663302a08046f59fcec4608aa3d1da 100644 --- a/ext/jack/gstjackaudiosrc.c +++ b/ext/jack/gstjackaudiosrc.c @@ -36,8 +36,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -82,6 +82,8 @@ #include <stdlib.h> #include <string.h> +#include <gst/audio/audio.h> + #include "gstjackaudiosrc.h" #include "gstjackringbuffer.h" #include "gstjackutil.h" diff --git a/ext/jack/gstjackaudiosrc.h b/ext/jack/gstjackaudiosrc.h index 20d78aeef7c1c4026ec43e6dbbeff276d38f82d5..97c2891453775e05e64bae1a46182505147cb07d 100644 --- a/ext/jack/gstjackaudiosrc.h +++ b/ext/jack/gstjackaudiosrc.h @@ -36,8 +36,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_JACK_AUDIO_SRC_H__ diff --git a/ext/jack/gstjackringbuffer.h b/ext/jack/gstjackringbuffer.h index 9705ef0592ca6bcae3b41b322cd9dcc67e610c90..94de4b8bb3e7aed835f15add29c7b197d8759ea2 100644 --- a/ext/jack/gstjackringbuffer.h +++ b/ext/jack/gstjackringbuffer.h @@ -38,8 +38,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_JACK_RING_BUFFER_H__ diff --git a/ext/jack/gstjackutil.c b/ext/jack/gstjackutil.c index e21d00415260c6c719872e4320ea195d21a6b6c5..490e14a2b9d8601397ddc83c04a37a4f59a621c8 100644 --- a/ext/jack/gstjackutil.c +++ b/ext/jack/gstjackutil.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "gstjackutil.h" diff --git a/ext/jack/gstjackutil.h b/ext/jack/gstjackutil.h index b3704cacb373bfe4d12cf7e1ec609118c4a24650..7a4bcc500d4494a846b4c70dd1f8d88f2a228922 100644 --- a/ext/jack/gstjackutil.h +++ b/ext/jack/gstjackutil.h @@ -15,15 +15,15 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GST_JACK_UTIL_H_ #define _GST_JACK_UTIL_H_ #include <gst/gst.h> -#include <gst/audio/gstaudioringbuffer.h> +#include <gst/audio/audio.h> void gst_jack_set_layout (GstAudioRingBuffer * buffer, GstAudioRingBufferSpec *spec); diff --git a/ext/jpeg/Makefile.in b/ext/jpeg/Makefile.in index 6ffb80d83de0bd37df380f6f988888f731b33f49..01b1c596b01c76fdf6d5b1a99fdecbd604b36cfb 100644 --- a/ext/jpeg/Makefile.in +++ b/ext/jpeg/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/jpeg -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstjpeg_la_OBJECTS = $(am_libgstjpeg_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstjpeg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstjpeg_la_CFLAGS) $(CFLAGS) \ $(libgstjpeg_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstjpeg_la_SOURCES) DIST_SOURCES = $(libgstjpeg_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstjpeg.la: $(libgstjpeg_la_OBJECTS) $(libgstjpeg_la_DEPENDENCIES) $(EXTRA_libgstjpeg_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstjpeg_la_LINK) -rpath $(plugindir) $(libgstjpeg_la_OBJECTS) $(libgstjpeg_la_LIBADD) $(LIBS) @@ -647,26 +704,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -678,15 +724,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -695,6 +737,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -839,19 +896,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # deprecated gstsmokeenc.h gstsmokedec.h smokecodec.h smokeformat.h diff --git a/ext/jpeg/gstjpeg.c b/ext/jpeg/gstjpeg.c index 394c079f7e84c79582ac0dec92b0e83fe4d9406c..9ecdd5dc245b6049cee3130936c321ff202c1336 100644 --- a/ext/jpeg/gstjpeg.c +++ b/ext/jpeg/gstjpeg.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include <config.h> diff --git a/ext/jpeg/gstjpeg.h b/ext/jpeg/gstjpeg.h index 8b2019934d80235fbebc4822c6faef5723242026..afa30a2b5ef3b0f5961c1965e11e5a85afeb7875 100644 --- a/ext/jpeg/gstjpeg.h +++ b/ext/jpeg/gstjpeg.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c index ea5f1e250857c5d396e34f10276ed11741e290b9..b96ef9466828327825d20339aa82f618dc0ee030 100644 --- a/ext/jpeg/gstjpegdec.c +++ b/ext/jpeg/gstjpegdec.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -1406,7 +1406,7 @@ gst_jpeg_dec_start (GstVideoDecoder * bdec) dec->parse_entropy_len = 0; dec->parse_resync = FALSE; - gst_video_decoder_set_packetized (dec, FALSE); + gst_video_decoder_set_packetized (bdec, FALSE); return TRUE; } diff --git a/ext/jpeg/gstjpegdec.h b/ext/jpeg/gstjpegdec.h index f9f33ae5bdd9758c7312f134834454256e63a09b..d2425e5872b6ee86a4a047e7c823204dcb4746e0 100644 --- a/ext/jpeg/gstjpegdec.h +++ b/ext/jpeg/gstjpegdec.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c index 9edfb5553f709224a1d5227a6d6a738006d170cb..15d01e71abfaacf75a3d28c5918876feff4ff580 100644 --- a/ext/jpeg/gstjpegenc.c +++ b/ext/jpeg/gstjpegenc.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-jpegenc @@ -41,7 +41,7 @@ #include "gstjpeg.h" #include <gst/video/video.h> #include <gst/video/gstvideometa.h> -#include <gst/base/gstbytereader.h> +#include <gst/base/base.h> /* experimental */ /* setting smoothig seems to have no effect in libjepeg diff --git a/ext/jpeg/gstjpegenc.h b/ext/jpeg/gstjpegenc.h index b8f2ca812406bbe574799876a7fac6b600c561a6..7c636d358d399dd8ad09f85eb5f5031e73446133 100644 --- a/ext/jpeg/gstjpegenc.h +++ b/ext/jpeg/gstjpegenc.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/libcaca/Makefile.in b/ext/libcaca/Makefile.in index bb976a62f7d5c34bf11fb4061151640be855d732..e92fff665bb53f86fcd5ee56209568683628130d 100644 --- a/ext/libcaca/Makefile.in +++ b/ext/libcaca/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/libcaca -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgstcacasink_la_OBJECTS = $(am_libgstcacasink_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstcacasink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcacasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstcacasink_la_CFLAGS) $(CFLAGS) \ $(libgstcacasink_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstcacasink_la_SOURCES) DIST_SOURCES = $(libgstcacasink_la_SOURCES) am__can_run_installinfo = \ @@ -174,6 +209,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -342,6 +394,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstcacasink.la: $(libgstcacasink_la_OBJECTS) $(libgstcacasink_la_DEPENDENCIES) $(EXTRA_libgstcacasink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcacasink_la_LINK) -rpath $(plugindir) $(libgstcacasink_la_OBJECTS) $(libgstcacasink_la_LIBADD) $(LIBS) @@ -631,26 +688,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -662,15 +708,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -679,6 +721,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -823,19 +880,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/libcaca/gstcacasink.c b/ext/libcaca/gstcacasink.c index e7a8e0273eeeb4606d328d15a1a610ab9a177ea4..0f46280e1a6996f5c14f26b0950a15d26da23b94 100644 --- a/ext/libcaca/gstcacasink.c +++ b/ext/libcaca/gstcacasink.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-cacasink @@ -71,7 +71,8 @@ enum static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ RGB, RGBx, RGB16, RGB15 }")) + GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE + ("{ RGB, BGR, RGBx, xRGB, BGRx, xBGR, RGB16, RGB15 }")) ); static gboolean gst_cacasink_setcaps (GstBaseSink * pad, GstCaps * caps); @@ -180,19 +181,17 @@ gst_cacasink_setcaps (GstBaseSink * basesink, GstCaps * caps) if (!gst_video_info_from_caps (&info, caps)) goto caps_error; - switch (GST_VIDEO_INFO_FORMAT (&info)) { case GST_VIDEO_FORMAT_RGB: - bpp = 24; - red_mask = 0xff0000; - green_mask = 0x00ff00; - blue_mask = 0x0000ff; - break; + case GST_VIDEO_FORMAT_BGR: case GST_VIDEO_FORMAT_RGBx: - bpp = 32; - red_mask = 0xff000000; - green_mask = 0x00ff0000; - blue_mask = 0x0000ff00; + case GST_VIDEO_FORMAT_xRGB: + case GST_VIDEO_FORMAT_BGRx: + case GST_VIDEO_FORMAT_xBGR: + bpp = 8 * info.finfo->pixel_stride[0]; + red_mask = 0xff << (8 * info.finfo->poffset[GST_VIDEO_COMP_R]); + green_mask = 0xff << (8 * info.finfo->poffset[GST_VIDEO_COMP_G]); + blue_mask = 0xff << (8 * info.finfo->poffset[GST_VIDEO_COMP_B]); break; case GST_VIDEO_FORMAT_RGB16: bpp = 16; diff --git a/ext/libcaca/gstcacasink.h b/ext/libcaca/gstcacasink.h index db041d9be215d8969426fd6c0d326aaaab57e6d2..327a6a8a009677d9387e1a525e28dcaa16314cd9 100644 --- a/ext/libcaca/gstcacasink.h +++ b/ext/libcaca/gstcacasink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/libpng/Makefile.in b/ext/libpng/Makefile.in index bfc62aeff206b7e80a4fe2654853a7bce740441d..741f9d3c5792a53f9737a727b00dd5d2c8b3d91d 100644 --- a/ext/libpng/Makefile.in +++ b/ext/libpng/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/libpng -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstpng_la_OBJECTS = $(am_libgstpng_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstpng_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstpng_la_CFLAGS) $(CFLAGS) \ $(libgstpng_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstpng_la_SOURCES) DIST_SOURCES = $(libgstpng_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -546,6 +599,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -572,12 +626,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstpng.la: $(libgstpng_la_OBJECTS) $(libgstpng_la_DEPENDENCIES) $(EXTRA_libgstpng_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstpng_la_LINK) -rpath $(plugindir) $(libgstpng_la_OBJECTS) $(libgstpng_la_LIBADD) $(LIBS) @@ -639,26 +696,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -670,15 +716,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -687,6 +729,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -831,19 +888,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/libpng/gstpng.c b/ext/libpng/gstpng.c index de063ef871e6a4a5d9d48fb4d2ef8dc57e01c6ea..92ff4798f9cb644542f4c9490c8c8a80a8d27257 100644 --- a/ext/libpng/gstpng.c +++ b/ext/libpng/gstpng.c @@ -11,8 +11,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c index 3d16a945865fc8332b8e229f9a958a2aab2d1036..2436d9907c72807110eace689c9ab9ba44bea301 100644 --- a/ext/libpng/gstpngdec.c +++ b/ext/libpng/gstpngdec.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ /** diff --git a/ext/libpng/gstpngdec.h b/ext/libpng/gstpngdec.h index 69a4ff67ce416dd3ffec9db88dc468692b7d9974..d89323aecc9acce1130d32d7ba6a9be4293940bd 100644 --- a/ext/libpng/gstpngdec.h +++ b/ext/libpng/gstpngdec.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c index 326f4336d2de26f9b0caaf0d39166f9e59deb90e..d3ebc49c956444f41b2843f85973905a3233142e 100644 --- a/ext/libpng/gstpngenc.c +++ b/ext/libpng/gstpngenc.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ /** @@ -29,11 +29,12 @@ #endif #include <string.h> #include <gst/gst.h> -#include "gstpngenc.h" #include <gst/video/video.h> #include <gst/video/gstvideometa.h> #include <zlib.h> +#include "gstpngenc.h" + GST_DEBUG_CATEGORY_STATIC (pngenc_debug); #define GST_CAT_DEFAULT pngenc_debug diff --git a/ext/libpng/gstpngenc.h b/ext/libpng/gstpngenc.h index 87bee9281edff95d0afb885d9b146514be138ad3..e71d97c54a8eb69ba007f63e6aac91bff56cc816 100644 --- a/ext/libpng/gstpngenc.h +++ b/ext/libpng/gstpngenc.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/pulse/Makefile.in b/ext/pulse/Makefile.in index b1ddb6e484ca466936cd85b2c476b5929d515627..910d45063868fbeb709a4c9d738bd039e186c635 100644 --- a/ext/pulse/Makefile.in +++ b/ext/pulse/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/pulse -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -138,10 +164,23 @@ libgstpulse_la_OBJECTS = $(am_libgstpulse_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstpulse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstpulse_la_CFLAGS) $(CFLAGS) \ $(libgstpulse_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstpulse_la_SOURCES) DIST_SOURCES = $(libgstpulse_la_SOURCES) am__can_run_installinfo = \ @@ -176,6 +211,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -344,6 +396,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -559,6 +612,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -585,12 +639,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstpulse.la: $(libgstpulse_la_OBJECTS) $(libgstpulse_la_DEPENDENCIES) $(EXTRA_libgstpulse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstpulse_la_LINK) -rpath $(plugindir) $(libgstpulse_la_OBJECTS) $(libgstpulse_la_LIBADD) $(LIBS) @@ -668,26 +725,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -699,15 +745,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -716,6 +758,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -860,19 +917,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/pulse/plugin.c b/ext/pulse/plugin.c index 5903a5ebeae10f9d0ae0da3d956a34accbe578dc..505743b24d52c92892dbc9a4aa5192590106cf38 100644 --- a/ext/pulse/plugin.c +++ b/ext/pulse/plugin.c @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with gst-pulse; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 * USA. */ diff --git a/ext/pulse/pulseprobe.c b/ext/pulse/pulseprobe.c index 06e09862227f288e2d809891f389736701ebfd74..3496394c7c433da791780f00cc02c31419d5ac83 100644 --- a/ext/pulse/pulseprobe.c +++ b/ext/pulse/pulseprobe.c @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with gst-pulse; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 * USA. */ @@ -29,6 +29,8 @@ #include "config.h" #endif +#include <gst/audio/audio.h> + #include "pulseprobe.h" #include "pulseutil.h" diff --git a/ext/pulse/pulseprobe.h b/ext/pulse/pulseprobe.h index 716f5edec52860c520a9d45f478610ef53f2bd8c..6e9b236239fcef62e54e3d038a5b3580e87084b9 100644 --- a/ext/pulse/pulseprobe.h +++ b/ext/pulse/pulseprobe.h @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with gst-pulse; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 * USA. */ diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index 4a027104eb9125b208de4a93f59bc4d93cfe29dc..cd257d61c5ede7eed32ebe6889de3f3e976b1e4f 100644 --- a/ext/pulse/pulsesink.c +++ b/ext/pulse/pulsesink.c @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with gst-pulse; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 * USA. */ @@ -52,9 +52,8 @@ #include <gst/base/gstbasesink.h> #include <gst/gsttaglist.h> -#include <gst/audio/streamvolume.h> +#include <gst/audio/audio.h> #include <gst/gst-i18n-plugin.h> -#include <gst/audio/gstaudioiec61937.h> #include <gst/pbutils/pbutils.h> /* only used for GST_PLUGINS_BASE_VERSION_* */ @@ -140,6 +139,7 @@ struct _GstPulseRingBuffer pa_context *context; pa_stream *stream; + pa_stream *probe_stream; pa_format_info *format; guint channels; @@ -226,6 +226,7 @@ gst_pulseringbuffer_init (GstPulseRingBuffer * pbuf) pbuf->stream_name = NULL; pbuf->context = NULL; pbuf->stream = NULL; + pbuf->probe_stream = NULL; pbuf->format = NULL; pbuf->channels = 0; @@ -242,9 +243,32 @@ gst_pulseringbuffer_init (GstPulseRingBuffer * pbuf) pbuf->paused = FALSE; } +/* Call with mainloop lock held if wait == TRUE) */ +static void +gst_pulse_destroy_stream (pa_stream * stream, gboolean wait) +{ + /* Make sure we don't get any further callbacks */ + pa_stream_set_write_callback (stream, NULL, NULL); + pa_stream_set_underflow_callback (stream, NULL, NULL); + pa_stream_set_overflow_callback (stream, NULL, NULL); + + pa_stream_disconnect (stream); + + if (wait) + pa_threaded_mainloop_wait (mainloop); + + pa_stream_set_state_callback (stream, NULL, NULL); + pa_stream_unref (stream); +} + static void gst_pulsering_destroy_stream (GstPulseRingBuffer * pbuf) { + if (pbuf->probe_stream) { + gst_pulse_destroy_stream (pbuf->probe_stream, FALSE); + pbuf->probe_stream = NULL; + } + if (pbuf->stream) { if (pbuf->m_data) { @@ -532,6 +556,11 @@ gst_pulseringbuffer_open_device (GstAudioRingBuffer * buf) pa_threaded_mainloop_wait (mainloop); } + if (pa_context_get_server_protocol_version (pbuf->context) < 22) { + /* We need PulseAudio >= 1.0 on the server side for the extended API */ + goto bad_server_version; + } + GST_LOG_OBJECT (psink, "opened the device"); pa_threaded_mainloop_unlock (mainloop); @@ -560,6 +589,12 @@ connect_failed: pa_strerror (pa_context_errno (pctx->context))), (NULL)); goto unlock_and_fail; } +bad_server_version: + { + GST_ELEMENT_ERROR (psink, RESOURCE, FAILED, ("PulseAudio server version " + "is too old."), (NULL)); + goto unlock_and_fail; + } } /* close the device */ @@ -658,6 +693,7 @@ gst_pulsering_stream_latency_cb (pa_stream * s, void *userdata) { GstPulseSink *psink; GstPulseRingBuffer *pbuf; + GstAudioRingBuffer *ringbuf; const pa_timing_info *info; pa_usec_t sink_usec; @@ -665,11 +701,26 @@ gst_pulsering_stream_latency_cb (pa_stream * s, void *userdata) pbuf = GST_PULSERING_BUFFER_CAST (userdata); psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf)); + ringbuf = GST_AUDIO_RING_BUFFER (pbuf); if (!info) { GST_LOG_OBJECT (psink, "latency update (information unknown)"); return; } + + if (!info->read_index_corrupt) { + /* Update segdone based on the read index. segdone is of segment + * granularity, while the read index is at byte granularity. We take the + * ceiling while converting the latter to the former since it is more + * conservative to report that we've read more than we have than to report + * less. One concern here is that latency updates happen every 100ms, which + * means segdone is not updated very often, but increasing the update + * frequency would mean more communication overhead. */ + g_atomic_int_set (&ringbuf->segdone, + (int) gst_util_uint64_scale_ceil (info->read_index, 1, + ringbuf->spec.segsize)); + } + sink_usec = info->configured_sink_usec; GST_LOG_OBJECT (psink, @@ -831,6 +882,13 @@ gst_pulseringbuffer_acquire (GstAudioRingBuffer * buf, g_assert (pbuf->context); g_assert (!pbuf->stream); + /* if we have a probe, disconnect it first so that if we're creating a + * compressed stream, it doesn't get blocked by a PCM stream */ + if (pbuf->probe_stream) { + gst_pulse_destroy_stream (pbuf->probe_stream, TRUE); + pbuf->probe_stream = NULL; + } + /* enable event notifications */ GST_LOG_OBJECT (psink, "subscribing to context events"); if (!(o = pa_context_subscribe (pbuf->context, @@ -1109,13 +1167,13 @@ mainloop_enter_defer_cb (pa_mainloop_api * api, void *userdata) GstMessage *message; GValue val = { 0 }; - g_value_init (&val, G_TYPE_POINTER); - g_value_set_pointer (&val, g_thread_self ()); - GST_DEBUG_OBJECT (pulsesink, "posting ENTER stream status"); message = gst_message_new_stream_status (GST_OBJECT (pulsesink), GST_STREAM_STATUS_TYPE_ENTER, GST_ELEMENT (pulsesink)); + g_value_init (&val, GST_TYPE_G_THREAD); + g_value_set_boxed (&val, g_thread_self ()); gst_message_set_stream_status_object (message, &val); + g_value_unset (&val); gst_element_post_message (GST_ELEMENT (pulsesink), message); @@ -1188,13 +1246,14 @@ mainloop_leave_defer_cb (pa_mainloop_api * api, void *userdata) GstMessage *message; GValue val = { 0 }; - g_value_init (&val, G_TYPE_POINTER); - g_value_set_pointer (&val, g_thread_self ()); - GST_DEBUG_OBJECT (pulsesink, "posting LEAVE stream status"); message = gst_message_new_stream_status (GST_OBJECT (pulsesink), GST_STREAM_STATUS_TYPE_LEAVE, GST_ELEMENT (pulsesink)); + g_value_init (&val, GST_TYPE_G_THREAD); + g_value_set_boxed (&val, g_thread_self ()); gst_message_set_stream_status_object (message, &val); + g_value_unset (&val); + gst_element_post_message (GST_ELEMENT (pulsesink), message); g_return_if_fail (pulsesink->defer_pending); @@ -1873,7 +1932,22 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass) gst_static_pad_template_get (&pad_template)); } -/* returns the current time of the sink ringbuffer */ +static void +free_device_info (GstPulseDeviceInfo * device_info) +{ + GList *l; + + g_free (device_info->description); + + for (l = g_list_first (device_info->formats); l; l = g_list_next (l)) + pa_format_info_free ((pa_format_info *) l->data); + + g_list_free (device_info->formats); +} + +/* Returns the current time of the sink ringbuffer. The timing_info is updated + * on every data write/flush and every 100ms (PA_STREAM_AUTO_TIMING_UPDATE). + */ static GstClockTime gst_pulsesink_get_time (GstClock * clock, GstAudioBaseSink * sink) { @@ -1925,56 +1999,299 @@ static void gst_pulsesink_sink_info_cb (pa_context * c, const pa_sink_info * i, int eol, void *userdata) { - GstPulseRingBuffer *pbuf; - GstPulseSink *psink; - GList *l; + GstPulseDeviceInfo *device_info = (GstPulseDeviceInfo *) userdata; guint8 j; - pbuf = GST_PULSERING_BUFFER_CAST (userdata); - psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf)); - if (!i) goto done; - g_free (psink->device_description); - psink->device_description = g_strdup (i->description); - - g_mutex_lock (&psink->sink_formats_lock); - - for (l = g_list_first (psink->sink_formats); l; l = g_list_next (l)) - pa_format_info_free ((pa_format_info *) l->data); - - g_list_free (psink->sink_formats); - psink->sink_formats = NULL; + device_info->description = g_strdup (i->description); + device_info->formats = NULL; for (j = 0; j < i->n_formats; j++) - psink->sink_formats = g_list_prepend (psink->sink_formats, + device_info->formats = g_list_prepend (device_info->formats, pa_format_info_copy (i->formats[j])); - g_mutex_unlock (&psink->sink_formats_lock); - done: pa_threaded_mainloop_signal (mainloop, 0); } +static gboolean +gst_pulse_format_info_int_prop_to_value (pa_format_info * format, + const char *key, GValue * value) +{ + GValue v = { 0, }; + int i; + int *a, n; + int min, max; + + if (pa_format_info_get_prop_int (format, key, &i) == 0) { + g_value_init (value, G_TYPE_INT); + g_value_set_int (value, i); + + } else if (pa_format_info_get_prop_int_array (format, key, &a, &n) == 0) { + g_value_init (value, GST_TYPE_LIST); + g_value_init (&v, G_TYPE_INT); + + for (i = 0; i < n; i++) { + g_value_set_int (&v, a[i]); + gst_value_list_append_value (value, &v); + } + + pa_xfree (a); + + } else if (pa_format_info_get_prop_int_range (format, key, &min, &max) == 0) { + g_value_init (value, GST_TYPE_INT_RANGE); + gst_value_set_int_range (value, min, max); + + } else { + /* Property not available or is not an int type */ + return FALSE; + } + + return TRUE; +} + +static GstCaps * +gst_pulse_format_info_to_caps (pa_format_info * format) +{ + GstCaps *ret = NULL; + GValue v = { 0, }; + pa_sample_spec ss; + + switch (format->encoding) { + case PA_ENCODING_PCM:{ + char *tmp = NULL; + + pa_format_info_to_sample_spec (format, &ss, NULL); + + if (pa_format_info_get_prop_string (format, + PA_PROP_FORMAT_SAMPLE_FORMAT, &tmp)) { + /* No specific sample format means any sample format */ + ret = gst_caps_from_string (_PULSE_SINK_CAPS_PCM); + goto out; + + } else if (ss.format == PA_SAMPLE_ALAW) { + ret = gst_caps_from_string (_PULSE_SINK_CAPS_ALAW); + + } else if (ss.format == PA_SAMPLE_ULAW) { + ret = gst_caps_from_string (_PULSE_SINK_CAPS_MP3); + + } else { + /* Linear PCM format */ + const char *sformat = + gst_pulse_sample_format_to_caps_format (ss.format); + + ret = gst_caps_from_string (_PULSE_SINK_CAPS_LINEAR); + + if (sformat) + gst_caps_set_simple (ret, "format", G_TYPE_STRING, NULL); + } + + pa_xfree (tmp); + break; + } + + case PA_ENCODING_AC3_IEC61937: + ret = gst_caps_from_string (_PULSE_SINK_CAPS_AC3); + break; + + case PA_ENCODING_EAC3_IEC61937: + ret = gst_caps_from_string (_PULSE_SINK_CAPS_EAC3); + break; + + case PA_ENCODING_DTS_IEC61937: + ret = gst_caps_from_string (_PULSE_SINK_CAPS_DTS); + break; + + case PA_ENCODING_MPEG_IEC61937: + ret = gst_caps_from_string (_PULSE_SINK_CAPS_MP3); + break; + + default: + GST_WARNING ("Found a PA format that we don't support yet"); + goto out; + } + + if (gst_pulse_format_info_int_prop_to_value (format, PA_PROP_FORMAT_RATE, &v)) + gst_caps_set_value (ret, "rate", &v); + + g_value_unset (&v); + + if (gst_pulse_format_info_int_prop_to_value (format, PA_PROP_FORMAT_CHANNELS, + &v)) + gst_caps_set_value (ret, "channels", &v); + +out: + return ret; +} + +/* Call with mainloop lock held */ +static pa_stream * +gst_pulsesink_create_probe_stream (GstPulseSink * psink, + GstPulseRingBuffer * pbuf, pa_format_info * format) +{ + pa_format_info *formats[1] = { format }; + pa_stream *stream; + pa_stream_flags_t flags; + + GST_LOG_OBJECT (psink, "Creating probe stream"); + + if (!(stream = pa_stream_new_extended (pbuf->context, "pulsesink probe", + formats, 1, psink->proplist))) + goto error; + + /* construct the flags */ + flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE | + PA_STREAM_ADJUST_LATENCY | PA_STREAM_START_CORKED; + + pa_stream_set_state_callback (stream, gst_pulsering_stream_state_cb, pbuf); + + if (pa_stream_connect_playback (stream, psink->device, NULL, flags, NULL, + NULL) < 0) + goto error; + + if (!gst_pulsering_wait_for_stream_ready (psink, stream)) + goto error; + + return stream; + +error: + if (stream) + pa_stream_unref (stream); + return NULL; +} + +static GstCaps * +gst_pulsesink_query_getcaps (GstPulseSink * psink, GstCaps * filter) +{ + GstPulseRingBuffer *pbuf = NULL; + GstPulseDeviceInfo device_info = { NULL, NULL }; + GstCaps *ret = NULL; + GList *i; + pa_operation *o = NULL; + pa_stream *stream; + + GST_OBJECT_LOCK (psink); + pbuf = GST_PULSERING_BUFFER_CAST (GST_AUDIO_BASE_SINK (psink)->ringbuffer); + if (pbuf != NULL) + gst_object_ref (pbuf); + GST_OBJECT_UNLOCK (psink); + + if (!pbuf) { + ret = gst_pad_get_pad_template_caps (GST_AUDIO_BASE_SINK_PAD (psink)); + goto out; + } + + GST_OBJECT_LOCK (pbuf); + pa_threaded_mainloop_lock (mainloop); + + if (!pbuf->context) { + ret = gst_pad_get_pad_template_caps (GST_AUDIO_BASE_SINK_PAD (psink)); + goto unlock; + } + + if (pbuf->stream) { + /* We're in PAUSED or higher */ + stream = pbuf->stream; + + } else if (pbuf->probe_stream) { + /* We're not paused, but have a cached probe stream */ + stream = pbuf->probe_stream; + + } else { + /* We're not yet in PAUSED and still need to create a probe stream. + * + * FIXME: PA doesn't accept "any" format. We fix something reasonable since + * this is merely a probe. This should eventually be fixed in PA and + * hard-coding the format should be dropped. */ + pa_format_info *format = pa_format_info_new (); + format->encoding = PA_ENCODING_PCM; + pa_format_info_set_sample_format (format, PA_SAMPLE_S16LE); + pa_format_info_set_rate (format, GST_AUDIO_DEF_RATE); + pa_format_info_set_channels (format, GST_AUDIO_DEF_CHANNELS); + + pbuf->probe_stream = gst_pulsesink_create_probe_stream (psink, pbuf, + format); + if (!pbuf->probe_stream) { + GST_WARNING_OBJECT (psink, "Could not create probe stream"); + goto unlock; + } + + pa_format_info_free (format); + + stream = pbuf->probe_stream; + } + + ret = gst_caps_new_empty (); + + if (!(o = pa_context_get_sink_info_by_name (pbuf->context, + pa_stream_get_device_name (stream), gst_pulsesink_sink_info_cb, + &device_info))) + goto info_failed; + + while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) { + pa_threaded_mainloop_wait (mainloop); + if (gst_pulsering_is_dead (psink, pbuf, FALSE)) + goto unlock; + } + + for (i = g_list_first (device_info.formats); i; i = g_list_next (i)) { + gst_caps_append (ret, + gst_pulse_format_info_to_caps ((pa_format_info *) i->data)); + } + + if (filter) { + GstCaps *tmp = gst_caps_intersect_full (filter, ret, + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (ret); + ret = tmp; + } + +unlock: + pa_threaded_mainloop_unlock (mainloop); + /* FIXME: this could be freed after device_name is got */ + GST_OBJECT_UNLOCK (pbuf); + +out: + free_device_info (&device_info); + + if (o) + pa_operation_unref (o); + + if (pbuf) + gst_object_unref (pbuf); + + GST_DEBUG_OBJECT (psink, "caps %" GST_PTR_FORMAT, ret); + + return ret; + +info_failed: + { + GST_ELEMENT_ERROR (psink, RESOURCE, FAILED, + ("pa_context_get_sink_input_info() failed: %s", + pa_strerror (pa_context_errno (pbuf->context))), (NULL)); + goto unlock; + } +} + static gboolean gst_pulsesink_query_acceptcaps (GstPulseSink * psink, GstCaps * caps) { GstPulseRingBuffer *pbuf = NULL; + GstPulseDeviceInfo device_info = { NULL, NULL }; GstCaps *pad_caps; GstStructure *st; gboolean ret = FALSE; GstAudioRingBufferSpec spec = { 0 }; - pa_stream *stream = NULL; pa_operation *o = NULL; pa_channel_map channel_map; - pa_stream_flags_t flags; - pa_format_info *format = NULL, *formats[1]; + pa_format_info *format = NULL; guint channels; - pad_caps = gst_pad_query_caps (GST_BASE_SINK_PAD (psink), caps); - ret = pad_caps != NULL; + pad_caps = gst_pad_get_pad_template_caps (GST_BASE_SINK_PAD (psink)); + ret = gst_caps_is_subset (caps, pad_caps); gst_caps_unref (pad_caps); GST_DEBUG_OBJECT (psink, "caps %" GST_PTR_FORMAT, caps); @@ -1998,6 +2315,7 @@ gst_pulsesink_query_acceptcaps (GstPulseSink * psink, GstCaps * caps) if (pbuf == NULL) goto done; + GST_OBJECT_LOCK (pbuf); pa_threaded_mainloop_lock (mainloop); if (pbuf->context == NULL) @@ -2028,49 +2346,36 @@ gst_pulsesink_query_acceptcaps (GstPulseSink * psink, GstCaps * caps) gst_pulse_gst_to_channel_map (&channel_map, &spec)) pa_format_info_set_channel_map (format, &channel_map); - if (pbuf->stream) { + if (pbuf->stream || pbuf->probe_stream) { /* We're already in PAUSED or above, so just reuse this stream to query * sink formats and use those. */ GList *i; + const char *device_name = pa_stream_get_device_name (pbuf->stream ? + pbuf->stream : pbuf->probe_stream); - if (!(o = pa_context_get_sink_info_by_name (pbuf->context, psink->device, - gst_pulsesink_sink_info_cb, pbuf))) + if (!(o = pa_context_get_sink_info_by_name (pbuf->context, device_name, + gst_pulsesink_sink_info_cb, &device_info))) goto info_failed; while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) { pa_threaded_mainloop_wait (mainloop); - if (gst_pulsering_is_dead (psink, pbuf, TRUE)) + if (gst_pulsering_is_dead (psink, pbuf, FALSE)) goto out; } - g_mutex_lock (&psink->sink_formats_lock); - for (i = g_list_first (psink->sink_formats); i; i = g_list_next (i)) { + for (i = g_list_first (device_info.formats); i; i = g_list_next (i)) { if (pa_format_info_is_compatible ((pa_format_info *) i->data, format)) { ret = TRUE; break; } } - g_mutex_unlock (&psink->sink_formats_lock); } else { /* We're in READY, let's connect a stream to see if the format is - * accpeted by whatever sink we're routed to */ - formats[0] = format; - - if (!(stream = pa_stream_new_extended (pbuf->context, "pulsesink probe", - formats, 1, psink->proplist))) - goto out; - - /* construct the flags */ - flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE | - PA_STREAM_ADJUST_LATENCY | PA_STREAM_START_CORKED; - - pa_stream_set_state_callback (stream, gst_pulsering_stream_state_cb, pbuf); - - if (pa_stream_connect_playback (stream, psink->device, NULL, flags, NULL, - NULL) < 0) - goto out; - - ret = gst_pulsering_wait_for_stream_ready (psink, stream); + * accepted by whatever sink we're routed to */ + pbuf->probe_stream = gst_pulsesink_create_probe_stream (psink, pbuf, + format); + if (pbuf->probe_stream) + ret = TRUE; } out: @@ -2080,13 +2385,8 @@ out: if (o) pa_operation_unref (o); - if (stream) { - pa_stream_set_state_callback (stream, NULL, NULL); - pa_stream_disconnect (stream); - pa_stream_unref (stream); - } - pa_threaded_mainloop_unlock (mainloop); + GST_OBJECT_UNLOCK (pbuf); gst_caps_replace (&spec.caps, NULL); gst_object_unref (pbuf); @@ -2109,11 +2409,10 @@ gst_pulsesink_init (GstPulseSink * pulsesink) { pulsesink->server = NULL; pulsesink->device = NULL; - pulsesink->device_description = NULL; + pulsesink->device_info.description = NULL; pulsesink->client_name = gst_pulse_client_name (); - g_mutex_init (&pulsesink->sink_formats_lock); - pulsesink->sink_formats = NULL; + pulsesink->device_info.formats = NULL; pulsesink->volume = DEFAULT_VOLUME; pulsesink->volume_set = FALSE; @@ -2147,18 +2446,12 @@ static void gst_pulsesink_finalize (GObject * object) { GstPulseSink *pulsesink = GST_PULSESINK_CAST (object); - GList *i; g_free (pulsesink->server); g_free (pulsesink->device); - g_free (pulsesink->device_description); g_free (pulsesink->client_name); - for (i = g_list_first (pulsesink->sink_formats); i; i = g_list_next (i)) - pa_format_info_free ((pa_format_info *) i->data); - - g_list_free (pulsesink->sink_formats); - g_mutex_clear (&pulsesink->sink_formats_lock); + free_device_info (&pulsesink->device_info); if (pulsesink->properties) gst_structure_free (pulsesink->properties); @@ -2492,8 +2785,9 @@ gst_pulsesink_device_description (GstPulseSink * psink) if (pbuf == NULL) goto no_buffer; + free_device_info (&psink->device_info); if (!(o = pa_context_get_sink_info_by_name (pbuf->context, - psink->device, gst_pulsesink_sink_info_cb, pbuf))) + psink->device, gst_pulsesink_sink_info_cb, &psink->device_info))) goto info_failed; while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) { @@ -2506,7 +2800,7 @@ unlock: if (o) pa_operation_unref (o); - t = g_strdup (psink->device_description); + t = g_strdup (psink->device_info.description); pa_threaded_mainloop_unlock (mainloop); return t; @@ -2831,6 +3125,21 @@ gst_pulsesink_query (GstBaseSink * sink, GstQuery * query) gboolean ret; switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CAPS: + { + GstCaps *caps, *filter; + + gst_query_parse_caps (query, &filter); + caps = gst_pulsesink_query_getcaps (pulsesink, filter); + + if (caps) { + gst_query_set_caps_result (query, caps); + gst_caps_unref (caps); + return TRUE; + } else { + return FALSE; + } + } case GST_QUERY_ACCEPT_CAPS: { GstCaps *caps; diff --git a/ext/pulse/pulsesink.h b/ext/pulse/pulsesink.h index c76c81a9b52e0e2c36b194f369627a3b8a31d580..9b718406f69882a1c58181204d1b844726065b87 100644 --- a/ext/pulse/pulsesink.h +++ b/ext/pulse/pulsesink.h @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with gst-pulse; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 * USA. */ @@ -29,6 +29,7 @@ #endif #include <gst/gst.h> +#include <gst/audio/audio.h> #include <gst/audio/gstaudiosink.h> #include <pulse/pulseaudio.h> @@ -54,12 +55,17 @@ G_BEGIN_DECLS typedef struct _GstPulseSink GstPulseSink; typedef struct _GstPulseSinkClass GstPulseSinkClass; +typedef struct _GstPulseDeviceInfo { + gchar *description; + GList *formats; +} GstPulseDeviceInfo; + struct _GstPulseSink { GstAudioBaseSink sink; gchar *server, *device, *stream_name, *client_name; - gchar *device_description; + GstPulseDeviceInfo device_info; GstPulseProbe *probe; @@ -77,8 +83,6 @@ struct _GstPulseSink GstStructure *properties; pa_proplist *proplist; - GMutex sink_formats_lock; - GList *sink_formats; volatile gint format_lost; GstClockTime format_lost_time; }; @@ -98,32 +102,41 @@ GType gst_pulsesink_get_type (void); "S24BE, S24LE, S24_32BE, S24_32LE, U8 }" #endif -#define _PULSE_SINK_CAPS_COMMON \ +#define _PULSE_SINK_CAPS_LINEAR \ "audio/x-raw, " \ "format = (string) " FORMATS ", " \ "layout = (string) interleaved, " \ "rate = (int) [ 1, MAX ], " \ - "channels = (int) [ 1, 32 ];" \ + "channels = (int) [ 1, 32 ]; " +#define _PULSE_SINK_CAPS_ALAW \ "audio/x-alaw, " \ "layout = (string) interleaved, " \ "rate = (int) [ 1, MAX], " \ - "channels = (int) [ 1, 32 ];" \ + "channels = (int) [ 1, 32 ]; " +#define _PULSE_SINK_CAPS_MULAW \ "audio/x-mulaw, " \ "layout = (string) interleaved, " \ "rate = (int) [ 1, MAX], " \ - "channels = (int) [ 1, 32 ];" + "channels = (int) [ 1, 32 ]; " + +#define _PULSE_SINK_CAPS_AC3 "audio/x-ac3, framed = (boolean) true; " +#define _PULSE_SINK_CAPS_EAC3 "audio/x-eac3, framed = (boolean) true; " +#define _PULSE_SINK_CAPS_DTS "audio/x-dts, framed = (boolean) true, " \ + "block-size = (int) { 512, 1024, 2048 }; " +#define _PULSE_SINK_CAPS_MP3 "audio/mpeg, mpegversion = (int) 1, " \ + "mpegaudioversion = (int) [ 1, 2 ], parsed = (boolean) true;" -#define _PULSE_SINK_CAPS_1_0 \ - "audio/x-ac3, framed = (boolean) true;" \ - "audio/x-eac3, framed = (boolean) true; " \ - "audio/x-dts, framed = (boolean) true, " \ - "block-size = (int) { 512, 1024, 2048 }; " \ - "audio/mpeg, mpegversion = (int) 1, " \ - "mpegaudioversion = (int) [ 1, 2 ], parsed = (boolean) true;" +#define _PULSE_SINK_CAPS_PCM \ + _PULSE_SINK_CAPS_LINEAR \ + _PULSE_SINK_CAPS_ALAW \ + _PULSE_SINK_CAPS_MULAW #define PULSE_SINK_TEMPLATE_CAPS \ - _PULSE_SINK_CAPS_COMMON \ - _PULSE_SINK_CAPS_1_0 + _PULSE_SINK_CAPS_PCM \ + _PULSE_SINK_CAPS_AC3 \ + _PULSE_SINK_CAPS_EAC3 \ + _PULSE_SINK_CAPS_DTS \ + _PULSE_SINK_CAPS_MP3 G_END_DECLS diff --git a/ext/pulse/pulsesrc.c b/ext/pulse/pulsesrc.c index 12f847dfdf75171720813c45cd16f1bdf5afcd7b..02f64884a01e65f1fe0595d01d3b5ead6f859615 100644 --- a/ext/pulse/pulsesrc.c +++ b/ext/pulse/pulsesrc.c @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with gst-pulse; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 * USA. */ @@ -43,7 +43,7 @@ #include <gst/base/gstbasesrc.h> #include <gst/gsttaglist.h> -#include <gst/audio/streamvolume.h> +#include <gst/audio/audio.h> #include "pulsesrc.h" #include "pulseutil.h" diff --git a/ext/pulse/pulsesrc.h b/ext/pulse/pulsesrc.h index 18ba1522cf2b9e9ed3c0bbfeaf008742d8808389..dcae8b11099465f51705fce516ba10cc374c7828 100644 --- a/ext/pulse/pulsesrc.h +++ b/ext/pulse/pulsesrc.h @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with gst-pulse; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 * USA. */ diff --git a/ext/pulse/pulseutil.c b/ext/pulse/pulseutil.c index 84092918596265ba16f68f36fe6119d7c35a3bf3..a232c6ea38ce0ff0c5addb61ae91c5b4320dee50 100644 --- a/ext/pulse/pulseutil.c +++ b/ext/pulse/pulseutil.c @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with gst-pulse; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 * USA. */ @@ -23,6 +23,8 @@ #include "config.h" #endif +#include <gst/audio/audio.h> + #include "pulseutil.h" #ifdef HAVE_UNISTD_H @@ -189,6 +191,48 @@ fail: return FALSE; } +const char * +gst_pulse_sample_format_to_caps_format (pa_sample_format_t sf) +{ + switch (sf) { + case PA_SAMPLE_U8: + return "U8"; + + case PA_SAMPLE_S16LE: + return "S16LE"; + + case PA_SAMPLE_S16BE: + return "S16BE"; + + case PA_SAMPLE_FLOAT32LE: + return "F32LE"; + + case PA_SAMPLE_FLOAT32BE: + return "F32BE"; + + case PA_SAMPLE_S32LE: + return "S32LE"; + + case PA_SAMPLE_S32BE: + return "S32BE"; + + case PA_SAMPLE_S24LE: + return "S24LE"; + + case PA_SAMPLE_S24BE: + return "S24BE"; + + case PA_SAMPLE_S24_32LE: + return "S24_32LE"; + + case PA_SAMPLE_S24_32BE: + return "S24_32BE"; + + default: + return NULL; + } +} + /* PATH_MAX is not defined everywhere, e.g. on GNU Hurd */ #ifndef PATH_MAX #define PATH_MAX 4096 diff --git a/ext/pulse/pulseutil.h b/ext/pulse/pulseutil.h index 8b50fa58a1927d2aca3a2755ed449e07539eb47e..ecf06c9e3cb74e27d373ec231ec2bdd01ebd2edc 100644 --- a/ext/pulse/pulseutil.h +++ b/ext/pulse/pulseutil.h @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with gst-pulse; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 * USA. */ @@ -35,6 +35,7 @@ gboolean gst_pulse_fill_sample_spec (GstAudioRingBufferSpec * spec, pa_sample_spec * ss); gboolean gst_pulse_fill_format_info (GstAudioRingBufferSpec * spec, pa_format_info ** f, guint * channels); +const char * gst_pulse_sample_format_to_caps_format (pa_sample_format_t sf); gchar *gst_pulse_client_name (void); diff --git a/ext/raw1394/Makefile.in b/ext/raw1394/Makefile.in index 9ccb47cffae56acca634cd9772f064c4cb57e763..9de84fc3a02f165b85f4b23ed467f284f9a86b29 100644 --- a/ext/raw1394/Makefile.in +++ b/ext/raw1394/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/raw1394 -DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(am__noinst_HEADERS_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -141,10 +167,23 @@ libgst1394_la_OBJECTS = $(am_libgst1394_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgst1394_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgst1394_la_CFLAGS) $(CFLAGS) \ $(libgst1394_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -157,20 +196,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgst1394_la_SOURCES) DIST_SOURCES = $(am__libgst1394_la_SOURCES_DIST) am__can_run_installinfo = \ @@ -181,6 +216,23 @@ am__can_run_installinfo = \ am__noinst_HEADERS_DIST = gstdv1394src.h gst1394probe.h \ gsthdv1394src.h gst1394clock.h HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -349,6 +401,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -569,6 +622,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -595,12 +649,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgst1394.la: $(libgst1394_la_OBJECTS) $(libgst1394_la_DEPENDENCIES) $(EXTRA_libgst1394_la_DEPENDENCIES) $(AM_V_CCLD)$(libgst1394_la_LINK) -rpath $(plugindir) $(libgst1394_la_OBJECTS) $(libgst1394_la_LIBADD) $(LIBS) @@ -678,26 +735,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -709,15 +755,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -726,6 +768,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -870,19 +927,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/raw1394/gst1394.c b/ext/raw1394/gst1394.c index b74c644072cfd01b5a26805ba231f76c22d5ddf5..77a9e93935379fb9b5bcba3659df5085e4448a8f 100644 --- a/ext/raw1394/gst1394.c +++ b/ext/raw1394/gst1394.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/raw1394/gst1394clock.c b/ext/raw1394/gst1394clock.c index 0505c8cb1c7921b2d66cab5f04cd018d8e22a93a..977ba00b3a73b7bda0ea1ee261ea253e8632a265 100644 --- a/ext/raw1394/gst1394clock.c +++ b/ext/raw1394/gst1394clock.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -97,7 +97,8 @@ Gst1394Clock * gst_1394_clock_new (const gchar * name) { Gst1394Clock *_1394clock = - GST_1394_CLOCK (g_object_new (GST_TYPE_1394_CLOCK, "name", name, NULL)); + GST_1394_CLOCK (g_object_new (GST_TYPE_1394_CLOCK, "name", name, + "clock-type", GST_CLOCK_TYPE_OTHER, NULL)); return _1394clock; } diff --git a/ext/raw1394/gst1394clock.h b/ext/raw1394/gst1394clock.h index ab7594d071542bb1fc14c586ce7f41c01c85fa34..411251e2d689fd1433baa78523eff2460a98bfa6 100644 --- a/ext/raw1394/gst1394clock.h +++ b/ext/raw1394/gst1394clock.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_1394_CLOCK_H__ diff --git a/ext/raw1394/gst1394probe.c b/ext/raw1394/gst1394probe.c index 1118aad547ae1b1c79ae59b002697f737af79baf..2d11a01c10fa475a95912d30a6883d421679dac0 100644 --- a/ext/raw1394/gst1394probe.c +++ b/ext/raw1394/gst1394probe.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <libavc1394/avc1394.h> diff --git a/ext/raw1394/gst1394probe.h b/ext/raw1394/gst1394probe.h index 85af8d306ce8b96234d86ac7da32f65b915990c0..54a323266c1ea5b367bc9a9a8382d19e7589ccc8 100644 --- a/ext/raw1394/gst1394probe.h +++ b/ext/raw1394/gst1394probe.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GST_1394_PROBE_H diff --git a/ext/raw1394/gstdv1394src.c b/ext/raw1394/gstdv1394src.c index af2c15326a44b619cab04ca2bae5cc12ccb88cff..b9e3232d87810115ce344341c63a75ae0559d647 100644 --- a/ext/raw1394/gstdv1394src.c +++ b/ext/raw1394/gstdv1394src.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-dv1394src diff --git a/ext/raw1394/gstdv1394src.h b/ext/raw1394/gstdv1394src.h index bf9a3e07128a41cdbf571281c3878d73d4311621..e2f330817daa014e82cbc008e7d27080e64ad020 100644 --- a/ext/raw1394/gstdv1394src.h +++ b/ext/raw1394/gstdv1394src.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/raw1394/gsthdv1394src.c b/ext/raw1394/gsthdv1394src.c index 7106a89fcabe4858b2f4d84d2694142e8d8d024c..0bfa485c55357a7153335ebf7086167678280339 100644 --- a/ext/raw1394/gsthdv1394src.c +++ b/ext/raw1394/gsthdv1394src.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-hdv1394src diff --git a/ext/raw1394/gsthdv1394src.h b/ext/raw1394/gsthdv1394src.h index a6014a478be1ea8c439ba6f1a179a0e5f32635d3..6ae863c899b97c9cc6b491dc6c70e1e9c89881be 100644 --- a/ext/raw1394/gsthdv1394src.h +++ b/ext/raw1394/gsthdv1394src.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/shout2/Makefile.in b/ext/shout2/Makefile.in index d271d8cea18fb16ffdccf586099a0be7cd6813b7..e195287650ccad80557cf2fd3b525109dfe9bf02 100644 --- a/ext/shout2/Makefile.in +++ b/ext/shout2/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/shout2 -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -135,10 +161,23 @@ libgstshout2_la_OBJECTS = $(am_libgstshout2_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstshout2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstshout2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstshout2_la_CFLAGS) $(CFLAGS) \ $(libgstshout2_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstshout2_la_SOURCES) DIST_SOURCES = $(libgstshout2_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstshout2.la: $(libgstshout2_la_OBJECTS) $(libgstshout2_la_DEPENDENCIES) $(EXTRA_libgstshout2_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstshout2_la_LINK) -rpath $(plugindir) $(libgstshout2_la_OBJECTS) $(libgstshout2_la_LIBADD) $(LIBS) @@ -619,26 +676,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -650,15 +696,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -667,6 +709,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c index 72541b04cda726a3378d6c567443c48cba9ae0a9..ee6a6baccc527e60015ddf359a27c034c2986bbe 100644 --- a/ext/shout2/gstshout2.c +++ b/ext/shout2/gstshout2.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/ext/shout2/gstshout2.h b/ext/shout2/gstshout2.h index 1e3cd5bd1b675b08ae1c79fa733e3fbfcc0748b1..eb7b2d933564c33c37d5850ff2f6d075cb63a6ca 100644 --- a/ext/shout2/gstshout2.h +++ b/ext/shout2/gstshout2.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/soup/Makefile.am b/ext/soup/Makefile.am index a1c9985a4ac412b8e25fb00dc1854b4430bc3f6f..e34fe87866067f645e63827a9a9726686d014407 100644 --- a/ext/soup/Makefile.am +++ b/ext/soup/Makefile.am @@ -2,7 +2,10 @@ plugin_LTLIBRARIES = libgstsouphttpsrc.la libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsoup.c -libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(SOUP_CFLAGS) +libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) $(SOUP_CFLAGS) \ + -DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_26 \ + -DSOUP_VERSION_MAX_ALLOWED=SOUP_DEPRECATED_IN_2_26 libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(SOUP_LIBS) libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstsouphttpsrc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) diff --git a/ext/soup/Makefile.in b/ext/soup/Makefile.in index 661809b9635edc4cb6b7bcb6118b1828de58231b..e78d40e999ec1d5d9dcdcbcd61fa9442dd29d3a8 100644 --- a/ext/soup/Makefile.in +++ b/ext/soup/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/soup -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -138,10 +164,23 @@ libgstsouphttpsrc_la_OBJECTS = $(am_libgstsouphttpsrc_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstsouphttpsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) \ $(libgstsouphttpsrc_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstsouphttpsrc_la_SOURCES) DIST_SOURCES = $(libgstsouphttpsrc_la_SOURCES) am__can_run_installinfo = \ @@ -176,6 +211,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -344,6 +396,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -506,7 +559,11 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstsouphttpsrc.la libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsoup.c -libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(SOUP_CFLAGS) +libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) $(SOUP_CFLAGS) \ + -DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_26 \ + -DSOUP_VERSION_MAX_ALLOWED=SOUP_DEPRECATED_IN_2_26 + libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(SOUP_LIBS) libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstsouphttpsrc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) @@ -545,6 +602,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -571,12 +629,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstsouphttpsrc.la: $(libgstsouphttpsrc_la_OBJECTS) $(libgstsouphttpsrc_la_DEPENDENCIES) $(EXTRA_libgstsouphttpsrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsouphttpsrc_la_LINK) -rpath $(plugindir) $(libgstsouphttpsrc_la_OBJECTS) $(libgstsouphttpsrc_la_LIBADD) $(LIBS) @@ -638,26 +699,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -669,15 +719,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -686,6 +732,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -830,19 +891,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/soup/gstsouphttpclientsink.h b/ext/soup/gstsouphttpclientsink.h index d8ed3da85a1a9bf2cf6277827335f50c19bc9056..5c7dda62faabb67c24344f39ba1bc5b6ab3367cf 100644 --- a/ext/soup/gstsouphttpclientsink.h +++ b/ext/soup/gstsouphttpclientsink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GST_SOUP_HTTP_CLIENT_SINK_H_ diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c index f547cab52991dbd6e67a5b18240b15c37766005c..79f6109d468619ba4d393935cde62bd3a37e1009 100644 --- a/ext/soup/gstsouphttpsrc.c +++ b/ext/soup/gstsouphttpsrc.c @@ -77,11 +77,7 @@ #endif #include <gst/gstelement.h> #include <gst/gst-i18n-plugin.h> -#ifdef HAVE_LIBSOUP_GNOME -#include <libsoup/soup-gnome.h> -#else #include <libsoup/soup.h> -#endif #include "gstsouphttpsrc.h" #include <gst/tag/tag.h> @@ -140,13 +136,15 @@ static gboolean gst_soup_http_src_set_location (GstSoupHTTPSrc * src, static gboolean gst_soup_http_src_set_proxy (GstSoupHTTPSrc * src, const gchar * uri); static char *gst_soup_http_src_unicodify (const char *str); -static gboolean gst_soup_http_src_build_message (GstSoupHTTPSrc * src); +static gboolean gst_soup_http_src_build_message (GstSoupHTTPSrc * src, + const gchar * method); static void gst_soup_http_src_cancel_message (GstSoupHTTPSrc * src); static void gst_soup_http_src_queue_message (GstSoupHTTPSrc * src); static gboolean gst_soup_http_src_add_range_header (GstSoupHTTPSrc * src, - guint64 offset); + guint64 offset, guint64 stop_offset); static void gst_soup_http_src_session_unpause_message (GstSoupHTTPSrc * src); static void gst_soup_http_src_session_pause_message (GstSoupHTTPSrc * src); +static gboolean gst_soup_http_src_session_open (GstSoupHTTPSrc * src); static void gst_soup_http_src_session_close (GstSoupHTTPSrc * src); static void gst_soup_http_src_parse_status (SoupMessage * msg, GstSoupHTTPSrc * src); @@ -277,9 +275,11 @@ gst_soup_http_src_reset (GstSoupHTTPSrc * src) src->interrupted = FALSE; src->retry = FALSE; src->have_size = FALSE; + src->got_headers = FALSE; src->seekable = FALSE; src->read_position = 0; src->request_position = 0; + src->stop_position = -1; src->content_size = 0; gst_caps_replace (&src->src_caps, NULL); @@ -296,6 +296,8 @@ gst_soup_http_src_init (GstSoupHTTPSrc * src) { const gchar *proxy; + g_mutex_init (&src->mutex); + g_cond_init (&src->request_finished_cond); src->location = NULL; src->automatic_redirect = TRUE; src->user_agent = g_strdup (DEFAULT_USER_AGENT); @@ -326,6 +328,8 @@ gst_soup_http_src_finalize (GObject * gobject) GST_DEBUG_OBJECT (src, "finalize"); + g_mutex_clear (&src->mutex); + g_cond_clear (&src->request_finished_cond); g_free (src->location); g_free (src->user_agent); if (src->proxy != NULL) { @@ -526,15 +530,22 @@ gst_soup_http_src_queue_message (GstSoupHTTPSrc * src) } static gboolean -gst_soup_http_src_add_range_header (GstSoupHTTPSrc * src, guint64 offset) +gst_soup_http_src_add_range_header (GstSoupHTTPSrc * src, guint64 offset, + guint64 stop_offset) { gchar buf[64]; gint rc; soup_message_headers_remove (src->msg->request_headers, "Range"); - if (offset) { - rc = g_snprintf (buf, sizeof (buf), "bytes=%" G_GUINT64_FORMAT "-", offset); + if (offset || stop_offset != -1) { + if (stop_offset != -1) { + rc = g_snprintf (buf, sizeof (buf), "bytes=%" G_GUINT64_FORMAT "-%" + G_GUINT64_FORMAT, offset, stop_offset); + } else { + rc = g_snprintf (buf, sizeof (buf), "bytes=%" G_GUINT64_FORMAT "-", + offset); + } if (rc > sizeof (buf) || rc < 0) return FALSE; soup_message_headers_append (src->msg->request_headers, "Range", buf); @@ -631,6 +642,57 @@ gst_soup_http_src_session_pause_message (GstSoupHTTPSrc * src) soup_session_pause_message (src->session, src->msg); } +static gboolean +gst_soup_http_src_session_open (GstSoupHTTPSrc * src) +{ + if (src->session) { + GST_DEBUG_OBJECT (src, "Session is already open"); + return TRUE; + } + + if (!src->location) { + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (_("No URL set.")), + ("Missing location property")); + return FALSE; + } + + src->context = g_main_context_new (); + + src->loop = g_main_loop_new (src->context, TRUE); + if (!src->loop) { + GST_ELEMENT_ERROR (src, LIBRARY, INIT, + (NULL), ("Failed to start GMainLoop")); + g_main_context_unref (src->context); + return FALSE; + } + + GST_DEBUG_OBJECT (src, "Creating session"); + if (src->proxy == NULL) { + src->session = + soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT, + src->context, SOUP_SESSION_USER_AGENT, src->user_agent, + SOUP_SESSION_TIMEOUT, src->timeout, + SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_DEFAULT, + NULL); + } else { + src->session = + soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT, + src->context, SOUP_SESSION_PROXY_URI, src->proxy, + SOUP_SESSION_TIMEOUT, src->timeout, + SOUP_SESSION_USER_AGENT, src->user_agent, NULL); + } + + if (!src->session) { + GST_ELEMENT_ERROR (src, LIBRARY, INIT, + (NULL), ("Failed to create async session")); + return FALSE; + } + + g_signal_connect (src->session, "authenticate", + G_CALLBACK (gst_soup_http_src_authenticate_cb), src); + return TRUE; +} + static void gst_soup_http_src_session_close (GstSoupHTTPSrc * src) { @@ -691,6 +753,7 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) return; src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING; + src->got_headers = TRUE; /* Parse Content-Length. */ if (soup_message_headers_get_encoding (msg->response_headers) == @@ -829,6 +892,7 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) if (src->loop) g_main_loop_quit (src->loop); } + g_cond_signal (&src->request_finished_cond); } /* Have body. Signal EOS. */ @@ -880,6 +944,7 @@ gst_soup_http_src_finished_cb (SoupMessage * msg, GstSoupHTTPSrc * src) } if (src->loop) g_main_loop_quit (src->loop); + g_cond_signal (&src->request_finished_cond); } /* Buffer lifecycle management. @@ -994,6 +1059,16 @@ gst_soup_http_src_got_chunk_cb (SoupMessage * msg, SoupBuffer * chunk, src->request_position = new_position; src->read_position = new_position; + if (src->content_size != 0 && new_position > src->content_size) { + GST_DEBUG_OBJECT (src, "Got position previous estimated content size " + "(%" G_GINT64_FORMAT " > %" G_GINT64_FORMAT ")", new_position, + src->content_size); + src->content_size = new_position; + basesrc->segment.duration = src->content_size; + gst_element_post_message (GST_ELEMENT (src), + gst_message_new_duration_changed (GST_OBJECT (src))); + } + src->ret = GST_FLOW_OK; g_main_loop_quit (src->loop); gst_soup_http_src_session_pause_message (src); @@ -1086,9 +1161,9 @@ gst_soup_http_src_parse_status (SoupMessage * msg, GstSoupHTTPSrc * src) } static gboolean -gst_soup_http_src_build_message (GstSoupHTTPSrc * src) +gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method) { - src->msg = soup_message_new (SOUP_METHOD_GET, src->location); + src->msg = soup_message_new (method, src->location); if (!src->msg) { GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, ("Error parsing URL."), ("URL: %s", src->location)); @@ -1123,7 +1198,8 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src) (src->automatic_redirect ? 0 : SOUP_MESSAGE_NO_REDIRECT)); soup_message_set_chunk_allocator (src->msg, gst_soup_http_src_chunk_allocator, src, NULL); - gst_soup_http_src_add_range_header (src, src->request_position); + gst_soup_http_src_add_range_header (src, src->request_position, + src->stop_position); gst_soup_http_src_add_extra_headers (src); @@ -1135,19 +1211,14 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src) } static GstFlowReturn -gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) +gst_soup_http_src_do_request (GstSoupHTTPSrc * src, const gchar * method, + GstBuffer ** outbuf) { - GstSoupHTTPSrc *src; - - src = GST_SOUP_HTTP_SRC (psrc); - + GST_LOG_OBJECT (src, "Running request for method: %s", method); if (src->msg && (src->request_position != src->read_position)) { - if (src->content_size != 0 && src->request_position >= src->content_size) { - GST_WARNING_OBJECT (src, "Seeking behind the end of file -- EOS"); - return GST_FLOW_EOS; - } else if (src->session_io_status == - GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE) { - gst_soup_http_src_add_range_header (src, src->request_position); + if (src->session_io_status == GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE) { + gst_soup_http_src_add_range_header (src, src->request_position, + src->stop_position); } else { GST_DEBUG_OBJECT (src, "Seek from position %" G_GUINT64_FORMAT " to %" G_GUINT64_FORMAT ": requeueing connection request", @@ -1156,8 +1227,9 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) } } if (!src->msg) - if (!gst_soup_http_src_build_message (src)) + if (!gst_soup_http_src_build_message (src, method)) { return GST_FLOW_ERROR; + } src->ret = GST_FLOW_CUSTOM_ERROR; src->outbuf = outbuf; @@ -1168,8 +1240,9 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) } if (src->retry) { GST_DEBUG_OBJECT (src, "Reconnecting"); - if (!gst_soup_http_src_build_message (src)) + if (!gst_soup_http_src_build_message (src, method)) { return GST_FLOW_ERROR; + } src->retry = FALSE; continue; } @@ -1199,9 +1272,24 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) if (src->ret == GST_FLOW_CUSTOM_ERROR) src->ret = GST_FLOW_EOS; + g_cond_signal (&src->request_finished_cond); return src->ret; } +static GstFlowReturn +gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) +{ + GstSoupHTTPSrc *src; + GstFlowReturn ret; + + src = GST_SOUP_HTTP_SRC (psrc); + + g_mutex_lock (&src->mutex); + ret = gst_soup_http_src_do_request (src, SOUP_METHOD_GET, outbuf); + g_mutex_unlock (&src->mutex); + return ret; +} + static gboolean gst_soup_http_src_start (GstBaseSrc * bsrc) { @@ -1209,48 +1297,7 @@ gst_soup_http_src_start (GstBaseSrc * bsrc) GST_DEBUG_OBJECT (src, "start(\"%s\")", src->location); - if (!src->location) { - GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (_("No URL set.")), - ("Missing location property")); - return FALSE; - } - - src->context = g_main_context_new (); - - src->loop = g_main_loop_new (src->context, TRUE); - if (!src->loop) { - GST_ELEMENT_ERROR (src, LIBRARY, INIT, - (NULL), ("Failed to start GMainLoop")); - g_main_context_unref (src->context); - return FALSE; - } - - if (src->proxy == NULL) { - src->session = - soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT, - src->context, SOUP_SESSION_USER_AGENT, src->user_agent, - SOUP_SESSION_TIMEOUT, src->timeout, -#ifdef HAVE_LIBSOUP_GNOME - SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_GNOME, -#endif - NULL); - } else { - src->session = - soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT, - src->context, SOUP_SESSION_PROXY_URI, src->proxy, - SOUP_SESSION_TIMEOUT, src->timeout, - SOUP_SESSION_USER_AGENT, src->user_agent, NULL); - } - - if (!src->session) { - GST_ELEMENT_ERROR (src, LIBRARY, INIT, - (NULL), ("Failed to create async session")); - return FALSE; - } - - g_signal_connect (src->session, "authenticate", - G_CALLBACK (gst_soup_http_src_authenticate_cb), src); - return TRUE; + return gst_soup_http_src_session_open (src); } static gboolean @@ -1288,6 +1335,7 @@ gst_soup_http_src_unlock (GstBaseSrc * bsrc) src->interrupted = TRUE; if (src->loop) g_main_loop_quit (src->loop); + g_cond_signal (&src->request_finished_cond); return TRUE; } @@ -1325,6 +1373,33 @@ static gboolean gst_soup_http_src_is_seekable (GstBaseSrc * bsrc) { GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (bsrc); + GstFlowReturn ret = GST_FLOW_OK; + + /* Special case to check if the server allows range requests + * before really starting to get data in the buffer creation + * loops. + */ + if (!src->got_headers && GST_STATE (src) != GST_STATE_NULL) { + g_mutex_lock (&src->mutex); + while (!src->got_headers && !src->interrupted && ret == GST_FLOW_OK) { + if ((src->msg && src->msg->method != SOUP_METHOD_HEAD) && + src->session_io_status != GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE) { + /* wait for the current request to finish */ + g_cond_wait (&src->request_finished_cond, &src->mutex); + } else { + if (gst_soup_http_src_session_open (src)) { + ret = gst_soup_http_src_do_request (src, SOUP_METHOD_HEAD, NULL); + } + } + } + if (src->ret == GST_FLOW_EOS) { + /* A HEAD request shouldn't lead to EOS */ + src->ret = GST_FLOW_OK; + } + /* resets status to idle */ + gst_soup_http_src_cancel_message (src); + g_mutex_unlock (&src->mutex); + } return src->seekable; } @@ -1334,11 +1409,13 @@ gst_soup_http_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment) { GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (bsrc); - GST_DEBUG_OBJECT (src, "do_seek(%" G_GUINT64_FORMAT ")", segment->start); - + GST_DEBUG_OBJECT (src, "do_seek(%" G_GUINT64_FORMAT "-%" G_GUINT64_FORMAT + ")", segment->start, segment->stop); if (src->read_position == segment->start && - src->request_position == src->read_position) { - GST_DEBUG_OBJECT (src, "Seek to current read position and no seek pending"); + src->request_position == src->read_position && + src->stop_position == segment->stop) { + GST_DEBUG_OBJECT (src, + "Seek to current read/end position and no seek pending"); return TRUE; } @@ -1353,11 +1430,13 @@ gst_soup_http_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment) } if (src->content_size != 0 && segment->start >= src->content_size) { - GST_WARNING_OBJECT (src, "Seeking behind end of file, will go to EOS soon"); + GST_WARNING_OBJECT (src, + "Potentially seeking behind end of file, might EOS immediately"); } /* Wait for create() to handle the jump in offset. */ src->request_position = segment->start; + src->stop_position = segment->stop; return TRUE; } @@ -1366,6 +1445,8 @@ gst_soup_http_src_query (GstBaseSrc * bsrc, GstQuery * query) { GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (bsrc); gboolean ret; + GstSchedulingFlags flags; + gint minsize, maxsize, align; switch (GST_QUERY_TYPE (query)) { case GST_QUERY_URI: @@ -1380,6 +1461,16 @@ gst_soup_http_src_query (GstBaseSrc * bsrc, GstQuery * query) if (!ret) ret = GST_BASE_SRC_CLASS (parent_class)->query (bsrc, query); + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_SCHEDULING: + gst_query_parse_scheduling (query, &flags, &minsize, &maxsize, &align); + flags |= GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED; + gst_query_set_scheduling (query, flags, minsize, maxsize, align); + break; + default: + break; + } + return ret; } diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h index 491b69d4715ca2a04beddc942bbd70cee8b5bfe8..9ccc35acaa9fb8b1f23849ebda25ed796683122a 100644 --- a/ext/soup/gstsouphttpsrc.h +++ b/ext/soup/gstsouphttpsrc.h @@ -68,6 +68,7 @@ struct _GstSoupHTTPSrc { gboolean interrupted; /* Signal unlock(). */ gboolean retry; /* Should attempt to reconnect. */ + gboolean got_headers; /* Already received headers from the server */ gboolean have_size; /* Received and parsed Content-Length header. */ guint64 content_size; /* Value of Content-Length header. */ @@ -75,6 +76,7 @@ struct _GstSoupHTTPSrc { gboolean seekable; /* FALSE if the server does not support Range. */ guint64 request_position; /* Seek to this position. */ + guint64 stop_position; /* Stop at this position. */ /* Shoutcast/icecast metadata extraction handling. */ gboolean iradio_mode; @@ -86,6 +88,9 @@ struct _GstSoupHTTPSrc { GstStructure *extra_headers; guint timeout; + + GMutex mutex; + GCond request_finished_cond; }; struct _GstSoupHTTPSrcClass { diff --git a/ext/speex/Makefile.in b/ext/speex/Makefile.in index 8e4e783c04d3c1beb61255760e19c71565192518..d2aeeb3bd2d051f09b231807b89c3040d2a08cd1 100644 --- a/ext/speex/Makefile.in +++ b/ext/speex/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/speex -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstspeex_la_OBJECTS = $(am_libgstspeex_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstspeex_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstspeex_la_CFLAGS) $(CFLAGS) \ $(libgstspeex_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstspeex_la_SOURCES) DIST_SOURCES = $(libgstspeex_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -555,6 +608,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -581,12 +635,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstspeex.la: $(libgstspeex_la_OBJECTS) $(libgstspeex_la_DEPENDENCIES) $(EXTRA_libgstspeex_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstspeex_la_LINK) -rpath $(plugindir) $(libgstspeex_la_OBJECTS) $(libgstspeex_la_LIBADD) $(LIBS) @@ -648,26 +705,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -679,15 +725,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -696,6 +738,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -840,19 +897,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/speex/gstspeex.c b/ext/speex/gstspeex.c index 67dc52e67b7d20bf1103d76bbf7327be1fdf1faf..9688cd5c2e14ed9e5ff84c67c7db1c73ad63db61 100644 --- a/ext/speex/gstspeex.c +++ b/ext/speex/gstspeex.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include <config.h> diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c index cd788043d6861263db17eab48945aeb203de35c1..8f9da2adef694a1d6d71e1eb807d6a949a8c09d3 100644 --- a/ext/speex/gstspeexdec.c +++ b/ext/speex/gstspeexdec.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/ext/speex/gstspeexdec.h b/ext/speex/gstspeexdec.h index 8187af87ce79d58fe2c3dd88e42ec39c4dda3011..ce45e813c5f5394dff82ac2d6f5f8e7fe47e9a95 100644 --- a/ext/speex/gstspeexdec.h +++ b/ext/speex/gstspeexdec.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c index 23c172ddd014185e126cf937783e632a3a8880a0..c17e8a3988323119bab2bf0abbc1e3717ca63a32 100644 --- a/ext/speex/gstspeexenc.c +++ b/ext/speex/gstspeexenc.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/ext/speex/gstspeexenc.h b/ext/speex/gstspeexenc.h index 17cb1e2df5dd543a513dcc6c7cb34910013b953d..8d9568dc429454085c398cd20b2ad8ee1c043a04 100644 --- a/ext/speex/gstspeexenc.h +++ b/ext/speex/gstspeexenc.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ext/taglib/Makefile.in b/ext/taglib/Makefile.in index 9b8fe730d5a6e089f251e21595e0f21872ce5895..5df2b56eb7de045aa0a1a4880709a667c5cf6d7f 100644 --- a/ext/taglib/Makefile.in +++ b/ext/taglib/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/taglib -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgsttaglib_la_OBJECTS = $(am_libgsttaglib_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgsttaglib_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CXXLD) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) \ $(libgsttaglib_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,17 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ @@ -171,17 +209,16 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = SOURCES = $(libgsttaglib_la_SOURCES) DIST_SOURCES = $(libgsttaglib_la_SOURCES) am__can_run_installinfo = \ @@ -190,6 +227,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -358,6 +412,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -572,6 +627,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -598,12 +654,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgsttaglib.la: $(libgsttaglib_la_OBJECTS) $(libgsttaglib_la_DEPENDENCIES) $(EXTRA_libgsttaglib_la_DEPENDENCIES) $(AM_V_CXXLD)$(libgsttaglib_la_LINK) -rpath $(plugindir) $(libgsttaglib_la_OBJECTS) $(libgsttaglib_la_LIBADD) $(LIBS) @@ -686,26 +745,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -717,15 +765,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -734,6 +778,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -878,19 +937,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/taglib/gstapev2mux.cc b/ext/taglib/gstapev2mux.cc index f3c6287461b8f37fe546ddd16768a1f22831b981..eb46f823ecb0303d0894d69306eda6c31d3f5043 100644 --- a/ext/taglib/gstapev2mux.cc +++ b/ext/taglib/gstapev2mux.cc @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/ext/taglib/gstapev2mux.h b/ext/taglib/gstapev2mux.h index 9539a6add9881908060cf0fd100edf01c84f4237..8eceb571423ac6c697897da2c215161baaee0b19 100644 --- a/ext/taglib/gstapev2mux.h +++ b/ext/taglib/gstapev2mux.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GST_APEV2_MUX_H diff --git a/ext/taglib/gstid3v2mux.cc b/ext/taglib/gstid3v2mux.cc index 50c36c4876a150c5c4b08e0458a2bc97892ccaf4..c345142c1b19796d84c143629ad35557a6ae2577 100644 --- a/ext/taglib/gstid3v2mux.cc +++ b/ext/taglib/gstid3v2mux.cc @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/ext/taglib/gstid3v2mux.h b/ext/taglib/gstid3v2mux.h index 1a66b95d51f7219b0390fd381647b9e419c27cd7..36c748fc4b0564df0ddacd9d9e814fcb6e0d1653 100644 --- a/ext/taglib/gstid3v2mux.h +++ b/ext/taglib/gstid3v2mux.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GST_ID3V2_MUX_H diff --git a/ext/taglib/gsttaglibplugin.c b/ext/taglib/gsttaglibplugin.c index 281a06602f41b2b5d44458c71a8f29cc0ce1fb7f..dce6bf6d174b04737f3ee9f301e760ee62e0de55 100644 --- a/ext/taglib/gsttaglibplugin.c +++ b/ext/taglib/gsttaglibplugin.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/ext/vpx/Makefile.am b/ext/vpx/Makefile.am index 10b0b3523ee233410132d9fb21448737f138eb69..17636385c12c4b31ec31abfb516155d925cd92f7 100644 --- a/ext/vpx/Makefile.am +++ b/ext/vpx/Makefile.am @@ -5,6 +5,8 @@ libgstvpx_la_SOURCES = \ gstvp8dec.c \ gstvp8enc.c \ gstvp8utils.c \ + gstvp9dec.c \ + gstvp9enc.c \ plugin.c libgstvpx_la_CFLAGS = \ @@ -22,6 +24,8 @@ libgstvpx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) noinst_HEADERS = \ gstvp8dec.h \ gstvp8enc.h \ + gstvp9dec.h \ + gstvp9enc.h \ gstvp8utils.h presetdir = $(datadir)/gstreamer-$(GST_API_VERSION)/presets diff --git a/ext/vpx/Makefile.in b/ext/vpx/Makefile.in index b31f2484d16c83caf8e8840fe15c778a9f5b23bd..945356bf7a64199299ca597f84f7acef6639be82 100644 --- a/ext/vpx/Makefile.in +++ b/ext/vpx/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -18,23 +17,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,15 +82,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/vpx -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -134,15 +160,29 @@ libgstvpx_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstvpx_la_OBJECTS = libgstvpx_la-gstvp8dec.lo \ libgstvpx_la-gstvp8enc.lo libgstvpx_la-gstvp8utils.lo \ + libgstvpx_la-gstvp9dec.lo libgstvpx_la-gstvp9enc.lo \ libgstvpx_la-plugin.lo libgstvpx_la_OBJECTS = $(am_libgstvpx_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstvpx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstvpx_la_CFLAGS) $(CFLAGS) \ $(libgstvpx_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -155,20 +195,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstvpx_la_SOURCES) DIST_SOURCES = $(libgstvpx_la_SOURCES) am__can_run_installinfo = \ @@ -178,6 +214,23 @@ am__can_run_installinfo = \ esac DATA = $(preset_DATA) HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -346,6 +399,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -513,6 +567,8 @@ libgstvpx_la_SOURCES = \ gstvp8dec.c \ gstvp8enc.c \ gstvp8utils.c \ + gstvp9dec.c \ + gstvp9enc.c \ plugin.c libgstvpx_la_CFLAGS = \ @@ -531,6 +587,8 @@ libgstvpx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) noinst_HEADERS = \ gstvp8dec.h \ gstvp8enc.h \ + gstvp9dec.h \ + gstvp9enc.h \ gstvp8utils.h presetdir = $(datadir)/gstreamer-$(GST_API_VERSION)/presets @@ -570,6 +628,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -596,12 +655,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstvpx.la: $(libgstvpx_la_OBJECTS) $(libgstvpx_la_DEPENDENCIES) $(EXTRA_libgstvpx_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvpx_la_LINK) -rpath $(plugindir) $(libgstvpx_la_OBJECTS) $(libgstvpx_la_LIBADD) $(LIBS) @@ -614,6 +676,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp8dec.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp8enc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp8utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp9dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp9enc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-plugin.Plo@am__quote@ .c.o: @@ -658,6 +722,20 @@ libgstvpx_la-gstvp8utils.lo: gstvp8utils.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvp8utils.lo `test -f 'gstvp8utils.c' || echo '$(srcdir)/'`gstvp8utils.c +libgstvpx_la-gstvp9dec.lo: gstvp9dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-gstvp9dec.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp9dec.Tpo -c -o libgstvpx_la-gstvp9dec.lo `test -f 'gstvp9dec.c' || echo '$(srcdir)/'`gstvp9dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-gstvp9dec.Tpo $(DEPDIR)/libgstvpx_la-gstvp9dec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvp9dec.c' object='libgstvpx_la-gstvp9dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvp9dec.lo `test -f 'gstvp9dec.c' || echo '$(srcdir)/'`gstvp9dec.c + +libgstvpx_la-gstvp9enc.lo: gstvp9enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-gstvp9enc.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp9enc.Tpo -c -o libgstvpx_la-gstvp9enc.lo `test -f 'gstvp9enc.c' || echo '$(srcdir)/'`gstvp9enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-gstvp9enc.Tpo $(DEPDIR)/libgstvpx_la-gstvp9enc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvp9enc.c' object='libgstvpx_la-gstvp9enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvp9enc.lo `test -f 'gstvp9enc.c' || echo '$(srcdir)/'`gstvp9enc.c + libgstvpx_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-plugin.Tpo -c -o libgstvpx_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-plugin.Tpo $(DEPDIR)/libgstvpx_la-plugin.Plo @@ -692,26 +770,15 @@ uninstall-presetDATA: files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(presetdir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -723,15 +790,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -740,6 +803,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -884,20 +962,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES uninstall-presetDATA .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-presetDATA install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES \ - uninstall-presetDATA +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-presetDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pluginLTLIBRARIES uninstall-presetDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/vpx/gstvp8dec.c b/ext/vpx/gstvp8dec.c index eff013f50798c5449fd7546f749848a85a7c1867..6ba2ce865ef82e20344bc68a7484958f950d5df2 100644 --- a/ext/vpx/gstvp8dec.c +++ b/ext/vpx/gstvp8dec.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ /** @@ -415,7 +415,13 @@ open_codec (GstVP8Dec * dec, GstVideoCodecFrame * frame) gst_buffer_unmap (frame->input_buffer, &minfo); - if (status != VPX_CODEC_OK || !stream_info.is_kf) { + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (dec, "VPX preprocessing error: %s", + gst_vpx_error_name (status)); + gst_video_decoder_finish_frame (GST_VIDEO_DECODER (dec), frame); + return GST_FLOW_CUSTOM_SUCCESS_1; + } + if (!stream_info.is_kf) { GST_WARNING_OBJECT (dec, "No keyframe, skipping"); gst_video_decoder_finish_frame (GST_VIDEO_DECODER (dec), frame); return GST_FLOW_CUSTOM_SUCCESS_1; @@ -521,6 +527,14 @@ gst_vp8_dec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame) img = vpx_codec_get_frame (&dec->decoder, &iter); if (img) { + if (img->fmt != VPX_IMG_FMT_I420) { + vpx_img_free (img); + GST_ELEMENT_ERROR (decoder, LIBRARY, ENCODE, + ("Failed to decode frame"), ("Unsupported color format %d", + img->fmt)); + return GST_FLOW_ERROR; + } + if (deadline < 0) { GST_LOG_OBJECT (dec, "Skipping late frame (%f s past deadline)", (double) -deadline / GST_SECOND); diff --git a/ext/vpx/gstvp8dec.h b/ext/vpx/gstvp8dec.h index c2aaebc8362229d2e51a7a5bf206d8fff9cf45db..aff385935100a884f4adb1bc01ae79d953f94c7f 100644 --- a/ext/vpx/gstvp8dec.h +++ b/ext/vpx/gstvp8dec.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/ext/vpx/gstvp8enc.c b/ext/vpx/gstvp8enc.c index bd1012a21a67c7fd0ac1981a6461dc1566eab88f..d68cdff7c019efaeb788f47506a189249cd6de9c 100644 --- a/ext/vpx/gstvp8enc.c +++ b/ext/vpx/gstvp8enc.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ /** @@ -60,13 +60,12 @@ #define GLIB_DISABLE_DEPRECATION_WARNINGS #include <gst/tag/tag.h> +#include <gst/video/video.h> #include <string.h> #include "gstvp8utils.h" #include "gstvp8enc.h" -#include <gst/video/gstvideometa.h> - GST_DEBUG_CATEGORY_STATIC (gst_vp8enc_debug); #define GST_CAT_DEFAULT gst_vp8enc_debug @@ -147,6 +146,8 @@ gst_vp8_enc_user_data_free (GstVP8EncUserData * user_data) #define DEFAULT_TUNING VP8_TUNE_PSNR #define DEFAULT_CQ_LEVEL 10 #define DEFAULT_MAX_INTRA_BITRATE_PCT 0 +#define DEFAULT_TIMEBASE_N 0 +#define DEFAULT_TIMEBASE_D 1 enum { @@ -193,7 +194,8 @@ enum PROP_ARNR_TYPE, PROP_TUNING, PROP_CQ_LEVEL, - PROP_MAX_INTRA_BITRATE_PCT + PROP_MAX_INTRA_BITRATE_PCT, + PROP_TIMEBASE }; #define GST_VP8_ENC_END_USAGE_TYPE (gst_vp8_enc_end_usage_get_type()) @@ -394,8 +396,7 @@ GST_STATIC_PAD_TEMPLATE ("src", #define parent_class gst_vp8_enc_parent_class G_DEFINE_TYPE_WITH_CODE (GstVP8Enc, gst_vp8_enc, GST_TYPE_VIDEO_ENCODER, G_IMPLEMENT_INTERFACE (GST_TYPE_TAG_SETTER, NULL); - G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL); - ); + G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL);); static void gst_vp8_enc_class_init (GstVP8EncClass * klass) @@ -701,6 +702,12 @@ gst_vp8_enc_class_init (GstVP8EncClass * klass) 0, G_MAXINT, DEFAULT_MAX_INTRA_BITRATE_PCT, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_TIMEBASE, + gst_param_spec_fraction ("timebase", "Shortest interframe time", + "Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate", + 0, 1, G_MAXINT, 1, DEFAULT_TIMEBASE_N, DEFAULT_TIMEBASE_D, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + GST_DEBUG_CATEGORY_INIT (gst_vp8enc_debug, "vp8enc", 0, "VP8 Encoder"); } @@ -769,6 +776,8 @@ gst_vp8_enc_init (GstVP8Enc * gst_vp8_enc) gst_vp8_enc->tuning = DEFAULT_TUNING; gst_vp8_enc->cq_level = DEFAULT_CQ_LEVEL; gst_vp8_enc->max_intra_bitrate_pct = DEFAULT_MAX_INTRA_BITRATE_PCT; + gst_vp8_enc->timebase_n = DEFAULT_TIMEBASE_N; + gst_vp8_enc->timebase_d = DEFAULT_TIMEBASE_D; gst_vp8_enc->cfg.g_profile = DEFAULT_PROFILE; @@ -1163,6 +1172,10 @@ gst_vp8_enc_set_property (GObject * object, guint prop_id, } } break; + case PROP_TIMEBASE: + gst_vp8_enc->timebase_n = gst_value_get_fraction_numerator (value); + gst_vp8_enc->timebase_d = gst_value_get_fraction_denominator (value); + break; default: break; } @@ -1380,6 +1393,10 @@ gst_vp8_enc_get_property (GObject * object, guint prop_id, GValue * value, case PROP_MAX_INTRA_BITRATE_PCT: g_value_set_int (value, gst_vp8_enc->max_intra_bitrate_pct); break; + case PROP_TIMEBASE: + gst_value_set_fraction (value, gst_vp8_enc->timebase_n, + gst_vp8_enc->timebase_d); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1509,16 +1526,29 @@ gst_vp8_enc_set_format (GstVideoEncoder * video_encoder, encoder->cfg.g_w = GST_VIDEO_INFO_WIDTH (info); encoder->cfg.g_h = GST_VIDEO_INFO_HEIGHT (info); - if (GST_VIDEO_INFO_FPS_D (info) == 0 || GST_VIDEO_INFO_FPS_N (info) == 0) { - /* Zero framerate but still need to setup the timebase so we - * presume this is RTP - VP8 payload draft states clock rate of 90000 - * see specification http://tools.ietf.org/html/draft-ietf-payload-vp8-01 - * section 6.3.1 */ - encoder->cfg.g_timebase.num = 1; - encoder->cfg.g_timebase.den = 90000; - } else { + + if (encoder->timebase_n != 0 && encoder->timebase_d != 0) { + GST_DEBUG_OBJECT (video_encoder, "Using timebase configuration"); + encoder->cfg.g_timebase.num = encoder->timebase_n; + encoder->cfg.g_timebase.den = encoder->timebase_d; + } else if (GST_VIDEO_INFO_FPS_D (info) != 0 + && GST_VIDEO_INFO_FPS_N (info) != 0) { + /* GstVideoInfo holds either the framerate or max-framerate (if framerate + * is 0) in FPS so this will be used if max-framerate or framerate + * is set */ + GST_DEBUG_OBJECT (video_encoder, "Setting timebase from framerate"); encoder->cfg.g_timebase.num = GST_VIDEO_INFO_FPS_D (info); encoder->cfg.g_timebase.den = GST_VIDEO_INFO_FPS_N (info); + } else { + /* Zero framerate and max-framerate but still need to setup the timebase to avoid + * a divide by zero error. Presuming the lowest common denominator will be RTP - + * VP8 payload draft states clock rate of 90000 which should work for anyone where + * FPS < 90000 (shouldn't be too many cases where it's higher) though wouldn't be optimal. RTP specification + * http://tools.ietf.org/html/draft-ietf-payload-vp8-01 section 6.3.1 */ + GST_WARNING_OBJECT (encoder, + "No timebase and zero framerate setting timebase to 1/90000"); + encoder->cfg.g_timebase.num = 1; + encoder->cfg.g_timebase.den = 90000; } if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS) { diff --git a/ext/vpx/gstvp8enc.h b/ext/vpx/gstvp8enc.h index a8120677aadc996563f80bc1051ea9799b0f3e83..b2351124df7ce53baee815f4e0943fde1ce43b86 100644 --- a/ext/vpx/gstvp8enc.h +++ b/ext/vpx/gstvp8enc.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ #ifndef __GST_VP8_ENC_H__ @@ -87,6 +87,9 @@ struct _GstVP8Enc vp8e_tuning tuning; unsigned int cq_level; unsigned int max_intra_bitrate_pct; + /* Timebase - a value of 0 will use the framerate */ + unsigned int timebase_n; + unsigned int timebase_d; /* state */ gboolean inited; diff --git a/ext/vpx/gstvp8utils.c b/ext/vpx/gstvp8utils.c index 90df09b0b3fe5c0c96b49f7d9cba491ad888993d..1721945356cac89fe29ee8a5a7046242350cb256 100644 --- a/ext/vpx/gstvp8utils.c +++ b/ext/vpx/gstvp8utils.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/ext/vpx/gstvp8utils.h b/ext/vpx/gstvp8utils.h index e62ab8fc93e2912c28d722f6171461ae496f7278..df4e77e6800e988e96d8c0527a210fd49d2c5030 100644 --- a/ext/vpx/gstvp8utils.h +++ b/ext/vpx/gstvp8utils.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/ext/vpx/gstvp9dec.c b/ext/vpx/gstvp9dec.c new file mode 100644 index 0000000000000000000000000000000000000000..208796a40fa81cc648ad630d63140666aa9d803e --- /dev/null +++ b/ext/vpx/gstvp9dec.c @@ -0,0 +1,624 @@ +/* VP9 + * Copyright (C) 2006 David Schleef <ds@schleef.org> + * Copyright (C) 2008,2009,2010 Entropy Wave Inc + * Copyright (C) 2010-2013 Sebastian Dröge <slomo@circular-chaos.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ +/** + * SECTION:element-vp9dec + * @see_also: vp9enc, matroskademux + * + * This element decodes VP9 streams into raw video. + * <ulink url="http://www.webmproject.org">VP9</ulink> is a royalty-free + * video codec maintained by <ulink url="http://www.google.com/">Google + * </ulink>. It's the successor of On2 VP3, which was the base of the + * Theora video codec. + * + * <refsect2> + * <title>Example pipeline</title> + * |[ + * gst-launch -v filesrc location=videotestsrc.webm ! matroskademux ! vp9dec ! xvimagesink + * ]| This example pipeline will decode a WebM stream and decodes the VP9 video. + * </refsect2> + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_VP9_DECODER + +#include <string.h> + +#include "gstvp8utils.h" +#include "gstvp9dec.h" + +#include <gst/video/gstvideometa.h> +#include <gst/video/gstvideopool.h> + +GST_DEBUG_CATEGORY_STATIC (gst_vp9dec_debug); +#define GST_CAT_DEFAULT gst_vp9dec_debug + +#define DEFAULT_POST_PROCESSING FALSE +#define DEFAULT_POST_PROCESSING_FLAGS (VP8_DEBLOCK | VP8_DEMACROBLOCK) +#define DEFAULT_DEBLOCKING_LEVEL 4 +#define DEFAULT_NOISE_LEVEL 0 +#define DEFAULT_THREADS 1 + +enum +{ + PROP_0, + PROP_POST_PROCESSING, + PROP_POST_PROCESSING_FLAGS, + PROP_DEBLOCKING_LEVEL, + PROP_NOISE_LEVEL, + PROP_THREADS +}; + +#define C_FLAGS(v) ((guint) v) +#define GST_VP9_DEC_TYPE_POST_PROCESSING_FLAGS (gst_vp9_dec_post_processing_flags_get_type()) +static GType +gst_vp9_dec_post_processing_flags_get_type (void) +{ + static const GFlagsValue values[] = { + {C_FLAGS (VP8_DEBLOCK), "Deblock", "deblock"}, + {C_FLAGS (VP8_DEMACROBLOCK), "Demacroblock", "demacroblock"}, + {C_FLAGS (VP8_ADDNOISE), "Add noise", "addnoise"}, + {C_FLAGS (VP8_MFQE), "Multi-frame quality enhancement", "mfqe"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_flags_register_static ("GstVP9DecPostProcessingFlags", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +#undef C_FLAGS + +static void gst_vp9_dec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_vp9_dec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static gboolean gst_vp9_dec_start (GstVideoDecoder * decoder); +static gboolean gst_vp9_dec_stop (GstVideoDecoder * decoder); +static gboolean gst_vp9_dec_set_format (GstVideoDecoder * decoder, + GstVideoCodecState * state); +static gboolean gst_vp9_dec_reset (GstVideoDecoder * decoder, gboolean hard); +static GstFlowReturn gst_vp9_dec_handle_frame (GstVideoDecoder * decoder, + GstVideoCodecFrame * frame); +static gboolean gst_vp9_dec_decide_allocation (GstVideoDecoder * decoder, + GstQuery * query); + +static GstStaticPadTemplate gst_vp9_dec_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-vp9") + ); + +static GstStaticPadTemplate gst_vp9_dec_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ I420, YV12, Y42B, Y444 }")) + ); + +#define parent_class gst_vp9_dec_parent_class +G_DEFINE_TYPE (GstVP9Dec, gst_vp9_dec, GST_TYPE_VIDEO_DECODER); + +static void +gst_vp9_dec_class_init (GstVP9DecClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *element_class; + GstVideoDecoderClass *base_video_decoder_class; + + gobject_class = G_OBJECT_CLASS (klass); + element_class = GST_ELEMENT_CLASS (klass); + base_video_decoder_class = GST_VIDEO_DECODER_CLASS (klass); + + gobject_class->set_property = gst_vp9_dec_set_property; + gobject_class->get_property = gst_vp9_dec_get_property; + + g_object_class_install_property (gobject_class, PROP_POST_PROCESSING, + g_param_spec_boolean ("post-processing", "Post Processing", + "Enable post processing", DEFAULT_POST_PROCESSING, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_POST_PROCESSING_FLAGS, + g_param_spec_flags ("post-processing-flags", "Post Processing Flags", + "Flags to control post processing", + GST_VP9_DEC_TYPE_POST_PROCESSING_FLAGS, DEFAULT_POST_PROCESSING_FLAGS, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_DEBLOCKING_LEVEL, + g_param_spec_uint ("deblocking-level", "Deblocking Level", + "Deblocking level", + 0, 16, DEFAULT_DEBLOCKING_LEVEL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_NOISE_LEVEL, + g_param_spec_uint ("noise-level", "Noise Level", + "Noise level", + 0, 16, DEFAULT_NOISE_LEVEL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_THREADS, + g_param_spec_uint ("threads", "Max Threads", + "Maximum number of decoding threads", + 1, 16, DEFAULT_THREADS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_vp9_dec_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_vp9_dec_sink_template)); + + gst_element_class_set_static_metadata (element_class, + "On2 VP9 Decoder", + "Codec/Decoder/Video", + "Decode VP9 video streams", "David Schleef <ds@entropywave.com>, " + "Sebastian Dröge <sebastian.droege@collabora.co.uk>"); + + base_video_decoder_class->start = GST_DEBUG_FUNCPTR (gst_vp9_dec_start); + base_video_decoder_class->stop = GST_DEBUG_FUNCPTR (gst_vp9_dec_stop); + base_video_decoder_class->reset = GST_DEBUG_FUNCPTR (gst_vp9_dec_reset); + base_video_decoder_class->set_format = + GST_DEBUG_FUNCPTR (gst_vp9_dec_set_format); + base_video_decoder_class->handle_frame = + GST_DEBUG_FUNCPTR (gst_vp9_dec_handle_frame); + base_video_decoder_class->decide_allocation = gst_vp9_dec_decide_allocation; + + GST_DEBUG_CATEGORY_INIT (gst_vp9dec_debug, "vp9dec", 0, "VP9 Decoder"); +} + +static void +gst_vp9_dec_init (GstVP9Dec * gst_vp9_dec) +{ + GstVideoDecoder *decoder = (GstVideoDecoder *) gst_vp9_dec; + + GST_DEBUG_OBJECT (gst_vp9_dec, "gst_vp9_dec_init"); + gst_video_decoder_set_packetized (decoder, TRUE); + gst_vp9_dec->post_processing = DEFAULT_POST_PROCESSING; + gst_vp9_dec->post_processing_flags = DEFAULT_POST_PROCESSING_FLAGS; + gst_vp9_dec->deblocking_level = DEFAULT_DEBLOCKING_LEVEL; + gst_vp9_dec->noise_level = DEFAULT_NOISE_LEVEL; +} + +static void +gst_vp9_dec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstVP9Dec *dec; + + g_return_if_fail (GST_IS_VP9_DEC (object)); + dec = GST_VP9_DEC (object); + + GST_DEBUG_OBJECT (object, "gst_vp9_dec_set_property"); + switch (prop_id) { + case PROP_POST_PROCESSING: + dec->post_processing = g_value_get_boolean (value); + break; + case PROP_POST_PROCESSING_FLAGS: + dec->post_processing_flags = g_value_get_flags (value); + break; + case PROP_DEBLOCKING_LEVEL: + dec->deblocking_level = g_value_get_uint (value); + break; + case PROP_NOISE_LEVEL: + dec->noise_level = g_value_get_uint (value); + break; + case PROP_THREADS: + dec->threads = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_vp9_dec_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstVP9Dec *dec; + + g_return_if_fail (GST_IS_VP9_DEC (object)); + dec = GST_VP9_DEC (object); + + switch (prop_id) { + case PROP_POST_PROCESSING: + g_value_set_boolean (value, dec->post_processing); + break; + case PROP_POST_PROCESSING_FLAGS: + g_value_set_flags (value, dec->post_processing_flags); + break; + case PROP_DEBLOCKING_LEVEL: + g_value_set_uint (value, dec->deblocking_level); + break; + case PROP_NOISE_LEVEL: + g_value_set_uint (value, dec->noise_level); + break; + case PROP_THREADS: + g_value_set_uint (value, dec->threads); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +gst_vp9_dec_start (GstVideoDecoder * decoder) +{ + GstVP9Dec *gst_vp9_dec = GST_VP9_DEC (decoder); + + GST_DEBUG_OBJECT (gst_vp9_dec, "start"); + gst_vp9_dec->decoder_inited = FALSE; + + return TRUE; +} + +static gboolean +gst_vp9_dec_stop (GstVideoDecoder * base_video_decoder) +{ + GstVP9Dec *gst_vp9_dec = GST_VP9_DEC (base_video_decoder); + + GST_DEBUG_OBJECT (gst_vp9_dec, "stop"); + + if (gst_vp9_dec->output_state) { + gst_video_codec_state_unref (gst_vp9_dec->output_state); + gst_vp9_dec->output_state = NULL; + } + + if (gst_vp9_dec->input_state) { + gst_video_codec_state_unref (gst_vp9_dec->input_state); + gst_vp9_dec->input_state = NULL; + } + + if (gst_vp9_dec->decoder_inited) + vpx_codec_destroy (&gst_vp9_dec->decoder); + gst_vp9_dec->decoder_inited = FALSE; + + return TRUE; +} + +static gboolean +gst_vp9_dec_set_format (GstVideoDecoder * decoder, GstVideoCodecState * state) +{ + GstVP9Dec *gst_vp9_dec = GST_VP9_DEC (decoder); + + GST_DEBUG_OBJECT (gst_vp9_dec, "set_format"); + + if (gst_vp9_dec->decoder_inited) + vpx_codec_destroy (&gst_vp9_dec->decoder); + gst_vp9_dec->decoder_inited = FALSE; + + if (gst_vp9_dec->input_state) + gst_video_codec_state_unref (gst_vp9_dec->input_state); + gst_vp9_dec->input_state = gst_video_codec_state_ref (state); + + return TRUE; +} + +static gboolean +gst_vp9_dec_reset (GstVideoDecoder * base_video_decoder, gboolean hard) +{ + GstVP9Dec *decoder; + + GST_DEBUG_OBJECT (base_video_decoder, "reset"); + + decoder = GST_VP9_DEC (base_video_decoder); + + if (decoder->output_state) { + gst_video_codec_state_unref (decoder->output_state); + decoder->output_state = NULL; + } + + if (decoder->decoder_inited) + vpx_codec_destroy (&decoder->decoder); + decoder->decoder_inited = FALSE; + + return TRUE; +} + +static void +gst_vp9_dec_send_tags (GstVP9Dec * dec) +{ + GstTagList *list; + + list = gst_tag_list_new_empty (); + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, + GST_TAG_VIDEO_CODEC, "VP9 video", NULL); + + gst_pad_push_event (GST_VIDEO_DECODER_SRC_PAD (dec), + gst_event_new_tag (list)); +} + +static void +gst_vp9_dec_image_to_buffer (GstVP9Dec * dec, const vpx_image_t * img, + GstBuffer * buffer) +{ + int deststride, srcstride, height, width, line, comp; + guint8 *dest, *src; + GstVideoFrame frame; + GstVideoInfo *info = &dec->output_state->info; + + if (!gst_video_frame_map (&frame, info, buffer, GST_MAP_WRITE)) { + GST_ERROR_OBJECT (dec, "Could not map video buffer"); + } + + for (comp = 0; comp < 3; comp++) { + dest = GST_VIDEO_FRAME_COMP_DATA (&frame, comp); + src = img->planes[comp]; + width = GST_VIDEO_FRAME_COMP_WIDTH (&frame, comp); + height = GST_VIDEO_FRAME_COMP_HEIGHT (&frame, comp); + deststride = GST_VIDEO_FRAME_COMP_STRIDE (&frame, comp); + srcstride = img->stride[comp]; + + /* FIXME (Edward) : Do a plane memcpy is srcstride == deststride instead + * of copying line by line */ + for (line = 0; line < height; line++) { + memcpy (dest, src, width); + dest += deststride; + src += srcstride; + } + } + + gst_video_frame_unmap (&frame); +} + +static GstFlowReturn +open_codec (GstVP9Dec * dec, GstVideoCodecFrame * frame) +{ + int flags = 0; + vpx_codec_stream_info_t stream_info; + vpx_codec_caps_t caps; + vpx_codec_dec_cfg_t cfg; + vpx_codec_err_t status; + GstMapInfo minfo; + + memset (&stream_info, 0, sizeof (stream_info)); + memset (&cfg, 0, sizeof (cfg)); + stream_info.sz = sizeof (stream_info); + + if (!gst_buffer_map (frame->input_buffer, &minfo, GST_MAP_READ)) { + GST_ERROR_OBJECT (dec, "Failed to map input buffer"); + return GST_FLOW_ERROR; + } + + status = vpx_codec_peek_stream_info (&vpx_codec_vp9_dx_algo, + minfo.data, minfo.size, &stream_info); + + gst_buffer_unmap (frame->input_buffer, &minfo); + + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (dec, "VPX preprocessing error: %s", + gst_vpx_error_name (status)); + gst_video_decoder_finish_frame (GST_VIDEO_DECODER (dec), frame); + return GST_FLOW_CUSTOM_SUCCESS_1; + } + if (!stream_info.is_kf) { + GST_WARNING_OBJECT (dec, "No keyframe, skipping"); + gst_video_decoder_finish_frame (GST_VIDEO_DECODER (dec), frame); + return GST_FLOW_CUSTOM_SUCCESS_1; + } + + /* FIXME: peek_stream_info() does not return valid values, take input caps */ + stream_info.w = dec->input_state->info.width; + stream_info.h = dec->input_state->info.height; + + cfg.w = stream_info.w; + cfg.h = stream_info.h; + cfg.threads = dec->threads; + + caps = vpx_codec_get_caps (&vpx_codec_vp9_dx_algo); + + if (dec->post_processing) { + if (!(caps & VPX_CODEC_CAP_POSTPROC)) { + GST_WARNING_OBJECT (dec, "Decoder does not support post processing"); + } else { + flags |= VPX_CODEC_USE_POSTPROC; + } + } + + status = + vpx_codec_dec_init (&dec->decoder, &vpx_codec_vp9_dx_algo, &cfg, flags); + if (status != VPX_CODEC_OK) { + GST_ELEMENT_ERROR (dec, LIBRARY, INIT, + ("Failed to initialize VP9 decoder"), ("%s", + gst_vpx_error_name (status))); + return GST_FLOW_ERROR; + } + + if ((caps & VPX_CODEC_CAP_POSTPROC) && dec->post_processing) { + vp8_postproc_cfg_t pp_cfg = { 0, }; + + pp_cfg.post_proc_flag = dec->post_processing_flags; + pp_cfg.deblocking_level = dec->deblocking_level; + pp_cfg.noise_level = dec->noise_level; + + status = vpx_codec_control (&dec->decoder, VP8_SET_POSTPROC, &pp_cfg); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (dec, "Couldn't set postprocessing settings: %s", + gst_vpx_error_name (status)); + } + } + + dec->decoder_inited = TRUE; + + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_vp9_dec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame) +{ + GstVP9Dec *dec; + GstFlowReturn ret = GST_FLOW_OK; + vpx_codec_err_t status; + vpx_codec_iter_t iter = NULL; + vpx_image_t *img; + long decoder_deadline = 0; + GstClockTimeDiff deadline; + GstMapInfo minfo; + + GST_DEBUG_OBJECT (decoder, "handle_frame"); + + dec = GST_VP9_DEC (decoder); + + if (!dec->decoder_inited) { + ret = open_codec (dec, frame); + if (ret == GST_FLOW_CUSTOM_SUCCESS_1) + return GST_FLOW_OK; + else if (ret != GST_FLOW_OK) + return ret; + } + + deadline = gst_video_decoder_get_max_decode_time (decoder, frame); + if (deadline < 0) { + decoder_deadline = 1; + } else if (deadline == G_MAXINT64) { + decoder_deadline = 0; + } else { + decoder_deadline = MAX (1, deadline / GST_MSECOND); + } + + if (!gst_buffer_map (frame->input_buffer, &minfo, GST_MAP_READ)) { + GST_ERROR_OBJECT (dec, "Failed to map input buffer"); + return GST_FLOW_ERROR; + } + + status = vpx_codec_decode (&dec->decoder, + minfo.data, minfo.size, NULL, decoder_deadline); + + gst_buffer_unmap (frame->input_buffer, &minfo); + + if (status) { + GST_VIDEO_DECODER_ERROR (decoder, 1, LIBRARY, ENCODE, + ("Failed to decode frame"), ("%s", gst_vpx_error_name (status)), ret); + return ret; + } + + img = vpx_codec_get_frame (&dec->decoder, &iter); + if (img) { + GstVideoFormat fmt; + + switch (img->fmt) { + case VPX_IMG_FMT_I420: + fmt = GST_VIDEO_FORMAT_I420; + break; + case VPX_IMG_FMT_YV12: + fmt = GST_VIDEO_FORMAT_YV12; + break; + case VPX_IMG_FMT_I422: + fmt = GST_VIDEO_FORMAT_Y42B; + break; + case VPX_IMG_FMT_I444: + fmt = GST_VIDEO_FORMAT_Y444; + break; + default: + vpx_img_free (img); + GST_ELEMENT_ERROR (decoder, LIBRARY, ENCODE, + ("Failed to decode frame"), ("Unsupported color format %d", + img->fmt)); + return GST_FLOW_ERROR; + break; + } + + /* FIXME: Width/height in the img is wrong */ + if (!dec->output_state || dec->output_state->info.finfo->format != fmt /*|| + dec->output_state->info.width != img->w || + dec->output_state->info.height != img->h */ ) { + gboolean send_tags = !dec->output_state; + + if (dec->output_state) + gst_video_codec_state_unref (dec->output_state); + + /* FIXME: The width/height in the img is wrong */ + dec->output_state = + gst_video_decoder_set_output_state (GST_VIDEO_DECODER (dec), + fmt, dec->input_state->info.width, dec->input_state->info.height, + dec->input_state); + gst_video_decoder_negotiate (GST_VIDEO_DECODER (dec)); + + if (send_tags) + gst_vp9_dec_send_tags (dec); + } + + if (deadline < 0) { + GST_LOG_OBJECT (dec, "Skipping late frame (%f s past deadline)", + (double) -deadline / GST_SECOND); + gst_video_decoder_drop_frame (decoder, frame); + } else { + ret = gst_video_decoder_allocate_output_frame (decoder, frame); + + if (ret == GST_FLOW_OK) { + gst_vp9_dec_image_to_buffer (dec, img, frame->output_buffer); + ret = gst_video_decoder_finish_frame (decoder, frame); + } else { + gst_video_decoder_finish_frame (decoder, frame); + } + } + + vpx_img_free (img); + + while ((img = vpx_codec_get_frame (&dec->decoder, &iter))) { + GST_WARNING_OBJECT (decoder, "Multiple decoded frames... dropping"); + vpx_img_free (img); + } + } else { + /* Invisible frame */ + GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY (frame); + gst_video_decoder_finish_frame (decoder, frame); + } + + return ret; +} + +static gboolean +gst_vp9_dec_decide_allocation (GstVideoDecoder * bdec, GstQuery * query) +{ + GstBufferPool *pool; + GstStructure *config; + + if (!GST_VIDEO_DECODER_CLASS (parent_class)->decide_allocation (bdec, query)) + return FALSE; + + g_assert (gst_query_get_n_allocation_pools (query) > 0); + gst_query_parse_nth_allocation_pool (query, 0, &pool, NULL, NULL, NULL); + g_assert (pool != NULL); + + config = gst_buffer_pool_get_config (pool); + if (gst_query_find_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL)) { + gst_buffer_pool_config_add_option (config, + GST_BUFFER_POOL_OPTION_VIDEO_META); + } + gst_buffer_pool_set_config (pool, config); + gst_object_unref (pool); + + return TRUE; +} + +#endif /* HAVE_VP9_DECODER */ diff --git a/ext/vpx/gstvp9dec.h b/ext/vpx/gstvp9dec.h new file mode 100644 index 0000000000000000000000000000000000000000..ae27f7e0824e828e8cfbd21aa6cbb6e3c6c488ca --- /dev/null +++ b/ext/vpx/gstvp9dec.h @@ -0,0 +1,84 @@ +/* VP9 + * Copyright (C) 2006 David Schleef <ds@schleef.org> + * Copyright (C) 2008,2009,2010 Entropy Wave Inc + * Copyright (C) 2010-2013 Sebastian Dröge <slomo@circular-chaos.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ + +#ifndef __GST_VP9_DEC_H__ +#define __GST_VP9_DEC_H__ + +#include <gst/gst.h> +#include <gst/video/gstvideodecoder.h> + +/* FIXME: Undef HAVE_CONFIG_H because vpx_codec.h uses it, + * which causes compilation failures */ +#ifdef HAVE_CONFIG_H +#undef HAVE_CONFIG_H +#endif + +#include <vpx/vpx_decoder.h> +#include <vpx/vp8dx.h> + +G_BEGIN_DECLS + +#define GST_TYPE_VP9_DEC \ + (gst_vp9_dec_get_type()) +#define GST_VP9_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VP9_DEC,GstVP9Dec)) +#define GST_VP9_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VP9_DEC,GstVP9DecClass)) +#define GST_IS_VP9_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VP9_DEC)) +#define GST_IS_VP9_DEC_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VP9_DEC)) + +typedef struct _GstVP9Dec GstVP9Dec; +typedef struct _GstVP9DecClass GstVP9DecClass; + +struct _GstVP9Dec +{ + GstVideoDecoder base_video_decoder; + + /* < private > */ + vpx_codec_ctx_t decoder; + + /* state */ + gboolean decoder_inited; + + /* properties */ + gboolean post_processing; + enum vp8_postproc_level post_processing_flags; + gint deblocking_level; + gint noise_level; + gint threads; + + GstVideoCodecState *input_state; + GstVideoCodecState *output_state; +}; + +struct _GstVP9DecClass +{ + GstVideoDecoderClass base_video_decoder_class; +}; + +GType gst_vp9_dec_get_type (void); + +G_END_DECLS + +#endif /* __GST_VP9_DEC_H__ */ diff --git a/ext/vpx/gstvp9enc.c b/ext/vpx/gstvp9enc.c new file mode 100644 index 0000000000000000000000000000000000000000..ea276f9047e58f30ba2456f4e9d7f84f0b6259a0 --- /dev/null +++ b/ext/vpx/gstvp9enc.c @@ -0,0 +1,1936 @@ +/* VP9 + * Copyright (C) 2006 David Schleef <ds@schleef.org> + * Copyright (C) 2010 Entropy Wave Inc + * Copyright (C) 2010-2013 Sebastian Dröge <slomo@circular-chaos.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ +/** + * SECTION:element-vp9enc + * @see_also: vp9dec, webmmux, oggmux + * + * This element encodes raw video into a VP9 stream. + * <ulink url="http://www.webmproject.org">VP9</ulink> is a royalty-free + * video codec maintained by <ulink url="http://www.google.com/">Google + * </ulink>. It's the successor of On2 VP3, which was the base of the + * Theora video codec. + * + * To control the quality of the encoding, the #GstVP9Enc::target-bitrate, + * #GstVP9Enc::min-quantizer, #GstVP9Enc::max-quantizer or #GstVP9Enc::cq-level + * properties can be used. Which one is used depends on the mode selected by + * the #GstVP9Enc::end-usage property. + * See <ulink url="http://www.webmproject.org/docs/encoder-parameters/">Encoder Parameters</ulink> + * for explanation, examples for useful encoding parameters and more details + * on the encoding parameters. + * + * <refsect2> + * <title>Example pipeline</title> + * |[ + * gst-launch -v videotestsrc num-buffers=1000 ! vp9enc ! webmmux ! filesink location=videotestsrc.webm + * ]| This example pipeline will encode a test video source to VP9 muxed in an + * WebM container. + * </refsect2> + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_VP9_ENCODER + +/* glib decided in 2.32 it would be a great idea to deprecated GValueArray without + * providing an alternative + * + * See https://bugzilla.gnome.org/show_bug.cgi?id=667228 + * */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + +#include <gst/tag/tag.h> +#include <gst/video/video.h> +#include <string.h> + +#include "gstvp8utils.h" +#include "gstvp9enc.h" + +GST_DEBUG_CATEGORY_STATIC (gst_vp9enc_debug); +#define GST_CAT_DEFAULT gst_vp9enc_debug + +/* From vp9/vp9_cx_iface.c */ +#define DEFAULT_PROFILE 0 + +#define DEFAULT_RC_END_USAGE VPX_VBR +#define DEFAULT_RC_TARGET_BITRATE 256000 +#define DEFAULT_RC_MIN_QUANTIZER 4 +#define DEFAULT_RC_MAX_QUANTIZER 63 + +#define DEFAULT_RC_DROPFRAME_THRESH 0 +#define DEFAULT_RC_RESIZE_ALLOWED 0 +#define DEFAULT_RC_RESIZE_UP_THRESH 30 +#define DEFAULT_RC_RESIZE_DOWN_THRESH 60 +#define DEFAULT_RC_UNDERSHOOT_PCT 100 +#define DEFAULT_RC_OVERSHOOT_PCT 100 +#define DEFAULT_RC_BUF_SZ 6000 +#define DEFAULT_RC_BUF_INITIAL_SZ 4000 +#define DEFAULT_RC_BUF_OPTIMAL_SZ 5000 +#define DEFAULT_RC_2PASS_VBR_BIAS_PCT 50 +#define DEFAULT_RC_2PASS_VBR_MINSECTION_PCT 0 +#define DEFAULT_RC_2PASS_VBR_MAXSECTION_PCT 400 + +#define DEFAULT_KF_MODE VPX_KF_AUTO +#define DEFAULT_KF_MAX_DIST 128 + +#define DEFAULT_MULTIPASS_MODE VPX_RC_ONE_PASS +#define DEFAULT_MULTIPASS_CACHE_FILE "multipass.cache" + +#define DEFAULT_TS_NUMBER_LAYERS 1 +#define DEFAULT_TS_TARGET_BITRATE NULL +#define DEFAULT_TS_RATE_DECIMATOR NULL +#define DEFAULT_TS_PERIODICITY 0 +#define DEFAULT_TS_LAYER_ID NULL + +#define DEFAULT_ERROR_RESILIENT 0 +#define DEFAULT_LAG_IN_FRAMES 0 + +#define DEFAULT_THREADS 0 + +#define DEFAULT_H_SCALING_MODE VP8E_NORMAL +#define DEFAULT_V_SCALING_MODE VP8E_NORMAL +#define DEFAULT_CPU_USED 0 +#define DEFAULT_ENABLE_AUTO_ALT_REF FALSE +#define DEFAULT_DEADLINE VPX_DL_BEST_QUALITY +#define DEFAULT_NOISE_SENSITIVITY 0 +#define DEFAULT_SHARPNESS 0 +#define DEFAULT_STATIC_THRESHOLD 0 +#define DEFAULT_TOKEN_PARTITIONS 0 +#define DEFAULT_ARNR_MAXFRAMES 0 +#define DEFAULT_ARNR_STRENGTH 3 +#define DEFAULT_ARNR_TYPE 3 +#define DEFAULT_TUNING VP8_TUNE_PSNR +#define DEFAULT_CQ_LEVEL 10 +#define DEFAULT_MAX_INTRA_BITRATE_PCT 0 +#define DEFAULT_TIMEBASE_N 0 +#define DEFAULT_TIMEBASE_D 1 + +enum +{ + PROP_0, + PROP_RC_END_USAGE, + PROP_RC_TARGET_BITRATE, + PROP_RC_MIN_QUANTIZER, + PROP_RC_MAX_QUANTIZER, + PROP_RC_DROPFRAME_THRESH, + PROP_RC_RESIZE_ALLOWED, + PROP_RC_RESIZE_UP_THRESH, + PROP_RC_RESIZE_DOWN_THRESH, + PROP_RC_UNDERSHOOT_PCT, + PROP_RC_OVERSHOOT_PCT, + PROP_RC_BUF_SZ, + PROP_RC_BUF_INITIAL_SZ, + PROP_RC_BUF_OPTIMAL_SZ, + PROP_RC_2PASS_VBR_BIAS_PCT, + PROP_RC_2PASS_VBR_MINSECTION_PCT, + PROP_RC_2PASS_VBR_MAXSECTION_PCT, + PROP_KF_MODE, + PROP_KF_MAX_DIST, + PROP_TS_NUMBER_LAYERS, + PROP_TS_TARGET_BITRATE, + PROP_TS_RATE_DECIMATOR, + PROP_TS_PERIODICITY, + PROP_TS_LAYER_ID, + PROP_MULTIPASS_MODE, + PROP_MULTIPASS_CACHE_FILE, + PROP_ERROR_RESILIENT, + PROP_LAG_IN_FRAMES, + PROP_THREADS, + PROP_DEADLINE, + PROP_H_SCALING_MODE, + PROP_V_SCALING_MODE, + PROP_CPU_USED, + PROP_ENABLE_AUTO_ALT_REF, + PROP_NOISE_SENSITIVITY, + PROP_SHARPNESS, + PROP_STATIC_THRESHOLD, + PROP_TOKEN_PARTITIONS, + PROP_ARNR_MAXFRAMES, + PROP_ARNR_STRENGTH, + PROP_ARNR_TYPE, + PROP_TUNING, + PROP_CQ_LEVEL, + PROP_MAX_INTRA_BITRATE_PCT, + PROP_TIMEBASE +}; + +#define GST_VP9_ENC_END_USAGE_TYPE (gst_vp9_enc_end_usage_get_type()) +static GType +gst_vp9_enc_end_usage_get_type (void) +{ + static const GEnumValue values[] = { + {VPX_VBR, "Variable Bit Rate (VBR) mode", "vbr"}, + {VPX_CBR, "Constant Bit Rate (CBR) mode", "cbr"}, + {VPX_CQ, "Constant Quality Mode (CQ) mode", "cq"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstVP9EncEndUsage", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +#define GST_VP9_ENC_MULTIPASS_MODE_TYPE (gst_vp9_enc_multipass_mode_get_type()) +static GType +gst_vp9_enc_multipass_mode_get_type (void) +{ + static const GEnumValue values[] = { + {VPX_RC_ONE_PASS, "One pass encoding (default)", "one-pass"}, + {VPX_RC_FIRST_PASS, "First pass of multipass encoding", "first-pass"}, + {VPX_RC_LAST_PASS, "Last pass of multipass encoding", "last-pass"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstVP9EncMultipassMode", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +#define GST_VP9_ENC_KF_MODE_TYPE (gst_vp9_enc_kf_mode_get_type()) +static GType +gst_vp9_enc_kf_mode_get_type (void) +{ + static const GEnumValue values[] = { + {VPX_KF_AUTO, "Determine optimal placement automatically", "auto"}, + {VPX_KF_DISABLED, "Don't automatically place keyframes", "disabled"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstVP9EncKfMode", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +#define GST_VP9_ENC_TUNING_TYPE (gst_vp9_enc_tuning_get_type()) +static GType +gst_vp9_enc_tuning_get_type (void) +{ + static const GEnumValue values[] = { + {VP8_TUNE_PSNR, "Tune for PSNR", "psnr"}, + {VP8_TUNE_SSIM, "Tune for SSIM", "ssim"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstVP9EncTuning", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +#define GST_VP9_ENC_SCALING_MODE_TYPE (gst_vp9_enc_scaling_mode_get_type()) +static GType +gst_vp9_enc_scaling_mode_get_type (void) +{ + static const GEnumValue values[] = { + {VP8E_NORMAL, "Normal", "normal"}, + {VP8E_FOURFIVE, "4:5", "4:5"}, + {VP8E_THREEFIVE, "3:5", "3:5"}, + {VP8E_ONETWO, "1:2", "1:2"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstVP9EncScalingMode", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +#define GST_VP9_ENC_TOKEN_PARTITIONS_TYPE (gst_vp9_enc_token_partitions_get_type()) +static GType +gst_vp9_enc_token_partitions_get_type (void) +{ + static const GEnumValue values[] = { + {VP8_ONE_TOKENPARTITION, "One token partition", "1"}, + {VP8_TWO_TOKENPARTITION, "Two token partitions", "2"}, + {VP8_FOUR_TOKENPARTITION, "Four token partitions", "4"}, + {VP8_EIGHT_TOKENPARTITION, "Eight token partitions", "8"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstVP9EncTokenPartitions", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +#define GST_VP9_ENC_ER_FLAGS_TYPE (gst_vp9_enc_er_flags_get_type()) +static GType +gst_vp9_enc_er_flags_get_type (void) +{ + static const GFlagsValue values[] = { + {VPX_ERROR_RESILIENT_DEFAULT, "Default error resilience", "default"}, + {VPX_ERROR_RESILIENT_PARTITIONS, + "Allow partitions to be decoded independently", "partitions"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_flags_register_static ("GstVP9EncErFlags", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +static void gst_vp9_enc_finalize (GObject * object); +static void gst_vp9_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_vp9_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static gboolean gst_vp9_enc_start (GstVideoEncoder * encoder); +static gboolean gst_vp9_enc_stop (GstVideoEncoder * encoder); +static gboolean gst_vp9_enc_set_format (GstVideoEncoder * + video_encoder, GstVideoCodecState * state); +static gboolean gst_vp9_enc_finish (GstVideoEncoder * video_encoder); +static GstFlowReturn gst_vp9_enc_handle_frame (GstVideoEncoder * + video_encoder, GstVideoCodecFrame * frame); +static gboolean gst_vp9_enc_sink_event (GstVideoEncoder * + video_encoder, GstEvent * event); +static gboolean gst_vp9_enc_propose_allocation (GstVideoEncoder * encoder, + GstQuery * query); + +/* FIXME: Y42B and Y444 do not work yet it seems */ +static GstStaticPadTemplate gst_vp9_enc_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + /*GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ I420, YV12, Y42B, Y444 }")) */ + GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ I420, YV12 }")) + ); + +static GstStaticPadTemplate gst_vp9_enc_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-vp9, " "profile = (string) {0, 1, 2, 3}") + ); + +#define parent_class gst_vp9_enc_parent_class +G_DEFINE_TYPE_WITH_CODE (GstVP9Enc, gst_vp9_enc, GST_TYPE_VIDEO_ENCODER, + G_IMPLEMENT_INTERFACE (GST_TYPE_TAG_SETTER, NULL); + G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL);); + +static void +gst_vp9_enc_class_init (GstVP9EncClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *element_class; + GstVideoEncoderClass *video_encoder_class; + + gobject_class = G_OBJECT_CLASS (klass); + element_class = GST_ELEMENT_CLASS (klass); + video_encoder_class = GST_VIDEO_ENCODER_CLASS (klass); + + gobject_class->set_property = gst_vp9_enc_set_property; + gobject_class->get_property = gst_vp9_enc_get_property; + gobject_class->finalize = gst_vp9_enc_finalize; + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_vp9_enc_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_vp9_enc_sink_template)); + + gst_element_class_set_static_metadata (element_class, + "On2 VP9 Encoder", + "Codec/Encoder/Video", + "Encode VP9 video streams", "David Schleef <ds@entropywave.com>, " + "Sebastian Dröge <sebastian.droege@collabora.co.uk>"); + + video_encoder_class->start = gst_vp9_enc_start; + video_encoder_class->stop = gst_vp9_enc_stop; + video_encoder_class->handle_frame = gst_vp9_enc_handle_frame; + video_encoder_class->set_format = gst_vp9_enc_set_format; + video_encoder_class->finish = gst_vp9_enc_finish; + video_encoder_class->sink_event = gst_vp9_enc_sink_event; + video_encoder_class->propose_allocation = gst_vp9_enc_propose_allocation; + + g_object_class_install_property (gobject_class, PROP_RC_END_USAGE, + g_param_spec_enum ("end-usage", "Rate control mode", + "Rate control mode", + GST_VP9_ENC_END_USAGE_TYPE, DEFAULT_RC_END_USAGE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_TARGET_BITRATE, + g_param_spec_int ("target-bitrate", "Target bitrate", + "Target bitrate (in bits/sec)", + 0, G_MAXINT, DEFAULT_RC_TARGET_BITRATE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_MIN_QUANTIZER, + g_param_spec_int ("min-quantizer", "Minimum Quantizer", + "Minimum Quantizer (best)", + 0, 63, DEFAULT_RC_MIN_QUANTIZER, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_MAX_QUANTIZER, + g_param_spec_int ("max-quantizer", "Maximum Quantizer", + "Maximum Quantizer (worst)", + 0, 63, DEFAULT_RC_MAX_QUANTIZER, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_DROPFRAME_THRESH, + g_param_spec_int ("dropframe-threshold", "Drop Frame Threshold", + "Temporal resampling threshold (buf %)", + 0, 100, DEFAULT_RC_DROPFRAME_THRESH, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_RESIZE_ALLOWED, + g_param_spec_boolean ("resize-allowed", "Resize Allowed", + "Allow spatial resampling", + DEFAULT_RC_RESIZE_ALLOWED, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_RESIZE_UP_THRESH, + g_param_spec_int ("resize-up-threshold", "Resize Up Threshold", + "Upscale threshold (buf %)", + 0, 100, DEFAULT_RC_RESIZE_UP_THRESH, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_RESIZE_DOWN_THRESH, + g_param_spec_int ("resize-down-threshold", "Resize Down Threshold", + "Downscale threshold (buf %)", + 0, 100, DEFAULT_RC_RESIZE_DOWN_THRESH, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_UNDERSHOOT_PCT, + g_param_spec_int ("undershoot", "Undershoot PCT", + "Datarate undershoot (min) target (%)", + 0, 1000, DEFAULT_RC_UNDERSHOOT_PCT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_OVERSHOOT_PCT, + g_param_spec_int ("overshoot", "Overshoot PCT", + "Datarate overshoot (max) target (%)", + 0, 1000, DEFAULT_RC_OVERSHOOT_PCT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_BUF_SZ, + g_param_spec_int ("buffer-size", "Buffer size", + "Client buffer size (ms)", + 0, G_MAXINT, DEFAULT_RC_BUF_SZ, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_BUF_INITIAL_SZ, + g_param_spec_int ("buffer-initial-size", "Buffer initial size", + "Initial client buffer size (ms)", + 0, G_MAXINT, DEFAULT_RC_BUF_INITIAL_SZ, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_BUF_OPTIMAL_SZ, + g_param_spec_int ("buffer-optimal-size", "Buffer optimal size", + "Optimal client buffer size (ms)", + 0, G_MAXINT, DEFAULT_RC_BUF_OPTIMAL_SZ, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RC_2PASS_VBR_BIAS_PCT, + g_param_spec_int ("twopass-vbr-bias", "2-pass VBR bias", + "CBR/VBR bias (0=CBR, 100=VBR)", + 0, 100, DEFAULT_RC_2PASS_VBR_BIAS_PCT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, + PROP_RC_2PASS_VBR_MINSECTION_PCT, + g_param_spec_int ("twopass-vbr-minsection", "2-pass GOP min bitrate", + "GOP minimum bitrate (% target)", 0, G_MAXINT, + DEFAULT_RC_2PASS_VBR_MINSECTION_PCT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, + PROP_RC_2PASS_VBR_MAXSECTION_PCT, + g_param_spec_int ("twopass-vbr-maxsection", "2-pass GOP max bitrate", + "GOP maximum bitrate (% target)", 0, G_MAXINT, + DEFAULT_RC_2PASS_VBR_MINSECTION_PCT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_KF_MODE, + g_param_spec_enum ("keyframe-mode", "Keyframe Mode", + "Keyframe placement", + GST_VP9_ENC_KF_MODE_TYPE, DEFAULT_KF_MODE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_KF_MAX_DIST, + g_param_spec_int ("keyframe-max-dist", "Keyframe max distance", + "Maximum distance between keyframes (number of frames)", + 0, G_MAXINT, DEFAULT_KF_MAX_DIST, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_MULTIPASS_MODE, + g_param_spec_enum ("multipass-mode", "Multipass Mode", + "Multipass encode mode", + GST_VP9_ENC_MULTIPASS_MODE_TYPE, DEFAULT_MULTIPASS_MODE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_MULTIPASS_CACHE_FILE, + g_param_spec_string ("multipass-cache-file", "Multipass Cache File", + "Multipass cache file", + DEFAULT_MULTIPASS_CACHE_FILE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_TS_NUMBER_LAYERS, + g_param_spec_int ("temporal-scalability-number-layers", + "Number of coding layers", "Number of coding layers to use", 1, 5, + DEFAULT_TS_NUMBER_LAYERS, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_TS_TARGET_BITRATE, + g_param_spec_value_array ("temporal-scalability-target-bitrate", + "Coding layer target bitrates", + "Target bitrates for coding layers (one per layer, decreasing)", + g_param_spec_int ("target-bitrate", "Target bitrate", + "Target bitrate", 0, G_MAXINT, DEFAULT_RC_TARGET_BITRATE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS), + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_TS_RATE_DECIMATOR, + g_param_spec_value_array ("temporal-scalability-rate-decimator", + "Coding layer rate decimator", + "Rate decimation factors for each layer", + g_param_spec_int ("rate-decimator", "Rate decimator", + "Rate decimator", 0, 1000000000, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS), + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_TS_PERIODICITY, + g_param_spec_int ("temporal-scalability-periodicity", + "Coding layer periodicity", + "Length of sequence that defines layer membership periodicity", 0, 16, + DEFAULT_TS_PERIODICITY, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_TS_LAYER_ID, + g_param_spec_value_array ("temporal-scalability-layer-id", + "Coding layer identification", + "Sequence defining coding layer membership", + g_param_spec_int ("layer-id", "Layer ID", "Layer ID", 0, 4, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS), + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_LAG_IN_FRAMES, + g_param_spec_int ("lag-in-frames", "Lag in frames", + "Maximum number of frames to lag", + 0, 25, DEFAULT_LAG_IN_FRAMES, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_ERROR_RESILIENT, + g_param_spec_flags ("error-resilient", "Error resilient", + "Error resilience flags", + GST_VP9_ENC_ER_FLAGS_TYPE, DEFAULT_ERROR_RESILIENT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_THREADS, + g_param_spec_int ("threads", "Threads", + "Number of threads to use", + 0, 64, DEFAULT_THREADS, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_DEADLINE, + g_param_spec_int64 ("deadline", "Deadline", + "Deadline per frame (usec, 0=disabled)", + 0, G_MAXINT64, DEFAULT_DEADLINE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_H_SCALING_MODE, + g_param_spec_enum ("horizontal-scaling-mode", "Horizontal scaling mode", + "Horizontal scaling mode", + GST_VP9_ENC_SCALING_MODE_TYPE, DEFAULT_H_SCALING_MODE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_V_SCALING_MODE, + g_param_spec_enum ("vertical-scaling-mode", "Vertical scaling mode", + "Vertical scaling mode", + GST_VP9_ENC_SCALING_MODE_TYPE, DEFAULT_V_SCALING_MODE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_CPU_USED, + g_param_spec_int ("cpu-used", "CPU used", + "CPU used", + -16, 16, DEFAULT_CPU_USED, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_ENABLE_AUTO_ALT_REF, + g_param_spec_boolean ("auto-alt-ref", "Auto alt reference frames", + "Automatically generate AltRef frames", + DEFAULT_ENABLE_AUTO_ALT_REF, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_NOISE_SENSITIVITY, + g_param_spec_int ("noise-sensitivity", "Noise sensitivity", + "Noise sensisivity (frames to blur)", + 0, 6, DEFAULT_NOISE_SENSITIVITY, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_SHARPNESS, + g_param_spec_int ("sharpness", "Sharpness", + "Filter sharpness", + 0, 7, DEFAULT_SHARPNESS, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_STATIC_THRESHOLD, + g_param_spec_int ("static-threshold", "Static Threshold", + "Motion detection threshold", + 0, G_MAXINT, DEFAULT_STATIC_THRESHOLD, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_TOKEN_PARTITIONS, + g_param_spec_enum ("token-partitions", "Token partitions", + "Number of token partitions", + GST_VP9_ENC_TOKEN_PARTITIONS_TYPE, DEFAULT_TOKEN_PARTITIONS, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_ARNR_MAXFRAMES, + g_param_spec_int ("arnr-maxframes", "AltRef max frames", + "AltRef maximum number of frames", + 0, 15, DEFAULT_ARNR_MAXFRAMES, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_ARNR_STRENGTH, + g_param_spec_int ("arnr-strength", "AltRef strength", + "AltRef strength", + 0, 6, DEFAULT_ARNR_STRENGTH, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_ARNR_TYPE, + g_param_spec_int ("arnr-type", "AltRef type", + "AltRef type", + 1, 3, DEFAULT_ARNR_TYPE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_TUNING, + g_param_spec_enum ("tuning", "Tuning", + "Tuning", + GST_VP9_ENC_TUNING_TYPE, DEFAULT_TUNING, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_CQ_LEVEL, + g_param_spec_int ("cq-level", "Constrained quality level", + "Constrained quality level", + 0, 63, DEFAULT_CQ_LEVEL, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_MAX_INTRA_BITRATE_PCT, + g_param_spec_int ("max-intra-bitrate", "Max Intra bitrate", + "Maximum Intra frame bitrate", + 0, G_MAXINT, DEFAULT_MAX_INTRA_BITRATE_PCT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_TIMEBASE, + gst_param_spec_fraction ("timebase", "Shortest interframe time", + "Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate", + 0, 1, G_MAXINT, 1, DEFAULT_TIMEBASE_N, DEFAULT_TIMEBASE_D, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + GST_DEBUG_CATEGORY_INIT (gst_vp9enc_debug, "vp9enc", 0, "VP9 Encoder"); +} + +static void +gst_vp9_enc_init (GstVP9Enc * gst_vp9_enc) +{ + vpx_codec_err_t status; + + GST_DEBUG_OBJECT (gst_vp9_enc, "init"); + + status = + vpx_codec_enc_config_default (&vpx_codec_vp9_cx_algo, &gst_vp9_enc->cfg, + 0); + if (status != VPX_CODEC_OK) { + GST_ERROR_OBJECT (gst_vp9_enc, + "Failed to get default encoder configuration: %s", + gst_vpx_error_name (status)); + gst_vp9_enc->have_default_config = FALSE; + } else { + gst_vp9_enc->have_default_config = TRUE; + } + + gst_vp9_enc->cfg.rc_end_usage = DEFAULT_RC_END_USAGE; + gst_vp9_enc->cfg.rc_target_bitrate = DEFAULT_RC_TARGET_BITRATE / 1000; + gst_vp9_enc->rc_target_bitrate_set = FALSE; + gst_vp9_enc->cfg.rc_min_quantizer = DEFAULT_RC_MIN_QUANTIZER; + gst_vp9_enc->cfg.rc_max_quantizer = DEFAULT_RC_MAX_QUANTIZER; + gst_vp9_enc->cfg.rc_dropframe_thresh = DEFAULT_RC_DROPFRAME_THRESH; + gst_vp9_enc->cfg.rc_resize_allowed = DEFAULT_RC_RESIZE_ALLOWED; + gst_vp9_enc->cfg.rc_resize_up_thresh = DEFAULT_RC_RESIZE_UP_THRESH; + gst_vp9_enc->cfg.rc_resize_down_thresh = DEFAULT_RC_RESIZE_DOWN_THRESH; + gst_vp9_enc->cfg.rc_undershoot_pct = DEFAULT_RC_UNDERSHOOT_PCT; + gst_vp9_enc->cfg.rc_overshoot_pct = DEFAULT_RC_OVERSHOOT_PCT; + gst_vp9_enc->cfg.rc_buf_sz = DEFAULT_RC_BUF_SZ; + gst_vp9_enc->cfg.rc_buf_initial_sz = DEFAULT_RC_BUF_INITIAL_SZ; + gst_vp9_enc->cfg.rc_buf_optimal_sz = DEFAULT_RC_BUF_OPTIMAL_SZ; + gst_vp9_enc->cfg.rc_2pass_vbr_bias_pct = DEFAULT_RC_2PASS_VBR_BIAS_PCT; + gst_vp9_enc->cfg.rc_2pass_vbr_minsection_pct = + DEFAULT_RC_2PASS_VBR_MINSECTION_PCT; + gst_vp9_enc->cfg.rc_2pass_vbr_maxsection_pct = + DEFAULT_RC_2PASS_VBR_MAXSECTION_PCT; + gst_vp9_enc->cfg.kf_mode = DEFAULT_KF_MODE; + gst_vp9_enc->cfg.kf_max_dist = DEFAULT_KF_MAX_DIST; + gst_vp9_enc->cfg.g_pass = DEFAULT_MULTIPASS_MODE; + gst_vp9_enc->multipass_cache_file = g_strdup (DEFAULT_MULTIPASS_CACHE_FILE); + gst_vp9_enc->cfg.ts_number_layers = DEFAULT_TS_NUMBER_LAYERS; + gst_vp9_enc->n_ts_target_bitrate = 0; + gst_vp9_enc->n_ts_rate_decimator = 0; + gst_vp9_enc->cfg.ts_periodicity = DEFAULT_TS_PERIODICITY; + gst_vp9_enc->n_ts_layer_id = 0; + gst_vp9_enc->cfg.g_error_resilient = DEFAULT_ERROR_RESILIENT; + gst_vp9_enc->cfg.g_lag_in_frames = DEFAULT_LAG_IN_FRAMES; + gst_vp9_enc->cfg.g_threads = DEFAULT_THREADS; + gst_vp9_enc->deadline = DEFAULT_DEADLINE; + gst_vp9_enc->h_scaling_mode = DEFAULT_H_SCALING_MODE; + gst_vp9_enc->v_scaling_mode = DEFAULT_V_SCALING_MODE; + gst_vp9_enc->cpu_used = DEFAULT_CPU_USED; + gst_vp9_enc->enable_auto_alt_ref = DEFAULT_ENABLE_AUTO_ALT_REF; + gst_vp9_enc->noise_sensitivity = DEFAULT_NOISE_SENSITIVITY; + gst_vp9_enc->sharpness = DEFAULT_SHARPNESS; + gst_vp9_enc->static_threshold = DEFAULT_STATIC_THRESHOLD; + gst_vp9_enc->token_partitions = DEFAULT_TOKEN_PARTITIONS; + gst_vp9_enc->arnr_maxframes = DEFAULT_ARNR_MAXFRAMES; + gst_vp9_enc->arnr_strength = DEFAULT_ARNR_STRENGTH; + gst_vp9_enc->arnr_type = DEFAULT_ARNR_TYPE; + gst_vp9_enc->tuning = DEFAULT_TUNING; + gst_vp9_enc->cq_level = DEFAULT_CQ_LEVEL; + gst_vp9_enc->max_intra_bitrate_pct = DEFAULT_MAX_INTRA_BITRATE_PCT; + gst_vp9_enc->timebase_n = DEFAULT_TIMEBASE_N; + gst_vp9_enc->timebase_d = DEFAULT_TIMEBASE_D; + + gst_vp9_enc->cfg.g_profile = DEFAULT_PROFILE; + + g_mutex_init (&gst_vp9_enc->encoder_lock); +} + +static void +gst_vp9_enc_finalize (GObject * object) +{ + GstVP9Enc *gst_vp9_enc; + + GST_DEBUG_OBJECT (object, "finalize"); + + g_return_if_fail (GST_IS_VP9_ENC (object)); + gst_vp9_enc = GST_VP9_ENC (object); + + g_free (gst_vp9_enc->multipass_cache_file); + gst_vp9_enc->multipass_cache_file = NULL; + + if (gst_vp9_enc->input_state) + gst_video_codec_state_unref (gst_vp9_enc->input_state); + + g_mutex_clear (&gst_vp9_enc->encoder_lock); + + G_OBJECT_CLASS (parent_class)->finalize (object); + +} + +static void +gst_vp9_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstVP9Enc *gst_vp9_enc; + gboolean global = FALSE; + vpx_codec_err_t status; + + g_return_if_fail (GST_IS_VP9_ENC (object)); + gst_vp9_enc = GST_VP9_ENC (object); + + GST_DEBUG_OBJECT (object, "gst_vp9_enc_set_property"); + g_mutex_lock (&gst_vp9_enc->encoder_lock); + switch (prop_id) { + case PROP_RC_END_USAGE: + gst_vp9_enc->cfg.rc_end_usage = g_value_get_enum (value); + global = TRUE; + break; + case PROP_RC_TARGET_BITRATE: + gst_vp9_enc->cfg.rc_target_bitrate = g_value_get_int (value) / 1000; + gst_vp9_enc->rc_target_bitrate_set = TRUE; + global = TRUE; + break; + case PROP_RC_MIN_QUANTIZER: + gst_vp9_enc->cfg.rc_min_quantizer = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_MAX_QUANTIZER: + gst_vp9_enc->cfg.rc_max_quantizer = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_DROPFRAME_THRESH: + gst_vp9_enc->cfg.rc_dropframe_thresh = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_RESIZE_ALLOWED: + gst_vp9_enc->cfg.rc_resize_allowed = g_value_get_boolean (value); + global = TRUE; + break; + case PROP_RC_RESIZE_UP_THRESH: + gst_vp9_enc->cfg.rc_resize_up_thresh = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_RESIZE_DOWN_THRESH: + gst_vp9_enc->cfg.rc_resize_down_thresh = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_UNDERSHOOT_PCT: + gst_vp9_enc->cfg.rc_undershoot_pct = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_OVERSHOOT_PCT: + gst_vp9_enc->cfg.rc_overshoot_pct = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_BUF_SZ: + gst_vp9_enc->cfg.rc_buf_sz = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_BUF_INITIAL_SZ: + gst_vp9_enc->cfg.rc_buf_initial_sz = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_BUF_OPTIMAL_SZ: + gst_vp9_enc->cfg.rc_buf_optimal_sz = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_2PASS_VBR_BIAS_PCT: + gst_vp9_enc->cfg.rc_2pass_vbr_bias_pct = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_2PASS_VBR_MINSECTION_PCT: + gst_vp9_enc->cfg.rc_2pass_vbr_minsection_pct = g_value_get_int (value); + global = TRUE; + break; + case PROP_RC_2PASS_VBR_MAXSECTION_PCT: + gst_vp9_enc->cfg.rc_2pass_vbr_maxsection_pct = g_value_get_int (value); + global = TRUE; + break; + case PROP_KF_MODE: + gst_vp9_enc->cfg.kf_mode = g_value_get_enum (value); + global = TRUE; + break; + case PROP_KF_MAX_DIST: + gst_vp9_enc->cfg.kf_max_dist = g_value_get_int (value); + global = TRUE; + break; + case PROP_MULTIPASS_MODE: + gst_vp9_enc->cfg.g_pass = g_value_get_enum (value); + global = TRUE; + break; + case PROP_MULTIPASS_CACHE_FILE: + if (gst_vp9_enc->multipass_cache_file) + g_free (gst_vp9_enc->multipass_cache_file); + gst_vp9_enc->multipass_cache_file = g_value_dup_string (value); + break; + case PROP_TS_NUMBER_LAYERS: + gst_vp9_enc->cfg.ts_number_layers = g_value_get_int (value); + global = TRUE; + break; + case PROP_TS_TARGET_BITRATE:{ + GValueArray *va = g_value_get_boxed (value); + + memset (&gst_vp9_enc->cfg.ts_target_bitrate, 0, + sizeof (gst_vp9_enc->cfg.ts_target_bitrate)); + if (va->n_values > VPX_TS_MAX_LAYERS) { + g_warning ("%s: Only %d layers allowed at maximum", + GST_ELEMENT_NAME (gst_vp9_enc), VPX_TS_MAX_LAYERS); + } else if (va) { + gint i; + + for (i = 0; i < va->n_values; i++) + gst_vp9_enc->cfg.ts_target_bitrate[i] = + g_value_get_int (g_value_array_get_nth (va, i)); + gst_vp9_enc->n_ts_target_bitrate = va->n_values; + } else { + gst_vp9_enc->n_ts_target_bitrate = 0; + } + global = TRUE; + break; + } + case PROP_TS_RATE_DECIMATOR:{ + GValueArray *va = g_value_get_boxed (value); + + memset (&gst_vp9_enc->cfg.ts_rate_decimator, 0, + sizeof (gst_vp9_enc->cfg.ts_rate_decimator)); + if (va->n_values > VPX_TS_MAX_LAYERS) { + g_warning ("%s: Only %d layers allowed at maximum", + GST_ELEMENT_NAME (gst_vp9_enc), VPX_TS_MAX_LAYERS); + } else if (va) { + gint i; + + for (i = 0; i < va->n_values; i++) + gst_vp9_enc->cfg.ts_rate_decimator[i] = + g_value_get_int (g_value_array_get_nth (va, i)); + gst_vp9_enc->n_ts_rate_decimator = va->n_values; + } else { + gst_vp9_enc->n_ts_rate_decimator = 0; + } + global = TRUE; + break; + } + case PROP_TS_PERIODICITY: + gst_vp9_enc->cfg.ts_periodicity = g_value_get_int (value); + global = TRUE; + break; + case PROP_TS_LAYER_ID:{ + GValueArray *va = g_value_get_boxed (value); + + memset (&gst_vp9_enc->cfg.ts_layer_id, 0, + sizeof (gst_vp9_enc->cfg.ts_layer_id)); + if (va->n_values > VPX_TS_MAX_PERIODICITY) { + g_warning ("%s: Only %d sized layer sequences allowed at maximum", + GST_ELEMENT_NAME (gst_vp9_enc), VPX_TS_MAX_PERIODICITY); + } else if (va) { + gint i; + + for (i = 0; i < va->n_values; i++) + gst_vp9_enc->cfg.ts_layer_id[i] = + g_value_get_int (g_value_array_get_nth (va, i)); + gst_vp9_enc->n_ts_layer_id = va->n_values; + } else { + gst_vp9_enc->n_ts_layer_id = 0; + } + global = TRUE; + break; + } + case PROP_ERROR_RESILIENT: + gst_vp9_enc->cfg.g_error_resilient = g_value_get_flags (value); + global = TRUE; + break; + case PROP_LAG_IN_FRAMES: + gst_vp9_enc->cfg.g_lag_in_frames = g_value_get_int (value); + global = TRUE; + break; + case PROP_THREADS: + gst_vp9_enc->cfg.g_threads = g_value_get_int (value); + global = TRUE; + break; + case PROP_DEADLINE: + gst_vp9_enc->deadline = g_value_get_int64 (value); + break; + case PROP_H_SCALING_MODE: + gst_vp9_enc->h_scaling_mode = g_value_get_enum (value); + if (gst_vp9_enc->inited) { + vpx_scaling_mode_t sm; + + sm.h_scaling_mode = gst_vp9_enc->h_scaling_mode; + sm.v_scaling_mode = gst_vp9_enc->v_scaling_mode; + + status = + vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_SCALEMODE, &sm); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_SCALEMODE: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_V_SCALING_MODE: + gst_vp9_enc->v_scaling_mode = g_value_get_enum (value); + if (gst_vp9_enc->inited) { + vpx_scaling_mode_t sm; + + sm.h_scaling_mode = gst_vp9_enc->h_scaling_mode; + sm.v_scaling_mode = gst_vp9_enc->v_scaling_mode; + + status = + vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_SCALEMODE, &sm); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_SCALEMODE: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_CPU_USED: + gst_vp9_enc->cpu_used = g_value_get_int (value); + if (gst_vp9_enc->inited) { + status = + vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_CPUUSED, + gst_vp9_enc->cpu_used); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, "Failed to set VP8E_SET_CPUUSED: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_ENABLE_AUTO_ALT_REF: + gst_vp9_enc->enable_auto_alt_ref = g_value_get_boolean (value); + if (gst_vp9_enc->inited) { + status = + vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_ENABLEAUTOALTREF, + (gst_vp9_enc->enable_auto_alt_ref ? 1 : 0)); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_ENABLEAUTOALTREF: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_NOISE_SENSITIVITY: + gst_vp9_enc->noise_sensitivity = g_value_get_int (value); + if (gst_vp9_enc->inited) { + status = + vpx_codec_control (&gst_vp9_enc->encoder, + VP8E_SET_NOISE_SENSITIVITY, gst_vp9_enc->noise_sensitivity); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_NOISE_SENSITIVITY: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_SHARPNESS: + gst_vp9_enc->sharpness = g_value_get_int (value); + if (gst_vp9_enc->inited) { + status = vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_SHARPNESS, + gst_vp9_enc->sharpness); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_SHARPNESS: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_STATIC_THRESHOLD: + gst_vp9_enc->static_threshold = g_value_get_int (value); + if (gst_vp9_enc->inited) { + status = + vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_STATIC_THRESHOLD, + gst_vp9_enc->static_threshold); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_STATIC_THRESHOLD: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_TOKEN_PARTITIONS: + gst_vp9_enc->token_partitions = g_value_get_enum (value); + if (gst_vp9_enc->inited) { + status = + vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_TOKEN_PARTITIONS, + gst_vp9_enc->token_partitions); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_TOKEN_PARTIONS: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_ARNR_MAXFRAMES: + gst_vp9_enc->arnr_maxframes = g_value_get_int (value); + if (gst_vp9_enc->inited) { + status = + vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_ARNR_MAXFRAMES, + gst_vp9_enc->arnr_maxframes); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_ARNR_MAXFRAMES: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_ARNR_STRENGTH: + gst_vp9_enc->arnr_strength = g_value_get_int (value); + if (gst_vp9_enc->inited) { + status = + vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_ARNR_STRENGTH, + gst_vp9_enc->arnr_strength); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_ARNR_STRENGTH: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_ARNR_TYPE: + gst_vp9_enc->arnr_type = g_value_get_int (value); + if (gst_vp9_enc->inited) { + status = vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_ARNR_TYPE, + gst_vp9_enc->arnr_type); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_ARNR_TYPE: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_TUNING: + gst_vp9_enc->tuning = g_value_get_enum (value); + if (gst_vp9_enc->inited) { + status = vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_TUNING, + gst_vp9_enc->tuning); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_TUNING: %s", gst_vpx_error_name (status)); + } + } + break; + case PROP_CQ_LEVEL: + gst_vp9_enc->cq_level = g_value_get_int (value); + if (gst_vp9_enc->inited) { + status = vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_CQ_LEVEL, + gst_vp9_enc->cq_level); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_CQ_LEVEL: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_MAX_INTRA_BITRATE_PCT: + gst_vp9_enc->max_intra_bitrate_pct = g_value_get_int (value); + if (gst_vp9_enc->inited) { + status = + vpx_codec_control (&gst_vp9_enc->encoder, + VP8E_SET_MAX_INTRA_BITRATE_PCT, gst_vp9_enc->max_intra_bitrate_pct); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (gst_vp9_enc, + "Failed to set VP8E_SET_MAX_INTRA_BITRATE_PCT: %s", + gst_vpx_error_name (status)); + } + } + break; + case PROP_TIMEBASE: + gst_vp9_enc->timebase_n = gst_value_get_fraction_numerator (value); + gst_vp9_enc->timebase_d = gst_value_get_fraction_denominator (value); + break; + default: + break; + } + + if (global &&gst_vp9_enc->inited) { + status = + vpx_codec_enc_config_set (&gst_vp9_enc->encoder, &gst_vp9_enc->cfg); + if (status != VPX_CODEC_OK) { + g_mutex_unlock (&gst_vp9_enc->encoder_lock); + GST_ELEMENT_ERROR (gst_vp9_enc, LIBRARY, INIT, + ("Failed to set encoder configuration"), ("%s", + gst_vpx_error_name (status))); + } else { + g_mutex_unlock (&gst_vp9_enc->encoder_lock); + } + } else { + g_mutex_unlock (&gst_vp9_enc->encoder_lock); + } +} + +static void +gst_vp9_enc_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstVP9Enc *gst_vp9_enc; + + g_return_if_fail (GST_IS_VP9_ENC (object)); + gst_vp9_enc = GST_VP9_ENC (object); + + g_mutex_lock (&gst_vp9_enc->encoder_lock); + switch (prop_id) { + case PROP_RC_END_USAGE: + g_value_set_enum (value, gst_vp9_enc->cfg.rc_end_usage); + break; + case PROP_RC_TARGET_BITRATE: + g_value_set_int (value, gst_vp9_enc->cfg.rc_target_bitrate * 1000); + break; + case PROP_RC_MIN_QUANTIZER: + g_value_set_int (value, gst_vp9_enc->cfg.rc_min_quantizer); + break; + case PROP_RC_MAX_QUANTIZER: + g_value_set_int (value, gst_vp9_enc->cfg.rc_max_quantizer); + break; + case PROP_RC_DROPFRAME_THRESH: + g_value_set_int (value, gst_vp9_enc->cfg.rc_dropframe_thresh); + break; + case PROP_RC_RESIZE_ALLOWED: + g_value_set_boolean (value, gst_vp9_enc->cfg.rc_resize_allowed); + break; + case PROP_RC_RESIZE_UP_THRESH: + g_value_set_int (value, gst_vp9_enc->cfg.rc_resize_up_thresh); + break; + case PROP_RC_RESIZE_DOWN_THRESH: + g_value_set_int (value, gst_vp9_enc->cfg.rc_resize_down_thresh); + break; + case PROP_RC_UNDERSHOOT_PCT: + g_value_set_int (value, gst_vp9_enc->cfg.rc_undershoot_pct); + break; + case PROP_RC_OVERSHOOT_PCT: + g_value_set_int (value, gst_vp9_enc->cfg.rc_overshoot_pct); + break; + case PROP_RC_BUF_SZ: + g_value_set_int (value, gst_vp9_enc->cfg.rc_buf_sz); + break; + case PROP_RC_BUF_INITIAL_SZ: + g_value_set_int (value, gst_vp9_enc->cfg.rc_buf_initial_sz); + break; + case PROP_RC_BUF_OPTIMAL_SZ: + g_value_set_int (value, gst_vp9_enc->cfg.rc_buf_optimal_sz); + break; + case PROP_RC_2PASS_VBR_BIAS_PCT: + g_value_set_int (value, gst_vp9_enc->cfg.rc_2pass_vbr_bias_pct); + break; + case PROP_RC_2PASS_VBR_MINSECTION_PCT: + g_value_set_int (value, gst_vp9_enc->cfg.rc_2pass_vbr_minsection_pct); + break; + case PROP_RC_2PASS_VBR_MAXSECTION_PCT: + g_value_set_int (value, gst_vp9_enc->cfg.rc_2pass_vbr_maxsection_pct); + break; + case PROP_KF_MODE: + g_value_set_enum (value, gst_vp9_enc->cfg.kf_mode); + break; + case PROP_KF_MAX_DIST: + g_value_set_int (value, gst_vp9_enc->cfg.kf_max_dist); + break; + case PROP_MULTIPASS_MODE: + g_value_set_enum (value, gst_vp9_enc->cfg.g_pass); + break; + case PROP_MULTIPASS_CACHE_FILE: + g_value_set_string (value, gst_vp9_enc->multipass_cache_file); + break; + case PROP_TS_NUMBER_LAYERS: + g_value_set_int (value, gst_vp9_enc->cfg.ts_number_layers); + break; + case PROP_TS_TARGET_BITRATE:{ + GValueArray *va; + + if (gst_vp9_enc->n_ts_target_bitrate == 0) { + g_value_set_boxed (value, NULL); + } else { + gint i; + + va = g_value_array_new (gst_vp9_enc->n_ts_target_bitrate); + for (i = 0; i < gst_vp9_enc->n_ts_target_bitrate; i++) { + GValue v = { 0, }; + + g_value_init (&v, G_TYPE_INT); + g_value_set_int (&v, gst_vp9_enc->cfg.ts_target_bitrate[i]); + g_value_array_append (va, &v); + g_value_unset (&v); + } + g_value_set_boxed (value, va); + g_value_array_free (va); + } + break; + } + case PROP_TS_RATE_DECIMATOR:{ + GValueArray *va; + + if (gst_vp9_enc->n_ts_rate_decimator == 0) { + g_value_set_boxed (value, NULL); + } else { + gint i; + + va = g_value_array_new (gst_vp9_enc->n_ts_rate_decimator); + for (i = 0; i < gst_vp9_enc->n_ts_rate_decimator; i++) { + GValue v = { 0, }; + + g_value_init (&v, G_TYPE_INT); + g_value_set_int (&v, gst_vp9_enc->cfg.ts_rate_decimator[i]); + g_value_array_append (va, &v); + g_value_unset (&v); + } + g_value_set_boxed (value, va); + g_value_array_free (va); + } + break; + } + case PROP_TS_PERIODICITY: + g_value_set_int (value, gst_vp9_enc->cfg.ts_periodicity); + break; + case PROP_TS_LAYER_ID:{ + GValueArray *va; + + if (gst_vp9_enc->n_ts_layer_id == 0) { + g_value_set_boxed (value, NULL); + } else { + gint i; + + va = g_value_array_new (gst_vp9_enc->n_ts_layer_id); + for (i = 0; i < gst_vp9_enc->n_ts_layer_id; i++) { + GValue v = { 0, }; + + g_value_init (&v, G_TYPE_INT); + g_value_set_int (&v, gst_vp9_enc->cfg.ts_layer_id[i]); + g_value_array_append (va, &v); + g_value_unset (&v); + } + g_value_set_boxed (value, va); + g_value_array_free (va); + } + break; + } + case PROP_ERROR_RESILIENT: + g_value_set_flags (value, gst_vp9_enc->cfg.g_error_resilient); + break; + case PROP_LAG_IN_FRAMES: + g_value_set_int (value, gst_vp9_enc->cfg.g_lag_in_frames); + break; + case PROP_THREADS: + g_value_set_int (value, gst_vp9_enc->cfg.g_threads); + break; + case PROP_DEADLINE: + g_value_set_int64 (value, gst_vp9_enc->deadline); + break; + case PROP_H_SCALING_MODE: + g_value_set_enum (value, gst_vp9_enc->h_scaling_mode); + break; + case PROP_V_SCALING_MODE: + g_value_set_enum (value, gst_vp9_enc->v_scaling_mode); + break; + case PROP_CPU_USED: + g_value_set_int (value, gst_vp9_enc->cpu_used); + break; + case PROP_ENABLE_AUTO_ALT_REF: + g_value_set_boolean (value, gst_vp9_enc->enable_auto_alt_ref); + break; + case PROP_NOISE_SENSITIVITY: + g_value_set_int (value, gst_vp9_enc->noise_sensitivity); + break; + case PROP_SHARPNESS: + g_value_set_int (value, gst_vp9_enc->sharpness); + break; + case PROP_STATIC_THRESHOLD: + g_value_set_int (value, gst_vp9_enc->static_threshold); + break; + case PROP_TOKEN_PARTITIONS: + g_value_set_enum (value, gst_vp9_enc->token_partitions); + break; + case PROP_ARNR_MAXFRAMES: + g_value_set_int (value, gst_vp9_enc->arnr_maxframes); + break; + case PROP_ARNR_STRENGTH: + g_value_set_int (value, gst_vp9_enc->arnr_strength); + break; + case PROP_ARNR_TYPE: + g_value_set_int (value, gst_vp9_enc->arnr_type); + break; + case PROP_TUNING: + g_value_set_enum (value, gst_vp9_enc->tuning); + break; + case PROP_CQ_LEVEL: + g_value_set_int (value, gst_vp9_enc->cq_level); + break; + case PROP_MAX_INTRA_BITRATE_PCT: + g_value_set_int (value, gst_vp9_enc->max_intra_bitrate_pct); + break; + case PROP_TIMEBASE: + gst_value_set_fraction (value, gst_vp9_enc->timebase_n, + gst_vp9_enc->timebase_d); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + g_mutex_unlock (&gst_vp9_enc->encoder_lock); +} + +static gboolean +gst_vp9_enc_start (GstVideoEncoder * video_encoder) +{ + GstVP9Enc *encoder = GST_VP9_ENC (video_encoder); + + GST_DEBUG_OBJECT (video_encoder, "start"); + + if (!encoder->have_default_config) { + GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, + ("Failed to get default encoder configuration"), (NULL)); + return FALSE; + } + + return TRUE; +} + +static gboolean +gst_vp9_enc_stop (GstVideoEncoder * video_encoder) +{ + GstVP9Enc *encoder; + + GST_DEBUG_OBJECT (video_encoder, "stop"); + + encoder = GST_VP9_ENC (video_encoder); + + g_mutex_lock (&encoder->encoder_lock); + if (encoder->inited) { + vpx_codec_destroy (&encoder->encoder); + encoder->inited = FALSE; + } + + if (encoder->first_pass_cache_content) { + g_byte_array_free (encoder->first_pass_cache_content, TRUE); + encoder->first_pass_cache_content = NULL; + } + + if (encoder->cfg.rc_twopass_stats_in.buf) { + g_free (encoder->cfg.rc_twopass_stats_in.buf); + encoder->cfg.rc_twopass_stats_in.buf = NULL; + encoder->cfg.rc_twopass_stats_in.sz = 0; + } + g_mutex_unlock (&encoder->encoder_lock); + + gst_tag_setter_reset_tags (GST_TAG_SETTER (encoder)); + + return TRUE; +} + +static gint +gst_vp9_enc_get_downstream_profile (GstVP9Enc * encoder) +{ + GstCaps *allowed; + GstStructure *s; + gint profile = DEFAULT_PROFILE; + + allowed = gst_pad_get_allowed_caps (GST_VIDEO_ENCODER_SRC_PAD (encoder)); + if (allowed) { + allowed = gst_caps_truncate (allowed); + s = gst_caps_get_structure (allowed, 0); + if (gst_structure_has_field (s, "profile")) { + const GValue *v = gst_structure_get_value (s, "profile"); + const gchar *profile_str = NULL; + + if (GST_VALUE_HOLDS_LIST (v) && gst_value_list_get_size (v) > 0) { + profile_str = g_value_get_string (gst_value_list_get_value (v, 0)); + } else if (G_VALUE_HOLDS_STRING (v)) { + profile_str = g_value_get_string (v); + } + + if (profile_str) { + gchar *endptr = NULL; + + profile = g_ascii_strtoull (profile_str, &endptr, 10); + if (*endptr != '\0' || profile < 0 || profile > 3) { + GST_ERROR_OBJECT (encoder, "Invalid profile '%s'", profile_str); + profile = DEFAULT_PROFILE; + } + } + } + gst_caps_unref (allowed); + } + + GST_DEBUG_OBJECT (encoder, "Using profile %d", profile); + + return profile; +} + +static gboolean +gst_vp9_enc_set_format (GstVideoEncoder * video_encoder, + GstVideoCodecState * state) +{ + GstVP9Enc *encoder; + vpx_codec_err_t status; + vpx_image_t *image; + GstCaps *caps; + gboolean ret = TRUE; + GstVideoInfo *info = &state->info; + GstVideoCodecState *output_state; + gchar *profile_str; + + encoder = GST_VP9_ENC (video_encoder); + GST_DEBUG_OBJECT (video_encoder, "set_format"); + + if (encoder->inited) { + GST_DEBUG_OBJECT (video_encoder, "refusing renegotiation"); + return FALSE; + } + + g_mutex_lock (&encoder->encoder_lock); + encoder->cfg.g_profile = gst_vp9_enc_get_downstream_profile (encoder); + + /* Scale default bitrate to our size */ + if (!encoder->rc_target_bitrate_set) + encoder->cfg.rc_target_bitrate = + gst_util_uint64_scale (DEFAULT_RC_TARGET_BITRATE, + GST_VIDEO_INFO_WIDTH (info) * GST_VIDEO_INFO_HEIGHT (info), + 320 * 240 * 1000); + + encoder->cfg.g_w = GST_VIDEO_INFO_WIDTH (info); + encoder->cfg.g_h = GST_VIDEO_INFO_HEIGHT (info); + + if (encoder->timebase_n != 0 && encoder->timebase_d != 0) { + GST_DEBUG_OBJECT (video_encoder, "Using timebase configuration"); + encoder->cfg.g_timebase.num = encoder->timebase_n; + encoder->cfg.g_timebase.den = encoder->timebase_d; + } else if (GST_VIDEO_INFO_FPS_D (info) != 0 + && GST_VIDEO_INFO_FPS_N (info) != 0) { + /* GstVideoInfo holds either the framerate or max-framerate (if framerate + * is 0) in FPS so this will be used if max-framerate or framerate + * is set */ + GST_DEBUG_OBJECT (video_encoder, "Setting timebase from framerate"); + encoder->cfg.g_timebase.num = GST_VIDEO_INFO_FPS_D (info); + encoder->cfg.g_timebase.den = GST_VIDEO_INFO_FPS_N (info); + } else { + /* Zero framerate and max-framerate but still need to setup the timebase to avoid + * a divide by zero error. Presuming the lowest common denominator will be RTP - + * VP9 payload draft states clock rate of 90000 which should work for anyone where + * FPS < 90000 (shouldn't be too many cases where it's higher) though wouldn't be optimal. RTP specification + * http://tools.ietf.org/html/draft-ietf-payload-vp9-01 section 6.3.1 */ + GST_WARNING_OBJECT (encoder, + "No timebase and zero framerate setting timebase to 1/90000"); + encoder->cfg.g_timebase.num = 1; + encoder->cfg.g_timebase.den = 90000; + } + + if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS) { + encoder->first_pass_cache_content = g_byte_array_sized_new (4096); + } else if (encoder->cfg.g_pass == VPX_RC_LAST_PASS) { + GError *err = NULL; + + if (!encoder->multipass_cache_file) { + GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ, + ("No multipass cache file provided"), (NULL)); + g_mutex_unlock (&encoder->encoder_lock); + return FALSE; + } + + if (!g_file_get_contents (encoder->multipass_cache_file, + (gchar **) & encoder->cfg.rc_twopass_stats_in.buf, + &encoder->cfg.rc_twopass_stats_in.sz, &err)) { + GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ, + ("Failed to read multipass cache file provided"), ("%s", + err->message)); + g_error_free (err); + g_mutex_unlock (&encoder->encoder_lock); + return FALSE; + } + } + + status = vpx_codec_enc_init (&encoder->encoder, &vpx_codec_vp9_cx_algo, + &encoder->cfg, 0); + if (status != VPX_CODEC_OK) { + GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, + ("Failed to initialize encoder"), ("%s", gst_vpx_error_name (status))); + g_mutex_unlock (&encoder->encoder_lock); + return FALSE; + } + + /* FIXME: Disabled for now, does not work with VP9 */ +#if 0 + { + vpx_scaling_mode_t sm; + + sm.h_scaling_mode = encoder->h_scaling_mode; + sm.v_scaling_mode = encoder->v_scaling_mode; + + status = vpx_codec_control (&encoder->encoder, VP8E_SET_SCALEMODE, &sm); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, "Failed to set VP8E_SET_SCALEMODE: %s", + gst_vpx_error_name (status)); + } + } +#endif + + status = + vpx_codec_control (&encoder->encoder, VP8E_SET_CPUUSED, + encoder->cpu_used); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, "Failed to set VP8E_SET_CPUUSED: %s", + gst_vpx_error_name (status)); + } + + status = + vpx_codec_control (&encoder->encoder, VP8E_SET_ENABLEAUTOALTREF, + (encoder->enable_auto_alt_ref ? 1 : 0)); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_ENABLEAUTOALTREF: %s", + gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_NOISE_SENSITIVITY, + encoder->noise_sensitivity); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_NOISE_SENSITIVITY: %s", + gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_SHARPNESS, + encoder->sharpness); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_SHARPNESS: %s", gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_STATIC_THRESHOLD, + encoder->static_threshold); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_STATIC_THRESHOLD: %s", + gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_TOKEN_PARTITIONS, + encoder->token_partitions); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_TOKEN_PARTIONS: %s", + gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_ARNR_MAXFRAMES, + encoder->arnr_maxframes); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_ARNR_MAXFRAMES: %s", + gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_ARNR_STRENGTH, + encoder->arnr_strength); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_ARNR_STRENGTH: %s", + gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_ARNR_TYPE, + encoder->arnr_type); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_ARNR_TYPE: %s", gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_TUNING, + encoder->tuning); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_TUNING: %s", gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_CQ_LEVEL, + encoder->cq_level); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_CQ_LEVEL: %s", gst_vpx_error_name (status)); + } + status = vpx_codec_control (&encoder->encoder, VP8E_SET_MAX_INTRA_BITRATE_PCT, + encoder->max_intra_bitrate_pct); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_SET_MAX_INTRA_BITRATE_PCT: %s", + gst_vpx_error_name (status)); + } + + if (GST_VIDEO_INFO_FPS_D (info) == 0 || GST_VIDEO_INFO_FPS_N (info) == 0) { + gst_video_encoder_set_latency (video_encoder, GST_CLOCK_TIME_NONE, + GST_CLOCK_TIME_NONE); + } else { + gst_video_encoder_set_latency (video_encoder, 0, + gst_util_uint64_scale (encoder->cfg.g_lag_in_frames, + GST_VIDEO_INFO_FPS_D (info) * GST_SECOND, + GST_VIDEO_INFO_FPS_N (info))); + } + encoder->inited = TRUE; + + /* Store input state */ + if (encoder->input_state) + gst_video_codec_state_unref (encoder->input_state); + encoder->input_state = gst_video_codec_state_ref (state); + + /* prepare cached image buffer setup */ + image = &encoder->image; + memset (image, 0, sizeof (*image)); + + switch (encoder->input_state->info.finfo->format) { + case GST_VIDEO_FORMAT_I420: + image->fmt = VPX_IMG_FMT_I420; + image->bps = 12; + image->x_chroma_shift = image->y_chroma_shift = 1; + break; + case GST_VIDEO_FORMAT_YV12: + image->fmt = VPX_IMG_FMT_YV12; + image->bps = 12; + image->x_chroma_shift = image->y_chroma_shift = 1; + break; + case GST_VIDEO_FORMAT_Y42B: + image->fmt = VPX_IMG_FMT_I422; + image->bps = 16; + image->x_chroma_shift = 1; + image->y_chroma_shift = 0; + break; + case GST_VIDEO_FORMAT_Y444: + image->fmt = VPX_IMG_FMT_I444; + image->bps = 24; + image->x_chroma_shift = image->y_chroma_shift = 0; + break; + default: + g_assert_not_reached (); + break; + } + image->w = image->d_w = GST_VIDEO_INFO_WIDTH (info); + image->h = image->d_h = GST_VIDEO_INFO_HEIGHT (info); + + image->stride[VPX_PLANE_Y] = GST_VIDEO_INFO_COMP_STRIDE (info, 0); + image->stride[VPX_PLANE_U] = GST_VIDEO_INFO_COMP_STRIDE (info, 1); + image->stride[VPX_PLANE_V] = GST_VIDEO_INFO_COMP_STRIDE (info, 2); + + profile_str = g_strdup_printf ("%d", encoder->cfg.g_profile); + caps = gst_caps_new_simple ("video/x-vp9", + "profile", G_TYPE_STRING, profile_str, NULL); + g_free (profile_str); + + g_mutex_unlock (&encoder->encoder_lock); + + output_state = + gst_video_encoder_set_output_state (video_encoder, caps, state); + gst_video_codec_state_unref (output_state); + + gst_video_encoder_negotiate (GST_VIDEO_ENCODER (encoder)); + + return ret; +} + +static GstFlowReturn +gst_vp9_enc_process (GstVP9Enc * encoder) +{ + vpx_codec_iter_t iter = NULL; + const vpx_codec_cx_pkt_t *pkt; + GstVideoEncoder *video_encoder; + GstVideoCodecFrame *frame; + GstFlowReturn ret = GST_FLOW_OK; + + video_encoder = GST_VIDEO_ENCODER (encoder); + + g_mutex_lock (&encoder->encoder_lock); + pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); + while (pkt != NULL) { + GstBuffer *buffer; + gboolean invisible; + + GST_DEBUG_OBJECT (encoder, "packet %u type %d", (guint) pkt->data.frame.sz, + pkt->kind); + + if (pkt->kind == VPX_CODEC_STATS_PKT + && encoder->cfg.g_pass == VPX_RC_FIRST_PASS) { + GST_LOG_OBJECT (encoder, "handling STATS packet"); + + g_byte_array_append (encoder->first_pass_cache_content, + pkt->data.twopass_stats.buf, pkt->data.twopass_stats.sz); + + frame = gst_video_encoder_get_oldest_frame (video_encoder); + if (frame != NULL) { + buffer = gst_buffer_new (); + GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_LIVE); + frame->output_buffer = buffer; + g_mutex_unlock (&encoder->encoder_lock); + ret = gst_video_encoder_finish_frame (video_encoder, frame); + g_mutex_lock (&encoder->encoder_lock); + } + + pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); + continue; + } else if (pkt->kind != VPX_CODEC_CX_FRAME_PKT) { + GST_LOG_OBJECT (encoder, "non frame pkt: %d", pkt->kind); + pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); + continue; + } + + invisible = (pkt->data.frame.flags & VPX_FRAME_IS_INVISIBLE) != 0; + frame = gst_video_encoder_get_oldest_frame (video_encoder); + g_assert (frame != NULL); + if ((pkt->data.frame.flags & VPX_FRAME_IS_KEY) != 0) + GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (frame); + else + GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT (frame); + + /* FIXME : It would be nice to avoid the memory copy ... */ + buffer = + gst_buffer_new_wrapped (g_memdup (pkt->data.frame.buf, + pkt->data.frame.sz), pkt->data.frame.sz); + + if (invisible) { + g_mutex_unlock (&encoder->encoder_lock); + ret = gst_pad_push (GST_VIDEO_ENCODER_SRC_PAD (encoder), buffer); + g_mutex_lock (&encoder->encoder_lock); + gst_video_codec_frame_unref (frame); + } else { + frame->output_buffer = buffer; + g_mutex_unlock (&encoder->encoder_lock); + ret = gst_video_encoder_finish_frame (video_encoder, frame); + g_mutex_lock (&encoder->encoder_lock); + } + + pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); + } + g_mutex_unlock (&encoder->encoder_lock); + + return ret; +} + +static GstFlowReturn +gst_vp9_enc_finish (GstVideoEncoder * video_encoder) +{ + GstVP9Enc *encoder; + int flags = 0; + vpx_codec_err_t status; + + GST_DEBUG_OBJECT (video_encoder, "finish"); + + encoder = GST_VP9_ENC (video_encoder); + + g_mutex_lock (&encoder->encoder_lock); + status = + vpx_codec_encode (&encoder->encoder, NULL, encoder->n_frames, 1, flags, + encoder->deadline); + g_mutex_unlock (&encoder->encoder_lock); + if (status != 0) { + GST_ERROR_OBJECT (encoder, "encode returned %d %s", status, + gst_vpx_error_name (status)); + return GST_FLOW_ERROR; + } + + /* dispatch remaining frames */ + gst_vp9_enc_process (encoder); + + if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS && encoder->multipass_cache_file) { + GError *err = NULL; + + if (!g_file_set_contents (encoder->multipass_cache_file, + (const gchar *) encoder->first_pass_cache_content->data, + encoder->first_pass_cache_content->len, &err)) { + GST_ELEMENT_ERROR (encoder, RESOURCE, WRITE, (NULL), + ("Failed to write multipass cache file: %s", err->message)); + g_error_free (err); + } + } + + return GST_FLOW_OK; +} + +static vpx_image_t * +gst_vp9_enc_buffer_to_image (GstVP9Enc * enc, GstVideoFrame * frame) +{ + vpx_image_t *image = g_slice_new (vpx_image_t); + + memcpy (image, &enc->image, sizeof (*image)); + + image->planes[VPX_PLANE_Y] = GST_VIDEO_FRAME_COMP_DATA (frame, 0); + image->planes[VPX_PLANE_U] = GST_VIDEO_FRAME_COMP_DATA (frame, 1); + image->planes[VPX_PLANE_V] = GST_VIDEO_FRAME_COMP_DATA (frame, 2); + + image->stride[VPX_PLANE_Y] = GST_VIDEO_FRAME_COMP_STRIDE (frame, 0); + image->stride[VPX_PLANE_U] = GST_VIDEO_FRAME_COMP_STRIDE (frame, 1); + image->stride[VPX_PLANE_V] = GST_VIDEO_FRAME_COMP_STRIDE (frame, 2); + + return image; +} + +static GstFlowReturn +gst_vp9_enc_handle_frame (GstVideoEncoder * video_encoder, + GstVideoCodecFrame * frame) +{ + GstVP9Enc *encoder; + vpx_codec_err_t status; + int flags = 0; + vpx_image_t *image; + GstVideoFrame vframe; + + GST_DEBUG_OBJECT (video_encoder, "handle_frame"); + + encoder = GST_VP9_ENC (video_encoder); + + encoder->n_frames++; + + GST_DEBUG_OBJECT (video_encoder, "size %d %d", + GST_VIDEO_INFO_WIDTH (&encoder->input_state->info), + GST_VIDEO_INFO_HEIGHT (&encoder->input_state->info)); + + gst_video_frame_map (&vframe, &encoder->input_state->info, + frame->input_buffer, GST_MAP_READ); + image = gst_vp9_enc_buffer_to_image (encoder, &vframe); + + if (GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME (frame)) { + flags |= VPX_EFLAG_FORCE_KF; + } + + g_mutex_lock (&encoder->encoder_lock); + status = vpx_codec_encode (&encoder->encoder, image, + encoder->n_frames, 1, flags, encoder->deadline); + g_mutex_unlock (&encoder->encoder_lock); + gst_video_frame_unmap (&vframe); + + if (status != 0) { + GST_ELEMENT_ERROR (encoder, LIBRARY, ENCODE, + ("Failed to encode frame"), ("%s", gst_vpx_error_name (status))); + return FALSE; + } + gst_video_codec_frame_unref (frame); + return gst_vp9_enc_process (encoder); +} + +static gboolean +gst_vp9_enc_sink_event (GstVideoEncoder * benc, GstEvent * event) +{ + GstVP9Enc *enc = GST_VP9_ENC (benc); + + /* FIXME : Move this to base encoder class */ + + if (GST_EVENT_TYPE (event) == GST_EVENT_TAG) { + GstTagList *list; + GstTagSetter *setter = GST_TAG_SETTER (enc); + const GstTagMergeMode mode = gst_tag_setter_get_tag_merge_mode (setter); + + gst_event_parse_tag (event, &list); + gst_tag_setter_merge_tags (setter, list, mode); + } + + /* just peeked, baseclass handles the rest */ + return GST_VIDEO_ENCODER_CLASS (parent_class)->sink_event (benc, event); +} + +static gboolean +gst_vp9_enc_propose_allocation (GstVideoEncoder * encoder, GstQuery * query) +{ + gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL); + + return GST_VIDEO_ENCODER_CLASS (parent_class)->propose_allocation (encoder, + query); +} + +#endif /* HAVE_VP9_ENCODER */ diff --git a/ext/vpx/gstvp9enc.h b/ext/vpx/gstvp9enc.h new file mode 100644 index 0000000000000000000000000000000000000000..8026d58083a9456a9764057185cd2cb3d1d0c809 --- /dev/null +++ b/ext/vpx/gstvp9enc.h @@ -0,0 +1,113 @@ +/* VP9 + * Copyright (C) 2006 David Schleef <ds@schleef.org> + * Copyright (C) 2010 Entropy Wave Inc + * Copyright (C) 2010-2013 Sebastian Dröge <slomo@circular-chaos.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ +#ifndef __GST_VP9_ENC_H__ +#define __GST_VP9_ENC_H__ + +#include <gst/gst.h> +#include <gst/video/gstvideoencoder.h> + +/* FIXME: Undef HAVE_CONFIG_H because vpx_codec.h uses it, + * which causes compilation failures */ +#ifdef HAVE_CONFIG_H +#undef HAVE_CONFIG_H +#endif + +#include <vpx/vpx_encoder.h> +#include <vpx/vp8cx.h> + +G_BEGIN_DECLS + +#define GST_TYPE_VP9_ENC \ + (gst_vp9_enc_get_type()) +#define GST_VP9_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VP9_ENC,GstVP9Enc)) +#define GST_VP9_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VP9_ENC,GstVP9EncClass)) +#define GST_IS_VP9_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VP9_ENC)) +#define GST_IS_VP9_ENC_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VP9_ENC)) + +typedef struct _GstVP9Enc GstVP9Enc; +typedef struct _GstVP9EncClass GstVP9EncClass; + +struct _GstVP9Enc +{ + GstVideoEncoder base_video_encoder; + + /* < private > */ + vpx_codec_ctx_t encoder; + GMutex encoder_lock; + + /* properties */ + vpx_codec_enc_cfg_t cfg; + gboolean have_default_config; + gboolean rc_target_bitrate_set; + gint n_ts_target_bitrate; + gint n_ts_rate_decimator; + gint n_ts_layer_id; + /* Global two-pass options */ + gchar *multipass_cache_file; + GByteArray *first_pass_cache_content; + + /* Encode parameter */ + gint64 deadline; + + /* Controls */ + VPX_SCALING_MODE h_scaling_mode; + VPX_SCALING_MODE v_scaling_mode; + int cpu_used; + gboolean enable_auto_alt_ref; + unsigned int noise_sensitivity; + unsigned int sharpness; + unsigned int static_threshold; + vp8e_token_partitions token_partitions; + unsigned int arnr_maxframes; + unsigned int arnr_strength; + unsigned int arnr_type; + vp8e_tuning tuning; + unsigned int cq_level; + unsigned int max_intra_bitrate_pct; + /* Timebase - a value of 0 will use the framerate */ + unsigned int timebase_n; + unsigned int timebase_d; + + /* state */ + gboolean inited; + + vpx_image_t image; + + int n_frames; + + GstVideoCodecState *input_state; +}; + +struct _GstVP9EncClass +{ + GstVideoEncoderClass base_video_encoder_class; +}; + +GType gst_vp9_enc_get_type (void); + +G_END_DECLS + +#endif /* __GST_VP9_ENC_H__ */ diff --git a/ext/vpx/plugin.c b/ext/vpx/plugin.c index 363e3328e178a2698a145170d8fdc826b8d4877f..4f04efaff06b9085e6f38351a5a0d3d6cedd4a1a 100644 --- a/ext/vpx/plugin.c +++ b/ext/vpx/plugin.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ @@ -27,6 +27,8 @@ #include "gstvp8dec.h" #include "gstvp8enc.h" +#include "gstvp9dec.h" +#include "gstvp9enc.h" static gboolean plugin_init (GstPlugin * plugin) @@ -41,6 +43,16 @@ plugin_init (GstPlugin * plugin) gst_vp8_enc_get_type ()); #endif +#ifdef HAVE_VP9_DECODER + gst_element_register (plugin, "vp9dec", GST_RANK_PRIMARY, + gst_vp9_dec_get_type ()); +#endif + +#ifdef HAVE_VP9_ENCODER + gst_element_register (plugin, "vp9enc", GST_RANK_PRIMARY, + gst_vp9_enc_get_type ()); +#endif + return TRUE; } diff --git a/ext/wavpack/Makefile.in b/ext/wavpack/Makefile.in index 704b03c83818d6281b930b646aef88c42c6b5a8d..b5c56c4b079fca7fd1ac53f510e40881f617ff0d 100644 --- a/ext/wavpack/Makefile.in +++ b/ext/wavpack/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = ext/wavpack -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -140,10 +166,23 @@ libgstwavpack_la_OBJECTS = $(am_libgstwavpack_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstwavpack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstwavpack_la_CFLAGS) $(CFLAGS) \ $(libgstwavpack_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -156,20 +195,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstwavpack_la_SOURCES) DIST_SOURCES = $(libgstwavpack_la_SOURCES) am__can_run_installinfo = \ @@ -178,6 +213,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -346,6 +398,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -562,6 +615,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -588,12 +642,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstwavpack.la: $(libgstwavpack_la_OBJECTS) $(libgstwavpack_la_DEPENDENCIES) $(EXTRA_libgstwavpack_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwavpack_la_LINK) -rpath $(plugindir) $(libgstwavpack_la_OBJECTS) $(libgstwavpack_la_LIBADD) $(LIBS) @@ -671,26 +728,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -702,15 +748,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -719,6 +761,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -863,19 +920,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/ext/wavpack/gstwavpack.c b/ext/wavpack/gstwavpack.c index 74bb070f47696f9937d7d8bec013ed51730ec3f7..1609aa2e1eaf7372892465872ec8b6fe46914a73 100644 --- a/ext/wavpack/gstwavpack.c +++ b/ext/wavpack/gstwavpack.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/ext/wavpack/gstwavpackcommon.c b/ext/wavpack/gstwavpackcommon.c index c38447079eab0442c8a952f7a5986df43f65d6bd..40ffb3af70885c0364357236825a6fb2705e8902 100644 --- a/ext/wavpack/gstwavpackcommon.c +++ b/ext/wavpack/gstwavpackcommon.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/ext/wavpack/gstwavpackcommon.h b/ext/wavpack/gstwavpackcommon.h index 4f05683549c606aa29fc4c5fbe8b660d817c817b..f4a81bfe4307b05b613a22c2d9be8849242962a3 100644 --- a/ext/wavpack/gstwavpackcommon.h +++ b/ext/wavpack/gstwavpackcommon.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_WAVPACK_COMMON_H__ diff --git a/ext/wavpack/gstwavpackdec.c b/ext/wavpack/gstwavpackdec.c index 86425ad3afc8b2932d9ecc51d3cd319da4e1bb71..6032b1bf760a3c5b92ae3d36736692d33020f9db 100644 --- a/ext/wavpack/gstwavpackdec.c +++ b/ext/wavpack/gstwavpackdec.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/ext/wavpack/gstwavpackdec.h b/ext/wavpack/gstwavpackdec.h index 006428ceacab5fcbc8f9a2a1a07dc2754747d2d7..8a002b4bf6d4e9cb9d8e3572875aa46a4eed392f 100644 --- a/ext/wavpack/gstwavpackdec.h +++ b/ext/wavpack/gstwavpackdec.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_WAVPACK_DEC_H__ diff --git a/ext/wavpack/gstwavpackenc.c b/ext/wavpack/gstwavpackenc.c index cdd55923f3b25a4c548040b086a386731233ee6a..eccafa192a489470d9236645ef8992335f28fec8 100644 --- a/ext/wavpack/gstwavpackenc.c +++ b/ext/wavpack/gstwavpackenc.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/ext/wavpack/gstwavpackenc.h b/ext/wavpack/gstwavpackenc.h index aab4296fbf822bdd375895882c83a36d7dbb1962..26a5b1128be16a5b8eeb6e00910cf8107b2e38a5 100644 --- a/ext/wavpack/gstwavpackenc.h +++ b/ext/wavpack/gstwavpackenc.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_WAVPACK_ENC_H__ diff --git a/ext/wavpack/gstwavpackstreamreader.c b/ext/wavpack/gstwavpackstreamreader.c index da1fdc27bc0516e502ecc75d2bcdc87815227cc9..f10cf5840bb3bbff2181d36f0eaa7565fab17672 100644 --- a/ext/wavpack/gstwavpackstreamreader.c +++ b/ext/wavpack/gstwavpackstreamreader.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> diff --git a/ext/wavpack/gstwavpackstreamreader.h b/ext/wavpack/gstwavpackstreamreader.h index 713b4c155f9f29034ceeb6d0582f1da5c44c13e3..17412cc6c3185c393a1d22ecfcc90d7cc96f6934 100644 --- a/ext/wavpack/gstwavpackstreamreader.h +++ b/ext/wavpack/gstwavpackstreamreader.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_WAVPACK_STREAM_READER_H__ diff --git a/gst-libs/gst/gettext.h b/gst-libs/gst/gettext.h index 59902b35ee7c94e5a9eec6a3ef3b4a56765bcdfe..fc70ab7959280f5b162cc1076c5b3517832a2d99 100644 --- a/gst-libs/gst/gettext.h +++ b/gst-libs/gst/gettext.h @@ -13,7 +13,7 @@ You should have received a copy of the GNU Library General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _LIBGETTEXT_H diff --git a/gst-libs/gst/glib-compat-private.h b/gst-libs/gst/glib-compat-private.h index 9a92993d46b1b5f20e4236e66b5ec8f369718abb..8f37de205ec3c197271174852eb12181ce8f87e6 100644 --- a/gst-libs/gst/glib-compat-private.h +++ b/gst-libs/gst/glib-compat-private.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GLIB_COMPAT_PRIVATE_H__ diff --git a/gst-libs/gst/gst-i18n-plugin.h b/gst-libs/gst/gst-i18n-plugin.h index fe597d229288ac5cc1c5126ff289ba548f724524..ff40ce25165fc656c4ad7a5374e9975379fa3c05 100644 --- a/gst-libs/gst/gst-i18n-plugin.h +++ b/gst-libs/gst/gst-i18n-plugin.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_I18N_PLUGIN_H__ diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap index 0d53a264eef83d2867f6a57dd8ac6298b0501aea..7fa664d9f2cd10883a33c1c1dee593dd73e969de 100644 --- a/gst-plugins-good.doap +++ b/gst-plugins-good.doap @@ -34,61 +34,21 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library). <release> <Version> - <revision>1.0.8</revision> - <branch>1.0</branch> + <revision>1.1.2</revision> + <branch>1.1</branch> <name></name> <created>2013-07-11</created> - <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.8.tar.xz" /> - </Version> - </release> - - <release> - <Version> - <revision>1.0.7</revision> - <branch>1.0</branch> - <name></name> - <created>2013-04-26</created> - <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.7.tar.xz" /> - </Version> - </release> - - <release> - <Version> - <revision>1.0.6</revision> - <branch>1.0</branch> - <name></name> - <created>2013-03-22</created> - <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.6.tar.xz" /> + <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.1.2.tar.xz" /> </Version> </release> <release> <Version> - <revision>1.0.5</revision> - <branch>1.0</branch> - <name></name> - <created>2013-01-08</created> - <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.5.tar.xz" /> - </Version> - </release> - - <release> - <Version> - <revision>1.0.4</revision> - <branch>1.0</branch> - <name></name> - <created>2012-12-18</created> - <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.4.tar.xz" /> - </Version> - </release> - - <release> - <Version> - <revision>1.0.3</revision> - <branch>1.0</branch> + <revision>1.1.1</revision> + <branch>1.1</branch> <name></name> - <created>2012-11-21</created> - <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.3.tar.xz" /> + <created>2013-06-05</created> + <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.1.1.tar.xz" /> </Version> </release> diff --git a/gst-plugins-good.spec b/gst-plugins-good.spec index 7cf54ce80a4bb867e4faef7b6990927c9d8468e5..398e68565d5553b52128be600fcc22fcc748621b 100644 --- a/gst-plugins-good.spec +++ b/gst-plugins-good.spec @@ -4,7 +4,7 @@ %define gst_minver 0.11.0 Name: %{gstreamer}-plugins-good -Version: 1.0.8 +Version: 1.1.2 Release: 1.gst Summary: GStreamer plug-ins with good code and licensing @@ -129,6 +129,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/gstreamer-%{majorminor}/libgstshapewipe.so %{_libdir}/gstreamer-%{majorminor}/libgstvideofilter.so %{_libdir}/gstreamer-%{majorminor}/libgstaudioparsers.so +%{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so # sys plugins %{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so diff --git a/gst-plugins-good.spec.in b/gst-plugins-good.spec.in index 088f139e4c226f559e88ee3f728c2041a015d0ea..50c02b1bbf7ff39d81d8b8d13929a51395508240 100644 --- a/gst-plugins-good.spec.in +++ b/gst-plugins-good.spec.in @@ -129,6 +129,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/gstreamer-%{majorminor}/libgstshapewipe.so %{_libdir}/gstreamer-%{majorminor}/libgstvideofilter.so %{_libdir}/gstreamer-%{majorminor}/libgstaudioparsers.so +%{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so # sys plugins @USE_GST_V4L2_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so diff --git a/gst/Makefile.in b/gst/Makefile.in index a167544f953689bbfe0f78d5b582e2fc41b32f91..afcb69343477b1fed0246283ab8f99bd2fc1a036 100644 --- a/gst/Makefile.in +++ b/gst/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -20,23 +19,51 @@ # descending into all subdirectories a second time, but only after the first # (parallel) run has finished, so it should go right through the second time. VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -56,8 +83,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/common/parallel-subdirs.mak +DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \ + $(srcdir)/Makefile.in $(srcdir)/Makefile.am subdir = gst ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -65,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -101,21 +127,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -123,9 +156,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -319,6 +372,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -523,22 +577,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -553,57 +610,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -619,12 +631,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -636,15 +643,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -653,6 +656,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -813,22 +831,20 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am .PHONY: independent-subdirs $(SUBDIRS) diff --git a/gst/alpha/Makefile.in b/gst/alpha/Makefile.in index eaef61b621b707670187a8cc25429f4e9a0b9047..afa5a32c934ef2b1841b040132c0c0ab6830a2f2 100644 --- a/gst/alpha/Makefile.in +++ b/gst/alpha/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/alpha -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,6 +162,7 @@ libgstalpha_la_OBJECTS = $(am_libgstalpha_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstalpha_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstalpha_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstalpha_la_CFLAGS) $(CFLAGS) \ @@ -148,6 +175,18 @@ libgstalphacolor_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstalphacolor_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) \ $(libgstalphacolor_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -160,20 +199,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstalpha_la_SOURCES) $(libgstalphacolor_la_SOURCES) DIST_SOURCES = $(libgstalpha_la_SOURCES) \ $(libgstalphacolor_la_SOURCES) @@ -183,6 +218,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -351,6 +403,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -565,6 +618,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -591,14 +645,18 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstalpha.la: $(libgstalpha_la_OBJECTS) $(libgstalpha_la_DEPENDENCIES) $(EXTRA_libgstalpha_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstalpha_la_LINK) -rpath $(plugindir) $(libgstalpha_la_OBJECTS) $(libgstalpha_la_LIBADD) $(LIBS) + libgstalphacolor.la: $(libgstalphacolor_la_OBJECTS) $(libgstalphacolor_la_DEPENDENCIES) $(EXTRA_libgstalphacolor_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstalphacolor_la_LINK) -rpath $(plugindir) $(libgstalphacolor_la_OBJECTS) $(libgstalphacolor_la_LIBADD) $(LIBS) @@ -652,26 +710,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -683,15 +730,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -700,6 +743,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -844,19 +902,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/alpha/gstalpha.c b/gst/alpha/gstalpha.c index df53d786381886a78a5e1ae75b050c1f7882956d..5213d2c7e6a2efcc3b0b1d87d6a995280e98a371 100644 --- a/gst/alpha/gstalpha.c +++ b/gst/alpha/gstalpha.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -191,9 +191,9 @@ gst_alpha_method_get_type (void) static GType alpha_method_type = 0; static const GEnumValue alpha_method[] = { {ALPHA_METHOD_SET, "Set/adjust alpha channel", "set"}, - {ALPHA_METHOD_GREEN, "Chroma Key green", "green"}, - {ALPHA_METHOD_BLUE, "Chroma Key blue", "blue"}, - {ALPHA_METHOD_CUSTOM, "Chroma Key on target_r/g/b", "custom"}, + {ALPHA_METHOD_GREEN, "Chroma Key on pure green", "green"}, + {ALPHA_METHOD_BLUE, "Chroma Key on pure blue", "blue"}, + {ALPHA_METHOD_CUSTOM, "Chroma Key on custom RGB values", "custom"}, {0, NULL, NULL}, }; @@ -227,15 +227,18 @@ gst_alpha_class_init (GstAlphaClass * klass) 0.0, 1.0, DEFAULT_ALPHA, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TARGET_R, - g_param_spec_uint ("target-r", "Target Red", "The Red target", 0, 255, + g_param_spec_uint ("target-r", "Target Red", + "The red color value for custom RGB chroma keying", 0, 255, DEFAULT_TARGET_R, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TARGET_G, - g_param_spec_uint ("target-g", "Target Green", "The Green target", 0, 255, + g_param_spec_uint ("target-g", "Target Green", + "The green color value for custom RGB chroma keying", 0, 255, DEFAULT_TARGET_G, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TARGET_B, - g_param_spec_uint ("target-b", "Target Blue", "The Blue target", 0, 255, + g_param_spec_uint ("target-b", "Target Blue", + "The blue color value for custom RGB chroma keying", 0, 255, DEFAULT_TARGET_B, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_ANGLE, @@ -253,7 +256,7 @@ gst_alpha_class_init (GstAlphaClass * klass) G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_WHITE_SENSITIVITY, g_param_spec_uint ("white-sensitivity", - "Sensitivity", "Sensitivity to bright colors", 0, 128, + "White Sensitivity", "Sensitivity to bright colors", 0, 128, DEFAULT_WHITE_SENSITIVITY, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), @@ -327,20 +330,6 @@ gst_alpha_set_property (GObject * object, guint prop_id, && (alpha->prefer_passthrough); alpha->method = method; - switch (alpha->method) { - case ALPHA_METHOD_GREEN: - alpha->target_r = 0; - alpha->target_g = 255; - alpha->target_b = 0; - break; - case ALPHA_METHOD_BLUE: - alpha->target_r = 0; - alpha->target_g = 0; - alpha->target_b = 255; - break; - default: - break; - } gst_alpha_set_process_function (alpha); gst_alpha_init_params (alpha); break; @@ -2300,8 +2289,26 @@ gst_alpha_init_params_full (GstAlpha * alpha, gfloat tmp; gfloat tmp1, tmp2; gfloat y; + guint target_r = alpha->target_r; + guint target_g = alpha->target_g; + guint target_b = alpha->target_b; const gint *matrix; + switch (alpha->method) { + case ALPHA_METHOD_GREEN: + target_r = 0; + target_g = 255; + target_b = 0; + break; + case ALPHA_METHOD_BLUE: + target_r = 0; + target_g = 0; + target_b = 255; + break; + default: + break; + } + /* RGB->RGB: convert to SDTV YUV, chroma keying, convert back * YUV->RGB: chroma keying, convert to RGB * RGB->YUV: convert to YUV, chroma keying @@ -2325,20 +2332,18 @@ gst_alpha_init_params_full (GstAlpha * alpha, (alpha->out_sdtv) ? cog_rgb_to_ycbcr_matrix_8bit_sdtv : cog_rgb_to_ycbcr_matrix_8bit_hdtv; - y = (matrix[0] * ((gint) alpha->target_r) + - matrix[1] * ((gint) alpha->target_g) + - matrix[2] * ((gint) alpha->target_b) + matrix[3]) >> 8; + y = (matrix[0] * ((gint) target_r) + + matrix[1] * ((gint) target_g) + + matrix[2] * ((gint) target_b) + matrix[3]) >> 8; /* Cb,Cr without offset here because the chroma keying * works with them being in range [-128,127] */ tmp1 = - (matrix[4] * ((gint) alpha->target_r) + - matrix[5] * ((gint) alpha->target_g) + - matrix[6] * ((gint) alpha->target_b)) >> 8; + (matrix[4] * ((gint) target_r) + + matrix[5] * ((gint) target_g) + matrix[6] * ((gint) target_b)) >> 8; tmp2 = - (matrix[8] * ((gint) alpha->target_r) + - matrix[9] * ((gint) alpha->target_g) + - matrix[10] * ((gint) alpha->target_b)) >> 8; + (matrix[8] * ((gint) target_r) + + matrix[9] * ((gint) target_g) + matrix[10] * ((gint) target_b)) >> 8; kgl = sqrt (tmp1 * tmp1 + tmp2 * tmp2); alpha->cb = 127 * (tmp1 / kgl); diff --git a/gst/alpha/gstalpha.h b/gst/alpha/gstalpha.h index a3131341db45e886f49739f6c54018ebc94ba0e7..948fb78a5c252c1044a153a056a919d7785d4917 100644 --- a/gst/alpha/gstalpha.h +++ b/gst/alpha/gstalpha.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_ALPHA_H__ diff --git a/gst/alpha/gstalphacolor.c b/gst/alpha/gstalphacolor.c index ee8d97a0597554cbd34b27d944807fadbae0410a..99676776e437ea7ccd91628c8a10147db97026e1 100644 --- a/gst/alpha/gstalphacolor.c +++ b/gst/alpha/gstalphacolor.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/alpha/gstalphacolor.h b/gst/alpha/gstalphacolor.h index ca0e5cc41cc76b7857d2cb58af03918349ce4eef..540f621297a9b2c8b00e8503864fc98cbe6500e3 100644 --- a/gst/alpha/gstalphacolor.h +++ b/gst/alpha/gstalphacolor.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GST_ALPHA_COLOR_H_ diff --git a/gst/apetag/Makefile.in b/gst/apetag/Makefile.in index c52048a782200fbbf519ff9b0c287c87fcfc3ae8..1f960441b847471dc3e82ccb2cd542991a47209e 100644 --- a/gst/apetag/Makefile.in +++ b/gst/apetag/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/apetag -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -135,10 +161,23 @@ libgstapetag_la_OBJECTS = $(am_libgstapetag_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstapetag_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstapetag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstapetag_la_CFLAGS) $(CFLAGS) \ $(libgstapetag_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstapetag_la_SOURCES) DIST_SOURCES = $(libgstapetag_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -551,6 +604,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -577,12 +631,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstapetag.la: $(libgstapetag_la_OBJECTS) $(libgstapetag_la_DEPENDENCIES) $(EXTRA_libgstapetag_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstapetag_la_LINK) -rpath $(plugindir) $(libgstapetag_la_OBJECTS) $(libgstapetag_la_LIBADD) $(LIBS) @@ -628,26 +685,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -659,15 +705,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -676,6 +718,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -820,19 +877,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/apetag/gstapedemux.c b/gst/apetag/gstapedemux.c index 4181d98d791223a8ba39b246f4011bd8b6445518..840765441ca05c13b58ab5eb128e29f059ad3b94 100644 --- a/gst/apetag/gstapedemux.c +++ b/gst/apetag/gstapedemux.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/apetag/gstapedemux.h b/gst/apetag/gstapedemux.h index 3378e5b47a041f1057ea7f44f344ec9b3e67b761..f340547b8bea5a38cbb79f4f5fd12925d05fb4a4 100644 --- a/gst/apetag/gstapedemux.h +++ b/gst/apetag/gstapedemux.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_APE_DEMUX_H__ diff --git a/gst/audiofx/Makefile.am b/gst/audiofx/Makefile.am index c0e7297dedccfdbc2dc88616d0cfd36027205ba7..3ca249c12da358b13aef7db50b7280fe9e7ae9d7 100644 --- a/gst/audiofx/Makefile.am +++ b/gst/audiofx/Makefile.am @@ -5,6 +5,9 @@ plugin_LTLIBRARIES = libgstaudiofx.la # FIXME 0.11: ignore GValueArray warnings for now until this is sorted ERROR_CFLAGS= +ORC_SOURCE=audiopanoramaorc +include $(top_srcdir)/common/orc.mak + # sources used to compile this plug-in libgstaudiofx_la_SOURCES = audiofx.c\ audiopanorama.c \ @@ -20,17 +23,21 @@ libgstaudiofx_la_SOURCES = audiofx.c\ audiowsincband.c \ audiowsinclimit.c \ audiofirfilter.c \ - audioecho.c + audioecho.c \ + gstscaletempo.c +nodist_libgstaudiofx_la_SOURCES = $(ORC_NODIST_SOURCES) # flags used to compile this plugin libgstaudiofx_la_CFLAGS = $(GST_CFLAGS) \ $(GST_BASE_CFLAGS) \ - $(GST_PLUGINS_BASE_CFLAGS) + $(GST_PLUGINS_BASE_CFLAGS) \ + $(ORC_CFLAGS) libgstaudiofx_la_LIBADD = $(GST_LIBS) \ $(GST_BASE_LIBS) \ $(GST_PLUGINS_BASE_LIBS) \ -lgstaudio-$(GST_API_VERSION) \ -lgstfft-$(GST_API_VERSION) \ + $(ORC_LIBS) \ $(LIBM) libgstaudiofx_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstaudiofx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) @@ -50,6 +57,7 @@ noinst_HEADERS = audiopanorama.h \ audiowsinclimit.h \ audiofirfilter.h \ audioecho.h \ + gstscaletempo.h \ math_compat.h Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/audiofx/Makefile.in b/gst/audiofx/Makefile.in index 12081a7cf4a9d71162d9fbe07df137b5e1ecfe4c..b659b9ee30f610a9a1fdbabb2af48c602d937653 100644 --- a/gst/audiofx/Makefile.in +++ b/gst/audiofx/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,25 +16,75 @@ # plugindir is set in configure +# +# This is a makefile.am fragment to build Orc code. +# +# Define ORC_SOURCE and then include this file, such as: +# +# ORC_SOURCE=gstadderorc +# include $(top_srcdir)/common/orc.mak +# +# This fragment will create tmp-orc.c and gstadderorc.h from +# gstadderorc.orc. +# +# When 'make dist' is run at the top level, or 'make orc-update' +# in a directory including this fragment, the generated source +# files will be copied to $(ORC_SOURCE)-dist.[ch]. These files +# should be checked in to git, since they are used if Orc is +# disabled. +# +# Note that this file defines BUILT_SOURCES, so any later usage +# of BUILT_SOURCES in the Makefile.am that includes this file +# must use '+='. +# + VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,16 +104,15 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) subdir = gst/audiofx -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -132,7 +180,7 @@ LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstaudiofx_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstaudiofx_la_OBJECTS = libgstaudiofx_la-audiofx.lo \ libgstaudiofx_la-audiopanorama.lo \ libgstaudiofx_la-audioinvert.lo \ @@ -147,15 +195,32 @@ am_libgstaudiofx_la_OBJECTS = libgstaudiofx_la-audiofx.lo \ libgstaudiofx_la-audiowsincband.lo \ libgstaudiofx_la-audiowsinclimit.lo \ libgstaudiofx_la-audiofirfilter.lo \ - libgstaudiofx_la-audioecho.lo -libgstaudiofx_la_OBJECTS = $(am_libgstaudiofx_la_OBJECTS) + libgstaudiofx_la-audioecho.lo \ + libgstaudiofx_la-gstscaletempo.lo +am__objects_1 = libgstaudiofx_la-tmp-orc.lo +nodist_libgstaudiofx_la_OBJECTS = $(am__objects_1) +libgstaudiofx_la_OBJECTS = $(am_libgstaudiofx_la_OBJECTS) \ + $(nodist_libgstaudiofx_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstaudiofx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) \ $(libgstaudiofx_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -168,21 +233,18 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libgstaudiofx_la_SOURCES) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgstaudiofx_la_SOURCES) \ + $(nodist_libgstaudiofx_la_SOURCES) DIST_SOURCES = $(libgstaudiofx_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ @@ -190,6 +252,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -360,6 +439,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -521,6 +601,16 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstaudiofx.la +ORC_SOURCE = audiopanoramaorc +EXTRA_DIST = $(ORC_SOURCE).orc +ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h +BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h +orcc_v_gen = $(orcc_v_gen_$(V)) +orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY)) +orcc_v_gen_0 = @echo " ORCC $@"; +cp_v_gen = $(cp_v_gen_$(V)) +cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY)) +cp_v_gen_0 = @echo " CP $@"; # sources used to compile this plug-in libgstaudiofx_la_SOURCES = audiofx.c\ @@ -537,19 +627,23 @@ libgstaudiofx_la_SOURCES = audiofx.c\ audiowsincband.c \ audiowsinclimit.c \ audiofirfilter.c \ - audioecho.c + audioecho.c \ + gstscaletempo.c +nodist_libgstaudiofx_la_SOURCES = $(ORC_NODIST_SOURCES) # flags used to compile this plugin libgstaudiofx_la_CFLAGS = $(GST_CFLAGS) \ $(GST_BASE_CFLAGS) \ - $(GST_PLUGINS_BASE_CFLAGS) + $(GST_PLUGINS_BASE_CFLAGS) \ + $(ORC_CFLAGS) libgstaudiofx_la_LIBADD = $(GST_LIBS) \ $(GST_BASE_LIBS) \ $(GST_PLUGINS_BASE_LIBS) \ -lgstaudio-$(GST_API_VERSION) \ -lgstfft-$(GST_API_VERSION) \ + $(ORC_LIBS) \ $(LIBM) libgstaudiofx_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) @@ -570,13 +664,15 @@ noinst_HEADERS = audiopanorama.h \ audiowsinclimit.h \ audiofirfilter.h \ audioecho.h \ + gstscaletempo.h \ math_compat.h -all: all-am +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/orc.mak $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -597,6 +693,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/orc.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -606,6 +703,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -632,12 +730,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstaudiofx.la: $(libgstaudiofx_la_OBJECTS) $(libgstaudiofx_la_DEPENDENCIES) $(EXTRA_libgstaudiofx_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstaudiofx_la_LINK) -rpath $(plugindir) $(libgstaudiofx_la_OBJECTS) $(libgstaudiofx_la_LIBADD) $(LIBS) @@ -662,6 +763,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-audiopanorama.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-audiowsincband.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-audiowsinclimit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-gstscaletempo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-tmp-orc.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -789,32 +892,35 @@ libgstaudiofx_la-audioecho.lo: audioecho.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioecho.lo `test -f 'audioecho.c' || echo '$(srcdir)/'`audioecho.c +libgstaudiofx_la-gstscaletempo.lo: gstscaletempo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-gstscaletempo.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-gstscaletempo.Tpo -c -o libgstaudiofx_la-gstscaletempo.lo `test -f 'gstscaletempo.c' || echo '$(srcdir)/'`gstscaletempo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-gstscaletempo.Tpo $(DEPDIR)/libgstaudiofx_la-gstscaletempo.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstscaletempo.c' object='libgstaudiofx_la-gstscaletempo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-gstscaletempo.lo `test -f 'gstscaletempo.c' || echo '$(srcdir)/'`gstscaletempo.c + +libgstaudiofx_la-tmp-orc.lo: tmp-orc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-tmp-orc.Tpo -c -o libgstaudiofx_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-tmp-orc.Tpo $(DEPDIR)/libgstaudiofx_la-tmp-orc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstaudiofx_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c + mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -826,15 +932,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -843,6 +945,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -877,14 +994,19 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook check-am: all-am -check: check-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: install-am +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am @@ -914,10 +1036,11 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am -clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ - mostlyclean-am +clean-am: clean-generic clean-libtool clean-local \ + clean-pluginLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -985,10 +1108,11 @@ ps-am: uninstall-am: uninstall-pluginLTLIBRARIES -.MAKE: install-am install-strip +.MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-local clean-pluginLTLIBRARIES \ + cscopelist-am ctags ctags-am dist-hook distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -999,8 +1123,45 @@ uninstall-am: uninstall-pluginLTLIBRARIES installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES - + tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES + + +orc-update: tmp-orc.c $(ORC_SOURCE).h + $(top_srcdir)/common/gst-indent tmp-orc.c + cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c + cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h + +@HAVE_ORCC_TRUE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc +@HAVE_ORCC_TRUE@ $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc + +@HAVE_ORCC_TRUE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc +@HAVE_ORCC_TRUE@ $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc +@HAVE_ORCC_FALSE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c +@HAVE_ORCC_FALSE@ $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c + +@HAVE_ORCC_FALSE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c +@HAVE_ORCC_FALSE@ $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h + +clean-local: clean-orc +.PHONY: clean-orc +clean-orc: + rm -f tmp-orc.c $(ORC_SOURCE).h + +dist-hook: dist-hook-orc +.PHONY: dist-hook-orc + +# we try and copy updated orc -dist files below, but don't fail if it +# doesn't work as the srcdir might not be writable +dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h + $(top_srcdir)/common/gst-indent tmp-orc.c + rm -f tmp-orc.c~ + cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \ + cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true + cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \ + cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true + cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c + cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ diff --git a/gst/audiofx/audioamplify.c b/gst/audiofx/audioamplify.c index 953527d5e8a54d68259222e5468003de7b8f1040..ad5f3c535e26a32d5289c080cbbc033ba18b9e68 100644 --- a/gst/audiofx/audioamplify.c +++ b/gst/audiofx/audioamplify.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/audiofx/audioamplify.h b/gst/audiofx/audioamplify.h index 2f5fc413f6688647b1d10fdf61e2e28bf0a76feb..573eed15550a2490587c24b09458fb68a8242f8c 100644 --- a/gst/audiofx/audioamplify.h +++ b/gst/audiofx/audioamplify.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUDIO_AMPLIFY_H__ diff --git a/gst/audiofx/audiochebband.c b/gst/audiofx/audiochebband.c index a51a9735a3a318d8ce1ff7a8876afa43b9c55b3c..d295009272fa223b3c59548799e596e6620f8a1f 100644 --- a/gst/audiofx/audiochebband.c +++ b/gst/audiofx/audiochebband.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/audiofx/audiochebband.h b/gst/audiofx/audiochebband.h index 6af31486bc865a0d1a0e482e00ea7b3704607c92..58bdaf0e344d91354c3d91a45f3b346c6ef509b1 100644 --- a/gst/audiofx/audiochebband.h +++ b/gst/audiofx/audiochebband.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUDIO_CHEB_BAND_H__ diff --git a/gst/audiofx/audiocheblimit.c b/gst/audiofx/audiocheblimit.c index f50d25bf91f0c0b14b6098b67049b127a1593f07..549a9d2e3dd739091fec45ddf156da23b75e1424 100644 --- a/gst/audiofx/audiocheblimit.c +++ b/gst/audiofx/audiocheblimit.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/audiofx/audiocheblimit.h b/gst/audiofx/audiocheblimit.h index a9f42ba3998aa279184ea4cd6bed651bf511a3a7..19309601e77578b9a07fd86ca2a30315a0868558 100644 --- a/gst/audiofx/audiocheblimit.h +++ b/gst/audiofx/audiocheblimit.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUDIO_CHEB_LIMIT_H__ diff --git a/gst/audiofx/audiodynamic.c b/gst/audiofx/audiodynamic.c index e2d87dcb782f4f8a1a0053ffb0e8ecc6c174dee8..bbc9e93c9b1ff732829109770e60c4ca7290c3b9 100644 --- a/gst/audiofx/audiodynamic.c +++ b/gst/audiofx/audiodynamic.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/audiofx/audiodynamic.h b/gst/audiofx/audiodynamic.h index 66cf9b141d658a2c8709024ef2ff49e408d09e04..09f3bc633a82b3f826f11657627084c691537ecf 100644 --- a/gst/audiofx/audiodynamic.h +++ b/gst/audiofx/audiodynamic.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUDIO_DYNAMIC_H__ diff --git a/gst/audiofx/audioecho.c b/gst/audiofx/audioecho.c index 10b51d9461926ead7dcdb525867343554554009e..2c09c8864e3d96a3b9140b3d41e352f4f7824b8c 100644 --- a/gst/audiofx/audioecho.c +++ b/gst/audiofx/audioecho.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/audiofx/audioecho.h b/gst/audiofx/audioecho.h index 1be3cbcc4ff9989670819f13bd615a2c67cca5c0..a3a3de36d7bcc29cb535a6d88b1994db76469ca7 100644 --- a/gst/audiofx/audioecho.h +++ b/gst/audiofx/audioecho.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUDIO_ECHO_H__ diff --git a/gst/audiofx/audiofirfilter.c b/gst/audiofx/audiofirfilter.c index 03bbf1129d6fdc8a0cc7ebb51170b9f05389b0c8..e0887ad49a1d2d89ec4d07930b6a8dd870be5f97 100644 --- a/gst/audiofx/audiofirfilter.c +++ b/gst/audiofx/audiofirfilter.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/gst/audiofx/audiofirfilter.h b/gst/audiofx/audiofirfilter.h index 6ade86f2eb5b4cdb6cb07e80da7edab409f960db..f3b347583b61d97edadb50f5ddd1b2690cefb5f1 100644 --- a/gst/audiofx/audiofirfilter.h +++ b/gst/audiofx/audiofirfilter.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/gst/audiofx/audiofx.c b/gst/audiofx/audiofx.c index e8dfa6c32dc529ee9e4e4cc30087f88f802040db..dbddabef1dc7458a93348e9b34adcc2efe668e49 100644 --- a/gst/audiofx/audiofx.c +++ b/gst/audiofx/audiofx.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -36,6 +36,7 @@ #include "audiowsinclimit.h" #include "audiofirfilter.h" #include "audioecho.h" +#include "gstscaletempo.h" /* entry point to initialize the plug-in * initialize the plug-in itself @@ -68,7 +69,9 @@ plugin_init (GstPlugin * plugin) gst_element_register (plugin, "audiofirfilter", GST_RANK_NONE, GST_TYPE_AUDIO_FIR_FILTER) && gst_element_register (plugin, "audioecho", GST_RANK_NONE, - GST_TYPE_AUDIO_ECHO)); + GST_TYPE_AUDIO_ECHO) && + gst_element_register (plugin, "scaletempo", GST_RANK_NONE, + GST_TYPE_SCALETEMPO)); } GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, diff --git a/gst/audiofx/audiofxbasefirfilter.c b/gst/audiofx/audiofxbasefirfilter.c index aaa6f0685ecc2ccf9893b95c2c3addc15f98b674..dd906b5397f48e3398e22d56ec3b173e5191ae53 100644 --- a/gst/audiofx/audiofxbasefirfilter.c +++ b/gst/audiofx/audiofxbasefirfilter.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/gst/audiofx/audiofxbasefirfilter.h b/gst/audiofx/audiofxbasefirfilter.h index 5bbc50b51d3ba739075797b763733dde30ca1b90..2bd5561df7d2502569a9bdd84b8a87d1ee99a12d 100644 --- a/gst/audiofx/audiofxbasefirfilter.h +++ b/gst/audiofx/audiofxbasefirfilter.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/gst/audiofx/audiofxbaseiirfilter.c b/gst/audiofx/audiofxbaseiirfilter.c index 8fd0977bc00c7bbced21ee16b5b0178337bcc21c..50a00da7c39f9a527f1d21ef862311a8cea5d071 100644 --- a/gst/audiofx/audiofxbaseiirfilter.c +++ b/gst/audiofx/audiofxbaseiirfilter.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/audiofx/audiofxbaseiirfilter.h b/gst/audiofx/audiofxbaseiirfilter.h index 8cf91c80640fc987df41ab8f3e4f6261227924ee..d0e8b8b5fb92ee9c2c7eb4463741c3e62186a9a9 100644 --- a/gst/audiofx/audiofxbaseiirfilter.h +++ b/gst/audiofx/audiofxbaseiirfilter.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUDIO_FX_BASE_IIR_FILTER_H__ diff --git a/gst/audiofx/audioiirfilter.c b/gst/audiofx/audioiirfilter.c index 0882017d84c75445a0b5ccc487a0a63864c96a9c..cf3070f155eb5787ea868619c1041b531154fa72 100644 --- a/gst/audiofx/audioiirfilter.c +++ b/gst/audiofx/audioiirfilter.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/gst/audiofx/audioiirfilter.h b/gst/audiofx/audioiirfilter.h index 1cf72f4c64ceab864d5d55fe3e5ff614cce4f8c0..ab39c5be9f3d118ed74bc802db3cf33505252cd7 100644 --- a/gst/audiofx/audioiirfilter.h +++ b/gst/audiofx/audioiirfilter.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/gst/audiofx/audioinvert.c b/gst/audiofx/audioinvert.c index 0dc8a962fb02abc7cd994815785facff5ed4d4ae..7671db1b54c11a4e34c54a3d9bda284d5b8f65d3 100644 --- a/gst/audiofx/audioinvert.c +++ b/gst/audiofx/audioinvert.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/audiofx/audioinvert.h b/gst/audiofx/audioinvert.h index b0d841a887c28af7b800902eca8b1cc994085b8e..cbb5b3f4410c6175751109ee1ffc6539c098ed30 100644 --- a/gst/audiofx/audioinvert.h +++ b/gst/audiofx/audioinvert.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUDIO_INVERT_H__ diff --git a/gst/audiofx/audiokaraoke.c b/gst/audiofx/audiokaraoke.c index 16266f6426450f6f158653e3ecc66318ca0470a3..9d5d575f5a2153890bf5ac1fd8d59ebcf25d7381 100644 --- a/gst/audiofx/audiokaraoke.c +++ b/gst/audiofx/audiokaraoke.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/audiofx/audiokaraoke.h b/gst/audiofx/audiokaraoke.h index a299b887822c60a1294bccdcc456786fed675bca..1391efc33c96fa644c4b65d23a4bbb35fc754901 100644 --- a/gst/audiofx/audiokaraoke.h +++ b/gst/audiofx/audiokaraoke.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUDIO_KARAOKE_H__ diff --git a/gst/audiofx/audiopanorama.c b/gst/audiofx/audiopanorama.c index ee8da45c02be5b9681c6063b6caf978ce343e706..295c1bd4e205f33d7c52a159063cd95794a91d21 100644 --- a/gst/audiofx/audiopanorama.c +++ b/gst/audiofx/audiopanorama.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -45,18 +45,19 @@ #include <gst/gst.h> #include <gst/base/gstbasetransform.h> +#ifdef HAVE_ORC +#include <orc/orcfunctions.h> +#else +#define orc_memset memset +#endif + #include "audiopanorama.h" +#include "audiopanoramaorc.h" #define GST_CAT_DEFAULT gst_audio_panorama_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); /* Filter signals and args */ -enum -{ - /* FILL ME */ - LAST_SIGNAL -}; - enum { PROP_0, @@ -64,13 +65,6 @@ enum PROP_METHOD }; -enum -{ - METHOD_PSYCHOACOUSTIC = 0, - METHOD_SIMPLE, - NUM_METHODS -}; - #define GST_TYPE_AUDIO_PANORAMA_METHOD (gst_audio_panorama_method_get_type ()) static GType gst_audio_panorama_method_get_type (void) @@ -95,21 +89,17 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-raw, " "format = (string) { " GST_AUDIO_NE (F32) ", " GST_AUDIO_NE (S16) "}, " - "rate = (int) [ 1, MAX ], " "channels = (int) 1, " - "layout = (string) interleaved;" - "audio/x-raw, " - "format = (string) { " GST_AUDIO_NE (F32) ", " GST_AUDIO_NE (S16) "}, " - "rate = (int) [ 1, MAX ], " "channels = (int) 2, " - "layout = (string) interleaved, " "channel-mask = (bitmask) 0x3") + "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ], " + "layout = (string) interleaved") ); static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-raw, " - "format = (string) { " GST_AUDIO_NE (S32) ", " GST_AUDIO_NE (S16) "}, " + "format = (string) { " GST_AUDIO_NE (F32) ", " GST_AUDIO_NE (S16) "}, " "rate = (int) [ 1, MAX ], " "channels = (int) 2, " - "layout = (string) interleaved, " "channel-mask = (bitmask)0x3") + "layout = (string) interleaved") ); G_DEFINE_TYPE (GstAudioPanorama, gst_audio_panorama, GST_TYPE_BASE_TRANSFORM); @@ -126,23 +116,23 @@ static GstCaps *gst_audio_panorama_transform_caps (GstBaseTransform * base, static gboolean gst_audio_panorama_set_caps (GstBaseTransform * base, GstCaps * incaps, GstCaps * outcaps); -static void gst_audio_panorama_transform_m2s_int (GstAudioPanorama * filter, +static void gst_audio_panorama_m2s_int (gfloat pan, gint16 * idata, gint16 * odata, guint num_samples); -static void gst_audio_panorama_transform_s2s_int (GstAudioPanorama * filter, +static void gst_audio_panorama_s2s_int (gfloat pan, gint16 * idata, gint16 * odata, guint num_samples); -static void gst_audio_panorama_transform_m2s_float (GstAudioPanorama * filter, +static void gst_audio_panorama_m2s_float (gfloat pan, gfloat * idata, gfloat * odata, guint num_samples); -static void gst_audio_panorama_transform_s2s_float (GstAudioPanorama * filter, +static void gst_audio_panorama_s2s_float (gfloat pan, gfloat * idata, gfloat * odata, guint num_samples); -static void gst_audio_panorama_transform_m2s_int_simple (GstAudioPanorama * - filter, gint16 * idata, gint16 * odata, guint num_samples); -static void gst_audio_panorama_transform_s2s_int_simple (GstAudioPanorama * - filter, gint16 * idata, gint16 * odata, guint num_samples); -static void gst_audio_panorama_transform_m2s_float_simple (GstAudioPanorama * - filter, gfloat * idata, gfloat * odata, guint num_samples); -static void gst_audio_panorama_transform_s2s_float_simple (GstAudioPanorama * - filter, gfloat * idata, gfloat * odata, guint num_samples); +static void gst_audio_panorama_m2s_int_simple (gfloat pan, + gint16 * idata, gint16 * odata, guint num_samples); +static void gst_audio_panorama_s2s_int_simple (gfloat pan, + gint16 * idata, gint16 * odata, guint num_samples); +static void gst_audio_panorama_m2s_float_simple (gfloat pan, + gfloat * idata, gfloat * odata, guint num_samples); +static void gst_audio_panorama_s2s_float_simple (gfloat pan, + gfloat * idata, gfloat * odata, guint num_samples); static GstFlowReturn gst_audio_panorama_transform (GstBaseTransform * base, GstBuffer * inbuf, GstBuffer * outbuf); @@ -151,20 +141,20 @@ static GstFlowReturn gst_audio_panorama_transform (GstBaseTransform * base, /* Table with processing functions: [channels][format][method] */ static GstAudioPanoramaProcessFunc panorama_process_functions[2][2][2] = { { - {(GstAudioPanoramaProcessFunc) gst_audio_panorama_transform_m2s_int, - (GstAudioPanoramaProcessFunc) - gst_audio_panorama_transform_m2s_int_simple}, - {(GstAudioPanoramaProcessFunc) gst_audio_panorama_transform_m2s_float, - (GstAudioPanoramaProcessFunc) - gst_audio_panorama_transform_m2s_float_simple} + { + (GstAudioPanoramaProcessFunc) gst_audio_panorama_m2s_int, + (GstAudioPanoramaProcessFunc) gst_audio_panorama_m2s_int_simple}, + { + (GstAudioPanoramaProcessFunc) gst_audio_panorama_m2s_float, + (GstAudioPanoramaProcessFunc) gst_audio_panorama_m2s_float_simple} }, { - {(GstAudioPanoramaProcessFunc) gst_audio_panorama_transform_s2s_int, - (GstAudioPanoramaProcessFunc) - gst_audio_panorama_transform_s2s_int_simple}, - {(GstAudioPanoramaProcessFunc) gst_audio_panorama_transform_s2s_float, - (GstAudioPanoramaProcessFunc) - gst_audio_panorama_transform_s2s_float_simple} + { + (GstAudioPanoramaProcessFunc) gst_audio_panorama_s2s_int, + (GstAudioPanoramaProcessFunc) gst_audio_panorama_s2s_int_simple}, + { + (GstAudioPanoramaProcessFunc) gst_audio_panorama_s2s_float, + (GstAudioPanoramaProcessFunc) gst_audio_panorama_s2s_float_simple} } }; @@ -253,10 +243,7 @@ gst_audio_panorama_set_process_function (GstAudioPanorama * filter, } format_index = GST_AUDIO_FORMAT_INFO_IS_FLOAT (finfo) ? 1 : 0; - method_index = filter->method; - if (method_index >= NUM_METHODS || method_index < 0) - method_index = METHOD_PSYCHOACOUSTIC; filter->process = panorama_process_functions[channel_index][format_index][method_index]; @@ -326,20 +313,33 @@ gst_audio_panorama_transform_caps (GstBaseTransform * base, { GstCaps *res; GstStructure *structure; + gint i; - /* transform caps gives one single caps so we can just replace - * the channel property with our range. */ + /* replace the channel property with our range. */ res = gst_caps_copy (caps); - structure = gst_caps_get_structure (res, 0); - if (direction == GST_PAD_SRC) { - GST_INFO ("allow 1-2 channels"); - gst_structure_set (structure, "channels", GST_TYPE_INT_RANGE, 1, 2, NULL); - gst_structure_remove_field (structure, "channel-mask"); - } else { - GST_INFO ("allow 2 channels"); - gst_structure_set (structure, "channels", G_TYPE_INT, 2, NULL); + for (i = 0; i < gst_caps_get_size (res); i++) { + structure = gst_caps_get_structure (res, i); + if (direction == GST_PAD_SRC) { + GST_INFO_OBJECT (base, "[%d] allow 1-2 channels", i); + gst_structure_set (structure, "channels", GST_TYPE_INT_RANGE, 1, 2, NULL); + } else { + GST_INFO_OBJECT (base, "[%d] allow 2 channels", i); + gst_structure_set (structure, "channels", G_TYPE_INT, 2, NULL); + } gst_structure_remove_field (structure, "channel-mask"); } + GST_DEBUG_OBJECT (base, "transformed %" GST_PTR_FORMAT, res); + + if (filter) { + GstCaps *intersection; + + GST_DEBUG_OBJECT (base, "Using filter caps %" GST_PTR_FORMAT, filter); + intersection = + gst_caps_intersect_full (filter, res, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (res); + res = intersection; + GST_DEBUG_OBJECT (base, "Intersection %" GST_PTR_FORMAT, res); + } return res; } @@ -373,250 +373,128 @@ no_format: } /* psychoacoustic processing functions */ + +/* mono to stereo panning + * pan: -1.0 0.0 1.0 + * l: 1.0 0.5 0.0 + * r: 0.0 0.5 1.0 + * + * FIXME: we should use -3db (1/sqtr(2)) for 50:50 + */ static void -gst_audio_panorama_transform_m2s_int (GstAudioPanorama * filter, gint16 * idata, - gint16 * odata, guint num_samples) +gst_audio_panorama_m2s_int (gfloat pan, gint16 * idata, gint16 * odata, guint n) { - guint i; - gdouble val; - glong lval, rval; - gdouble rpan, lpan; - - /* pan: -1.0 0.0 1.0 - * lpan: 1.0 0.5 0.0 - * rpan: 0.0 0.5 1.0 - * - * FIXME: we should use -3db (1/sqtr(2)) for 50:50 - */ - rpan = (gdouble) (filter->panorama + 1.0) / 2.0; - lpan = 1.0 - rpan; - - for (i = 0; i < num_samples; i++) { - val = (gdouble) * idata++; - - lval = (glong) (val * lpan); - rval = (glong) (val * rpan); - - *odata++ = (gint16) CLAMP (lval, G_MININT16, G_MAXINT16); - *odata++ = (gint16) CLAMP (rval, G_MININT16, G_MAXINT16); - } + gfloat r = (pan + 1.0) / 2.0; + audiopanoramam_orc_process_s16_ch1_psy (odata, idata, 1.0 - r, r, n); } static void -gst_audio_panorama_transform_s2s_int (GstAudioPanorama * filter, gint16 * idata, - gint16 * odata, guint num_samples) +gst_audio_panorama_m2s_float (gfloat pan, gfloat * idata, + gfloat * odata, guint n) { - guint i; - glong lval, rval; - gdouble lival, rival; - gdouble lrpan, llpan, rrpan, rlpan; - - /* pan: -1.0 0.0 1.0 - * llpan: 1.0 1.0 0.0 - * lrpan: 1.0 0.0 0.0 - * rrpan: 0.0 1.0 1.0 - * rlpan: 0.0 0.0 1.0 - */ - if (filter->panorama > 0) { - rlpan = (gdouble) filter->panorama; - llpan = 1.0 - rlpan; - lrpan = 0.0; - rrpan = 1.0; - } else { - rrpan = (gdouble) (1.0 + filter->panorama); - lrpan = 1.0 - rrpan; - rlpan = 0.0; - llpan = 1.0; - } - - for (i = 0; i < num_samples; i++) { - lival = (gdouble) * idata++; - rival = (gdouble) * idata++; - - lval = lival * llpan + rival * lrpan; - rval = lival * rlpan + rival * rrpan; - - *odata++ = (gint16) CLAMP (lval, G_MININT16, G_MAXINT16); - *odata++ = (gint16) CLAMP (rval, G_MININT16, G_MAXINT16); - } + gfloat r = (pan + 1.0) / 2.0; + audiopanoramam_orc_process_f32_ch1_psy (odata, idata, 1.0 - r, r, n); } +/* stereo balance + * pan: -1.0 0.0 1.0 + * ll: 1.0 1.0 0.0 + * lr: 1.0 0.0 0.0 + * rr: 0.0 1.0 1.0 + * rl: 0.0 0.0 1.0 + */ static void -gst_audio_panorama_transform_m2s_float (GstAudioPanorama * filter, - gfloat * idata, gfloat * odata, guint num_samples) +gst_audio_panorama_s2s_int (gfloat pan, gint16 * idata, gint16 * odata, guint n) { - guint i; - gfloat val; - gdouble rpan, lpan; - - /* pan: -1.0 0.0 1.0 - * lpan: 1.0 0.5 0.0 - * rpan: 0.0 0.5 1.0 - * - * FIXME: we should use -3db (1/sqtr(2)) for 50:50 - */ - rpan = (gdouble) (filter->panorama + 1.0) / 2.0; - lpan = 1.0 - rpan; - - for (i = 0; i < num_samples; i++) { - val = *idata++; - - *odata++ = val * lpan; - *odata++ = val * rpan; + if (pan == 0.0) { + audiopanoramam_orc_process_s16_ch2_none (odata, idata, n); + } else if (pan > 0.0) { + gfloat rl = pan; + gfloat ll = 1.0 - rl; + audiopanoramam_orc_process_s16_ch2_psy_right (odata, idata, ll, rl, n); + } else { + gfloat rr = 1.0 + pan; + gfloat lr = 1.0 - rr; + audiopanoramam_orc_process_s16_ch2_psy_left (odata, idata, lr, rr, n); } } static void -gst_audio_panorama_transform_s2s_float (GstAudioPanorama * filter, - gfloat * idata, gfloat * odata, guint num_samples) +gst_audio_panorama_s2s_float (gfloat pan, gfloat * idata, + gfloat * odata, guint n) { - guint i; - gfloat lival, rival; - gdouble lrpan, llpan, rrpan, rlpan; - - /* pan: -1.0 0.0 1.0 - * llpan: 1.0 1.0 0.0 - * lrpan: 1.0 0.0 0.0 - * rrpan: 0.0 1.0 1.0 - * rlpan: 0.0 0.0 1.0 - */ - if (filter->panorama > 0) { - rlpan = (gdouble) filter->panorama; - llpan = 1.0 - rlpan; - lrpan = 0.0; - rrpan = 1.0; + if (pan == 0.0) { + audiopanoramam_orc_process_f32_ch2_none (odata, idata, n); + } else if (pan > 0.0) { + gfloat rl = pan; + gfloat ll = 1.0 - rl; + audiopanoramam_orc_process_f32_ch2_psy_right (odata, idata, ll, rl, n); } else { - rrpan = (gdouble) (1.0 + filter->panorama); - lrpan = 1.0 - rrpan; - rlpan = 0.0; - llpan = 1.0; - } - - for (i = 0; i < num_samples; i++) { - lival = *idata++; - rival = *idata++; - - *odata++ = lival * llpan + rival * lrpan; - *odata++ = lival * rlpan + rival * rrpan; + gfloat rr = 1.0 + pan; + gfloat lr = 1.0 - rr; + audiopanoramam_orc_process_f32_ch2_psy_left (odata, idata, lr, rr, n); } } /* simple processing functions */ + static void -gst_audio_panorama_transform_m2s_int_simple (GstAudioPanorama * filter, - gint16 * idata, gint16 * odata, guint num_samples) +gst_audio_panorama_m2s_int_simple (gfloat pan, gint16 * idata, + gint16 * odata, guint n) { - guint i; - gdouble pan; - glong lval, rval; - - if (filter->panorama > 0.0) { - pan = 1.0 - filter->panorama; - for (i = 0; i < num_samples; i++) { - rval = *idata++; - lval = (glong) ((gdouble) rval * pan); - - *odata++ = (gint16) CLAMP (lval, G_MININT16, G_MAXINT16); - *odata++ = (gint16) rval; - } + if (pan == 0.0) { + audiopanoramam_orc_process_s16_ch1_none (odata, idata, n); + } else if (pan > 0.0) { + gfloat lpan = 1.0 - pan; + audiopanoramam_orc_process_s16_ch1_sim_left (odata, idata, lpan, n); } else { - pan = 1.0 + filter->panorama; - for (i = 0; i < num_samples; i++) { - lval = *idata++; - rval = (glong) ((gdouble) lval * pan); - - *odata++ = (gint16) lval; - *odata++ = (gint16) CLAMP (rval, G_MININT16, G_MAXINT16); - } + gfloat rpan = 1.0 + pan; + audiopanoramam_orc_process_s16_ch1_sim_right (odata, idata, rpan, n); } } static void -gst_audio_panorama_transform_s2s_int_simple (GstAudioPanorama * filter, - gint16 * idata, gint16 * odata, guint num_samples) +gst_audio_panorama_s2s_int_simple (gfloat pan, gint16 * idata, + gint16 * odata, guint n) { - guint i; - glong lval, rval; - gdouble lival, rival, pan; - - if (filter->panorama > 0.0) { - pan = 1.0 - filter->panorama; - for (i = 0; i < num_samples; i++) { - lival = (gdouble) * idata++; - rival = (gdouble) * idata++; - - lval = (glong) (lival * pan); - rval = (glong) rival; - - *odata++ = (gint16) CLAMP (lval, G_MININT16, G_MAXINT16); - *odata++ = (gint16) rval; - } + if (pan == 0.0) { + audiopanoramam_orc_process_s16_ch2_none (odata, idata, n); + } else if (pan > 0.0) { + gfloat lpan = 1.0 - pan; + audiopanoramam_orc_process_s16_ch2_sim_left (odata, idata, lpan, n); } else { - pan = 1.0 + filter->panorama; - for (i = 0; i < num_samples; i++) { - lival = (gdouble) * idata++; - rival = (gdouble) * idata++; - - lval = (glong) lival; - rval = (glong) (rival * pan); - - *odata++ = (gint16) lval; - *odata++ = (gint16) CLAMP (rval, G_MININT16, G_MAXINT16); - } + gfloat rpan = 1.0 + pan; + audiopanoramam_orc_process_s16_ch2_sim_right (odata, idata, rpan, n); } } static void -gst_audio_panorama_transform_m2s_float_simple (GstAudioPanorama * filter, - gfloat * idata, gfloat * odata, guint num_samples) +gst_audio_panorama_m2s_float_simple (gfloat pan, gfloat * idata, + gfloat * odata, guint n) { - guint i; - gfloat val, pan; - - if (filter->panorama > 0.0) { - pan = 1.0 - filter->panorama; - for (i = 0; i < num_samples; i++) { - val = *idata++; - - *odata++ = val * pan; - *odata++ = val; - } + if (pan == 0.0) { + audiopanoramam_orc_process_f32_ch1_none (odata, idata, n); + } else if (pan > 0.0) { + gfloat lpan = 1.0 - pan; + audiopanoramam_orc_process_f32_ch1_sim_left (odata, idata, lpan, n); } else { - pan = 1.0 + filter->panorama; - for (i = 0; i < num_samples; i++) { - val = *idata++; - - *odata++ = val; - *odata++ = val * pan; - } + gfloat rpan = 1.0 + pan; + audiopanoramam_orc_process_f32_ch1_sim_right (odata, idata, rpan, n); } } static void -gst_audio_panorama_transform_s2s_float_simple (GstAudioPanorama * filter, - gfloat * idata, gfloat * odata, guint num_samples) +gst_audio_panorama_s2s_float_simple (gfloat pan, gfloat * idata, + gfloat * odata, guint n) { - guint i; - gfloat lival, rival, pan; - - if (filter->panorama > 0.0) { - pan = 1.0 - filter->panorama; - for (i = 0; i < num_samples; i++) { - lival = *idata++; - rival = *idata++; - - *odata++ = lival * pan; - *odata++ = rival; - } + if (pan == 0.0) { + audiopanoramam_orc_process_f32_ch2_none (odata, idata, n); + } else if (pan > 0.0) { + gfloat lpan = 1.0 - pan; + audiopanoramam_orc_process_f32_ch2_sim_left (odata, idata, lpan, n); } else { - pan = 1.0 + filter->panorama; - for (i = 0; i < num_samples; i++) { - lival = *idata++; - rival = *idata++; - - *odata++ = lival; - *odata++ = rival * pan; - } + gfloat rpan = 1.0 + pan; + audiopanoramam_orc_process_f32_ch2_sim_right (odata, idata, rpan, n); } } @@ -627,34 +505,32 @@ gst_audio_panorama_transform (GstBaseTransform * base, GstBuffer * inbuf, GstBuffer * outbuf) { GstAudioPanorama *filter = GST_AUDIO_PANORAMA (base); - GstClockTime timestamp, stream_time; + GstClockTime ts; GstMapInfo inmap, outmap; - timestamp = GST_BUFFER_TIMESTAMP (inbuf); - stream_time = - gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME, timestamp); + ts = gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (inbuf)); - GST_DEBUG_OBJECT (filter, "sync to %" GST_TIME_FORMAT, - GST_TIME_ARGS (timestamp)); - - if (GST_CLOCK_TIME_IS_VALID (stream_time)) - gst_object_sync_values (GST_OBJECT (filter), stream_time); + if (GST_CLOCK_TIME_IS_VALID (ts)) { + GST_DEBUG_OBJECT (filter, "sync to %" GST_TIME_FORMAT, GST_TIME_ARGS (ts)); + gst_object_sync_values (GST_OBJECT (filter), ts); + } - gst_buffer_map (inbuf, &inmap, GST_MAP_READ); gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE); if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_GAP))) { GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_GAP); - memset (outmap.data, 0, outmap.size); + orc_memset (outmap.data, 0, outmap.size); } else { - /* output always stereo, input mono or stereo, + /* output is always stereo, input is mono or stereo, * and info describes input format */ guint num_samples = outmap.size / (2 * GST_AUDIO_INFO_BPS (&filter->info)); - filter->process (filter, inmap.data, outmap.data, num_samples); + gst_buffer_map (inbuf, &inmap, GST_MAP_READ); + filter->process (filter->panorama, inmap.data, outmap.data, num_samples); + gst_buffer_unmap (inbuf, &inmap); } - gst_buffer_unmap (inbuf, &inmap); gst_buffer_unmap (outbuf, &outmap); return GST_FLOW_OK; diff --git a/gst/audiofx/audiopanorama.h b/gst/audiofx/audiopanorama.h index e445f4dd637e7849ab6a6c86fb50cd186d186798..44d1cec2b55babfb38f8af298aebae3f543aa1b0 100644 --- a/gst/audiofx/audiopanorama.h +++ b/gst/audiofx/audiopanorama.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUDIO_PANORAMA_H__ @@ -37,18 +37,24 @@ G_BEGIN_DECLS typedef struct _GstAudioPanorama GstAudioPanorama; typedef struct _GstAudioPanoramaClass GstAudioPanoramaClass; -typedef void (*GstAudioPanoramaProcessFunc)(GstAudioPanorama*, guint8*, guint8*, guint); +typedef void (*GstAudioPanoramaProcessFunc)(gfloat, guint8*, guint8*, guint); + +typedef enum +{ + METHOD_PSYCHOACOUSTIC = 0, + METHOD_SIMPLE +} GstAudioPanoramaMethod; struct _GstAudioPanorama { GstBaseTransform element; + /* properties */ gfloat panorama; + GstAudioPanoramaMethod method; /* < private > */ GstAudioPanoramaProcessFunc process; - GstAudioInfo info; - gint method; }; struct _GstAudioPanoramaClass { diff --git a/gst/audiofx/audiopanoramaorc-dist.c b/gst/audiofx/audiopanoramaorc-dist.c new file mode 100644 index 0000000000000000000000000000000000000000..dc871464218e30e1c57032b90d2eccc25cb1cea9 --- /dev/null +++ b/gst/audiofx/audiopanoramaorc-dist.c @@ -0,0 +1,3977 @@ + +/* autogenerated from audiopanoramaorc.orc */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include <glib.h> + +#ifndef _ORC_INTEGER_TYPEDEFS_ +#define _ORC_INTEGER_TYPEDEFS_ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include <stdint.h> +typedef int8_t orc_int8; +typedef int16_t orc_int16; +typedef int32_t orc_int32; +typedef int64_t orc_int64; +typedef uint8_t orc_uint8; +typedef uint16_t orc_uint16; +typedef uint32_t orc_uint32; +typedef uint64_t orc_uint64; +#define ORC_UINT64_C(x) UINT64_C(x) +#elif defined(_MSC_VER) +typedef signed __int8 orc_int8; +typedef signed __int16 orc_int16; +typedef signed __int32 orc_int32; +typedef signed __int64 orc_int64; +typedef unsigned __int8 orc_uint8; +typedef unsigned __int16 orc_uint16; +typedef unsigned __int32 orc_uint32; +typedef unsigned __int64 orc_uint64; +#define ORC_UINT64_C(x) (x##Ui64) +#define inline __inline +#else +#include <limits.h> +typedef signed char orc_int8; +typedef short orc_int16; +typedef int orc_int32; +typedef unsigned char orc_uint8; +typedef unsigned short orc_uint16; +typedef unsigned int orc_uint32; +#if INT_MAX == LONG_MAX +typedef long long orc_int64; +typedef unsigned long long orc_uint64; +#define ORC_UINT64_C(x) (x##ULL) +#else +typedef long orc_int64; +typedef unsigned long orc_uint64; +#define ORC_UINT64_C(x) (x##UL) +#endif +#endif +typedef union +{ + orc_int16 i; + orc_int8 x2[2]; +} orc_union16; +typedef union +{ + orc_int32 i; + float f; + orc_int16 x2[2]; + orc_int8 x4[4]; +} orc_union32; +typedef union +{ + orc_int64 i; + double f; + orc_int32 x2[2]; + float x2f[2]; + orc_int16 x4[4]; +} orc_union64; +#endif +#ifndef ORC_RESTRICT +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define ORC_RESTRICT restrict +#elif defined(__GNUC__) && __GNUC__ >= 4 +#define ORC_RESTRICT __restrict__ +#else +#define ORC_RESTRICT +#endif +#endif + +#ifndef ORC_INTERNAL +#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) +#define ORC_INTERNAL __attribute__((visibility("hidden"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +#define ORC_INTERNAL __hidden +#elif defined (__GNUC__) +#define ORC_INTERNAL __attribute__((visibility("hidden"))) +#else +#define ORC_INTERNAL +#endif +#endif + + +#ifndef DISABLE_ORC +#include <orc/orc.h> +#endif +void audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, int n); +void audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, int n); +void audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, int n); +void audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, int n); +void audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n); + + +/* begin Orc C target preamble */ +#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) +#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) +#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) +#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b)) +#define ORC_SB_MAX 127 +#define ORC_SB_MIN (-1-ORC_SB_MAX) +#define ORC_UB_MAX 255 +#define ORC_UB_MIN 0 +#define ORC_SW_MAX 32767 +#define ORC_SW_MIN (-1-ORC_SW_MAX) +#define ORC_UW_MAX 65535 +#define ORC_UW_MIN 0 +#define ORC_SL_MAX 2147483647 +#define ORC_SL_MIN (-1-ORC_SL_MAX) +#define ORC_UL_MAX 4294967295U +#define ORC_UL_MIN 0 +#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX) +#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX) +#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX) +#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX) +#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX) +#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX) +#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8)) +#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24)) +#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56)) +#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset))) +#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff)) +#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0)) +#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff))) +#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0)) +#ifndef ORC_RESTRICT +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define ORC_RESTRICT restrict +#elif defined(__GNUC__) && __GNUC__ >= 4 +#define ORC_RESTRICT __restrict__ +#else +#define ORC_RESTRICT +#endif +#endif +/* end Orc C target preamble */ + + + +/* audiopanoramam_orc_process_s16_ch1_none */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var32; + orc_union16 var33; + orc_union32 var34; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union16 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var32 = ptr4[i]; + /* 1: loadw */ + var33 = ptr4[i]; + /* 2: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var32.i; + _dest.x2[1] = var33.i; + var34.i = _dest.i; + } + /* 3: storel */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_s16_ch1_none (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var32; + orc_union16 var33; + orc_union32 var34; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var32 = ptr4[i]; + /* 1: loadw */ + var33 = ptr4[i]; + /* 2: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var32.i; + _dest.x2[1] = var33.i; + var34.i = _dest.i; + } + /* 3: storel */ + ptr0[i] = var34; + } + +} + +void +audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, + 49, + 54, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 4, 4, 12, 2, 2, + 195, 0, 4, 4, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch1_none); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch1_none"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch1_none); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S1, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_f32_ch1_none */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var32; + orc_union32 var33; + orc_union64 var34; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var32 = ptr4[i]; + /* 1: loadl */ + var33 = ptr4[i]; + /* 2: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var32.i; + _dest.x2[1] = var33.i; + var34.i = _dest.i; + } + /* 3: storeq */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_f32_ch1_none (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var32; + orc_union32 var33; + orc_union64 var34; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var32 = ptr4[i]; + /* 1: loadl */ + var33 = ptr4[i]; + /* 2: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var32.i; + _dest.x2[1] = var33.i; + var34.i = _dest.i; + } + /* 3: storeq */ + ptr0[i] = var34; + } + +} + +void +audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, + 51, + 50, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 8, 8, 12, 4, 4, + 194, 0, 4, 4, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch1_none); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch1_none"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch1_none); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 4, "s1"); + + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S1, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_s16_ch2_none */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var32; + orc_union32 var33; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var32 = ptr4[i]; + /* 1: copyw */ + var33.x2[0] = var32.x2[0]; + var33.x2[1] = var32.x2[1]; + /* 2: storel */ + ptr0[i] = var33; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_s16_ch2_none (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var32; + orc_union32 var33; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var32 = ptr4[i]; + /* 1: copyw */ + var33.x2[0] = var32.x2[0]; + var33.x2[1] = var32.x2[1]; + /* 2: storel */ + ptr0[i] = var33; + } + +} + +void +audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, + 49, + 54, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 4, 4, 12, 4, 4, + 21, 1, 79, 0, 4, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_none); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_none"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_none); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + + orc_program_append_2 (p, "copyw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_f32_ch2_none */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var32; + orc_union64 var33; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union64 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var32 = ptr4[i]; + /* 1: copyl */ + var33.x2[0] = var32.x2[0]; + var33.x2[1] = var32.x2[1]; + /* 2: storeq */ + ptr0[i] = var33; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_f32_ch2_none (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var32; + orc_union64 var33; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union64 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var32 = ptr4[i]; + /* 1: copyl */ + var33.x2[0] = var32.x2[0]; + var33.x2[1] = var32.x2[1]; + /* 2: storeq */ + ptr0[i] = var33; + } + +} + +void +audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, + 51, + 50, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 8, 8, 12, 8, 8, + 21, 1, 112, 0, 4, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_none); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_none"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_none); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 8, "s1"); + + orc_program_append_2 (p, "copyl", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_s16_ch1_psy */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, float p2, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var35; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union64 var43; + orc_union64 var44; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union16 *) s1; + + /* 3: loadpl */ + var36.f = p2; + /* 5: loadpl */ + var37.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var35 = ptr4[i]; + /* 1: convswl */ + var39.i = var35.i; + /* 2: convlf */ + var40.f = var39.i; + /* 4: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var41.i = ORC_DENORMAL (_dest1.i); + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var42.i; + _dest.x2[1] = var41.i; + var43.i = _dest.i; + } + /* 8: convfl */ + { + int tmp; + tmp = (int) var43.x2f[0]; + if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var43.x2f[1]; + if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[1] = tmp; + } + /* 9: convssslw */ + var38.x2[0] = ORC_CLAMP_SW (var44.x2[0]); + var38.x2[1] = ORC_CLAMP_SW (var44.x2[1]); + /* 10: storel */ + ptr0[i] = var38; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_s16_ch1_psy (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var35; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union64 var43; + orc_union64 var44; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + /* 3: loadpl */ + var36.i = ex->params[25]; + /* 5: loadpl */ + var37.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var35 = ptr4[i]; + /* 1: convswl */ + var39.i = var35.i; + /* 2: convlf */ + var40.f = var39.i; + /* 4: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var41.i = ORC_DENORMAL (_dest1.i); + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var42.i; + _dest.x2[1] = var41.i; + var43.i = _dest.i; + } + /* 8: convfl */ + { + int tmp; + tmp = (int) var43.x2f[0]; + if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var43.x2f[1]; + if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[1] = tmp; + } + /* 9: convssslw */ + var38.x2[0] = ORC_CLAMP_SW (var44.x2[0]); + var38.x2[1] = ORC_CLAMP_SW (var44.x2[1]); + /* 10: storel */ + ptr0[i] = var38; + } + +} + +void +audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, float p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, + 49, + 54, 95, 99, 104, 49, 95, 112, 115, 121, 11, 4, 4, 12, 2, 2, 17, + 4, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4, 211, 33, 33, 202, + 34, 33, 25, 202, 33, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, + 21, 1, 165, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch1_psy); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch1_psy"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch1_psy); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_parameter_float (p, 4, "p2"); + orc_program_add_temporary (p, 8, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + + orc_program_append_2 (p, "convswl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convlf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + { + orc_union32 tmp; + tmp.f = p2; + ex->params[ORC_VAR_P2] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_f32_ch1_psy */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, float p2, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var34; + orc_union32 var35; + orc_union32 var36; + orc_union32 var37; + orc_union64 var38; + orc_union32 var39; + orc_union32 var40; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union32 *) s1; + + /* 1: loadpl */ + var35.f = p2; + /* 4: loadpl */ + var37.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var34 = ptr4[i]; + /* 2: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var34.i); + _src2.i = ORC_DENORMAL (var35.i); + _dest1.f = _src1.f * _src2.f; + var39.i = ORC_DENORMAL (_dest1.i); + } + /* 3: loadl */ + var36 = ptr4[i]; + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var36.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 6: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var39.i; + var38.i = _dest.i; + } + /* 7: storeq */ + ptr0[i] = var38; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_f32_ch1_psy (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var34; + orc_union32 var35; + orc_union32 var36; + orc_union32 var37; + orc_union64 var38; + orc_union32 var39; + orc_union32 var40; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + /* 1: loadpl */ + var35.i = ex->params[25]; + /* 4: loadpl */ + var37.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var34 = ptr4[i]; + /* 2: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var34.i); + _src2.i = ORC_DENORMAL (var35.i); + _dest1.f = _src1.f * _src2.f; + var39.i = ORC_DENORMAL (_dest1.i); + } + /* 3: loadl */ + var36 = ptr4[i]; + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var36.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 6: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var39.i; + var38.i = _dest.i; + } + /* 7: storeq */ + ptr0[i] = var38; + } + +} + +void +audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, float p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, + 51, + 50, 95, 99, 104, 49, 95, 112, 115, 121, 11, 8, 8, 12, 4, 4, 17, + 4, 17, 4, 20, 4, 20, 4, 202, 33, 4, 25, 202, 32, 4, 24, 194, + 0, 32, 33, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch1_psy); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch1_psy"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch1_psy); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_parameter_float (p, 4, "p2"); + orc_program_add_temporary (p, 4, "t1"); + orc_program_add_temporary (p, 4, "t2"); + + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + { + orc_union32 tmp; + tmp.f = p2; + ex->params[ORC_VAR_P2] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_s16_ch2_psy_right */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, float p2, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union64 var40; + orc_union64 var41; + orc_union32 var42; + orc_union32 var43; + orc_union32 var44; + orc_union32 var45; + orc_union32 var46; + orc_union64 var47; + orc_union64 var48; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union32 *) s1; + + /* 5: loadpl */ + var37.f = p2; + /* 7: loadpl */ + var38.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var36 = ptr4[i]; + /* 1: convswl */ + var40.x2[0] = var36.x2[0]; + var40.x2[1] = var36.x2[1]; + /* 2: convlf */ + var41.x2f[0] = var40.x2[0]; + var41.x2f[1] = var40.x2[1]; + /* 3: select0ql */ + { + orc_union64 _src; + _src.i = var41.i; + var42.i = _src.x2[0]; + } + /* 4: select1ql */ + { + orc_union64 _src; + _src.i = var41.i; + var43.i = _src.x2[1]; + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var42.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var44.i = ORC_DENORMAL (_dest1.i); + } + /* 8: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var42.i); + _src2.i = ORC_DENORMAL (var38.i); + _dest1.f = _src1.f * _src2.f; + var45.i = ORC_DENORMAL (_dest1.i); + } + /* 9: addf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var44.i); + _src2.i = ORC_DENORMAL (var43.i); + _dest1.f = _src1.f + _src2.f; + var46.i = ORC_DENORMAL (_dest1.i); + } + /* 10: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var45.i; + _dest.x2[1] = var46.i; + var47.i = _dest.i; + } + /* 11: convfl */ + { + int tmp; + tmp = (int) var47.x2f[0]; + if (tmp == 0x80000000 && !(var47.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var48.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var47.x2f[1]; + if (tmp == 0x80000000 && !(var47.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var48.x2[1] = tmp; + } + /* 12: convssslw */ + var39.x2[0] = ORC_CLAMP_SW (var48.x2[0]); + var39.x2[1] = ORC_CLAMP_SW (var48.x2[1]); + /* 13: storel */ + ptr0[i] = var39; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_s16_ch2_psy_right (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union64 var40; + orc_union64 var41; + orc_union32 var42; + orc_union32 var43; + orc_union32 var44; + orc_union32 var45; + orc_union32 var46; + orc_union64 var47; + orc_union64 var48; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + /* 5: loadpl */ + var37.i = ex->params[25]; + /* 7: loadpl */ + var38.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var36 = ptr4[i]; + /* 1: convswl */ + var40.x2[0] = var36.x2[0]; + var40.x2[1] = var36.x2[1]; + /* 2: convlf */ + var41.x2f[0] = var40.x2[0]; + var41.x2f[1] = var40.x2[1]; + /* 3: select0ql */ + { + orc_union64 _src; + _src.i = var41.i; + var42.i = _src.x2[0]; + } + /* 4: select1ql */ + { + orc_union64 _src; + _src.i = var41.i; + var43.i = _src.x2[1]; + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var42.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var44.i = ORC_DENORMAL (_dest1.i); + } + /* 8: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var42.i); + _src2.i = ORC_DENORMAL (var38.i); + _dest1.f = _src1.f * _src2.f; + var45.i = ORC_DENORMAL (_dest1.i); + } + /* 9: addf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var44.i); + _src2.i = ORC_DENORMAL (var43.i); + _dest1.f = _src1.f + _src2.f; + var46.i = ORC_DENORMAL (_dest1.i); + } + /* 10: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var45.i; + _dest.x2[1] = var46.i; + var47.i = _dest.i; + } + /* 11: convfl */ + { + int tmp; + tmp = (int) var47.x2f[0]; + if (tmp == 0x80000000 && !(var47.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var48.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var47.x2f[1]; + if (tmp == 0x80000000 && !(var47.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var48.x2[1] = tmp; + } + /* 12: convssslw */ + var39.x2[0] = ORC_CLAMP_SW (var48.x2[0]); + var39.x2[1] = ORC_CLAMP_SW (var48.x2[1]); + /* 13: storel */ + ptr0[i] = var39; + } + +} + +void +audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, float p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, + 49, + 54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11, + 4, 4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20, + 4, 21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, + 32, 202, 35, 33, 25, 202, 33, 33, 24, 200, 34, 35, 34, 194, 32, 33, + 34, 21, 1, 210, 32, 32, 21, 1, 165, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_psy_right); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_psy_right"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_psy_right); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_parameter_float (p, 4, "p2"); + orc_program_add_temporary (p, 8, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + orc_program_add_temporary (p, 4, "t4"); + + orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "addf", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + { + orc_union32 tmp; + tmp.f = p2; + ex->params[ORC_VAR_P2] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_s16_ch2_psy_left */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, float p2, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union64 var40; + orc_union64 var41; + orc_union32 var42; + orc_union32 var43; + orc_union32 var44; + orc_union32 var45; + orc_union32 var46; + orc_union64 var47; + orc_union64 var48; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union32 *) s1; + + /* 5: loadpl */ + var37.f = p1; + /* 7: loadpl */ + var38.f = p2; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var36 = ptr4[i]; + /* 1: convswl */ + var40.x2[0] = var36.x2[0]; + var40.x2[1] = var36.x2[1]; + /* 2: convlf */ + var41.x2f[0] = var40.x2[0]; + var41.x2f[1] = var40.x2[1]; + /* 3: select0ql */ + { + orc_union64 _src; + _src.i = var41.i; + var42.i = _src.x2[0]; + } + /* 4: select1ql */ + { + orc_union64 _src; + _src.i = var41.i; + var43.i = _src.x2[1]; + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var43.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var44.i = ORC_DENORMAL (_dest1.i); + } + /* 8: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var43.i); + _src2.i = ORC_DENORMAL (var38.i); + _dest1.f = _src1.f * _src2.f; + var45.i = ORC_DENORMAL (_dest1.i); + } + /* 9: addf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var44.i); + _src2.i = ORC_DENORMAL (var42.i); + _dest1.f = _src1.f + _src2.f; + var46.i = ORC_DENORMAL (_dest1.i); + } + /* 10: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var46.i; + _dest.x2[1] = var45.i; + var47.i = _dest.i; + } + /* 11: convfl */ + { + int tmp; + tmp = (int) var47.x2f[0]; + if (tmp == 0x80000000 && !(var47.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var48.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var47.x2f[1]; + if (tmp == 0x80000000 && !(var47.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var48.x2[1] = tmp; + } + /* 12: convssslw */ + var39.x2[0] = ORC_CLAMP_SW (var48.x2[0]); + var39.x2[1] = ORC_CLAMP_SW (var48.x2[1]); + /* 13: storel */ + ptr0[i] = var39; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_s16_ch2_psy_left (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union64 var40; + orc_union64 var41; + orc_union32 var42; + orc_union32 var43; + orc_union32 var44; + orc_union32 var45; + orc_union32 var46; + orc_union64 var47; + orc_union64 var48; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + /* 5: loadpl */ + var37.i = ex->params[24]; + /* 7: loadpl */ + var38.i = ex->params[25]; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var36 = ptr4[i]; + /* 1: convswl */ + var40.x2[0] = var36.x2[0]; + var40.x2[1] = var36.x2[1]; + /* 2: convlf */ + var41.x2f[0] = var40.x2[0]; + var41.x2f[1] = var40.x2[1]; + /* 3: select0ql */ + { + orc_union64 _src; + _src.i = var41.i; + var42.i = _src.x2[0]; + } + /* 4: select1ql */ + { + orc_union64 _src; + _src.i = var41.i; + var43.i = _src.x2[1]; + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var43.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var44.i = ORC_DENORMAL (_dest1.i); + } + /* 8: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var43.i); + _src2.i = ORC_DENORMAL (var38.i); + _dest1.f = _src1.f * _src2.f; + var45.i = ORC_DENORMAL (_dest1.i); + } + /* 9: addf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var44.i); + _src2.i = ORC_DENORMAL (var42.i); + _dest1.f = _src1.f + _src2.f; + var46.i = ORC_DENORMAL (_dest1.i); + } + /* 10: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var46.i; + _dest.x2[1] = var45.i; + var47.i = _dest.i; + } + /* 11: convfl */ + { + int tmp; + tmp = (int) var47.x2f[0]; + if (tmp == 0x80000000 && !(var47.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var48.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var47.x2f[1]; + if (tmp == 0x80000000 && !(var47.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var48.x2[1] = tmp; + } + /* 12: convssslw */ + var39.x2[0] = ORC_CLAMP_SW (var48.x2[0]); + var39.x2[1] = ORC_CLAMP_SW (var48.x2[1]); + /* 13: storel */ + ptr0[i] = var39; + } + +} + +void +audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, float p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, + 49, + 54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 4, + 4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20, 4, + 21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 35, 32, + 202, 34, 35, 24, 202, 35, 35, 25, 200, 33, 34, 33, 194, 32, 33, 35, + 21, 1, 210, 32, 32, 21, 1, 165, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_psy_left); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_psy_left"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_psy_left); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_parameter_float (p, 4, "p2"); + orc_program_add_temporary (p, 8, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + orc_program_add_temporary (p, 4, "t4"); + + orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T4, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + { + orc_union32 tmp; + tmp.f = p2; + ex->params[ORC_VAR_P2] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_f32_ch2_psy_right */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, float p2, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var35; + orc_union64 var36; + orc_union32 var37; + orc_union32 var38; + orc_union64 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union32 var43; + orc_union32 var44; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union64 *) s1; + + /* 4: loadpl */ + var37.f = p2; + /* 6: loadpl */ + var38.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var35 = ptr4[i]; + /* 1: select0ql */ + { + orc_union64 _src; + _src.i = var35.i; + var40.i = _src.x2[0]; + } + /* 2: loadq */ + var36 = ptr4[i]; + /* 3: select1ql */ + { + orc_union64 _src; + _src.i = var36.i; + var41.i = _src.x2[1]; + } + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var38.i); + _dest1.f = _src1.f * _src2.f; + var43.i = ORC_DENORMAL (_dest1.i); + } + /* 8: addf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var42.i); + _src2.i = ORC_DENORMAL (var41.i); + _dest1.f = _src1.f + _src2.f; + var44.i = ORC_DENORMAL (_dest1.i); + } + /* 9: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var43.i; + _dest.x2[1] = var44.i; + var39.i = _dest.i; + } + /* 10: storeq */ + ptr0[i] = var39; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_f32_ch2_psy_right (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var35; + orc_union64 var36; + orc_union32 var37; + orc_union32 var38; + orc_union64 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union32 var43; + orc_union32 var44; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union64 *) ex->arrays[4]; + + /* 4: loadpl */ + var37.i = ex->params[25]; + /* 6: loadpl */ + var38.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var35 = ptr4[i]; + /* 1: select0ql */ + { + orc_union64 _src; + _src.i = var35.i; + var40.i = _src.x2[0]; + } + /* 2: loadq */ + var36 = ptr4[i]; + /* 3: select1ql */ + { + orc_union64 _src; + _src.i = var36.i; + var41.i = _src.x2[1]; + } + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var38.i); + _dest1.f = _src1.f * _src2.f; + var43.i = ORC_DENORMAL (_dest1.i); + } + /* 8: addf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var42.i); + _src2.i = ORC_DENORMAL (var41.i); + _dest1.f = _src1.f + _src2.f; + var44.i = ORC_DENORMAL (_dest1.i); + } + /* 9: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var43.i; + _dest.x2[1] = var44.i; + var39.i = _dest.i; + } + /* 10: storeq */ + ptr0[i] = var39; + } + +} + +void +audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, float p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, + 51, + 50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11, + 8, 8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192, + 32, 4, 193, 33, 4, 202, 34, 32, 25, 202, 32, 32, 24, 200, 33, 34, + 33, 194, 0, 32, 33, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_psy_right); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_psy_right"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_psy_right); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 8, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_parameter_float (p, 4, "p2"); + orc_program_add_temporary (p, 4, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + + orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "addf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + { + orc_union32 tmp; + tmp.f = p2; + ex->params[ORC_VAR_P2] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_f32_ch2_psy_left */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, float p2, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var35; + orc_union64 var36; + orc_union32 var37; + orc_union32 var38; + orc_union64 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union32 var43; + orc_union32 var44; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union64 *) s1; + + /* 4: loadpl */ + var37.f = p1; + /* 6: loadpl */ + var38.f = p2; + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var35 = ptr4[i]; + /* 1: select0ql */ + { + orc_union64 _src; + _src.i = var35.i; + var40.i = _src.x2[0]; + } + /* 2: loadq */ + var36 = ptr4[i]; + /* 3: select1ql */ + { + orc_union64 _src; + _src.i = var36.i; + var41.i = _src.x2[1]; + } + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var41.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var41.i); + _src2.i = ORC_DENORMAL (var38.i); + _dest1.f = _src1.f * _src2.f; + var43.i = ORC_DENORMAL (_dest1.i); + } + /* 8: addf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var42.i); + _src2.i = ORC_DENORMAL (var40.i); + _dest1.f = _src1.f + _src2.f; + var44.i = ORC_DENORMAL (_dest1.i); + } + /* 9: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var44.i; + _dest.x2[1] = var43.i; + var39.i = _dest.i; + } + /* 10: storeq */ + ptr0[i] = var39; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_f32_ch2_psy_left (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var35; + orc_union64 var36; + orc_union32 var37; + orc_union32 var38; + orc_union64 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union32 var43; + orc_union32 var44; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union64 *) ex->arrays[4]; + + /* 4: loadpl */ + var37.i = ex->params[24]; + /* 6: loadpl */ + var38.i = ex->params[25]; + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var35 = ptr4[i]; + /* 1: select0ql */ + { + orc_union64 _src; + _src.i = var35.i; + var40.i = _src.x2[0]; + } + /* 2: loadq */ + var36 = ptr4[i]; + /* 3: select1ql */ + { + orc_union64 _src; + _src.i = var36.i; + var41.i = _src.x2[1]; + } + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var41.i); + _src2.i = ORC_DENORMAL (var37.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var41.i); + _src2.i = ORC_DENORMAL (var38.i); + _dest1.f = _src1.f * _src2.f; + var43.i = ORC_DENORMAL (_dest1.i); + } + /* 8: addf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var42.i); + _src2.i = ORC_DENORMAL (var40.i); + _dest1.f = _src1.f + _src2.f; + var44.i = ORC_DENORMAL (_dest1.i); + } + /* 9: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var44.i; + _dest.x2[1] = var43.i; + var39.i = _dest.i; + } + /* 10: storeq */ + ptr0[i] = var39; + } + +} + +void +audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, float p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, + 51, + 50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 8, + 8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192, 32, + 4, 193, 34, 4, 202, 33, 34, 24, 202, 34, 34, 25, 200, 32, 33, 32, + 194, 0, 32, 34, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_psy_left); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_psy_left"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_psy_left); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 8, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_parameter_float (p, 4, "p2"); + orc_program_add_temporary (p, 4, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + + orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addf", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T3, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + { + orc_union32 tmp; + tmp.f = p2; + ex->params[ORC_VAR_P2] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_s16_ch1_sim_right */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var35; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union64 var41; + orc_union64 var42; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union16 *) s1; + + /* 3: loadpl */ + var36.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var35 = ptr4[i]; + /* 1: convswl */ + var38.i = var35.i; + /* 2: convlf */ + var39.f = var38.i; + /* 4: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var39.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 5: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var39.i; + _dest.x2[1] = var40.i; + var41.i = _dest.i; + } + /* 6: convfl */ + { + int tmp; + tmp = (int) var41.x2f[0]; + if (tmp == 0x80000000 && !(var41.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var42.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var41.x2f[1]; + if (tmp == 0x80000000 && !(var41.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var42.x2[1] = tmp; + } + /* 7: convssslw */ + var37.x2[0] = ORC_CLAMP_SW (var42.x2[0]); + var37.x2[1] = ORC_CLAMP_SW (var42.x2[1]); + /* 8: storel */ + ptr0[i] = var37; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_s16_ch1_sim_right (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var35; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union64 var41; + orc_union64 var42; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + /* 3: loadpl */ + var36.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var35 = ptr4[i]; + /* 1: convswl */ + var38.i = var35.i; + /* 2: convlf */ + var39.f = var38.i; + /* 4: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var39.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 5: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var39.i; + _dest.x2[1] = var40.i; + var41.i = _dest.i; + } + /* 6: convfl */ + { + int tmp; + tmp = (int) var41.x2f[0]; + if (tmp == 0x80000000 && !(var41.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var42.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var41.x2f[1]; + if (tmp == 0x80000000 && !(var41.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var42.x2[1] = tmp; + } + /* 7: convssslw */ + var37.x2[0] = ORC_CLAMP_SW (var42.x2[0]); + var37.x2[1] = ORC_CLAMP_SW (var42.x2[1]); + /* 8: storel */ + ptr0[i] = var37; + } + +} + +void +audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, + 49, + 54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11, + 4, 4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4, + 211, 33, 33, 202, 34, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, + 21, 1, 165, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch1_sim_right); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch1_sim_right"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch1_sim_right); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_temporary (p, 8, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + + orc_program_append_2 (p, "convswl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convlf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_s16_ch1_sim_left */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var35; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union64 var41; + orc_union64 var42; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union16 *) s1; + + /* 3: loadpl */ + var36.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var35 = ptr4[i]; + /* 1: convswl */ + var38.i = var35.i; + /* 2: convlf */ + var39.f = var38.i; + /* 4: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var39.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 5: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var39.i; + var41.i = _dest.i; + } + /* 6: convfl */ + { + int tmp; + tmp = (int) var41.x2f[0]; + if (tmp == 0x80000000 && !(var41.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var42.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var41.x2f[1]; + if (tmp == 0x80000000 && !(var41.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var42.x2[1] = tmp; + } + /* 7: convssslw */ + var37.x2[0] = ORC_CLAMP_SW (var42.x2[0]); + var37.x2[1] = ORC_CLAMP_SW (var42.x2[1]); + /* 8: storel */ + ptr0[i] = var37; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_s16_ch1_sim_left (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var35; + orc_union32 var36; + orc_union32 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union64 var41; + orc_union64 var42; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + /* 3: loadpl */ + var36.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var35 = ptr4[i]; + /* 1: convswl */ + var38.i = var35.i; + /* 2: convlf */ + var39.f = var38.i; + /* 4: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var39.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 5: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var39.i; + var41.i = _dest.i; + } + /* 6: convfl */ + { + int tmp; + tmp = (int) var41.x2f[0]; + if (tmp == 0x80000000 && !(var41.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var42.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var41.x2f[1]; + if (tmp == 0x80000000 && !(var41.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var42.x2[1] = tmp; + } + /* 7: convssslw */ + var37.x2[0] = ORC_CLAMP_SW (var42.x2[0]); + var37.x2[1] = ORC_CLAMP_SW (var42.x2[1]); + /* 8: storel */ + ptr0[i] = var37; + } + +} + +void +audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, + 49, + 54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4, + 4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 34, 4, 211, + 34, 34, 202, 33, 34, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 21, + 1, 165, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch1_sim_left); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch1_sim_left"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch1_sim_left); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_temporary (p, 8, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + + orc_program_append_2 (p, "convswl", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convlf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_s16_ch2_sim_right */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var35; + orc_union32 var36; + orc_union32 var37; + orc_union64 var38; + orc_union64 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union64 var43; + orc_union64 var44; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union32 *) s1; + + /* 5: loadpl */ + var36.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: convswl */ + var38.x2[0] = var35.x2[0]; + var38.x2[1] = var35.x2[1]; + /* 2: convlf */ + var39.x2f[0] = var38.x2[0]; + var39.x2f[1] = var38.x2[1]; + /* 3: select0ql */ + { + orc_union64 _src; + _src.i = var39.i; + var40.i = _src.x2[0]; + } + /* 4: select1ql */ + { + orc_union64 _src; + _src.i = var39.i; + var41.i = _src.x2[1]; + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var41.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var42.i; + var43.i = _dest.i; + } + /* 8: convfl */ + { + int tmp; + tmp = (int) var43.x2f[0]; + if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var43.x2f[1]; + if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[1] = tmp; + } + /* 9: convssslw */ + var37.x2[0] = ORC_CLAMP_SW (var44.x2[0]); + var37.x2[1] = ORC_CLAMP_SW (var44.x2[1]); + /* 10: storel */ + ptr0[i] = var37; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_s16_ch2_sim_right (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var35; + orc_union32 var36; + orc_union32 var37; + orc_union64 var38; + orc_union64 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union64 var43; + orc_union64 var44; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + /* 5: loadpl */ + var36.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: convswl */ + var38.x2[0] = var35.x2[0]; + var38.x2[1] = var35.x2[1]; + /* 2: convlf */ + var39.x2f[0] = var38.x2[0]; + var39.x2f[1] = var38.x2[1]; + /* 3: select0ql */ + { + orc_union64 _src; + _src.i = var39.i; + var40.i = _src.x2[0]; + } + /* 4: select1ql */ + { + orc_union64 _src; + _src.i = var39.i; + var41.i = _src.x2[1]; + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var41.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var42.i; + var43.i = _dest.i; + } + /* 8: convfl */ + { + int tmp; + tmp = (int) var43.x2f[0]; + if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var43.x2f[1]; + if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[1] = tmp; + } + /* 9: convssslw */ + var37.x2[0] = ORC_CLAMP_SW (var44.x2[0]); + var37.x2[1] = ORC_CLAMP_SW (var44.x2[1]); + /* 10: storel */ + ptr0[i] = var37; + } + +} + +void +audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, + 49, + 54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11, + 4, 4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153, + 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 34, 34, + 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 21, 1, 165, 0, 32, 2, + 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_sim_right); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_sim_right"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_sim_right); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_temporary (p, 8, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + + orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_s16_ch2_sim_left */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var35; + orc_union32 var36; + orc_union32 var37; + orc_union64 var38; + orc_union64 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union64 var43; + orc_union64 var44; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union32 *) s1; + + /* 5: loadpl */ + var36.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: convswl */ + var38.x2[0] = var35.x2[0]; + var38.x2[1] = var35.x2[1]; + /* 2: convlf */ + var39.x2f[0] = var38.x2[0]; + var39.x2f[1] = var38.x2[1]; + /* 3: select0ql */ + { + orc_union64 _src; + _src.i = var39.i; + var40.i = _src.x2[0]; + } + /* 4: select1ql */ + { + orc_union64 _src; + _src.i = var39.i; + var41.i = _src.x2[1]; + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var42.i; + _dest.x2[1] = var41.i; + var43.i = _dest.i; + } + /* 8: convfl */ + { + int tmp; + tmp = (int) var43.x2f[0]; + if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var43.x2f[1]; + if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[1] = tmp; + } + /* 9: convssslw */ + var37.x2[0] = ORC_CLAMP_SW (var44.x2[0]); + var37.x2[1] = ORC_CLAMP_SW (var44.x2[1]); + /* 10: storel */ + ptr0[i] = var37; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_s16_ch2_sim_left (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var35; + orc_union32 var36; + orc_union32 var37; + orc_union64 var38; + orc_union64 var39; + orc_union32 var40; + orc_union32 var41; + orc_union32 var42; + orc_union64 var43; + orc_union64 var44; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + /* 5: loadpl */ + var36.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: convswl */ + var38.x2[0] = var35.x2[0]; + var38.x2[1] = var35.x2[1]; + /* 2: convlf */ + var39.x2f[0] = var38.x2[0]; + var39.x2f[1] = var38.x2[1]; + /* 3: select0ql */ + { + orc_union64 _src; + _src.i = var39.i; + var40.i = _src.x2[0]; + } + /* 4: select1ql */ + { + orc_union64 _src; + _src.i = var39.i; + var41.i = _src.x2[1]; + } + /* 6: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var40.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var42.i = ORC_DENORMAL (_dest1.i); + } + /* 7: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var42.i; + _dest.x2[1] = var41.i; + var43.i = _dest.i; + } + /* 8: convfl */ + { + int tmp; + tmp = (int) var43.x2f[0]; + if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[0] = tmp; + } + { + int tmp; + tmp = (int) var43.x2f[1]; + if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000)) + tmp = 0x7fffffff; + var44.x2[1] = tmp; + } + /* 9: convssslw */ + var37.x2[0] = ORC_CLAMP_SW (var44.x2[0]); + var37.x2[1] = ORC_CLAMP_SW (var44.x2[1]); + /* 10: storel */ + ptr0[i] = var37; + } + +} + +void +audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, float p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, + 49, + 54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4, + 4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153, 32, + 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 33, 33, 24, + 194, 32, 33, 34, 21, 1, 210, 32, 32, 21, 1, 165, 0, 32, 2, 0, + + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_sim_left); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_sim_left"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_s16_ch2_sim_left); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_temporary (p, 8, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + + orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_f32_ch1_sim_right */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var34; + orc_union32 var35; + orc_union32 var36; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union32 *) s1; + + /* 3: loadpl */ + var36.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var34 = ptr4[i]; + /* 1: copyl */ + var38.i = var34.i; + /* 2: loadl */ + var35 = ptr4[i]; + /* 4: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var35.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var39.i = ORC_DENORMAL (_dest1.i); + } + /* 5: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var38.i; + _dest.x2[1] = var39.i; + var37.i = _dest.i; + } + /* 6: storeq */ + ptr0[i] = var37; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_f32_ch1_sim_right (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var34; + orc_union32 var35; + orc_union32 var36; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + /* 3: loadpl */ + var36.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var34 = ptr4[i]; + /* 1: copyl */ + var38.i = var34.i; + /* 2: loadl */ + var35 = ptr4[i]; + /* 4: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var35.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var39.i = ORC_DENORMAL (_dest1.i); + } + /* 5: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var38.i; + _dest.x2[1] = var39.i; + var37.i = _dest.i; + } + /* 6: storeq */ + ptr0[i] = var37; + } + +} + +void +audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, + 51, + 50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11, + 8, 8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 112, 32, 4, 202, 33, + 4, 24, 194, 0, 32, 33, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch1_sim_right); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch1_sim_right"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch1_sim_right); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_temporary (p, 4, "t1"); + orc_program_add_temporary (p, 4, "t2"); + + orc_program_append_2 (p, "copyl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_f32_ch1_sim_left */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var34; + orc_union32 var35; + orc_union32 var36; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union32 *) s1; + + /* 1: loadpl */ + var35.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var34 = ptr4[i]; + /* 2: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var34.i); + _src2.i = ORC_DENORMAL (var35.i); + _dest1.f = _src1.f * _src2.f; + var38.i = ORC_DENORMAL (_dest1.i); + } + /* 3: loadl */ + var36 = ptr4[i]; + /* 4: copyl */ + var39.i = var36.i; + /* 5: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var38.i; + _dest.x2[1] = var39.i; + var37.i = _dest.i; + } + /* 6: storeq */ + ptr0[i] = var37; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_f32_ch1_sim_left (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var34; + orc_union32 var35; + orc_union32 var36; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + /* 1: loadpl */ + var35.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var34 = ptr4[i]; + /* 2: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var34.i); + _src2.i = ORC_DENORMAL (var35.i); + _dest1.f = _src1.f * _src2.f; + var38.i = ORC_DENORMAL (_dest1.i); + } + /* 3: loadl */ + var36 = ptr4[i]; + /* 4: copyl */ + var39.i = var36.i; + /* 5: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var38.i; + _dest.x2[1] = var39.i; + var37.i = _dest.i; + } + /* 6: storeq */ + ptr0[i] = var37; + } + +} + +void +audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, + 51, + 50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8, + 8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 202, 32, 4, 24, 112, 33, + 4, 194, 0, 32, 33, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch1_sim_left); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch1_sim_left"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch1_sim_left); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_temporary (p, 4, "t1"); + orc_program_add_temporary (p, 4, "t2"); + + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "copyl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_f32_ch2_sim_right */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var34; + orc_union64 var35; + orc_union32 var36; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union64 *) s1; + + /* 4: loadpl */ + var36.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var34 = ptr4[i]; + /* 1: select0ql */ + { + orc_union64 _src; + _src.i = var34.i; + var38.i = _src.x2[0]; + } + /* 2: loadq */ + var35 = ptr4[i]; + /* 3: select1ql */ + { + orc_union64 _src; + _src.i = var35.i; + var39.i = _src.x2[1]; + } + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var39.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 6: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var38.i; + _dest.x2[1] = var40.i; + var37.i = _dest.i; + } + /* 7: storeq */ + ptr0[i] = var37; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_f32_ch2_sim_right (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var34; + orc_union64 var35; + orc_union32 var36; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union64 *) ex->arrays[4]; + + /* 4: loadpl */ + var36.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var34 = ptr4[i]; + /* 1: select0ql */ + { + orc_union64 _src; + _src.i = var34.i; + var38.i = _src.x2[0]; + } + /* 2: loadq */ + var35 = ptr4[i]; + /* 3: select1ql */ + { + orc_union64 _src; + _src.i = var35.i; + var39.i = _src.x2[1]; + } + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var39.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 6: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var38.i; + _dest.x2[1] = var40.i; + var37.i = _dest.i; + } + /* 7: storeq */ + ptr0[i] = var37; + } + +} + +void +audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, + 51, + 50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11, + 8, 8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33, + 4, 202, 33, 33, 24, 194, 0, 32, 33, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_sim_right); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_sim_right"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_sim_right); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 8, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_temporary (p, 4, "t1"); + orc_program_add_temporary (p, 4, "t2"); + + orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif + + +/* audiopanoramam_orc_process_f32_ch2_sim_left */ +#ifdef DISABLE_ORC +void +audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var34; + orc_union64 var35; + orc_union32 var36; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union64 *) s1; + + /* 4: loadpl */ + var36.f = p1; + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var34 = ptr4[i]; + /* 1: select0ql */ + { + orc_union64 _src; + _src.i = var34.i; + var38.i = _src.x2[0]; + } + /* 2: loadq */ + var35 = ptr4[i]; + /* 3: select1ql */ + { + orc_union64 _src; + _src.i = var35.i; + var39.i = _src.x2[1]; + } + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var38.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 6: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var39.i; + var37.i = _dest.i; + } + /* 7: storeq */ + ptr0[i] = var37; + } + +} + +#else +static void +_backup_audiopanoramam_orc_process_f32_ch2_sim_left (OrcExecutor * + ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var34; + orc_union64 var35; + orc_union32 var36; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union64 *) ex->arrays[4]; + + /* 4: loadpl */ + var36.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var34 = ptr4[i]; + /* 1: select0ql */ + { + orc_union64 _src; + _src.i = var34.i; + var38.i = _src.x2[0]; + } + /* 2: loadq */ + var35 = ptr4[i]; + /* 3: select1ql */ + { + orc_union64 _src; + _src.i = var35.i; + var39.i = _src.x2[1]; + } + /* 5: mulf */ + { + orc_union32 _src1; + orc_union32 _src2; + orc_union32 _dest1; + _src1.i = ORC_DENORMAL (var38.i); + _src2.i = ORC_DENORMAL (var36.i); + _dest1.f = _src1.f * _src2.f; + var40.i = ORC_DENORMAL (_dest1.i); + } + /* 6: mergelq */ + { + orc_union64 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var39.i; + var37.i = _dest.i; + } + /* 7: storeq */ + ptr0[i] = var37; + } + +} + +void +audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1, + const gfloat * ORC_RESTRICT s1, float p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile int p_inited = 0; + static OrcCode *c = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + OrcProgram *p; + +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, + 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, + 51, + 50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8, + 8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33, 4, + 202, 32, 32, 24, 194, 0, 32, 33, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_sim_left); +#else + p = orc_program_new (); + orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_sim_left"); + orc_program_set_backup_function (p, + _backup_audiopanoramam_orc_process_f32_ch2_sim_left); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 8, "s1"); + orc_program_add_parameter_float (p, 4, "p1"); + orc_program_add_temporary (p, 4, "t1"); + orc_program_add_temporary (p, 4, "t2"); + + orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); +#endif + + orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + { + orc_union32 tmp; + tmp.f = p1; + ex->params[ORC_VAR_P1] = tmp.i; + } + + func = c->exec; + func (ex); +} +#endif diff --git a/gst/audiofx/audiopanoramaorc-dist.h b/gst/audiofx/audiopanoramaorc-dist.h new file mode 100644 index 0000000000000000000000000000000000000000..7611fba77401d13b6a6f9fbfbb5719ae0694e0c7 --- /dev/null +++ b/gst/audiofx/audiopanoramaorc-dist.h @@ -0,0 +1,107 @@ + +/* autogenerated from audiopanoramaorc.orc */ + +#ifndef _AUDIOPANORAMAORC_H_ +#define _AUDIOPANORAMAORC_H_ + +#include <glib.h> + +#ifdef __cplusplus +extern "C" { +#endif + + + +#ifndef _ORC_INTEGER_TYPEDEFS_ +#define _ORC_INTEGER_TYPEDEFS_ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include <stdint.h> +typedef int8_t orc_int8; +typedef int16_t orc_int16; +typedef int32_t orc_int32; +typedef int64_t orc_int64; +typedef uint8_t orc_uint8; +typedef uint16_t orc_uint16; +typedef uint32_t orc_uint32; +typedef uint64_t orc_uint64; +#define ORC_UINT64_C(x) UINT64_C(x) +#elif defined(_MSC_VER) +typedef signed __int8 orc_int8; +typedef signed __int16 orc_int16; +typedef signed __int32 orc_int32; +typedef signed __int64 orc_int64; +typedef unsigned __int8 orc_uint8; +typedef unsigned __int16 orc_uint16; +typedef unsigned __int32 orc_uint32; +typedef unsigned __int64 orc_uint64; +#define ORC_UINT64_C(x) (x##Ui64) +#define inline __inline +#else +#include <limits.h> +typedef signed char orc_int8; +typedef short orc_int16; +typedef int orc_int32; +typedef unsigned char orc_uint8; +typedef unsigned short orc_uint16; +typedef unsigned int orc_uint32; +#if INT_MAX == LONG_MAX +typedef long long orc_int64; +typedef unsigned long long orc_uint64; +#define ORC_UINT64_C(x) (x##ULL) +#else +typedef long orc_int64; +typedef unsigned long orc_uint64; +#define ORC_UINT64_C(x) (x##UL) +#endif +#endif +typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; +typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; +typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; +#endif +#ifndef ORC_RESTRICT +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define ORC_RESTRICT restrict +#elif defined(__GNUC__) && __GNUC__ >= 4 +#define ORC_RESTRICT __restrict__ +#else +#define ORC_RESTRICT +#endif +#endif + +#ifndef ORC_INTERNAL +#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) +#define ORC_INTERNAL __attribute__((visibility("hidden"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +#define ORC_INTERNAL __hidden +#elif defined (__GNUC__) +#define ORC_INTERNAL __attribute__((visibility("hidden"))) +#else +#define ORC_INTERNAL +#endif +#endif + +void audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, int n); +void audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, int n); +void audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, int n); +void audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, int n); +void audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, float p2, int n); +void audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, int n); +void audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, int n); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/gst/audiofx/audiopanoramaorc.orc b/gst/audiofx/audiopanoramaorc.orc new file mode 100644 index 0000000000000000000000000000000000000000..46140111e714d411e7146ad86e237a7393977761 --- /dev/null +++ b/gst/audiofx/audiopanoramaorc.orc @@ -0,0 +1,258 @@ +# pass through functions + +.function audiopanoramam_orc_process_s16_ch1_none +.source 2 s1 gint16 +.dest 4 d1 gint16 + +mergewl d1 s1 s1 + + +.function audiopanoramam_orc_process_f32_ch1_none +.source 4 s1 gfloat +.dest 8 d1 gfloat + +mergelq d1 s1 s1 + + +.function audiopanoramam_orc_process_s16_ch2_none +.source 4 s1 gint16 +.dest 4 d1 gint16 + +x2 copyw d1 s1 + + +.function audiopanoramam_orc_process_f32_ch2_none +.source 8 s1 gfloat +.dest 8 d1 gfloat + +x2 copyl d1 s1 + + +# psychoacoustic processing function + +.function audiopanoramam_orc_process_s16_ch1_psy +.source 2 s1 gint16 +.dest 4 d1 gint16 +.floatparam 4 lpan +.floatparam 4 rpan +.temp 8 t1 +.temp 4 left +.temp 4 right + +convswl left s1 +convlf left left +mulf right left rpan +mulf left left lpan +mergelq t1 left right +x2 convfl t1 t1 +x2 convssslw d1 t1 + + +.function audiopanoramam_orc_process_f32_ch1_psy +.source 4 s1 gfloat +.dest 8 d1 gfloat +.floatparam 4 lpan +.floatparam 4 rpan +.temp 4 left +.temp 4 right + +mulf right s1 rpan +mulf left s1 lpan +mergelq d1 left right + + +.function audiopanoramam_orc_process_s16_ch2_psy_right +.source 4 s1 gint16 +.dest 4 d1 gint16 +.floatparam 4 llpan +.floatparam 4 rlpan +.temp 8 t1 +.temp 4 left +.temp 4 right +.temp 4 right1 + +x2 convswl t1 s1 +x2 convlf t1 t1 +select0ql left t1 +select1ql right t1 +mulf right1 left rlpan +mulf left left llpan +addf right right1 right +mergelq t1 left right +x2 convfl t1 t1 +x2 convssslw d1 t1 + + +.function audiopanoramam_orc_process_s16_ch2_psy_left +.source 4 s1 gint16 +.dest 4 d1 gint16 +.floatparam 4 lrpan +.floatparam 4 rrpan +.temp 8 t1 +.temp 4 left +.temp 4 left1 +.temp 4 right + +x2 convswl t1 s1 +x2 convlf t1 t1 +select0ql left t1 +select1ql right t1 +mulf left1 right lrpan +mulf right right rrpan +addf left left1 left +mergelq t1 left right +x2 convfl t1 t1 +x2 convssslw d1 t1 + + +.function audiopanoramam_orc_process_f32_ch2_psy_right +.source 8 s1 gfloat +.dest 8 d1 gfloat +.floatparam 4 llpan +.floatparam 4 rlpan +.temp 4 left +.temp 4 right +.temp 4 right1 + +select0ql left s1 +select1ql right s1 +mulf right1 left rlpan +mulf left left llpan +addf right right1 right +mergelq d1 left right + + +.function audiopanoramam_orc_process_f32_ch2_psy_left +.source 8 s1 gfloat +.dest 8 d1 gfloat +.floatparam 4 lrpan +.floatparam 4 rrpan +.temp 4 left +.temp 4 left1 +.temp 4 right + +select0ql left s1 +select1ql right s1 +mulf left1 right lrpan +mulf right right rrpan +addf left left1 left +mergelq d1 left right + +# simple processing functions + +.function audiopanoramam_orc_process_s16_ch1_sim_right +.source 2 s1 gint16 +.dest 4 d1 gint16 +.floatparam 4 rpan +.temp 8 t1 +.temp 4 left +.temp 4 right + +convswl left s1 +convlf left left +mulf right left rpan +mergelq t1 left right +x2 convfl t1 t1 +x2 convssslw d1 t1 + + +.function audiopanoramam_orc_process_s16_ch1_sim_left +.source 2 s1 gint16 +.dest 4 d1 gint16 +.floatparam 4 lpan +.temp 8 t1 +.temp 4 left +.temp 4 right + +convswl right s1 +convlf right right +mulf left right lpan +mergelq t1 left right +x2 convfl t1 t1 +x2 convssslw d1 t1 + + +.function audiopanoramam_orc_process_s16_ch2_sim_right +.source 4 s1 gint16 +.dest 4 d1 gint16 +.floatparam 4 rpan +.temp 8 t1 +.temp 4 left +.temp 4 right + +x2 convswl t1 s1 +x2 convlf t1 t1 +select0ql left t1 +select1ql right t1 +mulf right right rpan +mergelq t1 left right +x2 convfl t1 t1 +x2 convssslw d1 t1 + + +.function audiopanoramam_orc_process_s16_ch2_sim_left +.source 4 s1 gint16 +.dest 4 d1 gint16 +.floatparam 4 lpan +.temp 8 t1 +.temp 4 left +.temp 4 right + +x2 convswl t1 s1 +x2 convlf t1 t1 +select0ql left t1 +select1ql right t1 +mulf left left lpan +mergelq t1 left right +x2 convfl t1 t1 +x2 convssslw d1 t1 + + +.function audiopanoramam_orc_process_f32_ch1_sim_right +.source 4 s1 gfloat +.dest 8 d1 gfloat +.floatparam 4 rpan +.temp 4 left +.temp 4 right + +copyl left s1 +mulf right s1 rpan +mergelq d1 left right + + +.function audiopanoramam_orc_process_f32_ch1_sim_left +.source 4 s1 gfloat +.dest 8 d1 gfloat +.floatparam 4 lpan +.temp 4 left +.temp 4 right + +mulf left s1 lpan +copyl right s1 +mergelq d1 left right + + +.function audiopanoramam_orc_process_f32_ch2_sim_right +.source 8 s1 gfloat +.dest 8 d1 gfloat +.floatparam 4 rpan +.temp 4 left +.temp 4 right + +select0ql left s1 +select1ql right s1 +mulf right right rpan +mergelq d1 left right + +.function audiopanoramam_orc_process_f32_ch2_sim_left +.source 8 s1 gfloat +.dest 8 d1 gfloat +.floatparam 4 lpan +.temp 4 left +.temp 4 right + +select0ql left s1 +select1ql right s1 +mulf left left lpan +mergelq d1 left right + diff --git a/gst/audiofx/audiowsincband.c b/gst/audiofx/audiowsincband.c index 56488fbfb4482dc91e420b8b09278bd99784ff86..3cbad5d31b0efb06f2c4cb8169827ef60b4990a2 100644 --- a/gst/audiofx/audiowsincband.c +++ b/gst/audiofx/audiowsincband.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * * this windowed sinc filter is taken from the freely downloadable DSP book, diff --git a/gst/audiofx/audiowsincband.h b/gst/audiofx/audiowsincband.h index 8933fe9eb88bce8e974ff35ef9dc33685a95b603..27c2bd479f63949af8a9fab647c98170e9c09f1b 100644 --- a/gst/audiofx/audiowsincband.h +++ b/gst/audiofx/audiowsincband.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * * this windowed sinc filter is taken from the freely downloadable DSP book, diff --git a/gst/audiofx/audiowsinclimit.c b/gst/audiofx/audiowsinclimit.c index 34a6c1671a434cc50be789f746e9805de4a4188a..38eb00717c823b5ea183cf363a262faa56877881 100644 --- a/gst/audiofx/audiowsinclimit.c +++ b/gst/audiofx/audiowsinclimit.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * * this windowed sinc filter is taken from the freely downloadable DSP book, @@ -45,9 +45,9 @@ * <refsect2> * <title>Example launch line</title> * |[ - * gst-launch-1.0 audiotestsrc freq=1500 ! audioconvert ! audiowsinclimit mode=low-pass frequency=1000 length=501 ! audioconvert ! alsasink - * gst-launch-1.0 filesrc location="melo1.ogg" ! oggdemux ! vorbisdec ! audioconvert ! audiowsinclimit mode=high-pass frequency=15000 length=501 ! audioconvert ! alsasink - * gst-launch-1.0 audiotestsrc wave=white-noise ! audioconvert ! audiowsinclimit mode=low-pass frequency=1000 length=10001 window=blackman ! audioconvert ! alsasink + * gst-launch-1.0 audiotestsrc freq=1500 ! audioconvert ! audiowsinclimit mode=low-pass cutoff=1000 length=501 ! audioconvert ! alsasink + * gst-launch-1.0 filesrc location="melo1.ogg" ! oggdemux ! vorbisdec ! audioconvert ! audiowsinclimit mode=high-pass cutoff=15000 length=501 ! audioconvert ! alsasink + * gst-launch-1.0 audiotestsrc wave=white-noise ! audioconvert ! audiowsinclimit mode=low-pass cutoff=1000 length=10001 window=blackman ! audioconvert ! alsasink * ]| * </refsect2> */ diff --git a/gst/audiofx/audiowsinclimit.h b/gst/audiofx/audiowsinclimit.h index 3afdf13a3fde555cfc4f3862f630331358342a9c..e7fa915a0aff137691027eb0900d4c0c2d5d4831 100644 --- a/gst/audiofx/audiowsinclimit.h +++ b/gst/audiofx/audiowsinclimit.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * * this windowed sinc filter is taken from the freely downloadable DSP book, diff --git a/gst/audiofx/gstscaletempo.c b/gst/audiofx/gstscaletempo.c new file mode 100644 index 0000000000000000000000000000000000000000..87118f0c28c61b2a184ff824b4e715902ad5cbf9 --- /dev/null +++ b/gst/audiofx/gstscaletempo.c @@ -0,0 +1,747 @@ +/* + * GStreamer + * Copyright (C) 2008 Rov Juvano <rovjuvano@users.sourceforge.net> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-scaletempo + * + * Scale tempo while maintaining pitch + * (WSOLA-like technique with cross correlation) + * Inspired by SoundTouch library by Olli Parviainen + * + * Use Sceletempo to apply playback rates without the chipmunk effect. + * + * <refsect2> + * <title>Example pipelines</title> + * <para> + * |[ + * filesrc location=media.ext ! decodebin name=d \ + * d. ! queue ! audioconvert ! audioresample ! scaletempo ! audioconvert ! audioresample ! autoaudiosink \ + * d. ! queue ! videoconvert ! autovideosink + * ]| + * OR + * |[ + * playbin uri=... audio_sink="scaletempo ! audioconvert ! audioresample ! autoaudiosink" + * ]| + * When an application sends a seek event with rate != 1.0, Scaletempo applies + * the rate change by scaling the tempo without scaling the pitch. + * + * Scaletempo works by producing audio in constant sized chunks + * (#GstScaletempo:stride) but consuming chunks proportional to the playback + * rate. + * + * Scaletempo then smooths the output by blending the end of one stride with + * the next (#GstScaletempo:overlap). + * + * Scaletempo smooths the overlap further by searching within the input buffer + * for the best overlap position. Scaletempo uses a statistical cross + * correlation (roughly a dot-product). Scaletempo consumes most of its CPU + * cycles here. One can use the #GstScaletempo:search propery to tune how far + * the algoritm looks. + * </para> + * </refsect2> + */ + +/* + * Note: frame = audio key unit (i.e. one sample for each channel) + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/gst.h> +#include <gst/base/gstbasetransform.h> +#include <gst/audio/audio.h> +#include <string.h> /* for memset */ + +#include "gstscaletempo.h" + +GST_DEBUG_CATEGORY_STATIC (gst_scaletempo_debug); +#define GST_CAT_DEFAULT gst_scaletempo_debug + +/* Filter signals and args */ +enum +{ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_RATE, + PROP_STRIDE, + PROP_OVERLAP, + PROP_SEARCH, +}; + +#define SUPPORTED_CAPS \ +GST_STATIC_CAPS ( \ + GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F32)) "; " \ + GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (S16)) \ +) + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + SUPPORTED_CAPS); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + SUPPORTED_CAPS); + +#define DEBUG_INIT(bla) GST_DEBUG_CATEGORY_INIT (gst_scaletempo_debug, "scaletempo", 0, "scaletempo element"); + +#define gst_scaletempo_parent_class parent_class +G_DEFINE_TYPE_WITH_CODE (GstScaletempo, gst_scaletempo, + GST_TYPE_BASE_TRANSFORM, DEBUG_INIT (0)); + +static guint +best_overlap_offset_float (GstScaletempo * st) +{ + gfloat *pw, *po, *ppc, *search_start; + gfloat best_corr = G_MININT; + guint best_off = 0; + gint i, off; + + pw = st->table_window; + po = st->buf_overlap; + po += st->samples_per_frame; + ppc = st->buf_pre_corr; + for (i = st->samples_per_frame; i < st->samples_overlap; i++) { + *ppc++ = *pw++ * *po++; + } + + search_start = (gfloat *) st->buf_queue + st->samples_per_frame; + for (off = 0; off < st->frames_search; off++) { + gfloat corr = 0; + gfloat *ps = search_start; + ppc = st->buf_pre_corr; + for (i = st->samples_per_frame; i < st->samples_overlap; i++) { + corr += *ppc++ * *ps++; + } + if (corr > best_corr) { + best_corr = corr; + best_off = off; + } + search_start += st->samples_per_frame; + } + + return best_off * st->bytes_per_frame; +} + +/* buffer padding for loop optimization: sizeof(gint32) * (loop_size - 1) */ +#define UNROLL_PADDING (4*3) +static guint +best_overlap_offset_s16 (GstScaletempo * st) +{ + gint32 *pw, *ppc; + gint16 *po, *search_start; + gint64 best_corr = G_MININT64; + guint best_off = 0; + guint off; + glong i; + + pw = st->table_window; + po = st->buf_overlap; + po += st->samples_per_frame; + ppc = st->buf_pre_corr; + for (i = st->samples_per_frame; i < st->samples_overlap; i++) { + *ppc++ = (*pw++ * *po++) >> 15; + } + + search_start = (gint16 *) st->buf_queue + st->samples_per_frame; + for (off = 0; off < st->frames_search; off++) { + gint64 corr = 0; + gint16 *ps = search_start; + ppc = st->buf_pre_corr; + ppc += st->samples_overlap - st->samples_per_frame; + ps += st->samples_overlap - st->samples_per_frame; + i = -((glong) st->samples_overlap - (glong) st->samples_per_frame); + do { + corr += ppc[i + 0] * ps[i + 0]; + corr += ppc[i + 1] * ps[i + 1]; + corr += ppc[i + 2] * ps[i + 2]; + corr += ppc[i + 3] * ps[i + 3]; + i += 4; + } while (i < 0); + if (corr > best_corr) { + best_corr = corr; + best_off = off; + } + search_start += st->samples_per_frame; + } + + return best_off * st->bytes_per_frame; +} + +static void +output_overlap_float (GstScaletempo * st, gpointer buf_out, guint bytes_off) +{ + gfloat *pout = buf_out; + gfloat *pb = st->table_blend; + gfloat *po = st->buf_overlap; + gfloat *pin = (gfloat *) (st->buf_queue + bytes_off); + gint i; + for (i = 0; i < st->samples_overlap; i++) { + *pout++ = *po - *pb++ * (*po - *pin++); + po++; + } +} + +static void +output_overlap_s16 (GstScaletempo * st, gpointer buf_out, guint bytes_off) +{ + gint16 *pout = buf_out; + gint32 *pb = st->table_blend; + gint16 *po = st->buf_overlap; + gint16 *pin = (gint16 *) (st->buf_queue + bytes_off); + gint i; + for (i = 0; i < st->samples_overlap; i++) { + *pout++ = *po - ((*pb++ * (*po - *pin++)) >> 16); + po++; + } +} + +static guint +fill_queue (GstScaletempo * st, GstBuffer * buf_in, guint offset) +{ + guint bytes_in = gst_buffer_get_size (buf_in) - offset; + guint offset_unchanged = offset; + GstMapInfo map; + + gst_buffer_map (buf_in, &map, GST_MAP_READ); + if (st->bytes_to_slide > 0) { + if (st->bytes_to_slide < st->bytes_queued) { + guint bytes_in_move = st->bytes_queued - st->bytes_to_slide; + memmove (st->buf_queue, st->buf_queue + st->bytes_to_slide, + bytes_in_move); + st->bytes_to_slide = 0; + st->bytes_queued = bytes_in_move; + } else { + guint bytes_in_skip; + st->bytes_to_slide -= st->bytes_queued; + bytes_in_skip = MIN (st->bytes_to_slide, bytes_in); + st->bytes_queued = 0; + st->bytes_to_slide -= bytes_in_skip; + offset += bytes_in_skip; + bytes_in -= bytes_in_skip; + } + } + + if (bytes_in > 0) { + guint bytes_in_copy = + MIN (st->bytes_queue_max - st->bytes_queued, bytes_in); + memcpy (st->buf_queue + st->bytes_queued, map.data + offset, bytes_in_copy); + st->bytes_queued += bytes_in_copy; + offset += bytes_in_copy; + } + gst_buffer_unmap (buf_in, &map); + + return offset - offset_unchanged; +} + +static void +reinit_buffers (GstScaletempo * st) +{ + gint i, j; + guint frames_overlap; + guint new_size; + GstClockTime latency; + + guint frames_stride = st->ms_stride * st->sample_rate / 1000.0; + st->bytes_stride = frames_stride * st->bytes_per_frame; + + /* overlap */ + frames_overlap = frames_stride * st->percent_overlap; + if (frames_overlap < 1) { /* if no overlap */ + st->bytes_overlap = 0; + st->bytes_standing = st->bytes_stride; + st->samples_standing = st->bytes_standing / st->bytes_per_sample; + st->output_overlap = NULL; + } else { + guint prev_overlap = st->bytes_overlap; + st->bytes_overlap = frames_overlap * st->bytes_per_frame; + st->samples_overlap = frames_overlap * st->samples_per_frame; + st->bytes_standing = st->bytes_stride - st->bytes_overlap; + st->samples_standing = st->bytes_standing / st->bytes_per_sample; + st->buf_overlap = g_realloc (st->buf_overlap, st->bytes_overlap); + st->table_blend = g_realloc (st->table_blend, st->samples_overlap * 4); /* sizeof (gint32|gfloat) */ + if (st->bytes_overlap > prev_overlap) { + memset ((guint8 *) st->buf_overlap + prev_overlap, 0, + st->bytes_overlap - prev_overlap); + } + if (st->use_int) { + gint32 *pb = st->table_blend; + gint64 blend = 0; + for (i = 0; i < frames_overlap; i++) { + gint32 v = blend / frames_overlap; + for (j = 0; j < st->samples_per_frame; j++) { + *pb++ = v; + } + blend += 65535; /* 2^16 */ + } + st->output_overlap = output_overlap_s16; + } else { + gfloat *pb = st->table_blend; + gfloat t = (gfloat) frames_overlap; + for (i = 0; i < frames_overlap; i++) { + gfloat v = i / t; + for (j = 0; j < st->samples_per_frame; j++) { + *pb++ = v; + } + } + st->output_overlap = output_overlap_float; + } + } + + /* best overlap */ + st->frames_search = + (frames_overlap <= 1) ? 0 : st->ms_search * st->sample_rate / 1000.0; + if (st->frames_search < 1) { /* if no search */ + st->best_overlap_offset = NULL; + } else { + guint bytes_pre_corr = (st->samples_overlap - st->samples_per_frame) * 4; /* sizeof (gint32|gfloat) */ + st->buf_pre_corr = + g_realloc (st->buf_pre_corr, bytes_pre_corr + UNROLL_PADDING); + st->table_window = g_realloc (st->table_window, bytes_pre_corr); + if (st->use_int) { + gint64 t = frames_overlap; + gint32 n = 8589934588LL / (t * t); /* 4 * (2^31 - 1) / t^2 */ + gint32 *pw; + + memset ((guint8 *) st->buf_pre_corr + bytes_pre_corr, 0, UNROLL_PADDING); + pw = st->table_window; + for (i = 1; i < frames_overlap; i++) { + gint32 v = (i * (t - i) * n) >> 15; + for (j = 0; j < st->samples_per_frame; j++) { + *pw++ = v; + } + } + st->best_overlap_offset = best_overlap_offset_s16; + } else { + gfloat *pw = st->table_window; + for (i = 1; i < frames_overlap; i++) { + gfloat v = i * (frames_overlap - i); + for (j = 0; j < st->samples_per_frame; j++) { + *pw++ = v; + } + } + st->best_overlap_offset = best_overlap_offset_float; + } + } + + new_size = + (st->frames_search + frames_stride + + frames_overlap) * st->bytes_per_frame; + if (st->bytes_queued > new_size) { + if (st->bytes_to_slide > st->bytes_queued) { + st->bytes_to_slide -= st->bytes_queued; + st->bytes_queued = 0; + } else { + guint new_queued = MIN (st->bytes_queued - st->bytes_to_slide, new_size); + memmove (st->buf_queue, + st->buf_queue + st->bytes_queued - new_queued, new_queued); + st->bytes_to_slide = 0; + st->bytes_queued = new_queued; + } + } + + st->bytes_queue_max = new_size; + st->buf_queue = g_realloc (st->buf_queue, st->bytes_queue_max); + + latency = + gst_util_uint64_scale (st->bytes_queue_max, GST_SECOND, + st->bytes_per_frame * st->sample_rate); + if (st->latency != latency) { + st->latency = latency; + gst_element_post_message (GST_ELEMENT (st), + gst_message_new_latency (GST_OBJECT (st))); + } + + st->bytes_stride_scaled = st->bytes_stride * st->scale; + st->frames_stride_scaled = st->bytes_stride_scaled / st->bytes_per_frame; + + GST_DEBUG + ("%.3f scale, %.3f stride_in, %i stride_out, %i standing, %i overlap, %i search, %i queue, %s mode", + st->scale, st->frames_stride_scaled, + (gint) (st->bytes_stride / st->bytes_per_frame), + (gint) (st->bytes_standing / st->bytes_per_frame), + (gint) (st->bytes_overlap / st->bytes_per_frame), st->frames_search, + (gint) (st->bytes_queue_max / st->bytes_per_frame), + (st->use_int ? "s16" : "float")); + + st->reinit_buffers = FALSE; +} + + +/* GstBaseTransform vmethod implementations */ +static GstFlowReturn +gst_scaletempo_transform (GstBaseTransform * trans, + GstBuffer * inbuf, GstBuffer * outbuf) +{ + GstScaletempo *st = GST_SCALETEMPO (trans); + gint8 *pout; + guint offset_in, bytes_out; + GstMapInfo omap; + GstClockTime timestamp; + + gst_buffer_map (outbuf, &omap, GST_MAP_WRITE); + pout = (gint8 *) omap.data; + offset_in = fill_queue (st, inbuf, 0); + bytes_out = 0; + while (st->bytes_queued >= st->bytes_queue_max) { + guint bytes_off = 0; + gdouble frames_to_slide; + guint frames_to_stride_whole; + + /* output stride */ + if (st->output_overlap) { + if (st->best_overlap_offset) { + bytes_off = st->best_overlap_offset (st); + } + st->output_overlap (st, pout, bytes_off); + } + memcpy (pout + st->bytes_overlap, + st->buf_queue + bytes_off + st->bytes_overlap, st->bytes_standing); + pout += st->bytes_stride; + bytes_out += st->bytes_stride; + + /* input stride */ + memcpy (st->buf_overlap, + st->buf_queue + bytes_off + st->bytes_stride, st->bytes_overlap); + frames_to_slide = st->frames_stride_scaled + st->frames_stride_error; + frames_to_stride_whole = (gint) frames_to_slide; + st->bytes_to_slide = frames_to_stride_whole * st->bytes_per_frame; + st->frames_stride_error = frames_to_slide - frames_to_stride_whole; + + offset_in += fill_queue (st, inbuf, offset_in); + } + + gst_buffer_unmap (outbuf, &omap); + + timestamp = GST_BUFFER_TIMESTAMP (inbuf) - st->segment_start; + if (timestamp < st->latency) + timestamp = 0; + else + timestamp -= st->latency; + GST_BUFFER_TIMESTAMP (outbuf) = timestamp / st->scale + st->segment_start; + GST_BUFFER_DURATION (outbuf) = + gst_util_uint64_scale (bytes_out, GST_SECOND, + st->bytes_per_frame * st->sample_rate); + gst_buffer_set_size (outbuf, bytes_out); + + return GST_FLOW_OK; +} + +static gboolean +gst_scaletempo_transform_size (GstBaseTransform * trans, + GstPadDirection direction, + GstCaps * caps, gsize size, GstCaps * othercaps, gsize * othersize) +{ + if (direction == GST_PAD_SINK) { + GstScaletempo *scaletempo = GST_SCALETEMPO (trans); + gint bytes_to_out; + + if (scaletempo->reinit_buffers) + reinit_buffers (scaletempo); + + bytes_to_out = size + scaletempo->bytes_queued - scaletempo->bytes_to_slide; + if (bytes_to_out < (gint) scaletempo->bytes_queue_max) { + *othersize = 0; + } else { + /* while (total_buffered - stride_length * n >= queue_max) n++ */ + *othersize = scaletempo->bytes_stride * ((guint) ( + (bytes_to_out - scaletempo->bytes_queue_max + + /* rounding protection */ scaletempo->bytes_per_frame) + / scaletempo->bytes_stride_scaled) + 1); + } + + return TRUE; + } + return FALSE; +} + +static gboolean +gst_scaletempo_sink_event (GstBaseTransform * trans, GstEvent * event) +{ + if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) { + GstScaletempo *scaletempo = GST_SCALETEMPO (trans); + GstSegment segment; + + gst_event_copy_segment (event, &segment); + + if (scaletempo->scale != segment.rate) { + if (ABS (segment.rate - 1.0) < 1e-10) { + scaletempo->scale = 1.0; + gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (scaletempo), + TRUE); + } else { + gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (scaletempo), + FALSE); + scaletempo->scale = segment.rate; + scaletempo->bytes_stride_scaled = + scaletempo->bytes_stride * scaletempo->scale; + scaletempo->frames_stride_scaled = + scaletempo->bytes_stride_scaled / scaletempo->bytes_per_frame; + GST_DEBUG ("%.3f scale, %.3f stride_in, %i stride_out", + scaletempo->scale, scaletempo->frames_stride_scaled, + (gint) (scaletempo->bytes_stride / scaletempo->bytes_per_frame)); + + scaletempo->bytes_to_slide = 0; + } + } + + if (scaletempo->scale != 1.0) { + scaletempo->segment_start = segment.start; + segment.applied_rate = scaletempo->scale; + segment.rate = 1.0; + gst_event_unref (event); + + if (segment.stop != -1) { + segment.stop = (segment.stop - segment.start) / segment.applied_rate + + segment.start; + } + + event = gst_event_new_segment (&segment); + gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (trans), event); + return TRUE; + } + } + return GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, event); +} + +static gboolean +gst_scaletempo_set_caps (GstBaseTransform * trans, + GstCaps * incaps, GstCaps * outcaps) +{ + GstScaletempo *scaletempo = GST_SCALETEMPO (trans); + + gint width, bps, nch, rate; + gboolean use_int; + GstAudioInfo info; + + if (!gst_audio_info_from_caps (&info, incaps)) + return FALSE; + + nch = GST_AUDIO_INFO_CHANNELS (&info); + rate = GST_AUDIO_INFO_RATE (&info); + width = GST_AUDIO_INFO_WIDTH (&info); + use_int = GST_AUDIO_INFO_IS_INTEGER (&info); + + bps = width / 8; + + GST_DEBUG ("caps: %" GST_PTR_FORMAT ", %d bps", incaps, bps); + + if (rate != scaletempo->sample_rate + || nch != scaletempo->samples_per_frame + || bps != scaletempo->bytes_per_sample + || use_int != scaletempo->use_int) { + scaletempo->sample_rate = rate; + scaletempo->samples_per_frame = nch; + scaletempo->bytes_per_sample = bps; + scaletempo->bytes_per_frame = nch * bps; + scaletempo->use_int = use_int; + scaletempo->reinit_buffers = TRUE; + } + + return TRUE; +} + +static gboolean +gst_scaletempo_query (GstBaseTransform * trans, GstPadDirection direction, + GstQuery * query) +{ + GstScaletempo *scaletempo = GST_SCALETEMPO (trans); + + if (direction == GST_PAD_SRC) { + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_LATENCY:{ + GstPad *peer; + gboolean res; + + if ((peer = gst_pad_get_peer (GST_BASE_TRANSFORM_SINK_PAD (trans)))) { + if ((res = gst_pad_query (peer, query))) { + GstClockTime min, max; + gboolean live; + + gst_query_parse_latency (query, &live, &min, &max); + + GST_DEBUG_OBJECT (scaletempo, "Peer latency: min %" + GST_TIME_FORMAT " max %" GST_TIME_FORMAT, + GST_TIME_ARGS (min), GST_TIME_ARGS (max)); + + /* add our own latency */ + GST_DEBUG_OBJECT (scaletempo, "Our latency: %" GST_TIME_FORMAT, + GST_TIME_ARGS (scaletempo->latency)); + min += scaletempo->latency; + if (max != GST_CLOCK_TIME_NONE) + max += scaletempo->latency; + + GST_DEBUG_OBJECT (scaletempo, "Calculated total latency : min %" + GST_TIME_FORMAT " max %" GST_TIME_FORMAT, + GST_TIME_ARGS (min), GST_TIME_ARGS (max)); + gst_query_set_latency (query, live, min, max); + } + gst_object_unref (peer); + } + + return TRUE; + break; + } + default:{ + return GST_BASE_TRANSFORM_CLASS (parent_class)->query (trans, direction, + query); + break; + } + } + } else { + return GST_BASE_TRANSFORM_CLASS (parent_class)->query (trans, direction, + query); + } +} + +/* GObject vmethod implementations */ +static void +gst_scaletempo_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstScaletempo *scaletempo = GST_SCALETEMPO (object); + + switch (prop_id) { + case PROP_RATE: + g_value_set_double (value, scaletempo->scale); + break; + case PROP_STRIDE: + g_value_set_uint (value, scaletempo->ms_stride); + break; + case PROP_OVERLAP: + g_value_set_double (value, scaletempo->percent_overlap); + break; + case PROP_SEARCH: + g_value_set_uint (value, scaletempo->ms_search); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_scaletempo_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstScaletempo *scaletempo = GST_SCALETEMPO (object); + + switch (prop_id) { + case PROP_STRIDE:{ + guint new_value = g_value_get_uint (value); + if (scaletempo->ms_stride != new_value) { + scaletempo->ms_stride = new_value; + scaletempo->reinit_buffers = TRUE; + } + break; + } + case PROP_OVERLAP:{ + gdouble new_value = g_value_get_double (value); + if (scaletempo->percent_overlap != new_value) { + scaletempo->percent_overlap = new_value; + scaletempo->reinit_buffers = TRUE; + } + break; + } + case PROP_SEARCH:{ + guint new_value = g_value_get_uint (value); + if (scaletempo->ms_search != new_value) { + scaletempo->ms_search = new_value; + scaletempo->reinit_buffers = TRUE; + } + break; + } + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_scaletempo_class_init (GstScaletempoClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + GstBaseTransformClass *basetransform_class = GST_BASE_TRANSFORM_CLASS (klass); + + gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_scaletempo_get_property); + gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_scaletempo_set_property); + + g_object_class_install_property (gobject_class, PROP_RATE, + g_param_spec_double ("rate", "Playback Rate", "Current playback rate", + G_MININT, G_MAXINT, 1.0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_STRIDE, + g_param_spec_uint ("stride", "Stride Length", + "Length in milliseconds to output each stride", 1, 5000, 30, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_OVERLAP, + g_param_spec_double ("overlap", "Overlap Length", + "Percentage of stride to overlap", 0, 1, .2, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_SEARCH, + g_param_spec_uint ("search", "Search Length", + "Length in milliseconds to search for best overlap position", 0, 500, + 14, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&src_template)); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&sink_template)); + gst_element_class_set_static_metadata (gstelement_class, "Scaletempo", + "Filter/Effect/Rate", + "Sync audio tempo with playback rate", + "Rov Juvano <rovjuvano@users.sourceforge.net>"); + + basetransform_class->sink_event = + GST_DEBUG_FUNCPTR (gst_scaletempo_sink_event); + basetransform_class->set_caps = GST_DEBUG_FUNCPTR (gst_scaletempo_set_caps); + basetransform_class->transform_size = + GST_DEBUG_FUNCPTR (gst_scaletempo_transform_size); + basetransform_class->transform = GST_DEBUG_FUNCPTR (gst_scaletempo_transform); + basetransform_class->query = GST_DEBUG_FUNCPTR (gst_scaletempo_query); +} + +static void +gst_scaletempo_init (GstScaletempo * scaletempo) +{ + /* defaults */ + scaletempo->ms_stride = 30; + scaletempo->percent_overlap = .2; + scaletempo->ms_search = 14; + + /* uninitialized */ + scaletempo->scale = 0; + scaletempo->sample_rate = 0; + scaletempo->frames_stride_error = 0; + scaletempo->bytes_stride = 0; + scaletempo->bytes_queued = 0; + scaletempo->bytes_to_slide = 0; + scaletempo->segment_start = 0; +} diff --git a/gst/audiofx/gstscaletempo.h b/gst/audiofx/gstscaletempo.h new file mode 100644 index 0000000000000000000000000000000000000000..9be1510916f8da500abdd5c7e13cc2c64c8f4a63 --- /dev/null +++ b/gst/audiofx/gstscaletempo.h @@ -0,0 +1,98 @@ +/* + * GStreamer + * Copyright (C) 2008 Rov Juvano <rovjuvano@users.sourceforge.net> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_SCALETEMPO_H__ +#define __GST_SCALETEMPO_H__ + +#include <gst/gst.h> +#include <gst/base/gstbasetransform.h> + +G_BEGIN_DECLS + +#define GST_TYPE_SCALETEMPO (gst_scaletempo_get_type()) +#define GST_SCALETEMPO(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_SCALETEMPO, GstScaletempo)) +#define GST_SCALETEMPO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_SCALETEMPO, GstScaletempoClass)) +#define GST_IS_SCALETEMPO(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_SCALETEMPO)) +#define GST_IS_SCALETEMPO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_SCALETEMPO)) + +typedef struct _GstScaletempo GstScaletempo; +typedef struct _GstScaletempoClass GstScaletempoClass; +typedef struct _GstScaletempoPrivate GstScaletempoPrivate; + +struct _GstScaletempo +{ + GstBaseTransform element; + + gdouble scale; + + /* parameters */ + guint ms_stride; + gdouble percent_overlap; + guint ms_search; + + /* caps */ + gboolean use_int; + guint samples_per_frame; /* AKA number of channels */ + guint bytes_per_sample; + guint bytes_per_frame; + guint sample_rate; + + /* stride */ + gdouble frames_stride_scaled; + gdouble frames_stride_error; + guint bytes_stride; + gdouble bytes_stride_scaled; + guint bytes_queue_max; + guint bytes_queued; + guint bytes_to_slide; + gint8 *buf_queue; + + /* overlap */ + guint samples_overlap; + guint samples_standing; + guint bytes_overlap; + guint bytes_standing; + gpointer buf_overlap; + gpointer table_blend; + void (*output_overlap) (GstScaletempo * scaletempo, gpointer out_buf, guint bytes_off); + + /* best overlap */ + guint frames_search; + gpointer buf_pre_corr; + gpointer table_window; + guint (*best_overlap_offset) (GstScaletempo * scaletempo); + + /* gstreamer */ + gint64 segment_start; + GstClockTime latency; + + /* threads */ + gboolean reinit_buffers; +}; + +struct _GstScaletempoClass +{ + GstBaseTransformClass parent_class; +}; + +GType gst_scaletempo_get_type (void); + +G_END_DECLS +#endif /* __GST_SCALETEMPO_H__ */ diff --git a/gst/audiofx/math_compat.h b/gst/audiofx/math_compat.h index 87296981e407e72e1c95b10474f005c453e79867..da2370c1489f08ad3c5cddb668f6d863020aefa7 100644 --- a/gst/audiofx/math_compat.h +++ b/gst/audiofx/math_compat.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __MATH_COMPAT_H__ diff --git a/gst/audioparsers/Makefile.am b/gst/audioparsers/Makefile.am index 3533314fc1a63bb06db52c181081900773510317..1263c937fb1d41f25d71a1e67dcf155a660718fc 100644 --- a/gst/audioparsers/Makefile.am +++ b/gst/audioparsers/Makefile.am @@ -3,7 +3,7 @@ plugin_LTLIBRARIES = libgstaudioparsers.la libgstaudioparsers_la_SOURCES = \ gstaacparse.c gstamrparse.c gstac3parse.c \ gstdcaparse.c gstflacparse.c gstmpegaudioparse.c \ - gstwavpackparse.c plugin.c + gstsbcparse.c gstwavpackparse.c plugin.c libgstaudioparsers_la_CFLAGS = \ $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) @@ -15,4 +15,5 @@ libgstaudioparsers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstaudioparsers_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) noinst_HEADERS = gstaacparse.h gstamrparse.h gstac3parse.h \ - gstdcaparse.h gstflacparse.h gstmpegaudioparse.h gstwavpackparse.h + gstdcaparse.h gstflacparse.h gstmpegaudioparse.h gstsbcparse.h \ + gstwavpackparse.h diff --git a/gst/audioparsers/Makefile.in b/gst/audioparsers/Makefile.in index 6f3c4983896aa4c3d984a9aab6cb2ed1bd7ccf8f..607f980a31a948483b459791210b7a0c8997f5d1 100644 --- a/gst/audioparsers/Makefile.in +++ b/gst/audioparsers/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/audioparsers -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,16 +163,30 @@ am_libgstaudioparsers_la_OBJECTS = \ libgstaudioparsers_la-gstdcaparse.lo \ libgstaudioparsers_la-gstflacparse.lo \ libgstaudioparsers_la-gstmpegaudioparse.lo \ + libgstaudioparsers_la-gstsbcparse.lo \ libgstaudioparsers_la-gstwavpackparse.lo \ libgstaudioparsers_la-plugin.lo libgstaudioparsers_la_OBJECTS = $(am_libgstaudioparsers_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstaudioparsers_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) \ $(libgstaudioparsers_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -159,20 +199,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstaudioparsers_la_SOURCES) DIST_SOURCES = $(libgstaudioparsers_la_SOURCES) am__can_run_installinfo = \ @@ -181,6 +217,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -349,6 +402,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -513,7 +567,7 @@ plugin_LTLIBRARIES = libgstaudioparsers.la libgstaudioparsers_la_SOURCES = \ gstaacparse.c gstamrparse.c gstac3parse.c \ gstdcaparse.c gstflacparse.c gstmpegaudioparse.c \ - gstwavpackparse.c plugin.c + gstsbcparse.c gstwavpackparse.c plugin.c libgstaudioparsers_la_CFLAGS = \ $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) @@ -526,7 +580,8 @@ libgstaudioparsers_la_LIBADD = \ libgstaudioparsers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstaudioparsers_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) noinst_HEADERS = gstaacparse.h gstamrparse.h gstac3parse.h \ - gstdcaparse.h gstflacparse.h gstmpegaudioparse.h gstwavpackparse.h + gstdcaparse.h gstflacparse.h gstmpegaudioparse.h gstsbcparse.h \ + gstwavpackparse.h all: all-am @@ -562,6 +617,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -588,12 +644,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstaudioparsers.la: $(libgstaudioparsers_la_OBJECTS) $(libgstaudioparsers_la_DEPENDENCIES) $(EXTRA_libgstaudioparsers_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstaudioparsers_la_LINK) -rpath $(plugindir) $(libgstaudioparsers_la_OBJECTS) $(libgstaudioparsers_la_LIBADD) $(LIBS) @@ -609,6 +668,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstdcaparse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstflacparse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstmpegaudioparse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstsbcparse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstwavpackparse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-plugin.Plo@am__quote@ @@ -675,6 +735,13 @@ libgstaudioparsers_la-gstmpegaudioparse.lo: gstmpegaudioparse.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstmpegaudioparse.lo `test -f 'gstmpegaudioparse.c' || echo '$(srcdir)/'`gstmpegaudioparse.c +libgstaudioparsers_la-gstsbcparse.lo: gstsbcparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstsbcparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstsbcparse.Tpo -c -o libgstaudioparsers_la-gstsbcparse.lo `test -f 'gstsbcparse.c' || echo '$(srcdir)/'`gstsbcparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstsbcparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstsbcparse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsbcparse.c' object='libgstaudioparsers_la-gstsbcparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstsbcparse.lo `test -f 'gstsbcparse.c' || echo '$(srcdir)/'`gstsbcparse.c + libgstaudioparsers_la-gstwavpackparse.lo: gstwavpackparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstwavpackparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstwavpackparse.Tpo -c -o libgstaudioparsers_la-gstwavpackparse.lo `test -f 'gstwavpackparse.c' || echo '$(srcdir)/'`gstwavpackparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstwavpackparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstwavpackparse.Plo @@ -695,26 +762,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -726,15 +782,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -743,6 +795,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -887,19 +954,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c index 1a7a59388315d0e7497188a6f4b23a3efd986ac2..8f63b116e1705eda398f76520a754b57e591558b 100644 --- a/gst/audioparsers/gstaacparse.c +++ b/gst/audioparsers/gstaacparse.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/audioparsers/gstaacparse.h b/gst/audioparsers/gstaacparse.h index 11f75e683b9b948992d428f61fb9ce04b3d7bf88..8eca9aa4123e3ac6f3011c8ce112671f306cd93d 100644 --- a/gst/audioparsers/gstaacparse.h +++ b/gst/audioparsers/gstaacparse.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AAC_PARSE_H__ diff --git a/gst/audioparsers/gstac3parse.c b/gst/audioparsers/gstac3parse.c index c0c7b5cdcbc04f7d8aa4b3b4204570cc5cb30d09..23b017f69d3efbd0fad41f42858a034cdfac3ea4 100644 --- a/gst/audioparsers/gstac3parse.c +++ b/gst/audioparsers/gstac3parse.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-ac3parse @@ -35,7 +35,7 @@ */ /* TODO: - * - add support for audio/x-private1-ac3 as well + * - audio/ac3 to audio/x-private1-ac3 is not implemented (done in the muxer) * - should accept framed and unframed input (needs decodebin fixes first) */ @@ -153,7 +153,8 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-ac3; " "audio/x-eac3; " "audio/ac3")); + GST_STATIC_CAPS ("audio/x-ac3; " "audio/x-eac3; " "audio/ac3; " + "audio/x-private1-ac3")); static void gst_ac3_parse_finalize (GObject * object); @@ -165,6 +166,8 @@ static gboolean gst_ac3_parse_src_event (GstBaseParse * parse, GstEvent * event); static GstCaps *gst_ac3_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter); +static gboolean gst_ac3_parse_set_sink_caps (GstBaseParse * parse, + GstCaps * caps); #define gst_ac3_parse_parent_class parent_class G_DEFINE_TYPE (GstAc3Parse, gst_ac3_parse, GST_TYPE_BASE_PARSE); @@ -195,6 +198,7 @@ gst_ac3_parse_class_init (GstAc3ParseClass * klass) parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_ac3_parse_handle_frame); parse_class->src_event = GST_DEBUG_FUNCPTR (gst_ac3_parse_src_event); parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_ac3_parse_get_sink_caps); + parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_ac3_parse_set_sink_caps); } static void @@ -212,6 +216,8 @@ gst_ac3_parse_init (GstAc3Parse * ac3parse) { gst_base_parse_set_min_frame_size (GST_BASE_PARSE (ac3parse), 6); gst_ac3_parse_reset (ac3parse); + ac3parse->baseparse_chainfunc = + GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE (ac3parse))->chainfunc; } static void @@ -660,6 +666,50 @@ cleanup: return res; } + +/* + * MPEG-PS private1 streams add a 2 bytes "Audio Substream Headers" for each + * buffer (not each frame) with the offset of the next frame's start. + * + * Buffer 1: + * ------------------------------------------- + * |firstAccUnit|AC3SyncWord|xxxxxxxxxxxxxxxxx + * ------------------------------------------- + * Buffer 2: + * ------------------------------------------- + * |firstAccUnit|xxxxxx|AC3SyncWord|xxxxxxxxxx + * ------------------------------------------- + * + * These 2 bytes can be dropped safely as they do not include any timing + * information, only the offset to the start of the next frame. + * + * From http://stnsoft.com/DVD/ass-hdr.html: + * "FirstAccUnit offset to frame which corresponds to PTS value offset 0 is the + * last byte of FirstAccUnit, ie add the offset of byte 2 to get the AU's offset + * The value 0000 indicates there is no first access unit" + * */ + +static GstFlowReturn +gst_ac3_parse_chain_priv (GstPad * pad, GstObject * parent, GstBuffer * buffer) +{ + GstAc3Parse *ac3parse = GST_AC3_PARSE (parent); + GstFlowReturn ret; + GstBuffer *newbuf; + gsize size; + + size = gst_buffer_get_size (buffer); + if (size >= 2) { + newbuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 2, size - 2); + gst_buffer_unref (buffer); + ret = ac3parse->baseparse_chainfunc (pad, parent, newbuf); + } else { + gst_buffer_unref (buffer); + ret = GST_FLOW_OK; + } + + return ret; +} + static gboolean gst_ac3_parse_src_event (GstBaseParse * parse, GstEvent * event) { @@ -737,3 +787,18 @@ gst_ac3_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) return res; } + +static gboolean +gst_ac3_parse_set_sink_caps (GstBaseParse * parse, GstCaps * caps) +{ + GstStructure *s; + GstAc3Parse *ac3parse = GST_AC3_PARSE (parse); + + s = gst_caps_get_structure (caps, 0); + if (gst_structure_has_name (s, "audio/x-private1-ac3")) { + gst_pad_set_chain_function (parse->sinkpad, gst_ac3_parse_chain_priv); + } else { + gst_pad_set_chain_function (parse->sinkpad, ac3parse->baseparse_chainfunc); + } + return TRUE; +} diff --git a/gst/audioparsers/gstac3parse.h b/gst/audioparsers/gstac3parse.h index 545419f14f0c166af35d38d90c7891bbee632ecb..0800dca3c5a75580ef99ac415ed4066b507430f1 100644 --- a/gst/audioparsers/gstac3parse.h +++ b/gst/audioparsers/gstac3parse.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AC3_PARSE_H__ @@ -57,11 +57,12 @@ struct _GstAc3Parse { GstBaseParse baseparse; /*< private >*/ - gint sample_rate; - gint channels; - gint blocks; - gboolean eac; - volatile gint align; + gint sample_rate; + gint channels; + gint blocks; + gboolean eac; + volatile gint align; + GstPadChainFunction baseparse_chainfunc; }; /** diff --git a/gst/audioparsers/gstamrparse.c b/gst/audioparsers/gstamrparse.c index 7d4ff8524877fac5c1b2965789a34897d5dd770f..1a321528dc2612d4a88b39e51ecc0fa4f9e003cc 100644 --- a/gst/audioparsers/gstamrparse.c +++ b/gst/audioparsers/gstamrparse.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/audioparsers/gstamrparse.h b/gst/audioparsers/gstamrparse.h index 86a26e026c0ae7a336e139e5566d91dfeb8b95f7..7898b71588da132bf962e6b56bd1fa68acc5bae2 100644 --- a/gst/audioparsers/gstamrparse.h +++ b/gst/audioparsers/gstamrparse.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AMR_PARSE_H__ diff --git a/gst/audioparsers/gstdcaparse.c b/gst/audioparsers/gstdcaparse.c index 3c1f61eb51ba076be0dd0bff85f2fb23ac494063..6df74ea62a54d69e26fcba22d1590f31085915db 100644 --- a/gst/audioparsers/gstdcaparse.c +++ b/gst/audioparsers/gstdcaparse.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -68,7 +68,7 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-dts")); + GST_STATIC_CAPS ("audio/x-dts; " "audio/x-private1-dts")); static void gst_dca_parse_finalize (GObject * object); @@ -78,6 +78,8 @@ static GstFlowReturn gst_dca_parse_handle_frame (GstBaseParse * parse, GstBaseParseFrame * frame, gint * skipsize); static GstCaps *gst_dca_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter); +static gboolean gst_dca_parse_set_sink_caps (GstBaseParse * parse, + GstCaps * caps); #define gst_dca_parse_parent_class parent_class G_DEFINE_TYPE (GstDcaParse, gst_dca_parse, GST_TYPE_BASE_PARSE); @@ -98,6 +100,7 @@ gst_dca_parse_class_init (GstDcaParseClass * klass) parse_class->stop = GST_DEBUG_FUNCPTR (gst_dca_parse_stop); parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_dca_parse_handle_frame); parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_dca_parse_get_sink_caps); + parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_dca_parse_set_sink_caps); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sink_template)); @@ -127,6 +130,8 @@ gst_dca_parse_init (GstDcaParse * dcaparse) gst_base_parse_set_min_frame_size (GST_BASE_PARSE (dcaparse), DCA_MIN_FRAMESIZE); gst_dca_parse_reset (dcaparse); + dcaparse->baseparse_chainfunc = + GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE (dcaparse))->chainfunc; } static void @@ -440,6 +445,35 @@ cleanup: return ret; } +/* + * MPEG-PS private1 streams add a 2 bytes "Audio Substream Headers" for each + * buffer (not each frame) with the offset of the next frame's start. + * These 2 bytes can be dropped safely as they do not include any timing + * information, only the offset to the start of the next frame. + * See gstac3parse.c for a more detailed description. + * */ + +static GstFlowReturn +gst_dca_parse_chain_priv (GstPad * pad, GstObject * parent, GstBuffer * buffer) +{ + GstDcaParse *dcaparse = GST_DCA_PARSE (parent); + GstFlowReturn ret; + GstBuffer *newbuf; + gsize size; + + size = gst_buffer_get_size (buffer); + if (size >= 2) { + newbuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 2, size - 2); + gst_buffer_unref (buffer); + ret = dcaparse->baseparse_chainfunc (pad, parent, newbuf); + } else { + gst_buffer_unref (buffer); + ret = GST_FLOW_OK; + } + + return ret; +} + static GstCaps * gst_dca_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) { @@ -485,3 +519,18 @@ gst_dca_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) return res; } + +static gboolean +gst_dca_parse_set_sink_caps (GstBaseParse * parse, GstCaps * caps) +{ + GstStructure *s; + GstDcaParse *dcaparse = GST_DCA_PARSE (parse); + + s = gst_caps_get_structure (caps, 0); + if (gst_structure_has_name (s, "audio/x-private1-dts")) { + gst_pad_set_chain_function (parse->sinkpad, gst_dca_parse_chain_priv); + } else { + gst_pad_set_chain_function (parse->sinkpad, dcaparse->baseparse_chainfunc); + } + return TRUE; +} diff --git a/gst/audioparsers/gstdcaparse.h b/gst/audioparsers/gstdcaparse.h index b3e066bd0b4cca0608c93239190771c8d2d3aa39..b1ac76dfa8dbc8fd81c93d7f6d10623a41fc74f6 100644 --- a/gst/audioparsers/gstdcaparse.h +++ b/gst/audioparsers/gstdcaparse.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_DCA_PARSE_H__ @@ -51,14 +51,16 @@ struct _GstDcaParse { GstBaseParse baseparse; /*< private >*/ - gint rate; - gint channels; - gint depth; - gint endianness; - gint block_size; - gint frame_size; + gint rate; + gint channels; + gint depth; + gint endianness; + gint block_size; + gint frame_size; - guint32 last_sync; + guint32 last_sync; + + GstPadChainFunction baseparse_chainfunc; }; /** diff --git a/gst/audioparsers/gstflacparse.c b/gst/audioparsers/gstflacparse.c index 043c9a7b20549efe840b2a9e66b0dac78f28b95b..ddc686e399fb8306b79148f59fb49b7099890ed5 100644 --- a/gst/audioparsers/gstflacparse.c +++ b/gst/audioparsers/gstflacparse.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -204,6 +204,8 @@ static GstFlowReturn gst_flac_parse_pre_push_frame (GstBaseParse * parse, static gboolean gst_flac_parse_convert (GstBaseParse * parse, GstFormat src_format, gint64 src_value, GstFormat dest_format, gint64 * dest_value); +static gboolean gst_flac_parse_src_event (GstBaseParse * parse, + GstEvent * event); static GstCaps *gst_flac_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter); @@ -237,6 +239,7 @@ gst_flac_parse_class_init (GstFlacParseClass * klass) baseparse_class->pre_push_frame = GST_DEBUG_FUNCPTR (gst_flac_parse_pre_push_frame); baseparse_class->convert = GST_DEBUG_FUNCPTR (gst_flac_parse_convert); + baseparse_class->src_event = GST_DEBUG_FUNCPTR (gst_flac_parse_src_event); baseparse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_flac_parse_get_sink_caps); @@ -753,7 +756,7 @@ gst_flac_parse_handle_frame (GstBaseParse * parse, GstMapInfo map; gboolean result = TRUE; GstFlowReturn ret = GST_FLOW_OK; - guint framesize; + guint framesize = 0; gst_buffer_map (buffer, &map, GST_MAP_READ); @@ -1694,7 +1697,6 @@ gst_flac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) if (flacparse->toc) { gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (flacparse), gst_event_new_toc (flacparse->toc, FALSE)); - flacparse->toc = NULL; } frame->flags |= GST_BASE_PARSE_FRAME_FLAG_CLIP; @@ -1734,6 +1736,61 @@ gst_flac_parse_convert (GstBaseParse * parse, src_value, dest_format, dest_value); } +static gboolean +gst_flac_parse_src_event (GstBaseParse * parse, GstEvent * event) +{ + GstFlacParse *flacparse = GST_FLAC_PARSE (parse); + gboolean res = FALSE; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_TOC_SELECT: + { + GstTocEntry *entry = NULL; + GstEvent *seek_event; + GstToc *toc = NULL; + gint64 start_pos; + gchar *uid = NULL; + + /* FIXME: some locking would be good */ + if (flacparse->toc) + toc = gst_toc_ref (flacparse->toc); + + if (toc != NULL) { + gst_event_parse_toc_select (event, &uid); + if (uid != NULL) { + entry = gst_toc_find_entry (toc, uid); + if (entry != NULL) { + gst_toc_entry_get_start_stop_times (entry, &start_pos, NULL); + + /* FIXME: use segment rate here instead? */ + seek_event = gst_event_new_seek (1.0, + GST_FORMAT_TIME, + GST_SEEK_FLAG_FLUSH, + GST_SEEK_TYPE_SET, start_pos, GST_SEEK_TYPE_NONE, -1); + + res = + GST_BASE_PARSE_CLASS (parent_class)->src_event (parse, + seek_event); + + g_free (uid); + } else { + GST_WARNING_OBJECT (parse, "no TOC entry with given UID: %s", uid); + } + } + gst_toc_unref (toc); + } else { + GST_DEBUG_OBJECT (flacparse, "no TOC to select"); + } + gst_event_unref (event); + break; + } + default: + res = GST_BASE_PARSE_CLASS (parent_class)->src_event (parse, event); + break; + } + return res; +} + static GstCaps * gst_flac_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) { diff --git a/gst/audioparsers/gstflacparse.h b/gst/audioparsers/gstflacparse.h index bba021279ada43ae30fab72aef54c79693f39890..5113abc3c4acd458fc3c249af012179a08bae4df 100644 --- a/gst/audioparsers/gstflacparse.h +++ b/gst/audioparsers/gstflacparse.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_FLAC_PARSE_H__ diff --git a/gst/audioparsers/gstmpegaudioparse.c b/gst/audioparsers/gstmpegaudioparse.c index b14d2e6a350d61d194e799f2bf88d06ac76dea11..aaa934943572c3f678985e1ff355cd1f1e3ea83b 100644 --- a/gst/audioparsers/gstmpegaudioparse.c +++ b/gst/audioparsers/gstmpegaudioparse.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-mpegaudioparse diff --git a/gst/audioparsers/gstmpegaudioparse.h b/gst/audioparsers/gstmpegaudioparse.h index 6b42673552d740e609f4f0663f7957c9214278e5..5e576beae5a3eef186a9e034c67be155a80ebd9f 100644 --- a/gst/audioparsers/gstmpegaudioparse.h +++ b/gst/audioparsers/gstmpegaudioparse.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MPEG_AUDIO_PARSE_H__ diff --git a/gst/audioparsers/gstsbcparse.c b/gst/audioparsers/gstsbcparse.c new file mode 100644 index 0000000000000000000000000000000000000000..5df456ae621dff5e8a442beba0a9ee24a01e39fd --- /dev/null +++ b/gst/audioparsers/gstsbcparse.c @@ -0,0 +1,487 @@ +/* GStreamer SBC audio parser + * Copyright (C) 2012 Collabora Ltd. <tim.muller@collabora.co.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/** + * SECTION:element-sbcparse + * @see_also: sbcdec, sbcenc + * + * The sbcparse element will parse a bluetooth SBC audio stream into + * frames and timestamp them properly. + * + * Since: 1.2.0 + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstsbcparse.h" + +#include <string.h> +#include <gst/tag/tag.h> +#include <gst/audio/audio.h> + +#include <gst/base/gstbitreader.h> +#include <gst/base/gstbytereader.h> + +#define SBC_SYNCBYTE 0x9C + +GST_DEBUG_CATEGORY_STATIC (sbcparse_debug); +#define GST_CAT_DEFAULT sbcparse_debug + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-sbc, parsed = (boolean) true, " + "channels = (int) [ 1, 2 ], " + "rate = (int) { 16000, 32000, 44100, 48000 }") + ); + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-sbc") + ); + +static gboolean gst_sbc_parse_start (GstBaseParse * parse); +static gboolean gst_sbc_parse_stop (GstBaseParse * parse); +static GstFlowReturn gst_sbc_parse_handle_frame (GstBaseParse * parse, + GstBaseParseFrame * frame, gint * skipsize); +static GstCaps *gst_sbc_parse_get_sink_caps (GstBaseParse * parse, + GstCaps * filter); + +static guint8 gst_sbc_calculate_crc8 (const guint8 * data, gint bits_crc); +static gsize gst_sbc_calc_framelen (guint subbands, GstSbcChannelMode ch_mode, + guint blocks, guint bitpool); +static gsize gst_sbc_parse_header (const guint8 * data, guint * rate, + guint * n_blocks, GstSbcChannelMode * ch_mode, + GstSbcAllocationMethod * alloc_method, guint * n_subbands, guint * bitpool); + +#define parent_class gst_sbc_parse_parent_class +G_DEFINE_TYPE (GstSbcParse, gst_sbc_parse, GST_TYPE_BASE_PARSE); + +static void +gst_sbc_parse_class_init (GstSbcParseClass * klass) +{ + GstBaseParseClass *baseparse_class = GST_BASE_PARSE_CLASS (klass); + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + GST_DEBUG_CATEGORY_INIT (sbcparse_debug, "sbcparse", 0, "SBC audio parser"); + + baseparse_class->start = GST_DEBUG_FUNCPTR (gst_sbc_parse_start); + baseparse_class->stop = GST_DEBUG_FUNCPTR (gst_sbc_parse_stop); + + baseparse_class->handle_frame = + GST_DEBUG_FUNCPTR (gst_sbc_parse_handle_frame); + baseparse_class->get_sink_caps = + GST_DEBUG_FUNCPTR (gst_sbc_parse_get_sink_caps); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_factory)); + + gst_element_class_set_static_metadata (element_class, "SBC audio parser", + "Codec/Parser/Audio", "Parses an SBC bluetooth audio stream", + "Tim-Philipp Müller <tim.muller@collabora.co.uk>"); +} + +static void +gst_sbc_parse_reset (GstSbcParse * sbcparse) +{ + sbcparse->alloc_method = GST_SBC_ALLOCATION_METHOD_INVALID; + sbcparse->ch_mode = GST_SBC_CHANNEL_MODE_INVALID; + sbcparse->rate = -1; + sbcparse->n_blocks = -1; + sbcparse->n_subbands = -1; + sbcparse->bitpool = -1; +} + +static void +gst_sbc_parse_init (GstSbcParse * sbcparse) +{ + gst_sbc_parse_reset (sbcparse); +} + +static gboolean +gst_sbc_parse_start (GstBaseParse * parse) +{ + gst_base_parse_set_min_frame_size (parse, + gst_sbc_calc_framelen (4, GST_SBC_CHANNEL_MODE_MONO, 4, 2)); + + gst_base_parse_set_has_timing_info (parse, FALSE); + + gst_base_parse_set_syncable (parse, TRUE); + + return TRUE; +} + +static gboolean +gst_sbc_parse_stop (GstBaseParse * parse) +{ + gst_sbc_parse_reset (GST_SBC_PARSE (parse)); + return TRUE; +} + +static const gchar * +gst_sbc_channel_mode_get_name (GstSbcChannelMode ch_mode) +{ + switch (ch_mode) { + case GST_SBC_CHANNEL_MODE_MONO: + return "mono"; + case GST_SBC_CHANNEL_MODE_DUAL: + return "dual"; + case GST_SBC_CHANNEL_MODE_STEREO: + return "stereo"; + case GST_SBC_CHANNEL_MODE_JOINT_STEREO: + return "joint"; + default: + break; + } + return "invalid"; +} + +static const gchar * +gst_sbc_allocation_method_get_name (GstSbcAllocationMethod alloc_method) +{ + switch (alloc_method) { + case GST_SBC_ALLOCATION_METHOD_SNR: + return "snr"; + case GST_SBC_ALLOCATION_METHOD_LOUDNESS: + return "loudness"; + default: + break; + } + return "invalid"; +} + +static GstFlowReturn +gst_sbc_parse_handle_frame (GstBaseParse * parse, GstBaseParseFrame * frame, + gint * skipsize) +{ + GstSbcParse *sbcparse = GST_SBC_PARSE (parse); + GstSbcAllocationMethod alloc_method = GST_SBC_ALLOCATION_METHOD_INVALID; + GstSbcChannelMode ch_mode = GST_SBC_CHANNEL_MODE_INVALID; + GstMapInfo map; + guint rate = 0, n_blocks = 0, n_subbands = 0, bitpool = 0; + gsize frame_len, next_len; + gint i, max_frames; + + gst_buffer_map (frame->buffer, &map, GST_MAP_READ); + + g_assert (map.size >= 6); + + frame_len = gst_sbc_parse_header (map.data, &rate, &n_blocks, &ch_mode, + &alloc_method, &n_subbands, &bitpool); + + GST_LOG_OBJECT (parse, "frame_len: %u", (guint) frame_len); + + if (frame_len == 0) + goto resync; + + if (sbcparse->alloc_method != alloc_method + || sbcparse->ch_mode != ch_mode + || sbcparse->rate != rate + || sbcparse->n_blocks != n_blocks + || sbcparse->n_subbands != n_subbands || sbcparse->bitpool != bitpool) { + guint avg_bitrate; + GstCaps *caps; + + /* FIXME: do all of these need to be in the caps? */ + caps = gst_caps_new_simple ("audio/x-sbc", "rate", G_TYPE_INT, rate, + "channels", G_TYPE_INT, (ch_mode == GST_SBC_CHANNEL_MODE_MONO) ? 1 : 2, + "channel-mode", G_TYPE_STRING, gst_sbc_channel_mode_get_name (ch_mode), + "blocks", G_TYPE_INT, n_blocks, "subbands", G_TYPE_INT, n_subbands, + "allocation-method", G_TYPE_STRING, + gst_sbc_allocation_method_get_name (alloc_method), + "bitpool", G_TYPE_INT, bitpool, "parsed", G_TYPE_BOOLEAN, TRUE, NULL); + + GST_INFO_OBJECT (sbcparse, "caps changed to %" GST_PTR_FORMAT, caps); + + gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (sbcparse), + gst_event_new_caps (caps)); + + avg_bitrate = (8 * frame_len * rate) / (n_subbands * n_blocks); + gst_base_parse_set_average_bitrate (parse, avg_bitrate); + + gst_base_parse_set_frame_rate (parse, rate, n_subbands * n_blocks, 0, 0); + + sbcparse->alloc_method = alloc_method; + sbcparse->ch_mode = ch_mode; + sbcparse->rate = rate; + sbcparse->n_blocks = n_blocks; + sbcparse->n_subbands = n_subbands; + sbcparse->bitpool = bitpool; + + gst_caps_unref (caps); + } + + if (frame_len > map.size) + goto need_more_data; + + GST_BUFFER_OFFSET (frame->buffer) = GST_BUFFER_OFFSET_NONE; + GST_BUFFER_OFFSET_END (frame->buffer) = GST_BUFFER_OFFSET_NONE; + + /* completely arbitrary limit, we only process data we already have, + * so we aren't introducing latency here */ + max_frames = MIN (map.size / frame_len, n_blocks * n_subbands * 5); + GST_LOG_OBJECT (sbcparse, "parsing up to %d frames", max_frames); + + for (i = 1; i < max_frames; ++i) { + next_len = gst_sbc_parse_header (map.data + (i * frame_len), &rate, + &n_blocks, &ch_mode, &alloc_method, &n_subbands, &bitpool); + + if (next_len != frame_len || sbcparse->alloc_method != alloc_method || + sbcparse->ch_mode != ch_mode || sbcparse->rate != rate || + sbcparse->n_blocks != n_blocks || sbcparse->n_subbands != n_subbands || + sbcparse->bitpool != bitpool) { + break; + } + } + GST_LOG_OBJECT (sbcparse, "packing %d SBC frames into next output buffer", i); + + /* Note: local n_subbands and n_blocks variables might be tainted if we + * bailed out of the loop above because of a header configuration mismatch */ + gst_base_parse_set_frame_rate (parse, rate, + sbcparse->n_subbands * sbcparse->n_blocks * i, 0, 0); + + gst_buffer_unmap (frame->buffer, &map); + return gst_base_parse_finish_frame (parse, frame, i * frame_len); + +resync: + { + const guint8 *possible_sync; + + GST_DEBUG_OBJECT (parse, "no sync, resyncing"); + + possible_sync = memchr (map.data, SBC_SYNCBYTE, map.size); + + if (possible_sync != NULL) + *skipsize = (gint) (possible_sync - map.data); + else + *skipsize = map.size; + + gst_buffer_unmap (frame->buffer, &map); + + /* we could optimise things here by looping over the data and checking + * whether the sync is good or not instead of handing control back to + * the base class just to be called again */ + return GST_FLOW_OK; + } +need_more_data: + { + GST_LOG_OBJECT (parse, + "need %" G_GSIZE_FORMAT " bytes, but only have %" G_GSIZE_FORMAT, + frame_len, map.size); + gst_base_parse_set_min_frame_size (parse, frame_len); + gst_buffer_unmap (frame->buffer, &map); + return GST_FLOW_OK; + } +} + +static GstCaps * +gst_sbc_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) +{ + GstCaps *peercaps, *templ; + GstCaps *res; + + templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)); + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter); + + if (peercaps) { + guint i, n; + + /* Remove the parsed field */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + + gst_structure_remove_field (s, "parsed"); + } + + res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + res = gst_caps_make_writable (res); + + /* Append the template caps because we still want to accept + * caps without any fields in the case upstream does not + * know anything. + */ + gst_caps_append (res, templ); + } else { + res = templ; + } + + if (filter) { + GstCaps *intersection; + + intersection = + gst_caps_intersect_full (filter, res, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (res); + res = intersection; + } + + return res; +} + +static const guint8 crc_table[256] = { + 0x00, 0x1D, 0x3A, 0x27, 0x74, 0x69, 0x4E, 0x53, + 0xE8, 0xF5, 0xD2, 0xCF, 0x9C, 0x81, 0xA6, 0xBB, + 0xCD, 0xD0, 0xF7, 0xEA, 0xB9, 0xA4, 0x83, 0x9E, + 0x25, 0x38, 0x1F, 0x02, 0x51, 0x4C, 0x6B, 0x76, + 0x87, 0x9A, 0xBD, 0xA0, 0xF3, 0xEE, 0xC9, 0xD4, + 0x6F, 0x72, 0x55, 0x48, 0x1B, 0x06, 0x21, 0x3C, + 0x4A, 0x57, 0x70, 0x6D, 0x3E, 0x23, 0x04, 0x19, + 0xA2, 0xBF, 0x98, 0x85, 0xD6, 0xCB, 0xEC, 0xF1, + 0x13, 0x0E, 0x29, 0x34, 0x67, 0x7A, 0x5D, 0x40, + 0xFB, 0xE6, 0xC1, 0xDC, 0x8F, 0x92, 0xB5, 0xA8, + 0xDE, 0xC3, 0xE4, 0xF9, 0xAA, 0xB7, 0x90, 0x8D, + 0x36, 0x2B, 0x0C, 0x11, 0x42, 0x5F, 0x78, 0x65, + 0x94, 0x89, 0xAE, 0xB3, 0xE0, 0xFD, 0xDA, 0xC7, + 0x7C, 0x61, 0x46, 0x5B, 0x08, 0x15, 0x32, 0x2F, + 0x59, 0x44, 0x63, 0x7E, 0x2D, 0x30, 0x17, 0x0A, + 0xB1, 0xAC, 0x8B, 0x96, 0xC5, 0xD8, 0xFF, 0xE2, + 0x26, 0x3B, 0x1C, 0x01, 0x52, 0x4F, 0x68, 0x75, + 0xCE, 0xD3, 0xF4, 0xE9, 0xBA, 0xA7, 0x80, 0x9D, + 0xEB, 0xF6, 0xD1, 0xCC, 0x9F, 0x82, 0xA5, 0xB8, + 0x03, 0x1E, 0x39, 0x24, 0x77, 0x6A, 0x4D, 0x50, + 0xA1, 0xBC, 0x9B, 0x86, 0xD5, 0xC8, 0xEF, 0xF2, + 0x49, 0x54, 0x73, 0x6E, 0x3D, 0x20, 0x07, 0x1A, + 0x6C, 0x71, 0x56, 0x4B, 0x18, 0x05, 0x22, 0x3F, + 0x84, 0x99, 0xBE, 0xA3, 0xF0, 0xED, 0xCA, 0xD7, + 0x35, 0x28, 0x0F, 0x12, 0x41, 0x5C, 0x7B, 0x66, + 0xDD, 0xC0, 0xE7, 0xFA, 0xA9, 0xB4, 0x93, 0x8E, + 0xF8, 0xE5, 0xC2, 0xDF, 0x8C, 0x91, 0xB6, 0xAB, + 0x10, 0x0D, 0x2A, 0x37, 0x64, 0x79, 0x5E, 0x43, + 0xB2, 0xAF, 0x88, 0x95, 0xC6, 0xDB, 0xFC, 0xE1, + 0x5A, 0x47, 0x60, 0x7D, 0x2E, 0x33, 0x14, 0x09, + 0x7F, 0x62, 0x45, 0x58, 0x0B, 0x16, 0x31, 0x2C, + 0x97, 0x8A, 0xAD, 0xB0, 0xE3, 0xFE, 0xD9, 0xC4 +}; + +static guint8 +gst_sbc_calculate_crc8 (const guint8 * data, gint crc_bits) +{ + guint8 crc = 0x0f; + guint8 octet; + + while (crc_bits >= 8) { + crc = crc_table[crc ^ *data]; + crc_bits -= 8; + ++data; + } + + octet = *data; + while (crc_bits > 0) { + gchar bit = ((octet ^ crc) & 0x80) >> 7; + + crc = ((crc & 0x7f) << 1) ^ (bit ? 0x1d : 0); + + octet = octet << 1; + --crc_bits; + } + + return crc; +} + +static gsize +gst_sbc_calc_framelen (guint subbands, GstSbcChannelMode ch_mode, + guint blocks, guint bitpool) +{ + switch (ch_mode) { + case GST_SBC_CHANNEL_MODE_MONO: + return 4 + (subbands * 1) / 2 + (blocks * 1 * bitpool) / 8; + case GST_SBC_CHANNEL_MODE_DUAL: + return 4 + (subbands * 2) / 2 + (blocks * 2 * bitpool) / 8; + case GST_SBC_CHANNEL_MODE_STEREO: + return 4 + (subbands * 2) / 2 + (blocks * bitpool) / 8; + case GST_SBC_CHANNEL_MODE_JOINT_STEREO: + return 4 + (subbands * 2) / 2 + (subbands + blocks * bitpool) / 8; + default: + break; + } + + g_return_val_if_reached (0); +} + +static gsize +gst_sbc_parse_header (const guint8 * data, guint * rate, guint * n_blocks, + GstSbcChannelMode * ch_mode, GstSbcAllocationMethod * alloc_method, + guint * n_subbands, guint * bitpool) +{ + static const guint16 sbc_rates[4] = { 16000, 32000, 44100, 48000 }; + static const guint8 sbc_blocks[4] = { 4, 8, 12, 16 }; + guint8 crc_data[2 + 1 + 8], crc_bits, i; + + GST_MEMDUMP ("header", data, 8); + + if (data[0] != SBC_SYNCBYTE) + return 0; + + *rate = sbc_rates[(data[1] >> 6) & 0x03]; + *n_blocks = sbc_blocks[(data[1] >> 4) & 0x03]; + *ch_mode = (GstSbcChannelMode) ((data[1] >> 2) & 0x03); + *alloc_method = (data[1] >> 1) & 0x01; + *n_subbands = (data[1] & 0x01) ? 8 : 4; + *bitpool = data[2]; + + GST_TRACE ("rate=%u, n_blocks=%u, ch_mode=%u, alloc_method=%u, " + "n_subbands=%u, bitpool=%u", *rate, *n_blocks, *ch_mode, *alloc_method, + *n_subbands, *bitpool); + + if (*bitpool < 2) + return 0; + + /* check CRC */ + crc_data[0] = data[1]; + crc_data[1] = data[2]; + crc_bits = 16; + + /* joint flags and RFA */ + if (*ch_mode == GST_SBC_CHANNEL_MODE_JOINT_STEREO) + crc_bits += *n_subbands; + + /* scale factors */ + if (*ch_mode == GST_SBC_CHANNEL_MODE_MONO) + crc_bits += *n_subbands * 1 * 4; + else + crc_bits += *n_subbands * 2 * 4; + + for (i = 16; i < crc_bits; i += 8) { + crc_data[i / 8] = data[1 + (i / 8) + 1]; + } + + if (i > crc_bits) { + crc_data[(i / 8) - 1] &= 0xF0; + } + + GST_MEMDUMP ("crc bytes", crc_data, GST_ROUND_UP_8 (crc_bits) / 8); + if (gst_sbc_calculate_crc8 (crc_data, crc_bits) != data[3]) { + GST_LOG ("header CRC check failed, bits=%u, got 0x%02x, expected 0x%02x", + crc_bits, gst_sbc_calculate_crc8 (crc_data, crc_bits), data[3]); + return 0; + } + + return gst_sbc_calc_framelen (*n_subbands, *ch_mode, *n_blocks, *bitpool); +} diff --git a/gst/audioparsers/gstsbcparse.h b/gst/audioparsers/gstsbcparse.h new file mode 100644 index 0000000000000000000000000000000000000000..2115270e9a3910b80394937106299b92a4c83c4a --- /dev/null +++ b/gst/audioparsers/gstsbcparse.h @@ -0,0 +1,74 @@ +/* GStreamer SBC audio parser + * Copyright (C) 2012 Collabora Ltd. <tim.muller@collabora.co.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_SBC_PARSE_H_INCLUDED__ +#define __GST_SBC_PARSE_H_INCLUDED__ + + +#include <gst/gst.h> +#include <gst/base/gstbaseparse.h> + +G_BEGIN_DECLS + +#define GST_TYPE_SBC_PARSE (gst_sbc_parse_get_type()) +#define GST_SBC_PARSE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SBC_PARSE,GstSbcParse)) +#define GST_SBC_PARSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SBC_PARSE,GstSbcParseClass)) +#define GST_SBC_PARSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_SBC_PARSE,GstSbcParseClass)) +#define GST_IS_SBC_PARSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SBC_PARSE)) +#define GST_IS_SBC_PARSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SBC_PARSE)) +#define GST_SBC_PARSE_CAST(obj) ((GstSbcParse *)(obj)) + +typedef enum { + GST_SBC_CHANNEL_MODE_INVALID = -1, + GST_SBC_CHANNEL_MODE_MONO = 0, + GST_SBC_CHANNEL_MODE_DUAL = 1, + GST_SBC_CHANNEL_MODE_STEREO = 2, + GST_SBC_CHANNEL_MODE_JOINT_STEREO = 3 +} GstSbcChannelMode; + +typedef enum { + GST_SBC_ALLOCATION_METHOD_INVALID = -1, + GST_SBC_ALLOCATION_METHOD_SNR = 0, + GST_SBC_ALLOCATION_METHOD_LOUDNESS = 1 +} GstSbcAllocationMethod; + +typedef struct _GstSbcParse GstSbcParse; +typedef struct _GstSbcParseClass GstSbcParseClass; + +struct _GstSbcParse { + GstBaseParse baseparse; + + /* current output format */ + GstSbcAllocationMethod alloc_method; + GstSbcChannelMode ch_mode; + gint rate; + gint n_blocks; + gint n_subbands; + gint bitpool; +}; + +struct _GstSbcParseClass { + GstBaseParseClass baseparse_class; +}; + +GType gst_sbc_parse_get_type (void); + +G_END_DECLS + +#endif /* __GST_SBC_PARSE_H_INCLUDED__ */ diff --git a/gst/audioparsers/gstwavpackparse.c b/gst/audioparsers/gstwavpackparse.c index a05707cee6dfee37ca22fd2ab83be9dacbf3df23..8f124dd2418d6fe74cdf96a041c6a93a9d6efd41 100644 --- a/gst/audioparsers/gstwavpackparse.c +++ b/gst/audioparsers/gstwavpackparse.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-wavpackparse diff --git a/gst/audioparsers/gstwavpackparse.h b/gst/audioparsers/gstwavpackparse.h index 72ad340a156b96a328e95ca11f12e82a1d6d50ad..1070f5915cb1695a5286c73e67a5575594a7d5db 100644 --- a/gst/audioparsers/gstwavpackparse.h +++ b/gst/audioparsers/gstwavpackparse.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_WAVPACK_PARSE_H__ diff --git a/gst/audioparsers/plugin.c b/gst/audioparsers/plugin.c index 75f497831f58a2430bad6b0fe635a948e364d8ac..8cbfe605d276693e8e62346d90acc9a73f368711 100644 --- a/gst/audioparsers/plugin.c +++ b/gst/audioparsers/plugin.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -27,6 +27,7 @@ #include "gstdcaparse.h" #include "gstflacparse.h" #include "gstmpegaudioparse.h" +#include "gstsbcparse.h" #include "gstwavpackparse.h" static gboolean @@ -46,6 +47,8 @@ plugin_init (GstPlugin * plugin) GST_RANK_PRIMARY + 1, GST_TYPE_FLAC_PARSE); ret &= gst_element_register (plugin, "mpegaudioparse", GST_RANK_PRIMARY + 2, GST_TYPE_MPEG_AUDIO_PARSE); + ret &= gst_element_register (plugin, "sbcparse", + GST_RANK_PRIMARY + 1, GST_TYPE_SBC_PARSE); ret &= gst_element_register (plugin, "wavpackparse", GST_RANK_PRIMARY + 1, GST_TYPE_WAVPACK_PARSE); diff --git a/gst/auparse/Makefile.in b/gst/auparse/Makefile.in index d2e92a05f1385b907d3a80addaaf532374623dfc..71d24d91257e0af7437f2370d9fab540cd162aae 100644 --- a/gst/auparse/Makefile.in +++ b/gst/auparse/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/auparse -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -135,10 +161,23 @@ libgstauparse_la_OBJECTS = $(am_libgstauparse_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstauparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstauparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstauparse_la_CFLAGS) $(CFLAGS) \ $(libgstauparse_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstauparse_la_SOURCES) DIST_SOURCES = $(libgstauparse_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstauparse.la: $(libgstauparse_la_OBJECTS) $(libgstauparse_la_DEPENDENCIES) $(EXTRA_libgstauparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstauparse_la_LINK) -rpath $(plugindir) $(libgstauparse_la_OBJECTS) $(libgstauparse_la_LIBADD) $(LIBS) @@ -619,26 +676,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -650,15 +696,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -667,6 +709,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c index dd6c3b2bd9ce7d6d1955f8d2a129e6f5e9fef02e..c4319cbc9269c7506d2f7e12caf9081a3f20207f 100644 --- a/gst/auparse/gstauparse.c +++ b/gst/auparse/gstauparse.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/auparse/gstauparse.h b/gst/auparse/gstauparse.h index 5744d268737952d291fa218af9f9fd83786da015..6d8f35a82ae638d9673f2626f628dc62750e8b98 100644 --- a/gst/auparse/gstauparse.h +++ b/gst/auparse/gstauparse.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/autodetect/Makefile.in b/gst/autodetect/Makefile.in index 7a48e48523800540e498a5ec9f27b287c5159e50..237af1c57c43d631d2c1163b36d202b1903d6f27 100644 --- a/gst/autodetect/Makefile.in +++ b/gst/autodetect/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/autodetect -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -139,10 +165,23 @@ libgstautodetect_la_OBJECTS = $(am_libgstautodetect_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstautodetect_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstautodetect_la_CFLAGS) $(CFLAGS) \ $(libgstautodetect_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -155,20 +194,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstautodetect_la_SOURCES) DIST_SOURCES = $(libgstautodetect_la_SOURCES) am__can_run_installinfo = \ @@ -177,6 +212,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -345,6 +397,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -558,6 +611,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -584,12 +638,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstautodetect.la: $(libgstautodetect_la_OBJECTS) $(libgstautodetect_la_DEPENDENCIES) $(EXTRA_libgstautodetect_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstautodetect_la_LINK) -rpath $(plugindir) $(libgstautodetect_la_OBJECTS) $(libgstautodetect_la_LIBADD) $(LIBS) @@ -667,26 +724,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -698,15 +744,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -715,6 +757,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -859,19 +916,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/autodetect/gstautoaudiosink.c b/gst/autodetect/gstautoaudiosink.c index e3fd7c70c9ee4c98129b3a512f5db5ce661afeec..340e9a238251d2bb682a358874640e97d35757d1 100644 --- a/gst/autodetect/gstautoaudiosink.c +++ b/gst/autodetect/gstautoaudiosink.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -204,18 +204,6 @@ gst_auto_audio_sink_factory_filter (GstPluginFeature * feature, gpointer data) return TRUE; } -static gint -gst_auto_audio_sink_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2) -{ - gint diff; - - diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1); - if (diff != 0) - return diff; - return strcmp (gst_plugin_feature_get_name (f2), - gst_plugin_feature_get_name (f1)); -} - static GstElement * gst_auto_audio_sink_create_element_with_pretty_name (GstAutoAudioSink * sink, GstElementFactory * factory) @@ -251,7 +239,8 @@ gst_auto_audio_sink_find_best (GstAutoAudioSink * sink) list = gst_registry_feature_filter (gst_registry_get (), (GstPluginFeatureFilter) gst_auto_audio_sink_factory_filter, FALSE, sink); - list = g_list_sort (list, (GCompareFunc) gst_auto_audio_sink_compare_ranks); + list = + g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func); /* We don't treat sound server sinks special. Our policy is that sound * server sinks that have a rank must not auto-spawn a daemon under any diff --git a/gst/autodetect/gstautoaudiosink.h b/gst/autodetect/gstautoaudiosink.h index 40fae5c60187e3c842a6462275d3fb2d5b0e4b35..3435a9b319b545589c0aec2da92c557798a8d8b6 100644 --- a/gst/autodetect/gstautoaudiosink.h +++ b/gst/autodetect/gstautoaudiosink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUTO_AUDIO_SINK_H__ diff --git a/gst/autodetect/gstautoaudiosrc.c b/gst/autodetect/gstautoaudiosrc.c index f251bc8e1250f62bf05b0c4227eb614921b76593..f20cf57e9f6894274dc80ede90ccaa1a5eb41e77 100644 --- a/gst/autodetect/gstautoaudiosrc.c +++ b/gst/autodetect/gstautoaudiosrc.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -198,18 +198,6 @@ gst_auto_audio_src_factory_filter (GstPluginFeature * feature, gpointer data) return TRUE; } -static gint -gst_auto_audio_src_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2) -{ - gint diff; - - diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1); - if (diff != 0) - return diff; - return strcmp (gst_plugin_feature_get_name (f2), - gst_plugin_feature_get_name (f1)); -} - static GstElement * gst_auto_audio_src_create_element_with_pretty_name (GstAutoAudioSrc * src, GstElementFactory * factory) @@ -245,7 +233,8 @@ gst_auto_audio_src_find_best (GstAutoAudioSrc * src) list = gst_registry_feature_filter (gst_registry_get (), (GstPluginFeatureFilter) gst_auto_audio_src_factory_filter, FALSE, src); - list = g_list_sort (list, (GCompareFunc) gst_auto_audio_src_compare_ranks); + list = + g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func); /* We don't treat sound server sources special. Our policy is that sound * server sources that have a rank must not auto-spawn a daemon under any diff --git a/gst/autodetect/gstautoaudiosrc.h b/gst/autodetect/gstautoaudiosrc.h index 86696276e4e5522072eb5475dcabb6ef2d91bd6b..99b9aa5be4e2f82c79e813199b1c92aa494b16b8 100644 --- a/gst/autodetect/gstautoaudiosrc.h +++ b/gst/autodetect/gstautoaudiosrc.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUTO_AUDIO_SRC_H__ diff --git a/gst/autodetect/gstautodetect.c b/gst/autodetect/gstautodetect.c index 48f03cb43b5cc5174495511279d01aea4ff237ab..96a8cd739fc3bd9b33e1496cfe798329350fc84c 100644 --- a/gst/autodetect/gstautodetect.c +++ b/gst/autodetect/gstautodetect.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/autodetect/gstautodetect.h b/gst/autodetect/gstautodetect.h index d4952d7d6af2631297f972f3088d1734d1d0a226..5e6875c69304f6476af1943d8531c664eea2e7ef 100644 --- a/gst/autodetect/gstautodetect.h +++ b/gst/autodetect/gstautodetect.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUTO_DETECT_H__ diff --git a/gst/autodetect/gstautovideosink.c b/gst/autodetect/gstautovideosink.c index 4aa7161f2712ceabc1052a0211a426071404ef46..f598986fbf6105f8c927c752ad7da5d2082bd425 100644 --- a/gst/autodetect/gstautovideosink.c +++ b/gst/autodetect/gstautovideosink.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -203,18 +203,6 @@ gst_auto_video_sink_factory_filter (GstPluginFeature * feature, gpointer data) return TRUE; } -static gint -gst_auto_video_sink_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2) -{ - gint diff; - - diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1); - if (diff != 0) - return diff; - return strcmp (gst_plugin_feature_get_name (f2), - gst_plugin_feature_get_name (f1)); -} - static GstElement * gst_auto_video_sink_create_element_with_pretty_name (GstAutoVideoSink * sink, GstElementFactory * factory) @@ -250,7 +238,8 @@ gst_auto_video_sink_find_best (GstAutoVideoSink * sink) list = gst_registry_feature_filter (gst_registry_get (), (GstPluginFeatureFilter) gst_auto_video_sink_factory_filter, FALSE, sink); - list = g_list_sort (list, (GCompareFunc) gst_auto_video_sink_compare_ranks); + list = + g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func); GST_LOG_OBJECT (sink, "Trying to find usable video devices ..."); diff --git a/gst/autodetect/gstautovideosink.h b/gst/autodetect/gstautovideosink.h index 1ec4a26bfd6e493e4e10de5dccc3f6c5a3662ec9..1ed0bd3b2b3b12076e2d55ef90cdbcd8862dfbce 100644 --- a/gst/autodetect/gstautovideosink.h +++ b/gst/autodetect/gstautovideosink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUTO_VIDEO_SINK_H__ diff --git a/gst/autodetect/gstautovideosrc.c b/gst/autodetect/gstautovideosrc.c index 0184c673c821b86b41662f8625f61dd00de01f6c..6c0ba09c4ac90ff329e0b3e5cd060a6c07cec2cc 100644 --- a/gst/autodetect/gstautovideosrc.c +++ b/gst/autodetect/gstautovideosrc.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -197,18 +197,6 @@ gst_auto_video_src_factory_filter (GstPluginFeature * feature, gpointer data) return TRUE; } -static gint -gst_auto_video_src_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2) -{ - gint diff; - - diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1); - if (diff != 0) - return diff; - return strcmp (gst_plugin_feature_get_name (f2), - gst_plugin_feature_get_name (f1)); -} - static GstElement * gst_auto_video_src_create_element_with_pretty_name (GstAutoVideoSrc * src, GstElementFactory * factory) @@ -244,7 +232,8 @@ gst_auto_video_src_find_best (GstAutoVideoSrc * src) list = gst_registry_feature_filter (gst_registry_get (), (GstPluginFeatureFilter) gst_auto_video_src_factory_filter, FALSE, src); - list = g_list_sort (list, (GCompareFunc) gst_auto_video_src_compare_ranks); + list = + g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func); GST_LOG_OBJECT (src, "Trying to find usable video devices ..."); diff --git a/gst/autodetect/gstautovideosrc.h b/gst/autodetect/gstautovideosrc.h index d72bcd209b9375032d416ae9b2162a8f221d3471..ec5d4fc8ac4b5e1ee72618a75855425fc477da26 100644 --- a/gst/autodetect/gstautovideosrc.h +++ b/gst/autodetect/gstautovideosrc.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AUTO_VIDEO_SRC_H__ diff --git a/gst/avi/Makefile.in b/gst/avi/Makefile.in index 76091e159b44e7b3a5b6b094166fb47f08f4f132..19c539a8fb85973063821d2051a939c1b929bbe4 100644 --- a/gst/avi/Makefile.in +++ b/gst/avi/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/avi -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstavi_la_OBJECTS = $(am_libgstavi_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstavi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstavi_la_CFLAGS) $(CFLAGS) \ $(libgstavi_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstavi_la_SOURCES) DIST_SOURCES = $(libgstavi_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -563,6 +616,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -589,12 +643,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstavi.la: $(libgstavi_la_OBJECTS) $(libgstavi_la_DEPENDENCIES) $(EXTRA_libgstavi_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstavi_la_LINK) -rpath $(plugindir) $(libgstavi_la_OBJECTS) $(libgstavi_la_LIBADD) $(LIBS) @@ -664,26 +721,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -695,15 +741,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -712,6 +754,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -856,19 +913,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/avi/avi-ids.h b/gst/avi/avi-ids.h index 695a4f83908f8ec49385f26b3c4034a7afa43380..9c098033428f04cceeb5984f4574a410fb4d4629 100644 --- a/gst/avi/avi-ids.h +++ b/gst/avi/avi-ids.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AVI_H__ diff --git a/gst/avi/gstavi.c b/gst/avi/gstavi.c index a0482a835f11663368a3845711d665df100a7d9d..e2569b067e296b4ea71d9fff9c0dc3e6f2456adf 100644 --- a/gst/avi/gstavi.c +++ b/gst/avi/gstavi.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index f310b9d4cb33c5ebe9a80b70bca07ea14a56bb07..e9f7ad1c9fd0618a5c723ede191f910ae3075a6a 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* Element-Checklist-Version: 5 */ @@ -57,7 +57,7 @@ #define DIV_ROUND_UP(s,v) (((s) + ((v)-1)) / (v)) -#define GST_AVI_KEYFRAME 1 +#define GST_AVI_KEYFRAME (1 << 0) #define ENTRY_IS_KEYFRAME(e) ((e)->flags == GST_AVI_KEYFRAME) #define ENTRY_SET_KEYFRAME(e) ((e)->flags = GST_AVI_KEYFRAME) #define ENTRY_UNSET_KEYFRAME(e) ((e)->flags = 0) @@ -456,14 +456,14 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstObject * parent, if (stream->strh->type == GST_RIFF_FCC_auds) { if (stream->is_vbr) { /* VBR */ - pos = gst_util_uint64_scale ((gint64) stream->current_entry * - stream->strh->scale, GST_SECOND, (guint64) stream->strh->rate); + pos = avi_stream_convert_frames_to_time_unchecked (stream, + stream->current_total); GST_DEBUG_OBJECT (avi, "VBR convert frame %u, time %" GST_TIME_FORMAT, stream->current_entry, GST_TIME_ARGS (pos)); } else if (stream->strf.auds->av_bps != 0) { /* CBR */ - pos = gst_util_uint64_scale (stream->current_total, GST_SECOND, - (guint64) stream->strf.auds->av_bps); + pos = avi_stream_convert_bytes_to_time_unchecked (stream, + stream->current_total); GST_DEBUG_OBJECT (avi, "CBR convert bytes %u, time %" GST_TIME_FORMAT, stream->current_total, GST_TIME_ARGS (pos)); @@ -510,7 +510,8 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstObject * parent, /* only act on audio or video streams */ if (stream->strh->type != GST_RIFF_FCC_auds && - stream->strh->type != GST_RIFF_FCC_vids) { + stream->strh->type != GST_RIFF_FCC_vids && + stream->strh->type != GST_RIFF_FCC_iavs) { res = FALSE; break; } @@ -1370,9 +1371,13 @@ gst_avi_demux_get_buffer_info (GstAviDemux * avi, GstAviStream * stream, if (timestamp) *timestamp = avi_stream_convert_frames_to_time_unchecked (stream, entry->total); - if (ts_end) + if (ts_end) { + gint size = 1; + if (G_LIKELY (entry_n + 1 < stream->idx_n)) + size = stream->index[entry_n + 1].total - entry->total; *ts_end = avi_stream_convert_frames_to_time_unchecked (stream, - entry->total + 1); + entry->total + size); + } } else { if (timestamp) *timestamp = @@ -2355,7 +2360,7 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) gst_pad_set_active (pad, TRUE); stream_id = - gst_pad_create_stream_id_printf (pad, GST_ELEMENT_CAST (avi), "%u", + gst_pad_create_stream_id_printf (pad, GST_ELEMENT_CAST (avi), "%03u", avi->num_streams); gst_pad_push_event (pad, gst_event_new_stream_start (stream_id)); g_free (stream_id); @@ -2587,7 +2592,9 @@ gst_avi_demux_stream_for_id (GstAviDemux * avi, guint32 id) /* get the stream for this entry */ stream_nr = CHUNKID_TO_STREAMNR (id); if (G_UNLIKELY (stream_nr >= avi->num_streams)) { - GST_WARNING_OBJECT (avi, "invalid stream nr %d", stream_nr); + GST_WARNING_OBJECT (avi, + "invalid stream nr %d (0x%08x, %" GST_FOURCC_FORMAT ")", stream_nr, id, + GST_FOURCC_ARGS (id)); return NULL; } stream = &avi->stream[stream_nr]; @@ -4538,6 +4545,10 @@ gst_avi_demux_invert (GstAviStream * stream, GstBuffer * buf) return buf; /* Ignore non DIB buffers */ } + /* raw rgb data is stored topdown, but instead of inverting the buffer, */ + /* some tools just negate the height field in the header (e.g. ffmpeg) */ + if (((gint32) stream->strf.vids->height) < 0) + return buf; h = stream->strf.vids->height; w = stream->strf.vids->width; @@ -5102,7 +5113,18 @@ gst_avi_demux_stream_data (GstAviDemux * avi) /* increment our positions */ stream->current_entry++; - stream->current_total += size; + /* as in pull mode, 'total' is either bytes (CBR) or frames (VBR) */ + if (stream->strh->type == GST_RIFF_FCC_auds && stream->is_vbr) { + gint blockalign = stream->strf.auds->blockalign; + if (blockalign > 0) + stream->current_total += DIV_ROUND_UP (size, blockalign); + else + stream->current_total++; + } else { + stream->current_total += size; + } + GST_LOG_OBJECT (avi, "current entry %u, total %u", + stream->current_entry, stream->current_total); /* update current position in the segment */ avi->segment.position = next_ts; diff --git a/gst/avi/gstavidemux.h b/gst/avi/gstavidemux.h index 33868461d1603d002e95478c3f4c95a53b997265..9d8b2a1fb4ffc3089ad94c008a70cffa78511ff1 100644 --- a/gst/avi/gstavidemux.h +++ b/gst/avi/gstavidemux.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AVI_DEMUX_H__ diff --git a/gst/avi/gstavimux.c b/gst/avi/gstavimux.c index 2739555986a87425f6060a4d058d8ccc4fab5fb7..96aa7a941dfe85a3dc234704fea52cdb05135bf9 100644 --- a/gst/avi/gstavimux.c +++ b/gst/avi/gstavimux.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* based on: @@ -93,7 +93,7 @@ static GstStaticPadTemplate video_sink_factory = GST_PAD_SINK, GST_PAD_REQUEST, GST_STATIC_CAPS ("video/x-raw, " - "format = (string) { YUY2, I420 }, " + "format = (string) { YUY2, I420, BGR, BGRx, BGRA, GRAY8 }, " "width = (int) [ 16, 4096 ], " "height = (int) [ 16, 4096 ], " "framerate = (fraction) [ 0, MAX ]; " @@ -395,6 +395,7 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps) gint width, height; gint par_n, par_d; gboolean codec_data_in_headers = TRUE; + gboolean valid_caps = TRUE; avimux = GST_AVI_MUX (gst_pad_get_parent (pad)); @@ -476,7 +477,21 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps) avipad->vids.compression = GST_MAKE_FOURCC ('I', '4', '2', '0'); avipad->vids.bit_cnt = 12; break; + case GST_VIDEO_FORMAT_GRAY8: + avipad->vids.compression = GST_MAKE_FOURCC ('Y', '8', '0', '0'); + avipad->vids.bit_cnt = 8; + break; + case GST_VIDEO_FORMAT_BGR: + avipad->vids.compression = GST_MAKE_FOURCC (0x00, 0x00, 0x00, 0x00); + avipad->vids.bit_cnt = 24; + break; + case GST_VIDEO_FORMAT_BGRx: + case GST_VIDEO_FORMAT_BGRA: + avipad->vids.compression = GST_MAKE_FOURCC (0x00, 0x00, 0x00, 0x00); + avipad->vids.bit_cnt = 32; + break; default: + valid_caps = FALSE; break; } } else { @@ -502,6 +517,8 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps) case 5: avipad->vids.compression = GST_MAKE_FOURCC ('D', 'X', '5', '0'); break; + default: + valid_caps = FALSE; } } else if (gst_structure_has_name (structure, "video/x-msmpeg")) { gint msmpegversion; @@ -567,6 +584,7 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps) case 3: avipad->vids.compression = GST_MAKE_FOURCC ('W', 'M', 'V', '3'); default: + valid_caps = FALSE; break; } } @@ -574,9 +592,11 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps) avipad->vids.compression = GST_MAKE_FOURCC ('M', 'J', '2', 'C'); } else if (!strcmp (mimetype, "video/x-vp8")) { avipad->vids.compression = GST_MAKE_FOURCC ('V', 'P', '8', '0'); + } else { + valid_caps = FALSE; } - if (!avipad->vids.compression) + if (!valid_caps) goto refuse_caps; } @@ -1906,6 +1926,68 @@ gst_avi_mux_send_pad_data (GstAviMux * avimux, gulong num_bytes) return gst_pad_push (avimux->srcpad, buffer); } +#define gst_avi_mux_is_uncompressed(fourcc) \ + (fourcc == GST_RIFF_DIB || \ + fourcc == GST_RIFF_rgb || \ + fourcc == GST_RIFF_RGB || fourcc == GST_RIFF_RAW) + +/* + * Helper for gst_avi_demux_invert() + */ +static inline void +swap_line (guint8 * d1, guint8 * d2, guint8 * tmp, gint bytes) +{ + memcpy (tmp, d1, bytes); + memcpy (d1, d2, bytes); + memcpy (d2, tmp, bytes); +} + +/* + * Invert DIB buffers... Takes existing buffer and + * returns either the buffer or a new one (with old + * one dereferenced). + * FFMPEG does this by simply negating the height in the header. Should we? + * FIXME: can't we preallocate tmp? and remember stride, bpp? + * this could be done in do_one_buffer() I suppose + */ +static GstBuffer * +gst_avi_mux_invert (GstAviPad * avipad, GstBuffer * buf) +{ + gint y, w, h; + gint bpp, stride; + guint8 *tmp = NULL; + GstMapInfo map; + + GstAviVideoPad *vidpad = (GstAviVideoPad *) avipad; + + h = vidpad->vids.height; + w = vidpad->vids.width; + bpp = vidpad->vids.bit_cnt ? vidpad->vids.bit_cnt : 8; + stride = GST_ROUND_UP_4 (w * (bpp / 8)); + + buf = gst_buffer_make_writable (buf); + + gst_buffer_map (buf, &map, GST_MAP_READWRITE); + if (map.size < (stride * h)) { + GST_WARNING ("Buffer is smaller than reported Width x Height x Depth"); + gst_buffer_unmap (buf, &map); + return buf; + } + + tmp = g_malloc (stride); + + for (y = 0; y < h / 2; y++) { + swap_line (map.data + stride * y, map.data + stride * (h - 1 - y), tmp, + stride); + } + + g_free (tmp); + + gst_buffer_unmap (buf, &map); + + return buf; +} + /* do buffer */ static GstFlowReturn gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad) @@ -1928,6 +2010,7 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad) GstAviVideoPad *vidpad = (GstAviVideoPad *) avipad; if (vidpad->prepend_buffer) { + /* Keep a reference to data until we copy the timestamps, then release it */ GstBuffer *newdata = gst_buffer_append (vidpad->prepend_buffer, gst_buffer_ref (data)); gst_buffer_copy_into (newdata, data, GST_BUFFER_COPY_TIMESTAMPS, 0, -1); @@ -1936,11 +2019,16 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad) data = newdata; vidpad->prepend_buffer = NULL; } + + /* DIB buffers are stored topdown (I don't know why) */ + if (gst_avi_mux_is_uncompressed (avipad->hdr.fcc_handler)) { + data = gst_avi_mux_invert (avipad, data); + } } if (avimux->restart) { if ((res = gst_avi_mux_restart_file (avimux)) != GST_FLOW_OK) - return res; + goto done; } datasize = gst_buffer_get_size (data); @@ -1950,10 +2038,10 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad) datasize > GST_AVI_MAX_SIZE) { if (avimux->enable_large_avi) { if ((res = gst_avi_mux_bigfile (avimux, FALSE)) != GST_FLOW_OK) - return res; + goto done; } else { if ((res = gst_avi_mux_restart_file (avimux)) != GST_FLOW_OK) - return res; + goto done; } } @@ -1970,8 +2058,10 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad) avimux->data_size += total_size; } - if (G_UNLIKELY (avipad->hook)) + if (G_UNLIKELY (avipad->hook)) { + gst_buffer_ref (data); avipad->hook (avimux, avipad, data); + } /* the suggested buffer size is the max frame size */ if (avipad->hdr.bufsize < datasize) @@ -2003,19 +2093,23 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad) GST_LOG_OBJECT (avimux, "pushing buffers: head, data"); if ((res = gst_pad_push (avimux->srcpad, header)) != GST_FLOW_OK) - return res; + goto done; + + gst_buffer_ref (data); if ((res = gst_pad_push (avimux->srcpad, data)) != GST_FLOW_OK) - return res; + goto done; if (pad_bytes) { if ((res = gst_avi_mux_send_pad_data (avimux, pad_bytes)) != GST_FLOW_OK) - return res; + goto done; } /* if any push above fails, we're in trouble with file consistency anyway */ avimux->total_data += total_size; avimux->idx_offset += total_size; +done: + gst_buffer_unref (data); return res; } @@ -2037,9 +2131,6 @@ gst_avi_mux_do_one_buffer (GstAviMux * avimux) if (!avipad->collect) continue; - if (!avipad->hdr.fcc_handler) - goto not_negotiated; - buffer = gst_collect_pads_peek (avimux->collect, avipad->collect); if (!buffer) continue; @@ -2082,13 +2173,6 @@ gst_avi_mux_do_one_buffer (GstAviMux * avimux) return GST_FLOW_EOS; } - /* ERRORS */ -not_negotiated: - { - GST_ELEMENT_ERROR (avimux, CORE, NEGOTIATION, (NULL), - ("pad %s not negotiated", GST_PAD_NAME (avipad->collect->pad))); - return GST_FLOW_NOT_NEGOTIATED; - } } static GstFlowReturn diff --git a/gst/avi/gstavimux.h b/gst/avi/gstavimux.h index f1ce70635ea816a559e95d34044a866b85360c47..6a4135fdab2e05517ceaa066889b4481fad1ee05 100644 --- a/gst/avi/gstavimux.h +++ b/gst/avi/gstavimux.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/avi/gstavisubtitle.c b/gst/avi/gstavisubtitle.c index 0cd2f35f52c9e64315fdd62407e91489282241a8..7b2fa2dd2077e7e85c45556abede1800707f6756 100644 --- a/gst/avi/gstavisubtitle.c +++ b/gst/avi/gstavisubtitle.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/cutter/Makefile.in b/gst/cutter/Makefile.in index a785db28e804d24b50545db8306c6cfbd14ccf31..3173ee127452028839c59a72773651db87f65500 100644 --- a/gst/cutter/Makefile.in +++ b/gst/cutter/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/cutter -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -135,10 +161,23 @@ libgstcutter_la_OBJECTS = $(am_libgstcutter_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstcutter_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcutter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstcutter_la_CFLAGS) $(CFLAGS) \ $(libgstcutter_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstcutter_la_SOURCES) DIST_SOURCES = $(libgstcutter_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstcutter.la: $(libgstcutter_la_OBJECTS) $(libgstcutter_la_DEPENDENCIES) $(EXTRA_libgstcutter_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcutter_la_LINK) -rpath $(plugindir) $(libgstcutter_la_OBJECTS) $(libgstcutter_la_LIBADD) $(LIBS) @@ -620,26 +677,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -651,15 +697,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -668,6 +710,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -812,19 +869,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/cutter/gstcutter.c b/gst/cutter/gstcutter.c index 5c3001f45febf76f0c92209cefb41235ba00c2cd..2c373664c1cd433df3b75d77fb041f1f723c48e6 100644 --- a/gst/cutter/gstcutter.c +++ b/gst/cutter/gstcutter.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-cutter diff --git a/gst/cutter/gstcutter.h b/gst/cutter/gstcutter.h index 47c1750dbfa182e80a5b1d358bf705f38e6023b4..3875f8f12907fb532ec9284185d315bafd38c026 100644 --- a/gst/cutter/gstcutter.h +++ b/gst/cutter/gstcutter.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in index 2be84487ac31294776bb7437ac68ef5124dcf656..047503202ecd10672709297c5da89adf48d6fda1 100644 --- a/gst/debugutils/Makefile.in +++ b/gst/debugutils/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/debugutils -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -140,6 +166,7 @@ libgstdebug_la_OBJECTS = $(am_libgstdebug_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstdebug_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstdebug_la_CFLAGS) $(CFLAGS) \ @@ -155,6 +182,18 @@ libgstnavigationtest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstnavigationtest_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstnavigationtest_la_CFLAGS) \ $(CFLAGS) $(libgstnavigationtest_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -167,20 +206,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstdebug_la_SOURCES) $(libgstnavigationtest_la_SOURCES) DIST_SOURCES = $(libgstdebug_la_SOURCES) \ $(libgstnavigationtest_la_SOURCES) @@ -190,6 +225,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -358,6 +410,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -592,6 +645,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -618,14 +672,18 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstdebug.la: $(libgstdebug_la_OBJECTS) $(libgstdebug_la_DEPENDENCIES) $(EXTRA_libgstdebug_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdebug_la_LINK) -rpath $(plugindir) $(libgstdebug_la_OBJECTS) $(libgstdebug_la_LIBADD) $(LIBS) + libgstnavigationtest.la: $(libgstnavigationtest_la_OBJECTS) $(libgstnavigationtest_la_DEPENDENCIES) $(EXTRA_libgstnavigationtest_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstnavigationtest_la_LINK) -rpath $(plugindir) $(libgstnavigationtest_la_OBJECTS) $(libgstnavigationtest_la_LIBADD) $(LIBS) @@ -759,26 +817,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -790,15 +837,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -807,6 +850,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -951,19 +1009,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/debugutils/breakmydata.c b/gst/debugutils/breakmydata.c index 412a36295ee49c128368f214a815d0bf02483662..c7306b10d17c6d4ef39dae81722e9afb906ef965 100644 --- a/gst/debugutils/breakmydata.c +++ b/gst/debugutils/breakmydata.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-breakmydata diff --git a/gst/debugutils/cpureport.c b/gst/debugutils/cpureport.c index b4d6c043a472a2ff79431f7b0e7af5aefe70c03c..85cc294780bf0d2fdb1e0384395106be16dfb96f 100644 --- a/gst/debugutils/cpureport.c +++ b/gst/debugutils/cpureport.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/debugutils/cpureport.h b/gst/debugutils/cpureport.h index d1a0966b6f7aaa0d77177e720e2d2322a3e9fa38..35055598d441c36eafa635711eabeb37b5311f16 100644 --- a/gst/debugutils/cpureport.h +++ b/gst/debugutils/cpureport.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_CPU_REPORT_H__ diff --git a/gst/debugutils/gstcapsdebug.h b/gst/debugutils/gstcapsdebug.h index 1f3c070e6769be731d24a37b71630517c098a819..9d0930dcc6a5c9c7ecffc19126114c16b8309bd2 100644 --- a/gst/debugutils/gstcapsdebug.h +++ b/gst/debugutils/gstcapsdebug.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GST_CAPS_DEBUG_H_ diff --git a/gst/debugutils/gstdebug.c b/gst/debugutils/gstdebug.c index cf78ea3903fd59a3be835441c7cd04984a36edd0..a56aa9fa0368771225b3065f703518054cdf77ca 100644 --- a/gst/debugutils/gstdebug.c +++ b/gst/debugutils/gstdebug.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/debugutils/gstnavigationtest.c b/gst/debugutils/gstnavigationtest.c index a8f46ecf85c244009557f1e5911ab2d81271afc5..de98900bea959973b1d6ed4360f1cc05a0228e2b 100644 --- a/gst/debugutils/gstnavigationtest.c +++ b/gst/debugutils/gstnavigationtest.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/debugutils/gstnavigationtest.h b/gst/debugutils/gstnavigationtest.h index deff63840dafe65f610a17a4d12690f23a76dee1..f1cf458bb5040f30751404b01355444e1c8fee69 100644 --- a/gst/debugutils/gstnavigationtest.h +++ b/gst/debugutils/gstnavigationtest.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/debugutils/gstnavseek.c b/gst/debugutils/gstnavseek.c index 6b036badbd0988a1f35216fad9c9d98089cf0bd7..02b4c0c09e8cb3931c8b4ddbf2a5ef77cbbe2025 100644 --- a/gst/debugutils/gstnavseek.c +++ b/gst/debugutils/gstnavseek.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/debugutils/gstnavseek.h b/gst/debugutils/gstnavseek.h index af7e9d21fee9b728aa21c29be4169f342b171db7..1b9c924444588ea8536613d866684e9c4fbe4dd5 100644 --- a/gst/debugutils/gstnavseek.h +++ b/gst/debugutils/gstnavseek.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/debugutils/gstpushfilesrc.c b/gst/debugutils/gstpushfilesrc.c index 4a5a4c6dd8f2762350dfd39bb0b18cbb5e3f8f0d..435d18515feca7e06002859893e5f1b279063414 100644 --- a/gst/debugutils/gstpushfilesrc.c +++ b/gst/debugutils/gstpushfilesrc.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/debugutils/gstpushfilesrc.h b/gst/debugutils/gstpushfilesrc.h index d9333444bd2614fc1cc9d63decc3a3bfd53d4848..6013cc8780830ecf19dcee6fb9af306506d3048c 100644 --- a/gst/debugutils/gstpushfilesrc.h +++ b/gst/debugutils/gstpushfilesrc.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_PUSH_FILE_SRC_H__ diff --git a/gst/debugutils/gsttaginject.c b/gst/debugutils/gsttaginject.c index 33de83fc2903ac4996e627e424e765013f207c50..b9b27273db6e5f3424e60bc4a7a5fa159193382c 100644 --- a/gst/debugutils/gsttaginject.c +++ b/gst/debugutils/gsttaginject.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-taginject diff --git a/gst/debugutils/gsttaginject.h b/gst/debugutils/gsttaginject.h index 8e8de1eecdde7f57f607bcebb301cb35df60b0bc..a5459275f01cf07c35a41e080963f539844b13e5 100644 --- a/gst/debugutils/gsttaginject.h +++ b/gst/debugutils/gsttaginject.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/debugutils/progressreport.c b/gst/debugutils/progressreport.c index 18e14373e60d19614288214b23bdbccd7cb3c52f..859e4b950c5040b8a36becb141e9833faf0d02d6 100644 --- a/gst/debugutils/progressreport.c +++ b/gst/debugutils/progressreport.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/debugutils/progressreport.h b/gst/debugutils/progressreport.h index 0d501499b725d71721d42f7b957436bf34e465a6..c46ac099dfc642fdc4622e7db9adbf76bb16de19 100644 --- a/gst/debugutils/progressreport.h +++ b/gst/debugutils/progressreport.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_PROGRESS_REPORT_H__ diff --git a/gst/debugutils/rndbuffersize.c b/gst/debugutils/rndbuffersize.c index 68a2705103054ffcbbbe50921e7171365dfb9fad..6259579f05b5a1e0f87950e649376342dba741c4 100644 --- a/gst/debugutils/rndbuffersize.c +++ b/gst/debugutils/rndbuffersize.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-rndbuffersize diff --git a/gst/debugutils/testplugin.c b/gst/debugutils/testplugin.c index c201982372a235bf5a84defc6c2ae6d63d108239..7d104cd40e531b1c0c1815d4bbe04b2b3a13dad3 100644 --- a/gst/debugutils/testplugin.c +++ b/gst/debugutils/testplugin.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/debugutils/tests.c b/gst/debugutils/tests.c index 4d2a4693ea35478b6b28242e1ed1ad9e9ff05212..d318664a9f67165b76fcfd019d93e5cb9d4d71cd 100644 --- a/gst/debugutils/tests.c +++ b/gst/debugutils/tests.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/debugutils/tests.h b/gst/debugutils/tests.h index 9926af62b03ebacd6b092b859cd194002d757c6b..c8fa088cbd096ad6b9a9b3d67d0d7b5e2df59af9 100644 --- a/gst/debugutils/tests.h +++ b/gst/debugutils/tests.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/gst.h> diff --git a/gst/deinterlace/Makefile.in b/gst/deinterlace/Makefile.in index e4e67274ff2091ff50a4db26d949660af035dce1..0213c6d5e8b61c91be5d0851cdb07446e522e551 100644 --- a/gst/deinterlace/Makefile.in +++ b/gst/deinterlace/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -39,23 +38,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -75,8 +102,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak +DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) subdir = gst/deinterlace ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -84,7 +111,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -170,10 +196,23 @@ libgstdeinterlace_la_OBJECTS = $(am_libgstdeinterlace_la_OBJECTS) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstdeinterlace_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) \ $(libgstdeinterlace_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -186,20 +225,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstdeinterlace_la_SOURCES) \ $(nodist_libgstdeinterlace_la_SOURCES) DIST_SOURCES = $(libgstdeinterlace_la_SOURCES) @@ -209,6 +244,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -377,6 +429,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -634,6 +687,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -660,12 +714,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstdeinterlace.la: $(libgstdeinterlace_la_OBJECTS) $(libgstdeinterlace_la_DEPENDENCIES) $(EXTRA_libgstdeinterlace_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdeinterlace_la_LINK) -rpath $(plugindir) $(libgstdeinterlace_la_OBJECTS) $(libgstdeinterlace_la_LIBADD) $(LIBS) @@ -807,26 +864,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -838,15 +884,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -855,6 +897,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1005,19 +1062,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-local clean-pluginLTLIBRARIES ctags \ - dist-hook distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-pluginLTLIBRARIES install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-local clean-pluginLTLIBRARIES \ + cscopelist-am ctags ctags-am dist-hook distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ uninstall-pluginLTLIBRARIES diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c index 22afe42ae31f5745b38898d65c3e1b8fcab6fc39..32109900d93908108242a773a84b6026fcb8cf08 100644 --- a/gst/deinterlace/gstdeinterlace.c +++ b/gst/deinterlace/gstdeinterlace.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -2359,7 +2359,11 @@ gst_deinterlace_do_bufferpool (GstDeinterlace * self, GstCaps * outcaps) gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max); else { pool = NULL; - size = GST_VIDEO_INFO_SIZE (&self->vinfo), min = max = 0; + size = GST_VIDEO_INFO_SIZE (&self->vinfo); + min = + MAX ((gst_deinterlace_method_get_fields_required (self->method) + + 1) / 2 + 1, 4); + max = 0; } if (pool == NULL) { @@ -2372,6 +2376,7 @@ gst_deinterlace_do_bufferpool (GstDeinterlace * self, GstCaps * outcaps) config = gst_buffer_pool_get_config (pool); gst_buffer_pool_config_set_params (config, outcaps, size, min, max); gst_buffer_pool_config_set_allocator (config, allocator, ¶ms); + gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_VIDEO_META); gst_buffer_pool_set_config (pool, config); /* now store */ @@ -2457,8 +2462,7 @@ gst_deinterlace_setcaps (GstDeinterlace * self, GstPad * pad, GstCaps * caps) "progressive", NULL); } - if (!gst_pad_set_caps (self->srcpad, srccaps)) - goto caps_not_accepted; + gst_pad_set_caps (self->srcpad, srccaps); if (fps_n != 0) { self->field_duration = gst_util_uint64_scale (GST_SECOND, fps_d, fps_n); @@ -2484,12 +2488,6 @@ invalid_caps: GST_ERROR_OBJECT (pad, "Invalid caps: %" GST_PTR_FORMAT, caps); return FALSE; } -caps_not_accepted: - { - GST_ERROR_OBJECT (pad, "Caps not accepted: %" GST_PTR_FORMAT, srccaps); - gst_caps_unref (srccaps); - return FALSE; - } no_bufferpool: { GST_ERROR_OBJECT (pad, "could not negotiate bufferpool"); @@ -2595,6 +2593,41 @@ gst_deinterlace_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) return res; } +static gboolean +gst_deinterlace_propose_allocation (GstDeinterlace * self, GstQuery * query) +{ + GstBufferPool *pool; + GstCaps *caps; + GstVideoInfo info; + guint size; + GstStructure *config; + + gst_query_parse_allocation (query, &caps, NULL); + + if (caps == NULL) + return FALSE; + + if (!gst_video_info_from_caps (&info, caps)) + return FALSE; + + size = GST_VIDEO_INFO_SIZE (&info); + + pool = gst_video_buffer_pool_new (); + + gst_query_add_allocation_pool (query, pool, size, 0, 0); + + config = gst_buffer_pool_get_config (pool); + gst_buffer_pool_config_set_params (config, caps, size, + (gst_deinterlace_method_get_fields_required (self->method) + 1) / 2 + 1, + 0); + gst_buffer_pool_set_config (pool, config); + + gst_object_unref (pool); + gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL); + + return TRUE; +} + static gboolean gst_deinterlace_sink_query (GstPad * pad, GstObject * parent, GstQuery * query) { @@ -2619,7 +2652,7 @@ gst_deinterlace_sink_query (GstPad * pad, GstObject * parent, GstQuery * query) if (self->passthrough) res = gst_pad_peer_query (self->srcpad, query); else - res = gst_pad_query_default (pad, parent, query); + res = gst_deinterlace_propose_allocation (self, query); break; default: res = gst_pad_query_default (pad, parent, query); diff --git a/gst/deinterlace/gstdeinterlace.h b/gst/deinterlace/gstdeinterlace.h index 3b8a3367282328f30488c9bb641a71342bc06760..5ca8960d1f55091e30cc78d41c29d3955c3f1405 100644 --- a/gst/deinterlace/gstdeinterlace.h +++ b/gst/deinterlace/gstdeinterlace.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_DEINTERLACE_H__ @@ -25,7 +25,7 @@ #include <gst/gst.h> #include <gst/video/video.h> #include <gst/video/gstvideopool.h> -#include <gst/video/gstvideofilter.h> +#include <gst/video/gstvideometa.h> #include "gstdeinterlacemethod.h" diff --git a/gst/deinterlace/gstdeinterlacemethod.c b/gst/deinterlace/gstdeinterlacemethod.c index e78aebcfdaceb590bab0da3d902cdc7b2ddfebaf..69a42464b7d0d08e564d0a213e91d24c20a870e8 100644 --- a/gst/deinterlace/gstdeinterlacemethod.c +++ b/gst/deinterlace/gstdeinterlacemethod.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -106,7 +106,6 @@ static void gst_deinterlace_method_setup_impl (GstDeinterlaceMethod * self, GstVideoInfo * vinfo) { - gint i; GstDeinterlaceMethodClass *klass = GST_DEINTERLACE_METHOD_GET_CLASS (self); self->vinfo = vinfo; @@ -116,14 +115,6 @@ gst_deinterlace_method_setup_impl (GstDeinterlaceMethod * self, if (GST_VIDEO_INFO_FORMAT (self->vinfo) == GST_VIDEO_FORMAT_UNKNOWN) return; - for (i = 0; i < 4; i++) { - self->width[i] = GST_VIDEO_INFO_COMP_WIDTH (vinfo, i); - self->height[i] = GST_VIDEO_INFO_COMP_HEIGHT (vinfo, i); - self->offset[i] = GST_VIDEO_INFO_COMP_OFFSET (vinfo, i); - self->row_stride[i] = GST_VIDEO_INFO_COMP_STRIDE (vinfo, i); - self->pixel_stride[i] = GST_VIDEO_INFO_COMP_PSTRIDE (vinfo, i); - } - switch (GST_VIDEO_INFO_FORMAT (self->vinfo)) { case GST_VIDEO_FORMAT_YUY2: self->deinterlace_frame = klass->deinterlace_frame_yuy2; @@ -300,16 +291,17 @@ gst_deinterlace_simple_method_supported (GstDeinterlaceMethodClass * mklass, static void gst_deinterlace_simple_method_interpolate_scanline_packed (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint stride) { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + memcpy (out, scanlines->m1, stride); } static void gst_deinterlace_simple_method_copy_scanline_packed (GstDeinterlaceSimpleMethod * - self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) + self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, + guint stride) { - memcpy (out, scanlines->m0, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, stride); } static void @@ -320,43 +312,43 @@ gst_deinterlace_simple_method_deinterlace_frame_packed (GstDeinterlaceMethod * GstDeinterlaceSimpleMethod *self = GST_DEINTERLACE_SIMPLE_METHOD (method); GstDeinterlaceMethodClass *dm_class = GST_DEINTERLACE_METHOD_GET_CLASS (self); GstDeinterlaceScanlineData scanlines; - guint8 *dest; - const guint8 *field0, *field1, *field2, *fieldp; - guint cur_field_flags = history[cur_field_idx].flags; + guint cur_field_flags; gint i; - gint frame_height = GST_VIDEO_INFO_HEIGHT (self->parent.vinfo); - gint stride = self->parent.row_stride[0]; + gint frame_height, frame_width; + GstVideoFrame *framep, *frame0, *frame1, *frame2; g_assert (self->interpolate_scanline_packed != NULL); g_assert (self->copy_scanline_packed != NULL); - if (cur_field_idx > 0) { - fieldp = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx - 1].frame, 0); - } else { - fieldp = NULL; - } + frame_height = GST_VIDEO_FRAME_HEIGHT (outframe); + frame_width = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, 0); - dest = GST_VIDEO_FRAME_COMP_DATA (outframe, 0); + frame0 = history[cur_field_idx].frame; + frame_width = MIN (frame_width, GST_VIDEO_FRAME_PLANE_STRIDE (frame0, 0)); + cur_field_flags = history[cur_field_idx].flags; - field0 = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx].frame, 0); + framep = (cur_field_idx > 0 ? history[cur_field_idx - 1].frame : NULL); + if (framep) + frame_width = MIN (frame_width, GST_VIDEO_FRAME_PLANE_STRIDE (framep, 0)); g_assert (dm_class->fields_required <= 4); - if (cur_field_idx + 1 < history_count) { - field1 = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx + 1].frame, 0); - } else { - field1 = NULL; - } + frame1 = + (cur_field_idx + 1 < + history_count ? history[cur_field_idx + 1].frame : NULL); + if (frame1) + frame_width = MIN (frame_width, GST_VIDEO_FRAME_PLANE_STRIDE (frame1, 0)); - if (cur_field_idx + 2 < history_count) { - field2 = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx + 2].frame, 0); - } else { - field2 = NULL; - } + frame2 = + (cur_field_idx + 2 < + history_count ? history[cur_field_idx + 2].frame : NULL); + if (frame2) + frame_width = MIN (frame_width, GST_VIDEO_FRAME_PLANE_STRIDE (frame2, 0)); #define CLAMP_LOW(i) (((i)<0) ? (i+2) : (i)) #define CLAMP_HI(i) (((i)>=(frame_height)) ? (i-2) : (i)) -#define LINE(x,i) ((x) + CLAMP_HI(CLAMP_LOW(i)) * (stride)) +#define LINE(x,i) (((guint8*)GST_VIDEO_FRAME_PLANE_DATA((x),0)) + CLAMP_HI(CLAMP_LOW(i)) * \ + GST_VIDEO_FRAME_PLANE_STRIDE((x),0)) #define LINE2(x,i) ((x) ? LINE(x,i) : NULL) for (i = 0; i < frame_height; i++) { @@ -365,142 +357,159 @@ gst_deinterlace_simple_method_deinterlace_frame_packed (GstDeinterlaceMethod * if (!((i & 1) ^ scanlines.bottom_field)) { /* copying */ - scanlines.tp = LINE2 (fieldp, i - 1); - scanlines.bp = LINE2 (fieldp, i + 1); + scanlines.tp = LINE2 (framep, i - 1); + scanlines.bp = LINE2 (framep, i + 1); - scanlines.tt0 = LINE2 (field0, (i - 2 >= 0) ? i - 2 : i); - scanlines.m0 = LINE2 (field0, i); - scanlines.bb0 = LINE2 (field0, (i + 2 < frame_height ? i + 2 : i)); + scanlines.tt0 = LINE2 (frame0, (i - 2 >= 0) ? i - 2 : i); + scanlines.m0 = LINE2 (frame0, i); + scanlines.bb0 = LINE2 (frame0, (i + 2 < frame_height ? i + 2 : i)); - scanlines.t1 = LINE2 (field1, i - 1); - scanlines.b1 = LINE2 (field1, i + 1); + scanlines.t1 = LINE2 (frame1, i - 1); + scanlines.b1 = LINE2 (frame1, i + 1); - scanlines.tt2 = LINE2 (field2, (i - 2 >= 0) ? i - 2 : i); - scanlines.m2 = LINE2 (field2, i); - scanlines.bb2 = LINE2 (field2, (i + 2 < frame_height ? i + 2 : i)); + scanlines.tt2 = LINE2 (frame2, (i - 2 >= 0) ? i - 2 : i); + scanlines.m2 = LINE2 (frame2, i); + scanlines.bb2 = LINE2 (frame2, (i + 2 < frame_height ? i + 2 : i)); - self->copy_scanline_packed (self, LINE (dest, i), &scanlines); + self->copy_scanline_packed (self, LINE (outframe, i), &scanlines, + frame_width); } else { /* interpolating */ - scanlines.ttp = LINE2 (fieldp, (i - 2 >= 0) ? i - 2 : i); - scanlines.mp = LINE2 (fieldp, i); - scanlines.bbp = LINE2 (fieldp, (i + 2 < frame_height ? i + 2 : i)); + scanlines.ttp = LINE2 (framep, (i - 2 >= 0) ? i - 2 : i); + scanlines.mp = LINE2 (framep, i); + scanlines.bbp = LINE2 (framep, (i + 2 < frame_height ? i + 2 : i)); - scanlines.t0 = LINE2 (field0, i - 1); - scanlines.b0 = LINE2 (field0, i + 1); + scanlines.t0 = LINE2 (frame0, i - 1); + scanlines.b0 = LINE2 (frame0, i + 1); - scanlines.tt1 = LINE2 (field1, (i - 2 >= 0) ? i - 2 : i); - scanlines.m1 = LINE2 (field1, i); - scanlines.bb1 = LINE2 (field1, (i + 2 < frame_height ? i + 2 : i)); + scanlines.tt1 = LINE2 (frame1, (i - 2 >= 0) ? i - 2 : i); + scanlines.m1 = LINE2 (frame1, i); + scanlines.bb1 = LINE2 (frame1, (i + 2 < frame_height ? i + 2 : i)); - scanlines.t2 = LINE2 (field2, i - 1); - scanlines.b2 = LINE2 (field2, i + 1); + scanlines.t2 = LINE2 (frame2, i - 1); + scanlines.b2 = LINE2 (frame2, i + 1); - self->interpolate_scanline_packed (self, LINE (dest, i), &scanlines); + self->interpolate_scanline_packed (self, LINE (outframe, i), &scanlines, + frame_width); } +#undef LINE +#undef LINE2 } } static void gst_deinterlace_simple_method_interpolate_scanline_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + memcpy (out, scanlines->m1, size); } static void gst_deinterlace_simple_method_copy_scanline_planar_y (GstDeinterlaceSimpleMethod - * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) + * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint + size) { - memcpy (out, scanlines->m0, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, size); } static void gst_deinterlace_simple_method_interpolate_scanline_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m1, self->parent.row_stride[1]); + memcpy (out, scanlines->m1, size); } static void gst_deinterlace_simple_method_copy_scanline_planar_u (GstDeinterlaceSimpleMethod - * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) + * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint + size) { - memcpy (out, scanlines->m0, self->parent.row_stride[1]); + memcpy (out, scanlines->m0, size); } static void gst_deinterlace_simple_method_interpolate_scanline_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m1, self->parent.row_stride[2]); + memcpy (out, scanlines->m1, size); } static void gst_deinterlace_simple_method_copy_scanline_planar_v (GstDeinterlaceSimpleMethod - * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) + * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint + size) { - memcpy (out, scanlines->m0, self->parent.row_stride[2]); + memcpy (out, scanlines->m0, size); } static void gst_deinterlace_simple_method_deinterlace_frame_planar_plane - (GstDeinterlaceSimpleMethod * self, guint8 * dest, const guint8 * field0, - const guint8 * field1, const guint8 * field2, const guint8 * fieldp, - guint cur_field_flags, - gint plane, GstDeinterlaceSimpleMethodFunction copy_scanline, + (GstDeinterlaceSimpleMethod * self, GstVideoFrame * dest, + const GstVideoFrame * frame0, const GstVideoFrame * frame1, + const GstVideoFrame * frame2, const GstVideoFrame * framep, + guint cur_field_flags, gint plane, + GstDeinterlaceSimpleMethodFunction copy_scanline, GstDeinterlaceSimpleMethodFunction interpolate_scanline) { GstDeinterlaceScanlineData scanlines; gint i; - gint frame_height = self->parent.height[plane]; - gint stride = self->parent.row_stride[plane]; + gint frame_height, frame_width; + + frame_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, plane); + frame_width = GST_VIDEO_FRAME_COMP_WIDTH (dest, plane) * + GST_VIDEO_FRAME_COMP_PSTRIDE (dest, plane); g_assert (interpolate_scanline != NULL); g_assert (copy_scanline != NULL); +#define LINE(x,i) (((guint8*)GST_VIDEO_FRAME_PLANE_DATA((x),plane)) + CLAMP_HI(CLAMP_LOW(i)) * \ + GST_VIDEO_FRAME_PLANE_STRIDE((x),plane)) +#define LINE2(x,i) ((x) ? LINE(x,i) : NULL) + for (i = 0; i < frame_height; i++) { memset (&scanlines, 0, sizeof (scanlines)); scanlines.bottom_field = (cur_field_flags == PICTURE_INTERLACED_BOTTOM); if (!((i & 1) ^ scanlines.bottom_field)) { /* copying */ - scanlines.tp = LINE2 (fieldp, i - 1); - scanlines.bp = LINE2 (fieldp, i + 1); + scanlines.tp = LINE2 (framep, i - 1); + scanlines.bp = LINE2 (framep, i + 1); - scanlines.tt0 = LINE2 (field0, (i - 2 >= 0) ? i - 2 : i); - scanlines.m0 = LINE2 (field0, i); - scanlines.bb0 = LINE2 (field0, (i + 2 < frame_height ? i + 2 : i)); + scanlines.tt0 = LINE2 (frame0, (i - 2 >= 0) ? i - 2 : i); + scanlines.m0 = LINE2 (frame0, i); + scanlines.bb0 = LINE2 (frame0, (i + 2 < frame_height ? i + 2 : i)); - scanlines.t1 = LINE2 (field1, i - 1); - scanlines.b1 = LINE2 (field1, i + 1); + scanlines.t1 = LINE2 (frame1, i - 1); + scanlines.b1 = LINE2 (frame1, i + 1); - scanlines.tt2 = LINE2 (field2, (i - 2 >= 0) ? i - 2 : i); - scanlines.m2 = LINE2 (field2, i); - scanlines.bb2 = LINE2 (field2, (i + 2 < frame_height ? i + 2 : i)); + scanlines.tt2 = LINE2 (frame2, (i - 2 >= 0) ? i - 2 : i); + scanlines.m2 = LINE2 (frame2, i); + scanlines.bb2 = LINE2 (frame2, (i + 2 < frame_height ? i + 2 : i)); - copy_scanline (self, LINE (dest, i), &scanlines); + copy_scanline (self, LINE (dest, i), &scanlines, frame_width); } else { /* interpolating */ - scanlines.ttp = LINE2 (fieldp, (i - 2 >= 0) ? i - 2 : i); - scanlines.mp = LINE2 (fieldp, i); - scanlines.bbp = LINE2 (fieldp, (i + 2 < frame_height ? i + 2 : i)); + scanlines.ttp = LINE2 (framep, (i - 2 >= 0) ? i - 2 : i); + scanlines.mp = LINE2 (framep, i); + scanlines.bbp = LINE2 (framep, (i + 2 < frame_height ? i + 2 : i)); - scanlines.t0 = LINE2 (field0, i - 1); - scanlines.b0 = LINE2 (field0, i + 1); + scanlines.t0 = LINE2 (frame0, i - 1); + scanlines.b0 = LINE2 (frame0, i + 1); - scanlines.tt1 = LINE2 (field1, (i - 2 >= 0) ? i - 2 : i); - scanlines.m1 = LINE2 (field1, i); - scanlines.bb1 = LINE2 (field1, (i + 2 < frame_height ? i + 2 : i)); + scanlines.tt1 = LINE2 (frame1, (i - 2 >= 0) ? i - 2 : i); + scanlines.m1 = LINE2 (frame1, i); + scanlines.bb1 = LINE2 (frame1, (i + 2 < frame_height ? i + 2 : i)); - scanlines.t2 = LINE2 (field2, i - 1); - scanlines.b2 = LINE2 (field2, i + 1); + scanlines.t2 = LINE2 (frame2, i - 1); + scanlines.b2 = LINE2 (frame2, i + 1); - interpolate_scanline (self, LINE (dest, i), &scanlines); + interpolate_scanline (self, LINE (dest, i), &scanlines, frame_width); } +#undef LINE +#undef LINE2 } } @@ -511,8 +520,7 @@ gst_deinterlace_simple_method_deinterlace_frame_planar (GstDeinterlaceMethod * { GstDeinterlaceSimpleMethod *self = GST_DEINTERLACE_SIMPLE_METHOD (method); GstDeinterlaceMethodClass *dm_class = GST_DEINTERLACE_METHOD_GET_CLASS (self); - guint8 *out; - const guint8 *field0, *field1, *field2, *fieldp; + const GstVideoFrame *frame0, *frame1, *frame2, *framep; guint cur_field_flags = history[cur_field_idx].flags; gint i; GstDeinterlaceSimpleMethodFunction copy_scanline; @@ -529,30 +537,22 @@ gst_deinterlace_simple_method_deinterlace_frame_planar (GstDeinterlaceMethod * copy_scanline = self->copy_scanline_planar[i]; interpolate_scanline = self->interpolate_scanline_planar[i]; - out = GST_VIDEO_FRAME_PLANE_DATA (outframe, i); + framep = (cur_field_idx > 0 ? history[cur_field_idx - 1].frame : NULL); - fieldp = NULL; - if (cur_field_idx > 0) { - fieldp = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx - 1].frame, i); - } - - field0 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx].frame, i); + frame0 = history[cur_field_idx].frame; g_assert (dm_class->fields_required <= 4); - field1 = NULL; - if (cur_field_idx + 1 < history_count) { - field1 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx + 1].frame, i); - } - - field2 = NULL; - if (cur_field_idx + 2 < history_count) { - field2 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx + 2].frame, i); - } + frame1 = + (cur_field_idx + 1 < + history_count ? history[cur_field_idx + 1].frame : NULL); + frame2 = + (cur_field_idx + 2 < + history_count ? history[cur_field_idx + 2].frame : NULL); - gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self, out, - field0, field1, field2, fieldp, cur_field_flags, i, copy_scanline, - interpolate_scanline); + gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self, + outframe, frame0, frame1, frame2, framep, cur_field_flags, i, + copy_scanline, interpolate_scanline); } } @@ -563,8 +563,7 @@ gst_deinterlace_simple_method_deinterlace_frame_nv12 (GstDeinterlaceMethod * { GstDeinterlaceSimpleMethod *self = GST_DEINTERLACE_SIMPLE_METHOD (method); GstDeinterlaceMethodClass *dm_class = GST_DEINTERLACE_METHOD_GET_CLASS (self); - guint8 *out; - const guint8 *field0, *field1, *field2, *fieldp; + const GstVideoFrame *frame0, *frame1, *frame2, *framep; guint cur_field_flags = history[cur_field_idx].flags; gint i; @@ -572,29 +571,21 @@ gst_deinterlace_simple_method_deinterlace_frame_nv12 (GstDeinterlaceMethod * g_assert (self->copy_scanline_packed != NULL); for (i = 0; i < 2; i++) { - out = GST_VIDEO_FRAME_PLANE_DATA (outframe, i); + framep = (cur_field_idx > 0 ? history[cur_field_idx - 1].frame : NULL); - fieldp = NULL; - if (cur_field_idx > 0) { - fieldp = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx - 1].frame, i); - } - - field0 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx].frame, i); + frame0 = history[cur_field_idx].frame; g_assert (dm_class->fields_required <= 4); - field1 = NULL; - if (cur_field_idx + 1 < history_count) { - field1 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx + 1].frame, i); - } - - field2 = NULL; - if (cur_field_idx + 2 < history_count) { - field2 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx + 2].frame, i); - } + frame1 = + (cur_field_idx + 1 < + history_count ? history[cur_field_idx + 1].frame : NULL); + frame2 = + (cur_field_idx + 2 < + history_count ? history[cur_field_idx + 2].frame : NULL); - gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self, out, - field0, field1, field2, fieldp, cur_field_flags, i, + gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self, + outframe, frame0, frame1, frame2, framep, cur_field_flags, i, self->copy_scanline_packed, self->interpolate_scanline_packed); } } diff --git a/gst/deinterlace/gstdeinterlacemethod.h b/gst/deinterlace/gstdeinterlacemethod.h index 16d54ba4b6bfdc511cdf44dcdcf70575f0d55d4e..ee646328ee701c13f30d41a1f84cd709641c22b6 100644 --- a/gst/deinterlace/gstdeinterlacemethod.h +++ b/gst/deinterlace/gstdeinterlacemethod.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_DEINTERLACE_METHOD_H__ @@ -68,12 +68,6 @@ struct _GstDeinterlaceMethod { GstObject parent; GstVideoInfo *vinfo; - // FIXME - the stuff below can use vinfo and macros - gint width[4]; - gint height[4]; - gint offset[4]; - gint row_stride[4]; - gint pixel_stride[4]; GstDeinterlaceMethodDeinterlaceFunction deinterlace_frame; }; @@ -166,7 +160,7 @@ struct _GstDeinterlaceScanlineData { * All other values are NULL. */ -typedef void (*GstDeinterlaceSimpleMethodFunction) (GstDeinterlaceSimpleMethod *self, guint8 *out, const GstDeinterlaceScanlineData *scanlines); +typedef void (*GstDeinterlaceSimpleMethodFunction) (GstDeinterlaceSimpleMethod *self, guint8 *out, const GstDeinterlaceScanlineData *scanlines, guint size); struct _GstDeinterlaceSimpleMethod { GstDeinterlaceMethod parent; diff --git a/gst/deinterlace/tvtime-dist.c b/gst/deinterlace/tvtime-dist.c index 8f2b75f3aadf15719e6b65b21ac2b1878b0e95a9..aa4d66e4d30d6b470bcb4ca0680c71a7547fcd13 100644 --- a/gst/deinterlace/tvtime-dist.c +++ b/gst/deinterlace/tvtime-dist.c @@ -173,7 +173,11 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, orc_int8 var37; orc_int8 var38; orc_int8 var39; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union16 var40; +#else orc_union16 var40; +#endif orc_int8 var41; orc_union16 var42; orc_union16 var43; @@ -261,7 +265,11 @@ _backup_deinterlace_line_vfir (OrcExecutor * ORC_RESTRICT ex) orc_int8 var37; orc_int8 var38; orc_int8 var39; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union16 var40; +#else orc_union16 var40; +#endif orc_int8 var41; orc_union16 var42; orc_union16 var43; @@ -347,6 +355,20 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 21, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108, + 105, 110, 101, 95, 118, 102, 105, 114, 11, 1, 1, 12, 1, 1, 12, 1, + 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 2, 0, 0, 0, + 14, 4, 1, 0, 0, 0, 14, 4, 4, 0, 0, 0, 14, 4, 3, 0, + 0, 0, 20, 2, 20, 2, 20, 2, 150, 32, 4, 150, 33, 8, 70, 32, + 32, 33, 150, 33, 5, 150, 34, 7, 70, 33, 33, 34, 93, 33, 33, 16, + 150, 34, 6, 93, 34, 34, 17, 98, 33, 33, 32, 70, 33, 33, 34, 70, + 33, 33, 18, 94, 33, 33, 19, 160, 0, 33, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_deinterlace_line_vfir); +#else p = orc_program_new (); orc_program_set_name (p, "deinterlace_line_vfir"); orc_program_set_backup_function (p, _backup_deinterlace_line_vfir); @@ -392,6 +414,7 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, ORC_VAR_D1); orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); @@ -494,6 +517,15 @@ deinterlace_line_linear (guint8 * ORC_RESTRICT d1, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 23, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108, + 105, 110, 101, 95, 108, 105, 110, 101, 97, 114, 11, 1, 1, 12, 1, 1, + 12, 1, 1, 39, 0, 4, 5, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_deinterlace_line_linear); +#else p = orc_program_new (); orc_program_set_name (p, "deinterlace_line_linear"); orc_program_set_backup_function (p, _backup_deinterlace_line_linear); @@ -503,6 +535,7 @@ deinterlace_line_linear (guint8 * ORC_RESTRICT d1, orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); @@ -540,7 +573,11 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1, orc_int8 var35; orc_int8 var36; orc_int8 var37; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union16 var38; +#else orc_union16 var38; +#endif orc_int8 var39; orc_union16 var40; orc_union16 var41; @@ -603,7 +640,11 @@ _backup_deinterlace_line_linear_blend (OrcExecutor * ORC_RESTRICT ex) orc_int8 var35; orc_int8 var36; orc_int8 var37; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union16 var38; +#else orc_union16 var38; +#endif orc_int8 var39; orc_union16 var40; orc_union16 var41; @@ -668,6 +709,20 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 29, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108, + 105, 110, 101, 95, 108, 105, 110, 101, 97, 114, 95, 98, 108, 101, 110, + 100, + 11, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 2, 0, + 0, 0, 20, 2, 20, 2, 20, 2, 150, 32, 4, 150, 33, 5, 150, 34, + 6, 70, 32, 32, 33, 70, 34, 34, 34, 70, 32, 32, 34, 70, 32, 32, + 16, 94, 32, 32, 16, 160, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, + _backup_deinterlace_line_linear_blend); +#else p = orc_program_new (); orc_program_set_name (p, "deinterlace_line_linear_blend"); orc_program_set_backup_function (p, @@ -699,6 +754,7 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1, ORC_VAR_D1); orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); @@ -736,8 +792,16 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1, const orc_int8 *ORC_RESTRICT ptr5; const orc_int8 *ORC_RESTRICT ptr6; const orc_int8 *ORC_RESTRICT ptr7; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_int8 var44; +#else orc_int8 var44; +#endif +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_int8 var45; +#else orc_int8 var45; +#endif orc_int8 var46; orc_int8 var47; orc_int8 var48; @@ -843,8 +907,16 @@ _backup_deinterlace_line_greedy (OrcExecutor * ORC_RESTRICT ex) const orc_int8 *ORC_RESTRICT ptr5; const orc_int8 *ORC_RESTRICT ptr6; const orc_int8 *ORC_RESTRICT ptr7; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_int8 var44; +#else orc_int8 var44; +#endif +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_int8 var45; +#else orc_int8 var45; +#endif orc_int8 var46; orc_int8 var47; orc_int8 var48; @@ -955,6 +1027,23 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 23, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108, + 105, 110, 101, 95, 103, 114, 101, 101, 100, 121, 11, 1, 1, 12, 1, 1, + 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 128, 0, 0, 0, 16, + 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, + 1, 20, 1, 20, 1, 20, 1, 20, 1, 43, 32, 4, 43, 33, 7, 43, + 34, 6, 43, 35, 5, 39, 36, 35, 34, 53, 39, 32, 36, 55, 40, 32, + 36, 65, 37, 39, 40, 53, 39, 33, 36, 55, 40, 33, 36, 65, 38, 39, + 40, 68, 37, 37, 16, 68, 38, 38, 16, 41, 40, 37, 38, 36, 39, 33, + 40, 37, 40, 40, 32, 59, 41, 39, 40, 53, 43, 35, 34, 55, 42, 35, + 34, 35, 43, 43, 24, 67, 42, 42, 24, 55, 41, 41, 43, 53, 0, 41, + 42, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_deinterlace_line_greedy); +#else p = orc_program_new (); orc_program_set_name (p, "deinterlace_line_greedy"); orc_program_set_backup_function (p, _backup_deinterlace_line_greedy); @@ -1024,6 +1113,7 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1, ORC_VAR_T12, ORC_VAR_D1); orc_program_append_2 (p, "maxub", 0, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_T11, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); diff --git a/gst/deinterlace/tvtime/greedy.c b/gst/deinterlace/tvtime/greedy.c index 57751326d1bab2ddb87361d5ab36e99de9e78ccc..804ce8b4f459ce3fd3967af18215236da0fe6d98 100644 --- a/gst/deinterlace/tvtime/greedy.c +++ b/gst/deinterlace/tvtime/greedy.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -70,71 +70,67 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodGreedyLClass; static inline void deinterlace_greedy_interpolate_scanline_orc (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { guint max_comb = GST_DEINTERLACE_METHOD_GREEDY_L (self)->max_comb; if (scanlines->m1 == NULL || scanlines->mp == NULL) { - deinterlace_line_linear (out, scanlines->t0, scanlines->b0, - self->parent.row_stride[0]); + deinterlace_line_linear (out, scanlines->t0, scanlines->b0, size); } else { deinterlace_line_greedy (out, scanlines->m1, scanlines->t0, scanlines->b0, - scanlines->mp ? scanlines->mp : scanlines->m1, - max_comb, self->parent.row_stride[0]); + scanlines->mp ? scanlines->mp : scanlines->m1, max_comb, size); } } static inline void deinterlace_greedy_interpolate_scanline_orc_planar_u (GstDeinterlaceSimpleMethod - * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) + * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint + size) { guint max_comb = GST_DEINTERLACE_METHOD_GREEDY_L (self)->max_comb; if (scanlines->m1 == NULL || scanlines->mp == NULL) { - deinterlace_line_linear (out, scanlines->t0, scanlines->b0, - self->parent.row_stride[1]); + deinterlace_line_linear (out, scanlines->t0, scanlines->b0, size); } else { deinterlace_line_greedy (out, scanlines->m1, scanlines->t0, scanlines->b0, - scanlines->mp ? scanlines->mp : scanlines->m1, - max_comb, self->parent.row_stride[1]); + scanlines->mp ? scanlines->mp : scanlines->m1, max_comb, size); } } static inline void deinterlace_greedy_interpolate_scanline_orc_planar_v (GstDeinterlaceSimpleMethod - * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) + * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint + size) { guint max_comb = GST_DEINTERLACE_METHOD_GREEDY_L (self)->max_comb; if (scanlines->m1 == NULL || scanlines->mp == NULL) { - deinterlace_line_linear (out, scanlines->t0, scanlines->b0, - self->parent.row_stride[2]); + deinterlace_line_linear (out, scanlines->t0, scanlines->b0, size); } else { deinterlace_line_greedy (out, scanlines->m1, scanlines->t0, scanlines->b0, - scanlines->mp ? scanlines->mp : scanlines->m1, - max_comb, self->parent.row_stride[2]); + scanlines->mp ? scanlines->mp : scanlines->m1, max_comb, size); } } static void deinterlace_greedy_copy_scanline (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, size); } static void deinterlace_greedy_copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[1]); + memcpy (out, scanlines->m0, size); } static void deinterlace_greedy_copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[2]); + memcpy (out, scanlines->m0, size); } G_DEFINE_TYPE (GstDeinterlaceMethodGreedyL, gst_deinterlace_method_greedy_l, diff --git a/gst/deinterlace/tvtime/greedyh.asm b/gst/deinterlace/tvtime/greedyh.asm index c710b4a1f2a8bd467ef9a3abe8fbd8770ae59c61..71a03dfc15e5d5e6b88565ce6315961b72ab2bf3 100644 --- a/gst/deinterlace/tvtime/greedyh.asm +++ b/gst/deinterlace/tvtime/greedyh.asm @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License aglong with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/deinterlace/tvtime/greedyh.c b/gst/deinterlace/tvtime/greedyh.c index c6bcddafda7189829d3f423e372f772deedc33ef..d769524dab930c9d33dc7f4cc292432a9512dc39 100644 --- a/gst/deinterlace/tvtime/greedyh.c +++ b/gst/deinterlace/tvtime/greedyh.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -726,9 +726,9 @@ deinterlace_frame_di_greedyh_packed (GstDeinterlaceMethod * method, GST_DEINTERLACE_METHOD_GREEDY_H_GET_CLASS (self); gint InfoIsOdd = 0; gint Line; - gint RowStride = method->row_stride[0]; + gint RowStride = GST_VIDEO_FRAME_COMP_STRIDE (outframe, 0); gint FieldHeight = GST_VIDEO_INFO_HEIGHT (method->vinfo) / 2; - gint Pitch = method->row_stride[0] * 2; + gint Pitch = RowStride * 2; const guint8 *L1; // ptr to Line1, of 3 const guint8 *L2; // ptr to Line2, the weave line const guint8 *L3; // ptr to Line3 @@ -912,9 +912,9 @@ deinterlace_frame_di_greedyh_planar (GstDeinterlaceMethod * method, for (i = 0; i < 3; i++) { InfoIsOdd = (history[cur_field_idx - 1].flags == PICTURE_INTERLACED_BOTTOM); - RowStride = method->row_stride[i]; - FieldHeight = method->height[i] / 2; - Pitch = method->row_stride[i] * 2; + RowStride = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, i); + FieldHeight = GST_VIDEO_FRAME_HEIGHT (outframe) / 2; + Pitch = RowStride * 2; if (i == 0) scanline = klass->scanline_planar_y; diff --git a/gst/deinterlace/tvtime/greedyhmacros.h b/gst/deinterlace/tvtime/greedyhmacros.h index 6f7be93e7f6d96b2c03187e79363c1da3f3e7d06..cfeaff53b17666e80fcb31a75ebcbbef6386c911 100644 --- a/gst/deinterlace/tvtime/greedyhmacros.h +++ b/gst/deinterlace/tvtime/greedyhmacros.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/deinterlace/tvtime/linear.c b/gst/deinterlace/tvtime/linear.c index 05dac451de98db5ae578a92300a90aa5367c939b..9c45353e0ba683c93b2c184861478d6dbd7e63b3 100644 --- a/gst/deinterlace/tvtime/linear.c +++ b/gst/deinterlace/tvtime/linear.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -56,34 +56,30 @@ deinterlace_scanline_linear_c (GstDeinterlaceSimpleMethod * self, static void deinterlace_scanline_linear_packed_c (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, - self->parent.row_stride[0]); + deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, size); } static void deinterlace_scanline_linear_planar_y_c (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, - self->parent.row_stride[0]); + deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, size); } static void deinterlace_scanline_linear_planar_u_c (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, - self->parent.row_stride[1]); + deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, size); } static void deinterlace_scanline_linear_planar_v_c (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, - self->parent.row_stride[2]); + deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, size); } G_DEFINE_TYPE (GstDeinterlaceMethodLinear, gst_deinterlace_method_linear, diff --git a/gst/deinterlace/tvtime/linearblend.c b/gst/deinterlace/tvtime/linearblend.c index 189e1aaa28c9e4320ccacda4aa9529a3f61b8174..c0e4a0b535b5d07addf4922d42085fe73af56275 100644 --- a/gst/deinterlace/tvtime/linearblend.c +++ b/gst/deinterlace/tvtime/linearblend.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -65,34 +65,34 @@ deinterlace_scanline_linear_blend_c (GstDeinterlaceSimpleMethod * self, static void deinterlace_scanline_linear_blend_packed_c (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { deinterlace_scanline_linear_blend_c (self, out, scanlines->t0, scanlines->b0, - scanlines->m1, self->parent.row_stride[0]); + scanlines->m1, size); } static void deinterlace_scanline_linear_blend_planar_y_c (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { deinterlace_scanline_linear_blend_c (self, out, scanlines->t0, scanlines->b0, - scanlines->m1, self->parent.row_stride[0]); + scanlines->m1, size); } static void deinterlace_scanline_linear_blend_planar_u_c (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { deinterlace_scanline_linear_blend_c (self, out, scanlines->t0, scanlines->b0, - scanlines->m1, self->parent.row_stride[1]); + scanlines->m1, size); } static void deinterlace_scanline_linear_blend_planar_v_c (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { deinterlace_scanline_linear_blend_c (self, out, scanlines->t0, scanlines->b0, - scanlines->m1, self->parent.row_stride[2]); + scanlines->m1, size); } static inline void @@ -109,34 +109,37 @@ deinterlace_scanline_linear_blend2_c (GstDeinterlaceSimpleMethod * self, static void deinterlace_scanline_linear_blend2_packed_c (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { deinterlace_scanline_linear_blend2_c (self, out, scanlines->m0, scanlines->t1, - scanlines->b1, self->parent.row_stride[0]); + scanlines->b1, size); } static void deinterlace_scanline_linear_blend2_planar_y_c (GstDeinterlaceSimpleMethod * - self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) + self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, + guint size) { deinterlace_scanline_linear_blend2_c (self, out, scanlines->m0, scanlines->t1, - scanlines->b1, self->parent.row_stride[0]); + scanlines->b1, size); } static void deinterlace_scanline_linear_blend2_planar_u_c (GstDeinterlaceSimpleMethod * - self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) + self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, + guint size) { deinterlace_scanline_linear_blend2_c (self, out, scanlines->m0, scanlines->t1, - scanlines->b1, self->parent.row_stride[1]); + scanlines->b1, size); } static void deinterlace_scanline_linear_blend2_planar_v_c (GstDeinterlaceSimpleMethod * - self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) + self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, + guint size) { deinterlace_scanline_linear_blend2_c (self, out, scanlines->m0, scanlines->t1, - scanlines->b1, self->parent.row_stride[2]); + scanlines->b1, size); } G_DEFINE_TYPE (GstDeinterlaceMethodLinearBlend, diff --git a/gst/deinterlace/tvtime/plugins.h b/gst/deinterlace/tvtime/plugins.h index 8fb01af5c44a352c26a0ce920e72426079def14b..58085b620f947e4882319bfc5655cbd8ac8bcedd 100644 --- a/gst/deinterlace/tvtime/plugins.h +++ b/gst/deinterlace/tvtime/plugins.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/deinterlace/tvtime/scalerbob.c b/gst/deinterlace/tvtime/scalerbob.c index adc285aefedc044cac0fa604d2cdff53a2dbe6e3..ed20bd4c36cdb93ee45b48eca917602902bda48b 100644 --- a/gst/deinterlace/tvtime/scalerbob.c +++ b/gst/deinterlace/tvtime/scalerbob.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -40,30 +40,30 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodScalerBobClass; static void deinterlace_scanline_scaler_bob_packed (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->t0, self->parent.row_stride[0]); + memcpy (out, scanlines->t0, size); } static void deinterlace_scanline_scaler_bob_planar_y (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->t0, self->parent.row_stride[0]); + memcpy (out, scanlines->t0, size); } static void deinterlace_scanline_scaler_bob_planar_u (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->t0, self->parent.row_stride[1]); + memcpy (out, scanlines->t0, size); } static void deinterlace_scanline_scaler_bob_planar_v (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->t0, self->parent.row_stride[2]); + memcpy (out, scanlines->t0, size); } G_DEFINE_TYPE (GstDeinterlaceMethodScalerBob, gst_deinterlace_method_scaler_bob, diff --git a/gst/deinterlace/tvtime/tomsmocomp.c b/gst/deinterlace/tvtime/tomsmocomp.c index 280abe827b348e70dc46a642f218e0a352f6e4d8..003e72b06b9c60d1d8ea1b903266290ee161ab62 100644 --- a/gst/deinterlace/tvtime/tomsmocomp.c +++ b/gst/deinterlace/tvtime/tomsmocomp.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc b/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc index 9dd06805abca71651525510c95ef0e1b1a065266..be58bba9f51be90326c240f8b65f8cde93a9572f 100644 --- a/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc +++ b/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -95,23 +95,24 @@ static void FUNCT_NAME(GstDeinterlaceMethod *d_method, } /* double stride do address just every odd/even scanline */ - src_pitch = self->parent.row_stride[0]*2; - dst_pitch = self->parent.row_stride[0]; - rowsize = self->parent.row_stride[0]; + src_pitch = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, 0) * 2; + dst_pitch = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, 0); + rowsize = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, 0); + FldHeight = GST_VIDEO_INFO_HEIGHT (self->parent.vinfo) / 2; pCopySrc = GST_VIDEO_FRAME_PLANE_DATA (history[history_count-1].frame, 0); if (history[history_count - 1].flags & PICTURE_INTERLACED_BOTTOM) - pCopySrc += rowsize; + pCopySrc += GST_VIDEO_FRAME_PLANE_STRIDE (history[history_count-1].frame, 0); pCopySrcP = GST_VIDEO_FRAME_PLANE_DATA (history[history_count-3].frame, 0); if (history[history_count - 3].flags & PICTURE_INTERLACED_BOTTOM) - pCopySrcP += rowsize; + pCopySrcP += GST_VIDEO_FRAME_PLANE_STRIDE (history[history_count-3].frame, 0); pWeaveSrc = GST_VIDEO_FRAME_PLANE_DATA (history[history_count-2].frame, 0); if (history[history_count - 2].flags & PICTURE_INTERLACED_BOTTOM) - pWeaveSrc += rowsize; + pWeaveSrc += GST_VIDEO_FRAME_PLANE_STRIDE (history[history_count-2].frame, 0); pWeaveSrcP = GST_VIDEO_FRAME_PLANE_DATA (history[history_count-4].frame, 0); if (history[history_count - 4].flags & PICTURE_INTERLACED_BOTTOM) - pWeaveSrcP += rowsize; + pWeaveSrcP += GST_VIDEO_FRAME_PLANE_STRIDE (history[history_count-4].frame, 0); /* use bottom field and interlace top field */ if (history[history_count-2].flags == PICTURE_INTERLACED_BOTTOM) { diff --git a/gst/deinterlace/tvtime/vfir.c b/gst/deinterlace/tvtime/vfir.c index 6442a82f80e5377a3643faf4d85907a03c440a77..a0618952c18fc3bf774dc3c28e7df8a644c4f808 100644 --- a/gst/deinterlace/tvtime/vfir.c +++ b/gst/deinterlace/tvtime/vfir.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -77,56 +77,52 @@ deinterlace_c (guint8 * dst, const guint8 * lum_m4, const guint8 * lum_m3, static void deinterlace_line_packed_c (GstDeinterlaceSimpleMethod * self, guint8 * dst, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { const guint8 *lum_m4 = scanlines->tt1; const guint8 *lum_m3 = scanlines->t0; const guint8 *lum_m2 = scanlines->m1; const guint8 *lum_m1 = scanlines->b0; const guint8 *lum = scanlines->bb1; - gint size = self->parent.row_stride[0]; deinterlace_c (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size); } static void deinterlace_line_planar_y_c (GstDeinterlaceSimpleMethod * self, guint8 * dst, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { const guint8 *lum_m4 = scanlines->tt1; const guint8 *lum_m3 = scanlines->t0; const guint8 *lum_m2 = scanlines->m1; const guint8 *lum_m1 = scanlines->b0; const guint8 *lum = scanlines->bb1; - gint size = self->parent.row_stride[0]; deinterlace_c (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size); } static void deinterlace_line_planar_u_c (GstDeinterlaceSimpleMethod * self, guint8 * dst, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { const guint8 *lum_m4 = scanlines->tt1; const guint8 *lum_m3 = scanlines->t0; const guint8 *lum_m2 = scanlines->m1; const guint8 *lum_m1 = scanlines->b0; const guint8 *lum = scanlines->bb1; - gint size = self->parent.row_stride[1]; deinterlace_c (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size); } static void deinterlace_line_planar_v_c (GstDeinterlaceSimpleMethod * self, guint8 * dst, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { const guint8 *lum_m4 = scanlines->tt1; const guint8 *lum_m3 = scanlines->t0; const guint8 *lum_m2 = scanlines->m1; const guint8 *lum_m1 = scanlines->b0; const guint8 *lum = scanlines->bb1; - gint size = self->parent.row_stride[2]; deinterlace_c (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size); } diff --git a/gst/deinterlace/tvtime/weave.c b/gst/deinterlace/tvtime/weave.c index 1501b1a2b5646d563c2f0afdf600549ede7eed78..804c889f0710ebf49b02a37d77c8f19f7d8b936c 100644 --- a/gst/deinterlace/tvtime/weave.c +++ b/gst/deinterlace/tvtime/weave.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -46,74 +46,74 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodWeaveClass; static void deinterlace_scanline_weave_packed (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->t0, self->parent.row_stride[0]); + memcpy (out, scanlines->t0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + memcpy (out, scanlines->m1, size); } } static void deinterlace_scanline_weave_planar_y (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->t0, self->parent.row_stride[0]); + memcpy (out, scanlines->t0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + memcpy (out, scanlines->m1, size); } } static void deinterlace_scanline_weave_planar_u (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->t0, self->parent.row_stride[1]); + memcpy (out, scanlines->t0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[1]); + memcpy (out, scanlines->m1, size); } } static void deinterlace_scanline_weave_planar_v (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->t0, self->parent.row_stride[2]); + memcpy (out, scanlines->t0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[2]); + memcpy (out, scanlines->m1, size); } } static void copy_scanline_packed (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, size); } static void copy_scanline_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, size); } static void copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[1]); + memcpy (out, scanlines->m0, size); } static void copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[2]); + memcpy (out, scanlines->m0, size); } G_DEFINE_TYPE (GstDeinterlaceMethodWeave, gst_deinterlace_method_weave, diff --git a/gst/deinterlace/tvtime/weavebff.c b/gst/deinterlace/tvtime/weavebff.c index b11395cd8ab37b5c1a38ff62867bf93fecdf8b52..7424e96fed1333648605b87ee6750238101cb500 100644 --- a/gst/deinterlace/tvtime/weavebff.c +++ b/gst/deinterlace/tvtime/weavebff.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -46,74 +46,74 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodWeaveBFFClass; static void deinterlace_scanline_weave_packed (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->b0, self->parent.row_stride[0]); + memcpy (out, scanlines->b0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + memcpy (out, scanlines->m1, size); } } static void deinterlace_scanline_weave_planar_y (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->b0, self->parent.row_stride[0]); + memcpy (out, scanlines->b0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + memcpy (out, scanlines->m1, size); } } static void deinterlace_scanline_weave_planar_u (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->b0, self->parent.row_stride[1]); + memcpy (out, scanlines->b0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[1]); + memcpy (out, scanlines->m1, size); } } static void deinterlace_scanline_weave_planar_v (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->b0, self->parent.row_stride[2]); + memcpy (out, scanlines->b0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[2]); + memcpy (out, scanlines->m1, size); } } static void copy_scanline_packed (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, size); } static void copy_scanline_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, size); } static void copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[1]); + memcpy (out, scanlines->m0, size); } static void copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, - const GstDeinterlaceScanlineData * scanlines) + const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[2]); + memcpy (out, scanlines->m0, size); } G_DEFINE_TYPE (GstDeinterlaceMethodWeaveBFF, gst_deinterlace_method_weave_bff, diff --git a/gst/deinterlace/tvtime/weavetff.c b/gst/deinterlace/tvtime/weavetff.c index 3c60613dd70769d358db836216e337b4f79db3aa..f33bb2e5518f9ea0355d16b86c95d21e03c2724f 100644 --- a/gst/deinterlace/tvtime/weavetff.c +++ b/gst/deinterlace/tvtime/weavetff.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -47,74 +47,74 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodWeaveTFFClass; static void deinterlace_scanline_weave_packed (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->t0, self->parent.row_stride[0]); + memcpy (out, scanlines->t0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + memcpy (out, scanlines->m1, size); } } static void deinterlace_scanline_weave_planar_y (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->t0, self->parent.row_stride[0]); + memcpy (out, scanlines->t0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + memcpy (out, scanlines->m1, size); } } static void deinterlace_scanline_weave_planar_u (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->t0, self->parent.row_stride[1]); + memcpy (out, scanlines->t0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[1]); + memcpy (out, scanlines->m1, size); } } static void deinterlace_scanline_weave_planar_v (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { if (scanlines->m1 == NULL) { - memcpy (out, scanlines->t0, self->parent.row_stride[2]); + memcpy (out, scanlines->t0, size); } else { - memcpy (out, scanlines->m1, self->parent.row_stride[2]); + memcpy (out, scanlines->m1, size); } } static void copy_scanline_packed (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, size); } static void copy_scanline_planar_y (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, size); } static void copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[1]); + memcpy (out, scanlines->m0, size); } static void copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self, - guint8 * out, const GstDeinterlaceScanlineData * scanlines) + guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size) { - memcpy (out, scanlines->m0, self->parent.row_stride[2]); + memcpy (out, scanlines->m0, size); } G_DEFINE_TYPE (GstDeinterlaceMethodWeaveTFF, gst_deinterlace_method_weave_tff, diff --git a/gst/deinterlace/tvtime/x86-64_macros.inc b/gst/deinterlace/tvtime/x86-64_macros.inc index 2e9df758620db0dd36405e7c8bc36c9cb9b511f5..312e3c749000c03975193eb6d53046c9bf01bb72 100644 --- a/gst/deinterlace/tvtime/x86-64_macros.inc +++ b/gst/deinterlace/tvtime/x86-64_macros.inc @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/dtmf/Makefile.am b/gst/dtmf/Makefile.am new file mode 100644 index 0000000000000000000000000000000000000000..f5d36edd5a0244ac287a805047f52eafec1223dc --- /dev/null +++ b/gst/dtmf/Makefile.am @@ -0,0 +1,31 @@ +plugin_LTLIBRARIES = libgstdtmf.la + +libgstdtmf_la_SOURCES = gstdtmfsrc.c \ + gstrtpdtmfsrc.c \ + gstrtpdtmfdepay.c \ + gstdtmf.c + +noinst_HEADERS = gstdtmfsrc.h \ + gstrtpdtmfsrc.h \ + gstrtpdtmfdepay.h \ + gstdtmfcommon.h + +libgstdtmf_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +libgstdtmf_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_API_VERSION@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) +libgstdtmf_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdtmf_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer \ + -:PROJECT libgstdtmf -:SHARED libgstdtmf \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstdtmf_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdtmf_la_CFLAGS) \ + -:LDFLAGS $(libgstdtmf_la_LDFLAGS) \ + $(libgstdtmf_la_LIBADD) \ + -ldl \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + > $@ diff --git a/gst/dtmf/Makefile.in b/gst/dtmf/Makefile.in new file mode 100644 index 0000000000000000000000000000000000000000..9b7b4eb2cf54d02a52911873a0376d504c1e87bd --- /dev/null +++ b/gst/dtmf/Makefile.in @@ -0,0 +1,940 @@ +# Makefile.in generated by automake 1.13.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = gst/dtmf +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ + $(top_srcdir)/common/m4/as-libtool.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstdtmf_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstdtmf_la_OBJECTS = libgstdtmf_la-gstdtmfsrc.lo \ + libgstdtmf_la-gstrtpdtmfsrc.lo \ + libgstdtmf_la-gstrtpdtmfdepay.lo libgstdtmf_la-gstdtmf.lo +libgstdtmf_la_OBJECTS = $(am_libgstdtmf_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libgstdtmf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstdtmf_la_CFLAGS) $(CFLAGS) \ + $(libgstdtmf_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgstdtmf_la_SOURCES) +DIST_SOURCES = $(libgstdtmf_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +AALIB_CFLAGS = @AALIB_CFLAGS@ +AALIB_CONFIG = @AALIB_CONFIG@ +AALIB_LIBS = @AALIB_LIBS@ +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRECTSOUND_CFLAGS = @DIRECTSOUND_CFLAGS@ +DIRECTSOUND_LDFLAGS = @DIRECTSOUND_LDFLAGS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +DV1394_CFLAGS = @DV1394_CFLAGS@ +DV1394_LIBS = @DV1394_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@ +EXEEXT = @EXEEXT@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLAC_CFLAGS = @FLAC_CFLAGS@ +FLAC_LIBS = @FLAC_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ +GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LDFLAGS = @GIO_LDFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_API_VERSION = @GST_API_VERSION@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CURRENT = @GST_CURRENT@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIBVERSION = @GST_LIBVERSION@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +GST_NET_CFLAGS = @GST_NET_CFLAGS@ +GST_NET_LIBS = @GST_NET_LIBS@ +GST_OBJCFLAGS = @GST_OBJCFLAGS@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_NONPORTED = @GST_PLUGINS_NONPORTED@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_X11_CFLAGS = @GTK_X11_CFLAGS@ +GTK_X11_LIBS = @GTK_X11_LIBS@ +GUDEV_CFLAGS = @GUDEV_CFLAGS@ +GUDEV_LIBS = @GUDEV_LIBS@ +HAVE_AVC1394 = @HAVE_AVC1394@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_ROM1394 = @HAVE_ROM1394@ +HAVE_SPEEX = @HAVE_SPEEX@ +HAVE_X = @HAVE_X@ +HAVE_XSHM = @HAVE_XSHM@ +HAVE_ZLIB = @HAVE_ZLIB@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JACK_0_120_1_CFLAGS = @JACK_0_120_1_CFLAGS@ +JACK_0_120_1_LIBS = @JACK_0_120_1_LIBS@ +JACK_1_9_7_CFLAGS = @JACK_1_9_7_CFLAGS@ +JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@ +JACK_CFLAGS = @JACK_CFLAGS@ +JACK_LIBS = @JACK_LIBS@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ +LIBCACA_LIBS = @LIBCACA_LIBS@ +LIBDV_CFLAGS = @LIBDV_CFLAGS@ +LIBDV_LIBS = @LIBDV_LIBS@ +LIBICONV = @LIBICONV@ +LIBIEC61883_CFLAGS = @LIBIEC61883_CFLAGS@ +LIBIEC61883_LIBS = @LIBIEC61883_LIBS@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ +LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ +LIBV4L2_LIBS = @LIBV4L2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJCFLAGS = @OBJCFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PULSE_CFLAGS = @PULSE_CFLAGS@ +PULSE_LIBS = @PULSE_LIBS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RAW1394_CFLAGS = @RAW1394_CFLAGS@ +RAW1394_LIBS = @RAW1394_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SHOUT2_CFLAGS = @SHOUT2_CFLAGS@ +SHOUT2_LIBS = @SHOUT2_LIBS@ +SOUP_CFLAGS = @SOUP_CFLAGS@ +SOUP_LIBS = @SOUP_LIBS@ +SPEEX_CFLAGS = @SPEEX_CFLAGS@ +SPEEX_LIBS = @SPEEX_LIBS@ +STRIP = @STRIP@ +TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ +TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@ +TAGLIB_LIBS = @TAGLIB_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VERSION = @VERSION@ +VPX_CFLAGS = @VPX_CFLAGS@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WARNING_OBJCFLAGS = @WARNING_OBJCFLAGS@ +WAVPACK_CFLAGS = @WAVPACK_CFLAGS@ +WAVPACK_LIBS = @WAVPACK_LIBS@ +XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@ +XDAMAGE_LIBS = @XDAMAGE_LIBS@ +XFIXES_CFLAGS = @XFIXES_CFLAGS@ +XFIXES_LIBS = @XFIXES_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XSHM_LIBS = @XSHM_LIBS@ +XVIDEO_LIBS = @XVIDEO_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZLIB_LIBS = @ZLIB_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstdtmf.la +libgstdtmf_la_SOURCES = gstdtmfsrc.c \ + gstrtpdtmfsrc.c \ + gstrtpdtmfdepay.c \ + gstdtmf.c + +noinst_HEADERS = gstdtmfsrc.h \ + gstrtpdtmfsrc.h \ + gstrtpdtmfdepay.h \ + gstdtmfcommon.h + +libgstdtmf_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +libgstdtmf_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_API_VERSION@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) + +libgstdtmf_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdtmf_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/dtmf/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu gst/dtmf/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libgstdtmf.la: $(libgstdtmf_la_OBJECTS) $(libgstdtmf_la_DEPENDENCIES) $(EXTRA_libgstdtmf_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstdtmf_la_LINK) -rpath $(plugindir) $(libgstdtmf_la_OBJECTS) $(libgstdtmf_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdtmf_la-gstdtmf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstdtmf_la-gstdtmfsrc.lo: gstdtmfsrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstdtmfsrc.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Tpo -c -o libgstdtmf_la-gstdtmfsrc.lo `test -f 'gstdtmfsrc.c' || echo '$(srcdir)/'`gstdtmfsrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Tpo $(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdtmfsrc.c' object='libgstdtmf_la-gstdtmfsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmfsrc.lo `test -f 'gstdtmfsrc.c' || echo '$(srcdir)/'`gstdtmfsrc.c + +libgstdtmf_la-gstrtpdtmfsrc.lo: gstrtpdtmfsrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstrtpdtmfsrc.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Tpo -c -o libgstdtmf_la-gstrtpdtmfsrc.lo `test -f 'gstrtpdtmfsrc.c' || echo '$(srcdir)/'`gstrtpdtmfsrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Tpo $(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdtmfsrc.c' object='libgstdtmf_la-gstrtpdtmfsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstrtpdtmfsrc.lo `test -f 'gstrtpdtmfsrc.c' || echo '$(srcdir)/'`gstrtpdtmfsrc.c + +libgstdtmf_la-gstrtpdtmfdepay.lo: gstrtpdtmfdepay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstrtpdtmfdepay.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Tpo -c -o libgstdtmf_la-gstrtpdtmfdepay.lo `test -f 'gstrtpdtmfdepay.c' || echo '$(srcdir)/'`gstrtpdtmfdepay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Tpo $(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdtmfdepay.c' object='libgstdtmf_la-gstrtpdtmfdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstrtpdtmfdepay.lo `test -f 'gstrtpdtmfdepay.c' || echo '$(srcdir)/'`gstrtpdtmfdepay.c + +libgstdtmf_la-gstdtmf.lo: gstdtmf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstdtmf.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstdtmf.Tpo -c -o libgstdtmf_la-gstdtmf.lo `test -f 'gstdtmf.c' || echo '$(srcdir)/'`gstdtmf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstdtmf.Tpo $(DEPDIR)/libgstdtmf_la-gstdtmf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdtmf.c' object='libgstdtmf_la-gstdtmf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmf.lo `test -f 'gstdtmf.c' || echo '$(srcdir)/'`gstdtmf.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES + + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer \ + -:PROJECT libgstdtmf -:SHARED libgstdtmf \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstdtmf_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdtmf_la_CFLAGS) \ + -:LDFLAGS $(libgstdtmf_la_LDFLAGS) \ + $(libgstdtmf_la_LIBADD) \ + -ldl \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + > $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/gst/dtmf/gstdtmf.c b/gst/dtmf/gstdtmf.c new file mode 100644 index 0000000000000000000000000000000000000000..1dc400149cc0c68e2c4e231df60894fc4972ea43 --- /dev/null +++ b/gst/dtmf/gstdtmf.c @@ -0,0 +1,45 @@ +/* GStreamer DTMF plugin + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstdtmfsrc.h" +#include "gstrtpdtmfsrc.h" +#include "gstrtpdtmfdepay.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + if (!gst_dtmf_src_plugin_init (plugin)) + return FALSE; + + if (!gst_rtp_dtmf_src_plugin_init (plugin)) + return FALSE; + + if (!gst_rtp_dtmf_depay_plugin_init (plugin)) + return FALSE; + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + dtmf, "DTMF plugins", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/gst/dtmf/gstdtmfcommon.h b/gst/dtmf/gstdtmfcommon.h new file mode 100644 index 0000000000000000000000000000000000000000..36f26ccb5c2168ca5bef7d56015d10f0ad81d1eb --- /dev/null +++ b/gst/dtmf/gstdtmfcommon.h @@ -0,0 +1,52 @@ +/* GStreamer DTMF plugin + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_RTP_DTMF_COMMON_H__ +#define __GST_RTP_DTMF_COMMON_H__ + +#include <gst/math-compat.h> + +#define MIN_INTER_DIGIT_INTERVAL 100 /* ms */ +#define MIN_PULSE_DURATION 250 /* ms */ + +#define MIN_VOLUME 0 +#define MAX_VOLUME 36 + +#define MIN_EVENT 0 +#define MAX_EVENT 15 +#define MIN_EVENT_STRING "0" +#define MAX_EVENT_STRING "15" + +typedef struct +{ + unsigned event:8; /* Current DTMF event */ +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + unsigned volume:6; /* power level of the tone, in dBm0 */ + unsigned r:1; /* Reserved-bit */ + unsigned e:1; /* End-bit */ +#elif G_BYTE_ORDER == G_BIG_ENDIAN + unsigned e:1; /* End-bit */ + unsigned r:1; /* Reserved-bit */ + unsigned volume:6; /* power level of the tone, in dBm0 */ +#else +#error "G_BYTE_ORDER should be big or little endian." +#endif + unsigned duration:16; /* Duration of digit, in timestamp units */ +} GstRTPDTMFPayload; + +#endif /* __GST_RTP_DTMF_COMMON_H__ */ diff --git a/gst/dtmf/gstdtmfsrc.c b/gst/dtmf/gstdtmfsrc.c new file mode 100644 index 0000000000000000000000000000000000000000..a77e3ba8b8ae13a13eaac6807a1b06831fef6bd1 --- /dev/null +++ b/gst/dtmf/gstdtmfsrc.c @@ -0,0 +1,969 @@ +/* GStreamer DTMF source + * + * gstdtmfsrc.c: + * + * Copyright (C) <2007> Collabora. + * Contact: Youness Alaoui <youness.alaoui@collabora.co.uk> + * Copyright (C) <2007> Nokia Corporation. + * Contact: Zeeshan Ali <zeeshan.ali@nokia.com> + * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> + * 2000,2005 Wim Taymans <wim@fluendo.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-dtmfsrc + * @see_also: rtpdtmsrc, rtpdtmfmuxx + * + * The DTMFSrc element generates DTMF (ITU-T Q.23 Specification) tone packets on request + * from application. The application communicates the beginning and end of a + * DTMF event using custom upstream gstreamer events. To report a DTMF event, an + * application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a + * structure of name "dtmf-event" with fields set according to the following + * table: + * + * <informaltable> + * <tgroup cols='4'> + * <colspec colname='Name' /> + * <colspec colname='Type' /> + * <colspec colname='Possible values' /> + * <colspec colname='Purpose' /> + * <thead> + * <row> + * <entry>Name</entry> + * <entry>GType</entry> + * <entry>Possible values</entry> + * <entry>Purpose</entry> + * </row> + * </thead> + * <tbody> + * <row> + * <entry>type</entry> + * <entry>G_TYPE_INT</entry> + * <entry>0-1</entry> + * <entry>The application uses this field to specify which of the two methods + * specified in RFC 2833 to use. The value should be 0 for tones and 1 for + * named events. Tones are specified by their frequencies and events are specied + * by their number. This element can only take events as input. Do not confuse + * with "method" which specified the output. + * </entry> + * </row> + * <row> + * <entry>number</entry> + * <entry>G_TYPE_INT</entry> + * <entry>0-15</entry> + * <entry>The event number.</entry> + * </row> + * <row> + * <entry>volume</entry> + * <entry>G_TYPE_INT</entry> + * <entry>0-36</entry> + * <entry>This field describes the power level of the tone, expressed in dBm0 + * after dropping the sign. Power levels range from 0 to -63 dBm0. The range of + * valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE. + * </entry> + * </row> + * <row> + * <entry>start</entry> + * <entry>G_TYPE_BOOLEAN</entry> + * <entry>True or False</entry> + * <entry>Whether the event is starting or ending.</entry> + * </row> + * <row> + * <entry>method</entry> + * <entry>G_TYPE_INT</entry> + * <entry>2</entry> + * <entry>The method used for sending event, this element will react if this + * field is absent or 2. + * </entry> + * </row> + * </tbody> + * </tgroup> + * </informaltable> + * + * For example, the following code informs the pipeline (and in turn, the + * DTMFSrc element inside the pipeline) about the start of a DTMF named + * event '1' of volume -25 dBm0: + * + * <programlisting> + * structure = gst_structure_new ("dtmf-event", + * "type", G_TYPE_INT, 1, + * "number", G_TYPE_INT, 1, + * "volume", G_TYPE_INT, 25, + * "start", G_TYPE_BOOLEAN, TRUE, NULL); + * + * event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure); + * gst_element_send_event (pipeline, event); + * </programlisting> + * + * When a DTMF tone actually starts or stop, a "dtmf-event-processed" + * element #GstMessage with the same fields as the "dtmf-event" + * #GstEvent that was used to request the event. Also, if any event + * has not been processed when the element goes from the PAUSED to the + * READY state, then a "dtmf-event-dropped" message is posted on the + * #GstBus in the order that they were received. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <stdlib.h> +#include <string.h> +#include <math.h> + +#include <glib.h> + +#include "gstdtmfcommon.h" + +#include "gstdtmfsrc.h" + +#include <gst/audio/audio.h> + +#define GST_TONE_DTMF_TYPE_EVENT 1 +#define DEFAULT_PACKET_INTERVAL 50 /* ms */ +#define MIN_PACKET_INTERVAL 10 /* ms */ +#define MAX_PACKET_INTERVAL 50 /* ms */ +#define DEFAULT_SAMPLE_RATE 8000 +#define SAMPLE_SIZE 16 +#define CHANNELS 1 +#define MIN_DUTY_CYCLE (MIN_INTER_DIGIT_INTERVAL + MIN_PULSE_DURATION) + + +typedef struct st_dtmf_key +{ + const char *event_name; + int event_encoding; + float low_frequency; + float high_frequency; +} DTMF_KEY; + +static const DTMF_KEY DTMF_KEYS[] = { + {"DTMF_KEY_EVENT_0", 0, 941, 1336}, + {"DTMF_KEY_EVENT_1", 1, 697, 1209}, + {"DTMF_KEY_EVENT_2", 2, 697, 1336}, + {"DTMF_KEY_EVENT_3", 3, 697, 1477}, + {"DTMF_KEY_EVENT_4", 4, 770, 1209}, + {"DTMF_KEY_EVENT_5", 5, 770, 1336}, + {"DTMF_KEY_EVENT_6", 6, 770, 1477}, + {"DTMF_KEY_EVENT_7", 7, 852, 1209}, + {"DTMF_KEY_EVENT_8", 8, 852, 1336}, + {"DTMF_KEY_EVENT_9", 9, 852, 1477}, + {"DTMF_KEY_EVENT_S", 10, 941, 1209}, + {"DTMF_KEY_EVENT_P", 11, 941, 1477}, + {"DTMF_KEY_EVENT_A", 12, 697, 1633}, + {"DTMF_KEY_EVENT_B", 13, 770, 1633}, + {"DTMF_KEY_EVENT_C", 14, 852, 1633}, + {"DTMF_KEY_EVENT_D", 15, 941, 1633}, +}; + +#define MAX_DTMF_EVENTS 16 + +enum +{ + DTMF_KEY_EVENT_1 = 1, + DTMF_KEY_EVENT_2 = 2, + DTMF_KEY_EVENT_3 = 3, + DTMF_KEY_EVENT_4 = 4, + DTMF_KEY_EVENT_5 = 5, + DTMF_KEY_EVENT_6 = 6, + DTMF_KEY_EVENT_7 = 7, + DTMF_KEY_EVENT_8 = 8, + DTMF_KEY_EVENT_9 = 9, + DTMF_KEY_EVENT_0 = 0, + DTMF_KEY_EVENT_STAR = 10, + DTMF_KEY_EVENT_POUND = 11, + DTMF_KEY_EVENT_A = 12, + DTMF_KEY_EVENT_B = 13, + DTMF_KEY_EVENT_C = 14, + DTMF_KEY_EVENT_D = 15, +}; + +GST_DEBUG_CATEGORY_STATIC (gst_dtmf_src_debug); +#define GST_CAT_DEFAULT gst_dtmf_src_debug + +enum +{ + PROP_0, + PROP_INTERVAL, +}; + +static GstStaticPadTemplate gst_dtmf_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "format = (string) \"" GST_AUDIO_NE (S16) "\", " + "rate = " GST_AUDIO_RATE_RANGE ", " "channels = (int) 1") + ); + +#define parent_class gst_dtmf_src_parent_class +G_DEFINE_TYPE (GstDTMFSrc, gst_dtmf_src, GST_TYPE_BASE_SRC); + +static void gst_dtmf_src_finalize (GObject * object); + +static void gst_dtmf_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_dtmf_src_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static gboolean gst_dtmf_src_handle_event (GstBaseSrc * src, GstEvent * event); +static gboolean gst_dtmf_src_send_event (GstElement * src, GstEvent * event); +static GstStateChangeReturn gst_dtmf_src_change_state (GstElement * element, + GstStateChange transition); +static GstFlowReturn gst_dtmf_src_create (GstBaseSrc * basesrc, + guint64 offset, guint length, GstBuffer ** buffer); +static void gst_dtmf_src_add_start_event (GstDTMFSrc * dtmfsrc, + gint event_number, gint event_volume); +static void gst_dtmf_src_add_stop_event (GstDTMFSrc * dtmfsrc); + +static gboolean gst_dtmf_src_unlock (GstBaseSrc * src); + +static gboolean gst_dtmf_src_unlock_stop (GstBaseSrc * src); +static gboolean gst_dtmf_src_negotiate (GstBaseSrc * basesrc); + + +static void +gst_dtmf_src_class_init (GstDTMFSrcClass * klass) +{ + GObjectClass *gobject_class; + GstBaseSrcClass *gstbasesrc_class; + GstElementClass *gstelement_class; + + gobject_class = G_OBJECT_CLASS (klass); + gstbasesrc_class = GST_BASE_SRC_CLASS (klass); + gstelement_class = GST_ELEMENT_CLASS (klass); + + + GST_DEBUG_CATEGORY_INIT (gst_dtmf_src_debug, "dtmfsrc", 0, "dtmfsrc element"); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&gst_dtmf_src_template)); + + gst_element_class_set_static_metadata (gstelement_class, + "DTMF tone generator", "Source/Audio", "Generates DTMF tones", + "Youness Alaoui <youness.alaoui@collabora.co.uk>"); + + + gobject_class->finalize = gst_dtmf_src_finalize; + gobject_class->set_property = gst_dtmf_src_set_property; + gobject_class->get_property = gst_dtmf_src_get_property; + + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_INTERVAL, + g_param_spec_uint ("interval", "Interval between tone packets", + "Interval in ms between two tone packets", MIN_PACKET_INTERVAL, + MAX_PACKET_INTERVAL, DEFAULT_PACKET_INTERVAL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_dtmf_src_change_state); + gstelement_class->send_event = GST_DEBUG_FUNCPTR (gst_dtmf_src_send_event); + gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_dtmf_src_unlock); + gstbasesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_dtmf_src_unlock_stop); + + gstbasesrc_class->event = GST_DEBUG_FUNCPTR (gst_dtmf_src_handle_event); + gstbasesrc_class->create = GST_DEBUG_FUNCPTR (gst_dtmf_src_create); + gstbasesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_dtmf_src_negotiate); +} + +static void +event_free (GstDTMFSrcEvent * event) +{ + if (event) + g_slice_free (GstDTMFSrcEvent, event); +} + +static void +gst_dtmf_src_init (GstDTMFSrc * dtmfsrc) +{ + /* we operate in time */ + gst_base_src_set_format (GST_BASE_SRC (dtmfsrc), GST_FORMAT_TIME); + gst_base_src_set_live (GST_BASE_SRC (dtmfsrc), TRUE); + + dtmfsrc->interval = DEFAULT_PACKET_INTERVAL; + + dtmfsrc->event_queue = g_async_queue_new_full ((GDestroyNotify) event_free); + dtmfsrc->last_event = NULL; + + dtmfsrc->sample_rate = DEFAULT_SAMPLE_RATE; + + GST_DEBUG_OBJECT (dtmfsrc, "init done"); +} + +static void +gst_dtmf_src_finalize (GObject * object) +{ + GstDTMFSrc *dtmfsrc; + + dtmfsrc = GST_DTMF_SRC (object); + + if (dtmfsrc->event_queue) { + g_async_queue_unref (dtmfsrc->event_queue); + dtmfsrc->event_queue = NULL; + } + + G_OBJECT_CLASS (gst_dtmf_src_parent_class)->finalize (object); +} + +static gboolean +gst_dtmf_src_handle_dtmf_event (GstDTMFSrc * dtmfsrc, GstEvent * event) +{ + const GstStructure *event_structure; + GstStateChangeReturn sret; + GstState state; + gint event_type; + gboolean start; + gint method; + GstClockTime last_stop; + gint event_number; + gint event_volume; + gboolean correct_order; + + sret = gst_element_get_state (GST_ELEMENT (dtmfsrc), &state, NULL, 0); + if (sret != GST_STATE_CHANGE_SUCCESS || state != GST_STATE_PLAYING) { + GST_DEBUG_OBJECT (dtmfsrc, "dtmf-event, but not in PLAYING state"); + goto failure; + } + + event_structure = gst_event_get_structure (event); + + if (!gst_structure_get_int (event_structure, "type", &event_type) || + !gst_structure_get_boolean (event_structure, "start", &start) || + (start == TRUE && event_type != GST_TONE_DTMF_TYPE_EVENT)) + goto failure; + + if (gst_structure_get_int (event_structure, "method", &method)) { + if (method != 2) { + goto failure; + } + } + + if (start) + if (!gst_structure_get_int (event_structure, "number", &event_number) || + !gst_structure_get_int (event_structure, "volume", &event_volume)) + goto failure; + + + GST_OBJECT_LOCK (dtmfsrc); + if (gst_structure_get_clock_time (event_structure, "last-stop", &last_stop)) + dtmfsrc->last_stop = last_stop; + else + dtmfsrc->last_stop = GST_CLOCK_TIME_NONE; + correct_order = (start != dtmfsrc->last_event_was_start); + dtmfsrc->last_event_was_start = start; + GST_OBJECT_UNLOCK (dtmfsrc); + + if (!correct_order) + goto failure; + + if (start) { + GST_DEBUG_OBJECT (dtmfsrc, "Received start event %d with volume %d", + event_number, event_volume); + gst_dtmf_src_add_start_event (dtmfsrc, event_number, event_volume); + } + + else { + GST_DEBUG_OBJECT (dtmfsrc, "Received stop event"); + gst_dtmf_src_add_stop_event (dtmfsrc); + } + + return TRUE; +failure: + return FALSE; +} + +static gboolean +gst_dtmf_src_handle_event (GstBaseSrc * src, GstEvent * event) +{ + GstDTMFSrc *dtmfsrc; + gboolean result = FALSE; + + dtmfsrc = GST_DTMF_SRC (src); + + GST_LOG_OBJECT (dtmfsrc, "Received an %s event on the src pad", + GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_UPSTREAM: + if (gst_event_has_name (event, "dtmf-event")) { + result = gst_dtmf_src_handle_dtmf_event (dtmfsrc, event); + break; + } + /* fall through */ + default: + result = GST_BASE_SRC_CLASS (parent_class)->event (src, event); + break; + } + + return result; +} + + +static gboolean +gst_dtmf_src_send_event (GstElement * element, GstEvent * event) +{ + GstDTMFSrc *dtmfsrc = GST_DTMF_SRC (element); + gboolean ret; + + GST_LOG_OBJECT (dtmfsrc, "Received an %s event via send_event", + GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_BOTH: + case GST_EVENT_CUSTOM_BOTH_OOB: + case GST_EVENT_CUSTOM_UPSTREAM: + case GST_EVENT_CUSTOM_DOWNSTREAM: + case GST_EVENT_CUSTOM_DOWNSTREAM_OOB: + if (gst_event_has_name (event, "dtmf-event")) { + ret = gst_dtmf_src_handle_dtmf_event (dtmfsrc, event); + break; + } + /* fall through */ + default: + ret = GST_ELEMENT_CLASS (parent_class)->send_event (element, event); + break; + } + + return ret; +} + +static void +gst_dtmf_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstDTMFSrc *dtmfsrc; + + dtmfsrc = GST_DTMF_SRC (object); + + switch (prop_id) { + case PROP_INTERVAL: + dtmfsrc->interval = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_dtmf_src_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstDTMFSrc *dtmfsrc; + + dtmfsrc = GST_DTMF_SRC (object); + + switch (prop_id) { + case PROP_INTERVAL: + g_value_set_uint (value, dtmfsrc->interval); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_dtmf_prepare_timestamps (GstDTMFSrc * dtmfsrc) +{ + GstClockTime last_stop; + GstClockTime timestamp; + + GST_OBJECT_LOCK (dtmfsrc); + last_stop = dtmfsrc->last_stop; + GST_OBJECT_UNLOCK (dtmfsrc); + + if (GST_CLOCK_TIME_IS_VALID (last_stop)) { + timestamp = last_stop; + } else { + GstClock *clock; + + /* If there is no valid start time, lets use now as the start time */ + + clock = gst_element_get_clock (GST_ELEMENT (dtmfsrc)); + if (clock != NULL) { + timestamp = gst_clock_get_time (clock) + - gst_element_get_base_time (GST_ELEMENT (dtmfsrc)); + gst_object_unref (clock); + } else { + gchar *dtmf_name = gst_element_get_name (dtmfsrc); + GST_ERROR_OBJECT (dtmfsrc, "No clock set for element %s", dtmf_name); + dtmfsrc->timestamp = GST_CLOCK_TIME_NONE; + g_free (dtmf_name); + return; + } + } + + /* Make sure the timestamp always goes forward */ + if (timestamp > dtmfsrc->timestamp) + dtmfsrc->timestamp = timestamp; +} + +static void +gst_dtmf_src_add_start_event (GstDTMFSrc * dtmfsrc, gint event_number, + gint event_volume) +{ + + GstDTMFSrcEvent *event = g_slice_new0 (GstDTMFSrcEvent); + event->event_type = DTMF_EVENT_TYPE_START; + event->sample = 0; + event->event_number = CLAMP (event_number, MIN_EVENT, MAX_EVENT); + event->volume = CLAMP (event_volume, MIN_VOLUME, MAX_VOLUME); + + g_async_queue_push (dtmfsrc->event_queue, event); +} + +static void +gst_dtmf_src_add_stop_event (GstDTMFSrc * dtmfsrc) +{ + + GstDTMFSrcEvent *event = g_slice_new0 (GstDTMFSrcEvent); + event->event_type = DTMF_EVENT_TYPE_STOP; + event->sample = 0; + event->event_number = 0; + event->volume = 0; + + g_async_queue_push (dtmfsrc->event_queue, event); +} + +static GstBuffer * +gst_dtmf_src_generate_silence (float duration, gint sample_rate) +{ + gint buf_size; + + /* Create a buffer with data set to 0 */ + buf_size = ((duration / 1000) * sample_rate * SAMPLE_SIZE * CHANNELS) / 8; + + return gst_buffer_new_wrapped (g_malloc0 (buf_size), buf_size); +} + +static GstBuffer * +gst_dtmf_src_generate_tone (GstDTMFSrcEvent * event, DTMF_KEY key, + float duration, gint sample_rate) +{ + GstBuffer *buffer; + GstMapInfo map; + gint16 *p; + gint tone_size; + double i = 0; + double amplitude, f1, f2; + double volume_factor; + static GstAllocationParams params = { 0, 1, 0, 0, }; + + /* Create a buffer for the tone */ + tone_size = ((duration / 1000) * sample_rate * SAMPLE_SIZE * CHANNELS) / 8; + + buffer = gst_buffer_new_allocate (NULL, tone_size, ¶ms); + + gst_buffer_map (buffer, &map, GST_MAP_READWRITE); + p = (gint16 *) map.data; + + volume_factor = pow (10, (-event->volume) / 20); + + /* + * For each sample point we calculate 'x' as the + * the amplitude value. + */ + for (i = 0; i < (tone_size / (SAMPLE_SIZE / 8)); i++) { + /* + * We add the fundamental frequencies together. + */ + f1 = sin (2 * M_PI * key.low_frequency * (event->sample / sample_rate)); + f2 = sin (2 * M_PI * key.high_frequency * (event->sample / sample_rate)); + + amplitude = (f1 + f2) / 2; + + /* Adjust the volume */ + amplitude *= volume_factor; + + /* Make the [-1:1] interval into a [-32767:32767] interval */ + amplitude *= 32767; + + /* Store it in the data buffer */ + *(p++) = (gint16) amplitude; + + (event->sample)++; + } + + gst_buffer_unmap (buffer, &map); + + return buffer; +} + + + +static GstBuffer * +gst_dtmf_src_create_next_tone_packet (GstDTMFSrc * dtmfsrc, + GstDTMFSrcEvent * event) +{ + GstBuffer *buf = NULL; + gboolean send_silence = FALSE; + + GST_LOG_OBJECT (dtmfsrc, "Creating buffer for tone %s", + DTMF_KEYS[event->event_number].event_name); + + if (event->packet_count * dtmfsrc->interval < MIN_INTER_DIGIT_INTERVAL) { + send_silence = TRUE; + } + + if (send_silence) { + GST_LOG_OBJECT (dtmfsrc, "Generating silence"); + buf = gst_dtmf_src_generate_silence (dtmfsrc->interval, + dtmfsrc->sample_rate); + } else { + GST_LOG_OBJECT (dtmfsrc, "Generating tone"); + buf = gst_dtmf_src_generate_tone (event, DTMF_KEYS[event->event_number], + dtmfsrc->interval, dtmfsrc->sample_rate); + } + event->packet_count++; + + + /* timestamp and duration of GstBuffer */ + GST_BUFFER_DURATION (buf) = dtmfsrc->interval * GST_MSECOND; + GST_BUFFER_TIMESTAMP (buf) = dtmfsrc->timestamp; + + GST_LOG_OBJECT (dtmfsrc, "Creating new buffer with event %u duration " + " gst: %" GST_TIME_FORMAT " at %" GST_TIME_FORMAT, + event->event_number, GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); + + dtmfsrc->timestamp += GST_BUFFER_DURATION (buf); + + return buf; +} + +static void +gst_dtmf_src_post_message (GstDTMFSrc * dtmfsrc, const gchar * message_name, + GstDTMFSrcEvent * event) +{ + GstStructure *s = NULL; + + switch (event->event_type) { + case DTMF_EVENT_TYPE_START: + s = gst_structure_new (message_name, + "type", G_TYPE_INT, 1, + "method", G_TYPE_INT, 2, + "start", G_TYPE_BOOLEAN, TRUE, + "number", G_TYPE_INT, event->event_number, + "volume", G_TYPE_INT, event->volume, NULL); + break; + case DTMF_EVENT_TYPE_STOP: + s = gst_structure_new (message_name, + "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 2, + "start", G_TYPE_BOOLEAN, FALSE, NULL); + break; + case DTMF_EVENT_TYPE_PAUSE_TASK: + return; + } + + if (s) + gst_element_post_message (GST_ELEMENT (dtmfsrc), + gst_message_new_element (GST_OBJECT (dtmfsrc), s)); +} + +static GstFlowReturn +gst_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, + guint length, GstBuffer ** buffer) +{ + GstBuffer *buf = NULL; + GstDTMFSrcEvent *event; + GstDTMFSrc *dtmfsrc; + GstClock *clock; + GstClockID *clockid; + GstClockReturn clockret; + + dtmfsrc = GST_DTMF_SRC (basesrc); + + do { + + if (dtmfsrc->last_event == NULL) { + GST_DEBUG_OBJECT (dtmfsrc, "popping"); + event = g_async_queue_pop (dtmfsrc->event_queue); + + GST_DEBUG_OBJECT (dtmfsrc, "popped %d", event->event_type); + + switch (event->event_type) { + case DTMF_EVENT_TYPE_STOP: + GST_WARNING_OBJECT (dtmfsrc, + "Received a DTMF stop event when already stopped"); + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); + break; + case DTMF_EVENT_TYPE_START: + gst_dtmf_prepare_timestamps (dtmfsrc); + + event->packet_count = 0; + dtmfsrc->last_event = event; + event = NULL; + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-processed", + dtmfsrc->last_event); + break; + case DTMF_EVENT_TYPE_PAUSE_TASK: + /* + * We're pushing it back because it has to stay in there until + * the task is really paused (and the queue will then be flushed) + */ + GST_DEBUG_OBJECT (dtmfsrc, "pushing pause_task..."); + GST_OBJECT_LOCK (dtmfsrc); + if (dtmfsrc->paused) { + g_async_queue_push (dtmfsrc->event_queue, event); + goto paused_locked; + } + GST_OBJECT_UNLOCK (dtmfsrc); + break; + } + if (event) + g_slice_free (GstDTMFSrcEvent, event); + } else if (dtmfsrc->last_event->packet_count * dtmfsrc->interval >= + MIN_DUTY_CYCLE) { + event = g_async_queue_try_pop (dtmfsrc->event_queue); + + if (event != NULL) { + + switch (event->event_type) { + case DTMF_EVENT_TYPE_START: + GST_WARNING_OBJECT (dtmfsrc, + "Received two consecutive DTMF start events"); + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); + break; + case DTMF_EVENT_TYPE_STOP: + g_slice_free (GstDTMFSrcEvent, dtmfsrc->last_event); + dtmfsrc->last_event = NULL; + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-processed", event); + break; + case DTMF_EVENT_TYPE_PAUSE_TASK: + /* + * We're pushing it back because it has to stay in there until + * the task is really paused (and the queue will then be flushed) + */ + GST_DEBUG_OBJECT (dtmfsrc, "pushing pause_task..."); + + GST_OBJECT_LOCK (dtmfsrc); + if (dtmfsrc->paused) { + g_async_queue_push (dtmfsrc->event_queue, event); + goto paused_locked; + } + GST_OBJECT_UNLOCK (dtmfsrc); + + break; + } + g_slice_free (GstDTMFSrcEvent, event); + } + } + } while (dtmfsrc->last_event == NULL); + + GST_LOG_OBJECT (dtmfsrc, "end event check, now wait for the proper time"); + + clock = gst_element_get_clock (GST_ELEMENT (basesrc)); + + clockid = gst_clock_new_single_shot_id (clock, dtmfsrc->timestamp + + gst_element_get_base_time (GST_ELEMENT (dtmfsrc))); + gst_object_unref (clock); + + GST_OBJECT_LOCK (dtmfsrc); + if (!dtmfsrc->paused) { + dtmfsrc->clockid = clockid; + GST_OBJECT_UNLOCK (dtmfsrc); + + clockret = gst_clock_id_wait (clockid, NULL); + + GST_OBJECT_LOCK (dtmfsrc); + if (dtmfsrc->paused) + clockret = GST_CLOCK_UNSCHEDULED; + } else { + clockret = GST_CLOCK_UNSCHEDULED; + } + gst_clock_id_unref (clockid); + dtmfsrc->clockid = NULL; + GST_OBJECT_UNLOCK (dtmfsrc); + + if (clockret == GST_CLOCK_UNSCHEDULED) { + goto paused; + } + + buf = gst_dtmf_src_create_next_tone_packet (dtmfsrc, dtmfsrc->last_event); + + GST_LOG_OBJECT (dtmfsrc, "Created buffer of size %" G_GSIZE_FORMAT, + gst_buffer_get_size (buf)); + *buffer = buf; + + return GST_FLOW_OK; + +paused_locked: + GST_OBJECT_UNLOCK (dtmfsrc); + +paused: + + if (dtmfsrc->last_event) { + GST_DEBUG_OBJECT (dtmfsrc, "Stopping current event"); + /* Don't forget to release the stream lock */ + g_slice_free (GstDTMFSrcEvent, dtmfsrc->last_event); + dtmfsrc->last_event = NULL; + } + + return GST_FLOW_FLUSHING; + +} + +static gboolean +gst_dtmf_src_unlock (GstBaseSrc * src) +{ + GstDTMFSrc *dtmfsrc = GST_DTMF_SRC (src); + GstDTMFSrcEvent *event = NULL; + + GST_DEBUG_OBJECT (dtmfsrc, "Called unlock"); + + GST_OBJECT_LOCK (dtmfsrc); + dtmfsrc->paused = TRUE; + if (dtmfsrc->clockid) { + gst_clock_id_unschedule (dtmfsrc->clockid); + } + GST_OBJECT_UNLOCK (dtmfsrc); + + GST_DEBUG_OBJECT (dtmfsrc, "Pushing the PAUSE_TASK event on unlock request"); + event = g_slice_new0 (GstDTMFSrcEvent); + event->event_type = DTMF_EVENT_TYPE_PAUSE_TASK; + g_async_queue_push (dtmfsrc->event_queue, event); + + return TRUE; +} + + +static gboolean +gst_dtmf_src_unlock_stop (GstBaseSrc * src) +{ + GstDTMFSrc *dtmfsrc = GST_DTMF_SRC (src); + + GST_DEBUG_OBJECT (dtmfsrc, "Unlock stopped"); + + GST_OBJECT_LOCK (dtmfsrc); + dtmfsrc->paused = FALSE; + GST_OBJECT_UNLOCK (dtmfsrc); + + return TRUE; +} + + +static gboolean +gst_dtmf_src_negotiate (GstBaseSrc * basesrc) +{ + GstDTMFSrc *dtmfsrc = GST_DTMF_SRC (basesrc); + GstCaps *caps; + GstStructure *s; + gboolean ret; + + caps = gst_pad_get_allowed_caps (GST_BASE_SRC_PAD (basesrc)); + + if (!caps) + caps = gst_pad_get_pad_template_caps (GST_BASE_SRC_PAD (basesrc)); + + if (gst_caps_is_empty (caps)) { + gst_caps_unref (caps); + return FALSE; + } + + caps = gst_caps_truncate (caps); + + caps = gst_caps_make_writable (caps); + s = gst_caps_get_structure (caps, 0); + + gst_structure_fixate_field_nearest_int (s, "rate", DEFAULT_SAMPLE_RATE); + + if (!gst_structure_get_int (s, "rate", &dtmfsrc->sample_rate)) { + GST_ERROR_OBJECT (dtmfsrc, "Could not get rate"); + gst_caps_unref (caps); + return FALSE; + } + + ret = gst_pad_set_caps (GST_BASE_SRC_PAD (basesrc), caps); + + gst_caps_unref (caps); + + return ret; +} + +static GstStateChangeReturn +gst_dtmf_src_change_state (GstElement * element, GstStateChange transition) +{ + GstDTMFSrc *dtmfsrc; + GstStateChangeReturn result; + gboolean no_preroll = FALSE; + GstDTMFSrcEvent *event = NULL; + + dtmfsrc = GST_DTMF_SRC (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + /* Flushing the event queue */ + event = g_async_queue_try_pop (dtmfsrc->event_queue); + + while (event != NULL) { + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); + g_slice_free (GstDTMFSrcEvent, event); + event = g_async_queue_try_pop (dtmfsrc->event_queue); + } + dtmfsrc->last_event_was_start = FALSE; + dtmfsrc->timestamp = 0; + no_preroll = TRUE; + break; + default: + break; + } + + if ((result = + GST_ELEMENT_CLASS (gst_dtmf_src_parent_class)->change_state (element, + transition)) == GST_STATE_CHANGE_FAILURE) + goto failure; + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + no_preroll = TRUE; + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + GST_DEBUG_OBJECT (dtmfsrc, "Flushing event queue"); + /* Flushing the event queue */ + event = g_async_queue_try_pop (dtmfsrc->event_queue); + + while (event != NULL) { + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); + g_slice_free (GstDTMFSrcEvent, event); + event = g_async_queue_try_pop (dtmfsrc->event_queue); + } + dtmfsrc->last_event_was_start = FALSE; + + break; + default: + break; + } + + if (no_preroll && result == GST_STATE_CHANGE_SUCCESS) + result = GST_STATE_CHANGE_NO_PREROLL; + + return result; + + /* ERRORS */ +failure: + { + GST_ERROR_OBJECT (dtmfsrc, "parent failed state change"); + return result; + } +} + +gboolean +gst_dtmf_src_plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "dtmfsrc", + GST_RANK_NONE, GST_TYPE_DTMF_SRC); +} diff --git a/gst/dtmf/gstdtmfsrc.h b/gst/dtmf/gstdtmfsrc.h new file mode 100644 index 0000000000000000000000000000000000000000..04440bc1857ea7c8a5040faf8707d4b327e3e13d --- /dev/null +++ b/gst/dtmf/gstdtmfsrc.h @@ -0,0 +1,101 @@ +/* GStreamer DTMF source + * + * gstdtmfsrc.h: + * + * Copyright (C) <2007> Collabora. + * Contact: Youness Alaoui <youness.alaoui@collabora.co.uk> + * Copyright (C) <2007> Nokia Corporation. + * Contact: Zeeshan Ali <zeeshan.ali@nokia.com> + * Copyright (C) <2005> Wim Taymans <wim@fluendo.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_DTMF_SRC_H__ +#define __GST_DTMF_SRC_H__ + +#include <gst/gst.h> +#include <gst/gstbuffer.h> +#include <gst/base/gstbasesrc.h> + +G_BEGIN_DECLS +#define GST_TYPE_DTMF_SRC (gst_dtmf_src_get_type()) +#define GST_DTMF_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DTMF_SRC,GstDTMFSrc)) +#define GST_DTMF_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DTMF_SRC,GstDTMFSrcClass)) +#define GST_DTMF_SRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_DTMF_SRC, GstDTMFSrcClass)) +#define GST_IS_DTMF_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DTMF_SRC)) +#define GST_IS_DTMF_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DTMF_SRC)) +#define GST_DTMF_SRC_CAST(obj) ((GstDTMFSrc *)(obj)) +typedef struct _GstDTMFSrc GstDTMFSrc; +typedef struct _GstDTMFSrcClass GstDTMFSrcClass; + +enum _GstDTMFEventType +{ + DTMF_EVENT_TYPE_START, + DTMF_EVENT_TYPE_STOP, + DTMF_EVENT_TYPE_PAUSE_TASK +}; + +typedef enum _GstDTMFEventType GstDTMFEventType; + +struct _GstDTMFSrcEvent +{ + GstDTMFEventType event_type; + double sample; + guint16 event_number; + guint16 volume; + guint32 packet_count; +}; + +typedef struct _GstDTMFSrcEvent GstDTMFSrcEvent; + +/** + * GstDTMFSrc: + * @element: the parent element. + * + * The opaque #GstDTMFSrc data structure. + */ +struct _GstDTMFSrc +{ + /*< private >*/ + GstBaseSrc parent; + GAsyncQueue *event_queue; + GstDTMFSrcEvent *last_event; + gboolean last_event_was_start; + + guint16 interval; + GstClockTime timestamp; + + gboolean paused; + GstClockID clockid; + + GstClockTime last_stop; + + gint sample_rate; +}; + + +struct _GstDTMFSrcClass +{ + GstBaseSrcClass parent_class; +}; + +GType gst_dtmf_src_get_type (void); + +gboolean gst_dtmf_src_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_DTMF_SRC_H__ */ diff --git a/gst/dtmf/gstrtpdtmfdepay.c b/gst/dtmf/gstrtpdtmfdepay.c new file mode 100644 index 0000000000000000000000000000000000000000..d66f24a24d6335fb1e9b559f6f25bb67cf9f8bc1 --- /dev/null +++ b/gst/dtmf/gstrtpdtmfdepay.c @@ -0,0 +1,543 @@ +/* GstRtpDtmfDepay + * + * Copyright (C) 2008 Collabora Limited + * Copyright (C) 2008 Nokia Corporation + * Contact: Youness Alaoui <youness.alaoui@collabora.co.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ +/** + * SECTION:element-rtpdtmfdepay + * @see_also: rtpdtmfsrc, rtpdtmfmux + * + * This element takes RTP DTMF packets and produces sound. It also emits a + * message on the #GstBus. + * + * The message is called "dtmf-event" and has the following fields + * <informaltable> + * <tgroup cols='4'> + * <colspec colname='Name' /> + * <colspec colname='Type' /> + * <colspec colname='Possible values' /> + * <colspec colname='Purpose' /> + * <thead> + * <row> + * <entry>Name</entry> + * <entry>GType</entry> + * <entry>Possible values</entry> + * <entry>Purpose</entry> + * </row> + * </thead> + * <tbody> + * <row> + * <entry>type</entry> + * <entry>G_TYPE_INT</entry> + * <entry>0-1</entry> + * <entry>Which of the two methods + * specified in RFC 2833 to use. The value should be 0 for tones and 1 for + * named events. Tones are specified by their frequencies and events are specied + * by their number. This element currently only recognizes events. + * Do not confuse with "method" which specified the output. + * </entry> + * </row> + * <row> + * <entry>number</entry> + * <entry>G_TYPE_INT</entry> + * <entry>0-16</entry> + * <entry>The event number.</entry> + * </row> + * <row> + * <entry>volume</entry> + * <entry>G_TYPE_INT</entry> + * <entry>0-36</entry> + * <entry>This field describes the power level of the tone, expressed in dBm0 + * after dropping the sign. Power levels range from 0 to -63 dBm0. The range of + * valid DTMF is from 0 to -36 dBm0. + * </entry> + * </row> + * <row> + * <entry>method</entry> + * <entry>G_TYPE_INT</entry> + * <entry>1</entry> + * <entry>This field will always been 1 (ie RTP event) from this element. + * </entry> + * </row> + * </tbody> + * </tgroup> + * </informaltable> + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstrtpdtmfdepay.h" + +#include <string.h> +#include <math.h> + +#include <gst/audio/audio.h> +#include <gst/rtp/gstrtpbuffer.h> + +#define DEFAULT_PACKET_INTERVAL 50 /* ms */ +#define MIN_PACKET_INTERVAL 10 /* ms */ +#define MAX_PACKET_INTERVAL 50 /* ms */ +#define SAMPLE_RATE 8000 +#define SAMPLE_SIZE 16 +#define CHANNELS 1 +#define MIN_DUTY_CYCLE (MIN_INTER_DIGIT_INTERVAL + MIN_PULSE_DURATION) + +#define MIN_UNIT_TIME 0 +#define MAX_UNIT_TIME 1000 +#define DEFAULT_UNIT_TIME 0 + +#define DEFAULT_MAX_DURATION 0 + +typedef struct st_dtmf_key +{ + const char *event_name; + int event_encoding; + float low_frequency; + float high_frequency; +} DTMF_KEY; + +static const DTMF_KEY DTMF_KEYS[] = { + {"DTMF_KEY_EVENT_0", 0, 941, 1336}, + {"DTMF_KEY_EVENT_1", 1, 697, 1209}, + {"DTMF_KEY_EVENT_2", 2, 697, 1336}, + {"DTMF_KEY_EVENT_3", 3, 697, 1477}, + {"DTMF_KEY_EVENT_4", 4, 770, 1209}, + {"DTMF_KEY_EVENT_5", 5, 770, 1336}, + {"DTMF_KEY_EVENT_6", 6, 770, 1477}, + {"DTMF_KEY_EVENT_7", 7, 852, 1209}, + {"DTMF_KEY_EVENT_8", 8, 852, 1336}, + {"DTMF_KEY_EVENT_9", 9, 852, 1477}, + {"DTMF_KEY_EVENT_S", 10, 941, 1209}, + {"DTMF_KEY_EVENT_P", 11, 941, 1477}, + {"DTMF_KEY_EVENT_A", 12, 697, 1633}, + {"DTMF_KEY_EVENT_B", 13, 770, 1633}, + {"DTMF_KEY_EVENT_C", 14, 852, 1633}, + {"DTMF_KEY_EVENT_D", 15, 941, 1633}, +}; + +#define MAX_DTMF_EVENTS 16 + +enum +{ + DTMF_KEY_EVENT_1 = 1, + DTMF_KEY_EVENT_2 = 2, + DTMF_KEY_EVENT_3 = 3, + DTMF_KEY_EVENT_4 = 4, + DTMF_KEY_EVENT_5 = 5, + DTMF_KEY_EVENT_6 = 6, + DTMF_KEY_EVENT_7 = 7, + DTMF_KEY_EVENT_8 = 8, + DTMF_KEY_EVENT_9 = 9, + DTMF_KEY_EVENT_0 = 0, + DTMF_KEY_EVENT_STAR = 10, + DTMF_KEY_EVENT_POUND = 11, + DTMF_KEY_EVENT_A = 12, + DTMF_KEY_EVENT_B = 13, + DTMF_KEY_EVENT_C = 14, + DTMF_KEY_EVENT_D = 15, +}; + +GST_DEBUG_CATEGORY_STATIC (gst_rtp_dtmf_depay_debug); +#define GST_CAT_DEFAULT gst_rtp_dtmf_depay_debug + +enum +{ + + + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_UNIT_TIME, + PROP_MAX_DURATION +}; + +enum +{ + ARG_0 +}; + +static GstStaticPadTemplate gst_rtp_dtmf_depay_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "format = (string) \"" GST_AUDIO_NE (S16) "\", " + "rate = " GST_AUDIO_RATE_RANGE ", " "channels = (int) 1") + ); + +static GstStaticPadTemplate gst_rtp_dtmf_depay_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "media = (string) \"audio\", " + "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " + "clock-rate = (int) [ 0, MAX ], " + "encoding-name = (string) \"TELEPHONE-EVENT\"") + ); + +G_DEFINE_TYPE (GstRtpDTMFDepay, gst_rtp_dtmf_depay, + GST_TYPE_RTP_BASE_DEPAYLOAD); + +static void gst_rtp_dtmf_depay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_rtp_dtmf_depay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static GstBuffer *gst_rtp_dtmf_depay_process (GstRTPBaseDepayload * depayload, + GstBuffer * buf); +gboolean gst_rtp_dtmf_depay_setcaps (GstRTPBaseDepayload * filter, + GstCaps * caps); + +static void +gst_rtp_dtmf_depay_class_init (GstRtpDTMFDepayClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + GstRTPBaseDepayloadClass *gstrtpbasedepayload_class; + + gobject_class = G_OBJECT_CLASS (klass); + gstelement_class = GST_ELEMENT_CLASS (klass); + gstrtpbasedepayload_class = GST_RTP_BASE_DEPAYLOAD_CLASS (klass); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&gst_rtp_dtmf_depay_src_template)); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&gst_rtp_dtmf_depay_sink_template)); + + GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_depay_debug, + "rtpdtmfdepay", 0, "rtpdtmfdepay element"); + gst_element_class_set_static_metadata (gstelement_class, + "RTP DTMF packet depayloader", "Codec/Depayloader/Network", + "Generates DTMF Sound from telephone-event RTP packets", + "Youness Alaoui <youness.alaoui@collabora.co.uk>"); + + gobject_class->set_property = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_depay_set_property); + gobject_class->get_property = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_depay_get_property); + + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_UNIT_TIME, + g_param_spec_uint ("unit-time", "Duration unittime", + "The smallest unit (ms) the duration must be a multiple of (0 disables it)", + MIN_UNIT_TIME, MAX_UNIT_TIME, DEFAULT_UNIT_TIME, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MAX_DURATION, + g_param_spec_uint ("max-duration", "Maximum duration", + "The maxumimum duration (ms) of the outgoing soundpacket. " + "(0 = no limit)", 0, G_MAXUINT, DEFAULT_MAX_DURATION, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstrtpbasedepayload_class->process = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_depay_process); + gstrtpbasedepayload_class->set_caps = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_depay_setcaps); + +} + +static void +gst_rtp_dtmf_depay_init (GstRtpDTMFDepay * rtpdtmfdepay) +{ + rtpdtmfdepay->unit_time = DEFAULT_UNIT_TIME; +} + +static void +gst_rtp_dtmf_depay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstRtpDTMFDepay *rtpdtmfdepay; + + rtpdtmfdepay = GST_RTP_DTMF_DEPAY (object); + + switch (prop_id) { + case PROP_UNIT_TIME: + rtpdtmfdepay->unit_time = g_value_get_uint (value); + break; + case PROP_MAX_DURATION: + rtpdtmfdepay->max_duration = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_rtp_dtmf_depay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstRtpDTMFDepay *rtpdtmfdepay; + + rtpdtmfdepay = GST_RTP_DTMF_DEPAY (object); + + switch (prop_id) { + case PROP_UNIT_TIME: + g_value_set_uint (value, rtpdtmfdepay->unit_time); + break; + case PROP_MAX_DURATION: + g_value_set_uint (value, rtpdtmfdepay->max_duration); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +gboolean +gst_rtp_dtmf_depay_setcaps (GstRTPBaseDepayload * filter, GstCaps * caps) +{ + GstCaps *filtercaps, *srccaps; + GstStructure *structure = gst_caps_get_structure (caps, 0); + gint clock_rate = 8000; /* default */ + + gst_structure_get_int (structure, "clock-rate", &clock_rate); + filter->clock_rate = clock_rate; + + filtercaps = + gst_pad_get_pad_template_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (filter)); + + filtercaps = gst_caps_make_writable (filtercaps); + gst_caps_set_simple (filtercaps, "rate", G_TYPE_INT, clock_rate, NULL); + + srccaps = gst_pad_peer_query_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (filter), + filtercaps); + gst_caps_unref (filtercaps); + + gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (filter), srccaps); + gst_caps_unref (srccaps); + + return TRUE; +} + +static GstBuffer * +gst_dtmf_src_generate_tone (GstRtpDTMFDepay * rtpdtmfdepay, + GstRTPDTMFPayload payload) +{ + GstBuffer *buf; + GstMapInfo map; + gint16 *p; + gint tone_size; + double i = 0; + double amplitude, f1, f2; + double volume_factor; + DTMF_KEY key = DTMF_KEYS[payload.event]; + guint32 clock_rate = 8000 /* default */ ; + GstRTPBaseDepayload *depayload = GST_RTP_BASE_DEPAYLOAD (rtpdtmfdepay); + gint volume; + static GstAllocationParams params = { 0, 1, 0, 0, }; + + clock_rate = depayload->clock_rate; + + /* Create a buffer for the tone */ + tone_size = (payload.duration * SAMPLE_SIZE * CHANNELS) / 8; + buf = gst_buffer_new_allocate (NULL, tone_size, ¶ms); + GST_BUFFER_DURATION (buf) = payload.duration * GST_SECOND / clock_rate; + volume = payload.volume; + + gst_buffer_map (buf, &map, GST_MAP_WRITE); + p = (gint16 *) map.data; + + volume_factor = pow (10, (-volume) / 20); + + /* + * For each sample point we calculate 'x' as the + * the amplitude value. + */ + for (i = 0; i < (tone_size / (SAMPLE_SIZE / 8)); i++) { + /* + * We add the fundamental frequencies together. + */ + f1 = sin (2 * M_PI * key.low_frequency * (rtpdtmfdepay->sample / + clock_rate)); + f2 = sin (2 * M_PI * key.high_frequency * (rtpdtmfdepay->sample / + clock_rate)); + + amplitude = (f1 + f2) / 2; + + /* Adjust the volume */ + amplitude *= volume_factor; + + /* Make the [-1:1] interval into a [-32767:32767] interval */ + amplitude *= 32767; + + /* Store it in the data buffer */ + *(p++) = (gint16) amplitude; + + (rtpdtmfdepay->sample)++; + } + + gst_buffer_unmap (buf, &map); + + return buf; +} + + +static GstBuffer * +gst_rtp_dtmf_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) +{ + + GstRtpDTMFDepay *rtpdtmfdepay = NULL; + GstBuffer *outbuf = NULL; + gint payload_len; + guint8 *payload = NULL; + guint32 timestamp; + GstRTPDTMFPayload dtmf_payload; + gboolean marker; + GstStructure *structure = NULL; + GstMessage *dtmf_message = NULL; + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + + rtpdtmfdepay = GST_RTP_DTMF_DEPAY (depayload); + + gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuffer); + + payload_len = gst_rtp_buffer_get_payload_len (&rtpbuffer); + payload = gst_rtp_buffer_get_payload (&rtpbuffer); + + if (payload_len != sizeof (GstRTPDTMFPayload)) + goto bad_packet; + + memcpy (&dtmf_payload, payload, sizeof (GstRTPDTMFPayload)); + + if (dtmf_payload.event > MAX_EVENT) + goto bad_packet; + + marker = gst_rtp_buffer_get_marker (&rtpbuffer); + + timestamp = gst_rtp_buffer_get_timestamp (&rtpbuffer); + + dtmf_payload.duration = g_ntohs (dtmf_payload.duration); + + /* clip to whole units of unit_time */ + if (rtpdtmfdepay->unit_time) { + guint unit_time_clock = + (rtpdtmfdepay->unit_time * depayload->clock_rate) / 1000; + if (dtmf_payload.duration % unit_time_clock) { + /* Make sure we don't overflow the duration */ + if (dtmf_payload.duration < G_MAXUINT16 - unit_time_clock) + dtmf_payload.duration += unit_time_clock - + (dtmf_payload.duration % unit_time_clock); + else + dtmf_payload.duration -= dtmf_payload.duration % unit_time_clock; + } + } + + /* clip to max duration */ + if (rtpdtmfdepay->max_duration) { + guint max_duration_clock = + (rtpdtmfdepay->max_duration * depayload->clock_rate) / 1000; + + if (max_duration_clock < G_MAXUINT16 && + dtmf_payload.duration > max_duration_clock) + dtmf_payload.duration = max_duration_clock; + } + + GST_DEBUG_OBJECT (depayload, "Received new RTP DTMF packet : " + "marker=%d - timestamp=%u - event=%d - duration=%d", + marker, timestamp, dtmf_payload.event, dtmf_payload.duration); + + GST_DEBUG_OBJECT (depayload, + "Previous information : timestamp=%u - duration=%d", + rtpdtmfdepay->previous_ts, rtpdtmfdepay->previous_duration); + + /* First packet */ + if (marker || rtpdtmfdepay->previous_ts != timestamp) { + rtpdtmfdepay->sample = 0; + rtpdtmfdepay->previous_ts = timestamp; + rtpdtmfdepay->previous_duration = dtmf_payload.duration; + rtpdtmfdepay->first_gst_ts = GST_BUFFER_PTS (buf); + + structure = gst_structure_new ("dtmf-event", + "number", G_TYPE_INT, dtmf_payload.event, + "volume", G_TYPE_INT, dtmf_payload.volume, + "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 1, NULL); + if (structure) { + dtmf_message = + gst_message_new_element (GST_OBJECT (depayload), structure); + if (dtmf_message) { + if (!gst_element_post_message (GST_ELEMENT (depayload), dtmf_message)) { + GST_ERROR_OBJECT (depayload, + "Unable to send dtmf-event message to bus"); + } + } else { + GST_ERROR_OBJECT (depayload, "Unable to create dtmf-event message"); + } + } else { + GST_ERROR_OBJECT (depayload, "Unable to create dtmf-event structure"); + } + } else { + guint16 duration = dtmf_payload.duration; + dtmf_payload.duration -= rtpdtmfdepay->previous_duration; + /* If late buffer, ignore */ + if (duration > rtpdtmfdepay->previous_duration) + rtpdtmfdepay->previous_duration = duration; + } + + GST_DEBUG_OBJECT (depayload, "new previous duration : %d - new duration : %d" + " - diff : %d - clock rate : %d - timestamp : %" G_GUINT64_FORMAT, + rtpdtmfdepay->previous_duration, dtmf_payload.duration, + (rtpdtmfdepay->previous_duration - dtmf_payload.duration), + depayload->clock_rate, GST_BUFFER_TIMESTAMP (buf)); + + /* If late or duplicate packet (like the redundant end packet). Ignore */ + if (dtmf_payload.duration > 0) { + outbuf = gst_dtmf_src_generate_tone (rtpdtmfdepay, dtmf_payload); + + + GST_BUFFER_PTS (outbuf) = rtpdtmfdepay->first_gst_ts + + (rtpdtmfdepay->previous_duration - dtmf_payload.duration) * + GST_SECOND / depayload->clock_rate; + GST_BUFFER_OFFSET (outbuf) = + (rtpdtmfdepay->previous_duration - dtmf_payload.duration) * + GST_SECOND / depayload->clock_rate; + GST_BUFFER_OFFSET_END (outbuf) = rtpdtmfdepay->previous_duration * + GST_SECOND / depayload->clock_rate; + + GST_DEBUG_OBJECT (depayload, + "timestamp : %" G_GUINT64_FORMAT " - time %" GST_TIME_FORMAT, + GST_BUFFER_TIMESTAMP (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); + + } + + gst_rtp_buffer_unmap (&rtpbuffer); + + return outbuf; + +bad_packet: + GST_ELEMENT_WARNING (rtpdtmfdepay, STREAM, DECODE, + ("Packet did not validate"), (NULL)); + + if (rtpbuffer.buffer != NULL) + gst_rtp_buffer_unmap (&rtpbuffer); + + return NULL; +} + +gboolean +gst_rtp_dtmf_depay_plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "rtpdtmfdepay", + GST_RANK_MARGINAL, GST_TYPE_RTP_DTMF_DEPAY); +} diff --git a/gst/dtmf/gstrtpdtmfdepay.h b/gst/dtmf/gstrtpdtmfdepay.h new file mode 100644 index 0000000000000000000000000000000000000000..c5ed189409767e09835f4d7913d8b94bbd60745c --- /dev/null +++ b/gst/dtmf/gstrtpdtmfdepay.h @@ -0,0 +1,68 @@ +/* GstRtpDtmfDepay + * + * Copyright (C) 2008 Collabora Limited + * Copyright (C) 2008 Nokia Corporation + * Contact: Youness Alaoui <youness.alaoui@collabora.co.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_RTP_DTMF_DEPAY_H__ +#define __GST_RTP_DTMF_DEPAY_H__ + +#include <gst/gst.h> +#include <gst/base/gstadapter.h> +#include <gst/rtp/gstrtpbasedepayload.h> + +#include "gstdtmfcommon.h" + +G_BEGIN_DECLS +#define GST_TYPE_RTP_DTMF_DEPAY \ + (gst_rtp_dtmf_depay_get_type()) +#define GST_RTP_DTMF_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_DTMF_DEPAY,GstRtpDTMFDepay)) +#define GST_RTP_DTMF_DEPAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_DTMF_DEPAY,GstRtpDTMFDepayClass)) +#define GST_IS_RTP_DTMF_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_DTMF_DEPAY)) +#define GST_IS_RTP_DTMF_DEPAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_DTMF_DEPAY)) +typedef struct _GstRtpDTMFDepay GstRtpDTMFDepay; +typedef struct _GstRtpDTMFDepayClass GstRtpDTMFDepayClass; + +struct _GstRtpDTMFDepay +{ + /*< private >*/ + GstRTPBaseDepayload depayload; + double sample; + guint32 previous_ts; + guint16 previous_duration; + GstClockTime first_gst_ts; + guint unit_time; + guint max_duration; +}; + +struct _GstRtpDTMFDepayClass +{ + GstRTPBaseDepayloadClass parent_class; +}; + +GType gst_rtp_dtmf_depay_get_type (void); + +gboolean gst_rtp_dtmf_depay_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_RTP_DTMF_DEPAY_H__ */ diff --git a/gst/dtmf/gstrtpdtmfsrc.c b/gst/dtmf/gstrtpdtmfsrc.c new file mode 100644 index 0000000000000000000000000000000000000000..2a0b4a3bb454720c6c89b0ef10d236e97a723c18 --- /dev/null +++ b/gst/dtmf/gstrtpdtmfsrc.c @@ -0,0 +1,1156 @@ +/* GStreamer RTP DTMF source + * + * gstrtpdtmfsrc.c: + * + * Copyright (C) <2007> Nokia Corporation. + * Contact: Zeeshan Ali <zeeshan.ali@nokia.com> + * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> + * 2000,2005 Wim Taymans <wim@fluendo.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-rtpdtmfsrc + * @see_also: dtmfsrc, rtpdtmfdepay, rtpdtmfmux + * + * The RTPDTMFSrc element generates RTP DTMF (RFC 2833) event packets on request + * from application. The application communicates the beginning and end of a + * DTMF event using custom upstream gstreamer events. To report a DTMF event, an + * application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a + * structure of name "dtmf-event" with fields set according to the following + * table: + * + * <informaltable> + * <tgroup cols='4'> + * <colspec colname='Name' /> + * <colspec colname='Type' /> + * <colspec colname='Possible values' /> + * <colspec colname='Purpose' /> + * <thead> + * <row> + * <entry>Name</entry> + * <entry>GType</entry> + * <entry>Possible values</entry> + * <entry>Purpose</entry> + * </row> + * </thead> + * <tbody> + * <row> + * <entry>type</entry> + * <entry>G_TYPE_INT</entry> + * <entry>0-1</entry> + * <entry>The application uses this field to specify which of the two methods + * specified in RFC 2833 to use. The value should be 0 for tones and 1 for + * named events. Tones are specified by their frequencies and events are specied + * by their number. This element can only take events as input. Do not confuse + * with "method" which specified the output. + * </entry> + * </row> + * <row> + * <entry>number</entry> + * <entry>G_TYPE_INT</entry> + * <entry>0-15</entry> + * <entry>The event number.</entry> + * </row> + * <row> + * <entry>volume</entry> + * <entry>G_TYPE_INT</entry> + * <entry>0-36</entry> + * <entry>This field describes the power level of the tone, expressed in dBm0 + * after dropping the sign. Power levels range from 0 to -63 dBm0. The range of + * valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE. + * </entry> + * </row> + * <row> + * <entry>start</entry> + * <entry>G_TYPE_BOOLEAN</entry> + * <entry>True or False</entry> + * <entry>Whether the event is starting or ending.</entry> + * </row> + * <row> + * <entry>method</entry> + * <entry>G_TYPE_INT</entry> + * <entry>1</entry> + * <entry>The method used for sending event, this element will react if this + * field is absent or 1. + * </entry> + * </row> + * </tbody> + * </tgroup> + * </informaltable> + * + * For example, the following code informs the pipeline (and in turn, the + * RTPDTMFSrc element inside the pipeline) about the start of an RTP DTMF named + * event '1' of volume -25 dBm0: + * + * <programlisting> + * structure = gst_structure_new ("dtmf-event", + * "type", G_TYPE_INT, 1, + * "number", G_TYPE_INT, 1, + * "volume", G_TYPE_INT, 25, + * "start", G_TYPE_BOOLEAN, TRUE, NULL); + * + * event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure); + * gst_element_send_event (pipeline, event); + * </programlisting> + * + * When a DTMF tone actually starts or stop, a "dtmf-event-processed" + * element #GstMessage with the same fields as the "dtmf-event" + * #GstEvent that was used to request the event. Also, if any event + * has not been processed when the element goes from the PAUSED to the + * READY state, then a "dtmf-event-dropped" message is posted on the + * #GstBus in the order that they were received. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <stdlib.h> +#include <string.h> + +#include <glib.h> + +#include "gstrtpdtmfsrc.h" + +#define GST_RTP_DTMF_TYPE_EVENT 1 +#define DEFAULT_PTIME 40 /* ms */ +#define DEFAULT_SSRC -1 +#define DEFAULT_PT 96 +#define DEFAULT_TIMESTAMP_OFFSET -1 +#define DEFAULT_SEQNUM_OFFSET -1 +#define DEFAULT_CLOCK_RATE 8000 + +#define DEFAULT_PACKET_REDUNDANCY 1 +#define MIN_PACKET_REDUNDANCY 1 +#define MAX_PACKET_REDUNDANCY 5 + +GST_DEBUG_CATEGORY_STATIC (gst_rtp_dtmf_src_debug); +#define GST_CAT_DEFAULT gst_rtp_dtmf_src_debug + +/* signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_SSRC, + PROP_TIMESTAMP_OFFSET, + PROP_SEQNUM_OFFSET, + PROP_PT, + PROP_CLOCK_RATE, + PROP_TIMESTAMP, + PROP_SEQNUM, + PROP_REDUNDANCY +}; + +static GstStaticPadTemplate gst_rtp_dtmf_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "media = (string) \"audio\", " + "payload = (int) [ 96, 127 ], " + "clock-rate = (int) [ 0, MAX ], " + "encoding-name = (string) \"TELEPHONE-EVENT\"") + /* "events = (string) \"0-15\" */ + ); + + +G_DEFINE_TYPE (GstRTPDTMFSrc, gst_rtp_dtmf_src, GST_TYPE_BASE_SRC); + +static void gst_rtp_dtmf_src_finalize (GObject * object); + +static void gst_rtp_dtmf_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_rtp_dtmf_src_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static gboolean gst_rtp_dtmf_src_handle_event (GstBaseSrc * basesrc, + GstEvent * event); +static GstStateChangeReturn gst_rtp_dtmf_src_change_state (GstElement * element, + GstStateChange transition); +static void gst_rtp_dtmf_src_add_start_event (GstRTPDTMFSrc * dtmfsrc, + gint event_number, gint event_volume); +static void gst_rtp_dtmf_src_add_stop_event (GstRTPDTMFSrc * dtmfsrc); + +static gboolean gst_rtp_dtmf_src_unlock (GstBaseSrc * src); +static gboolean gst_rtp_dtmf_src_unlock_stop (GstBaseSrc * src); +static GstFlowReturn gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, + guint64 offset, guint length, GstBuffer ** buffer); +static gboolean gst_rtp_dtmf_src_negotiate (GstBaseSrc * basesrc); + + +static void +gst_rtp_dtmf_src_class_init (GstRTPDTMFSrcClass * klass) +{ + GObjectClass *gobject_class; + GstBaseSrcClass *gstbasesrc_class; + GstElementClass *gstelement_class; + + gobject_class = G_OBJECT_CLASS (klass); + gstbasesrc_class = GST_BASE_SRC_CLASS (klass); + gstelement_class = GST_ELEMENT_CLASS (klass); + + GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_src_debug, + "rtpdtmfsrc", 0, "rtpdtmfsrc element"); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&gst_rtp_dtmf_src_template)); + + gst_element_class_set_static_metadata (gstelement_class, + "RTP DTMF packet generator", "Source/Network", + "Generates RTP DTMF packets", "Zeeshan Ali <zeeshan.ali@nokia.com>"); + + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_finalize); + gobject_class->set_property = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_set_property); + gobject_class->get_property = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_get_property); + + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TIMESTAMP, + g_param_spec_uint ("timestamp", "Timestamp", + "The RTP timestamp of the last processed packet", + 0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEQNUM, + g_param_spec_uint ("seqnum", "Sequence number", + "The RTP sequence number of the last processed packet", + 0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_TIMESTAMP_OFFSET, g_param_spec_int ("timestamp-offset", + "Timestamp Offset", + "Offset to add to all outgoing timestamps (-1 = random)", -1, + G_MAXINT, DEFAULT_TIMESTAMP_OFFSET, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEQNUM_OFFSET, + g_param_spec_int ("seqnum-offset", "Sequence number Offset", + "Offset to add to all outgoing seqnum (-1 = random)", -1, G_MAXINT, + DEFAULT_SEQNUM_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_CLOCK_RATE, + g_param_spec_uint ("clock-rate", "clockrate", + "The clock-rate at which to generate the dtmf packets", + 0, G_MAXUINT, DEFAULT_CLOCK_RATE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SSRC, + g_param_spec_uint ("ssrc", "SSRC", + "The SSRC of the packets (-1 == random)", + 0, G_MAXUINT, DEFAULT_SSRC, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PT, + g_param_spec_uint ("pt", "payload type", + "The payload type of the packets", + 0, 0x80, DEFAULT_PT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_REDUNDANCY, + g_param_spec_uint ("packet-redundancy", "Packet Redundancy", + "Number of packets to send to indicate start and stop dtmf events", + MIN_PACKET_REDUNDANCY, MAX_PACKET_REDUNDANCY, + DEFAULT_PACKET_REDUNDANCY, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_change_state); + + gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_unlock); + gstbasesrc_class->unlock_stop = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_unlock_stop); + + gstbasesrc_class->event = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_handle_event); + gstbasesrc_class->create = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_create); + gstbasesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_negotiate); +} + +static void +gst_rtp_dtmf_src_event_free (GstRTPDTMFSrcEvent * event) +{ + if (event) { + if (event->payload) + g_slice_free (GstRTPDTMFPayload, event->payload); + g_slice_free (GstRTPDTMFSrcEvent, event); + } +} + +static void +gst_rtp_dtmf_src_init (GstRTPDTMFSrc * object) +{ + gst_base_src_set_format (GST_BASE_SRC (object), GST_FORMAT_TIME); + gst_base_src_set_live (GST_BASE_SRC (object), TRUE); + + object->ssrc = DEFAULT_SSRC; + object->seqnum_offset = DEFAULT_SEQNUM_OFFSET; + object->ts_offset = DEFAULT_TIMESTAMP_OFFSET; + object->pt = DEFAULT_PT; + object->clock_rate = DEFAULT_CLOCK_RATE; + object->ptime = DEFAULT_PTIME; + object->packet_redundancy = DEFAULT_PACKET_REDUNDANCY; + + object->event_queue = + g_async_queue_new_full ((GDestroyNotify) gst_rtp_dtmf_src_event_free); + object->payload = NULL; + + GST_DEBUG_OBJECT (object, "init done"); +} + +static void +gst_rtp_dtmf_src_finalize (GObject * object) +{ + GstRTPDTMFSrc *dtmfsrc; + + dtmfsrc = GST_RTP_DTMF_SRC (object); + + if (dtmfsrc->event_queue) { + g_async_queue_unref (dtmfsrc->event_queue); + dtmfsrc->event_queue = NULL; + } + + + G_OBJECT_CLASS (gst_rtp_dtmf_src_parent_class)->finalize (object); +} + +static gboolean +gst_rtp_dtmf_src_handle_dtmf_event (GstRTPDTMFSrc * dtmfsrc, + const GstStructure * event_structure) +{ + gint event_type; + gboolean start; + gint method; + GstClockTime last_stop; + gint event_number; + gint event_volume; + gboolean correct_order; + + if (!gst_structure_get_int (event_structure, "type", &event_type) || + !gst_structure_get_boolean (event_structure, "start", &start) || + event_type != GST_RTP_DTMF_TYPE_EVENT) + goto failure; + + if (gst_structure_get_int (event_structure, "method", &method)) { + if (method != 1) { + goto failure; + } + } + + if (start) + if (!gst_structure_get_int (event_structure, "number", &event_number) || + !gst_structure_get_int (event_structure, "volume", &event_volume)) + goto failure; + + GST_OBJECT_LOCK (dtmfsrc); + if (gst_structure_get_clock_time (event_structure, "last-stop", &last_stop)) + dtmfsrc->last_stop = last_stop; + else + dtmfsrc->last_stop = GST_CLOCK_TIME_NONE; + correct_order = (start != dtmfsrc->last_event_was_start); + dtmfsrc->last_event_was_start = start; + GST_OBJECT_UNLOCK (dtmfsrc); + + if (!correct_order) + goto failure; + + if (start) { + if (!gst_structure_get_int (event_structure, "number", &event_number) || + !gst_structure_get_int (event_structure, "volume", &event_volume)) + goto failure; + + GST_DEBUG_OBJECT (dtmfsrc, "Received start event %d with volume %d", + event_number, event_volume); + gst_rtp_dtmf_src_add_start_event (dtmfsrc, event_number, event_volume); + } + + else { + GST_DEBUG_OBJECT (dtmfsrc, "Received stop event"); + gst_rtp_dtmf_src_add_stop_event (dtmfsrc); + } + + return TRUE; +failure: + return FALSE; +} + +static gboolean +gst_rtp_dtmf_src_handle_custom_upstream (GstRTPDTMFSrc * dtmfsrc, + GstEvent * event) +{ + gboolean result = FALSE; + gchar *struct_str; + const GstStructure *structure; + + GstState state; + GstStateChangeReturn ret; + + ret = gst_element_get_state (GST_ELEMENT (dtmfsrc), &state, NULL, 0); + if (ret != GST_STATE_CHANGE_SUCCESS || state != GST_STATE_PLAYING) { + GST_DEBUG_OBJECT (dtmfsrc, "Received event while not in PLAYING state"); + goto ret; + } + + GST_DEBUG_OBJECT (dtmfsrc, "Received event is of our interest"); + structure = gst_event_get_structure (event); + struct_str = gst_structure_to_string (structure); + GST_DEBUG_OBJECT (dtmfsrc, "Event has structure %s", struct_str); + g_free (struct_str); + if (structure && gst_structure_has_name (structure, "dtmf-event")) + result = gst_rtp_dtmf_src_handle_dtmf_event (dtmfsrc, structure); + +ret: + return result; +} + +static gboolean +gst_rtp_dtmf_src_handle_event (GstBaseSrc * basesrc, GstEvent * event) +{ + GstRTPDTMFSrc *dtmfsrc; + gboolean result = FALSE; + + dtmfsrc = GST_RTP_DTMF_SRC (basesrc); + + GST_DEBUG_OBJECT (dtmfsrc, "Received an event on the src pad"); + if (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_UPSTREAM) { + result = gst_rtp_dtmf_src_handle_custom_upstream (dtmfsrc, event); + } + + return result; +} + +static void +gst_rtp_dtmf_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstRTPDTMFSrc *dtmfsrc; + + dtmfsrc = GST_RTP_DTMF_SRC (object); + + switch (prop_id) { + case PROP_TIMESTAMP_OFFSET: + dtmfsrc->ts_offset = g_value_get_int (value); + break; + case PROP_SEQNUM_OFFSET: + dtmfsrc->seqnum_offset = g_value_get_int (value); + break; + case PROP_CLOCK_RATE: + dtmfsrc->clock_rate = g_value_get_uint (value); + dtmfsrc->dirty = TRUE; + break; + case PROP_SSRC: + dtmfsrc->ssrc = g_value_get_uint (value); + break; + case PROP_PT: + dtmfsrc->pt = g_value_get_uint (value); + dtmfsrc->dirty = TRUE; + break; + case PROP_REDUNDANCY: + dtmfsrc->packet_redundancy = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_rtp_dtmf_src_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstRTPDTMFSrc *dtmfsrc; + + dtmfsrc = GST_RTP_DTMF_SRC (object); + + switch (prop_id) { + case PROP_TIMESTAMP_OFFSET: + g_value_set_int (value, dtmfsrc->ts_offset); + break; + case PROP_SEQNUM_OFFSET: + g_value_set_int (value, dtmfsrc->seqnum_offset); + break; + case PROP_CLOCK_RATE: + g_value_set_uint (value, dtmfsrc->clock_rate); + break; + case PROP_SSRC: + g_value_set_uint (value, dtmfsrc->ssrc); + break; + case PROP_PT: + g_value_set_uint (value, dtmfsrc->pt); + break; + case PROP_TIMESTAMP: + g_value_set_uint (value, dtmfsrc->rtp_timestamp); + break; + case PROP_SEQNUM: + g_value_set_uint (value, dtmfsrc->seqnum); + break; + case PROP_REDUNDANCY: + g_value_set_uint (value, dtmfsrc->packet_redundancy); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +gst_rtp_dtmf_prepare_timestamps (GstRTPDTMFSrc * dtmfsrc) +{ + GstClockTime last_stop; + + GST_OBJECT_LOCK (dtmfsrc); + last_stop = dtmfsrc->last_stop; + GST_OBJECT_UNLOCK (dtmfsrc); + + if (GST_CLOCK_TIME_IS_VALID (last_stop)) { + dtmfsrc->start_timestamp = last_stop; + } else { + GstClock *clock = gst_element_get_clock (GST_ELEMENT (dtmfsrc)); + + if (clock == NULL) + return FALSE; + + dtmfsrc->start_timestamp = gst_clock_get_time (clock) + - gst_element_get_base_time (GST_ELEMENT (dtmfsrc)); + gst_object_unref (clock); + } + + /* If the last stop was in the past, then lets add the buffers together */ + if (dtmfsrc->start_timestamp < dtmfsrc->timestamp) + dtmfsrc->start_timestamp = dtmfsrc->timestamp; + + dtmfsrc->timestamp = dtmfsrc->start_timestamp; + + dtmfsrc->rtp_timestamp = dtmfsrc->ts_base + + gst_util_uint64_scale_int (gst_segment_to_running_time (&GST_BASE_SRC + (dtmfsrc)->segment, GST_FORMAT_TIME, dtmfsrc->timestamp), + dtmfsrc->clock_rate, GST_SECOND); + + return TRUE; +} + + +static void +gst_rtp_dtmf_src_add_start_event (GstRTPDTMFSrc * dtmfsrc, gint event_number, + gint event_volume) +{ + + GstRTPDTMFSrcEvent *event = g_slice_new0 (GstRTPDTMFSrcEvent); + event->event_type = RTP_DTMF_EVENT_TYPE_START; + + event->payload = g_slice_new0 (GstRTPDTMFPayload); + event->payload->event = CLAMP (event_number, MIN_EVENT, MAX_EVENT); + event->payload->volume = CLAMP (event_volume, MIN_VOLUME, MAX_VOLUME); + + g_async_queue_push (dtmfsrc->event_queue, event); +} + +static void +gst_rtp_dtmf_src_add_stop_event (GstRTPDTMFSrc * dtmfsrc) +{ + + GstRTPDTMFSrcEvent *event = g_slice_new0 (GstRTPDTMFSrcEvent); + event->event_type = RTP_DTMF_EVENT_TYPE_STOP; + + g_async_queue_push (dtmfsrc->event_queue, event); +} + + +static void +gst_rtp_dtmf_prepare_rtp_headers (GstRTPDTMFSrc * dtmfsrc, + GstRTPBuffer * rtpbuf) +{ + gst_rtp_buffer_set_ssrc (rtpbuf, dtmfsrc->current_ssrc); + gst_rtp_buffer_set_payload_type (rtpbuf, dtmfsrc->pt); + /* Only the very first packet gets a marker */ + if (dtmfsrc->first_packet) { + gst_rtp_buffer_set_marker (rtpbuf, TRUE); + } else if (dtmfsrc->last_packet) { + dtmfsrc->payload->e = 1; + } + + dtmfsrc->seqnum++; + gst_rtp_buffer_set_seq (rtpbuf, dtmfsrc->seqnum); + + /* timestamp of RTP header */ + gst_rtp_buffer_set_timestamp (rtpbuf, dtmfsrc->rtp_timestamp); +} + +static GstBuffer * +gst_rtp_dtmf_src_create_next_rtp_packet (GstRTPDTMFSrc * dtmfsrc) +{ + GstBuffer *buf; + GstRTPDTMFPayload *payload; + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + + buf = gst_rtp_buffer_new_allocate (sizeof (GstRTPDTMFPayload), 0, 0); + + gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtpbuffer); + + gst_rtp_dtmf_prepare_rtp_headers (dtmfsrc, &rtpbuffer); + + /* timestamp and duration of GstBuffer */ + /* Redundant buffer have no duration ... */ + if (dtmfsrc->redundancy_count > 1) + GST_BUFFER_DURATION (buf) = 0; + else + GST_BUFFER_DURATION (buf) = dtmfsrc->ptime * GST_MSECOND; + GST_BUFFER_PTS (buf) = dtmfsrc->timestamp; + + payload = (GstRTPDTMFPayload *) gst_rtp_buffer_get_payload (&rtpbuffer); + + /* copy payload and convert to network-byte order */ + g_memmove (payload, dtmfsrc->payload, sizeof (GstRTPDTMFPayload)); + + payload->duration = g_htons (payload->duration); + + if (dtmfsrc->redundancy_count <= 1 && dtmfsrc->last_packet) { + GstClockTime inter_digit_interval = MIN_INTER_DIGIT_INTERVAL; + + if (inter_digit_interval % dtmfsrc->ptime != 0) + inter_digit_interval += dtmfsrc->ptime - + (MIN_INTER_DIGIT_INTERVAL % dtmfsrc->ptime); + + GST_BUFFER_DURATION (buf) += inter_digit_interval * GST_MSECOND; + } + + GST_LOG_OBJECT (dtmfsrc, "Creating new buffer with event %u duration " + " gst: %" GST_TIME_FORMAT " at %" GST_TIME_FORMAT "(rtp ts:%u dur:%u)", + dtmfsrc->payload->event, GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), dtmfsrc->rtp_timestamp, + dtmfsrc->payload->duration); + + /* duration of DTMF payloadfor the NEXT packet */ + /* not updated for redundant packets */ + if (dtmfsrc->redundancy_count <= 1) + dtmfsrc->payload->duration += dtmfsrc->ptime * dtmfsrc->clock_rate / 1000; + + if (GST_CLOCK_TIME_IS_VALID (dtmfsrc->timestamp)) + dtmfsrc->timestamp += GST_BUFFER_DURATION (buf); + + gst_rtp_buffer_unmap (&rtpbuffer); + + return buf; +} + +static GstMessage * +gst_dtmf_src_prepare_message (GstRTPDTMFSrc * dtmfsrc, + const gchar * message_name, GstRTPDTMFSrcEvent * event) +{ + GstStructure *s; + + switch (event->event_type) { + case RTP_DTMF_EVENT_TYPE_START: + s = gst_structure_new (message_name, + "type", G_TYPE_INT, 1, + "method", G_TYPE_INT, 1, + "start", G_TYPE_BOOLEAN, TRUE, + "number", G_TYPE_INT, event->payload->event, + "volume", G_TYPE_INT, event->payload->volume, NULL); + break; + case RTP_DTMF_EVENT_TYPE_STOP: + s = gst_structure_new (message_name, + "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 1, + "start", G_TYPE_BOOLEAN, FALSE, NULL); + break; + case RTP_DTMF_EVENT_TYPE_PAUSE_TASK: + return NULL; + default: + return NULL; + } + + return gst_message_new_element (GST_OBJECT (dtmfsrc), s); +} + +static void +gst_dtmf_src_post_message (GstRTPDTMFSrc * dtmfsrc, const gchar * message_name, + GstRTPDTMFSrcEvent * event) +{ + GstMessage *m = gst_dtmf_src_prepare_message (dtmfsrc, message_name, event); + + + if (m) + gst_element_post_message (GST_ELEMENT (dtmfsrc), m); +} + + +static GstFlowReturn +gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, + guint length, GstBuffer ** buffer) +{ + GstRTPDTMFSrcEvent *event; + GstRTPDTMFSrc *dtmfsrc; + GstClock *clock; + GstClockID *clockid; + GstClockReturn clockret; + GstMessage *message; + GQueue messages = G_QUEUE_INIT; + + dtmfsrc = GST_RTP_DTMF_SRC (basesrc); + + do { + + if (dtmfsrc->payload == NULL) { + GST_DEBUG_OBJECT (dtmfsrc, "popping"); + event = g_async_queue_pop (dtmfsrc->event_queue); + + GST_DEBUG_OBJECT (dtmfsrc, "popped %d", event->event_type); + + switch (event->event_type) { + case RTP_DTMF_EVENT_TYPE_STOP: + GST_WARNING_OBJECT (dtmfsrc, + "Received a DTMF stop event when already stopped"); + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); + break; + + case RTP_DTMF_EVENT_TYPE_START: + dtmfsrc->first_packet = TRUE; + dtmfsrc->last_packet = FALSE; + /* Set the redundancy on the first packet */ + dtmfsrc->redundancy_count = dtmfsrc->packet_redundancy; + if (!gst_rtp_dtmf_prepare_timestamps (dtmfsrc)) + goto no_clock; + + g_queue_push_tail (&messages, + gst_dtmf_src_prepare_message (dtmfsrc, "dtmf-event-processed", + event)); + dtmfsrc->payload = event->payload; + dtmfsrc->payload->duration = + dtmfsrc->ptime * dtmfsrc->clock_rate / 1000; + event->payload = NULL; + break; + + case RTP_DTMF_EVENT_TYPE_PAUSE_TASK: + /* + * We're pushing it back because it has to stay in there until + * the task is really paused (and the queue will then be flushed + */ + GST_OBJECT_LOCK (dtmfsrc); + if (dtmfsrc->paused) { + g_async_queue_push (dtmfsrc->event_queue, event); + goto paused_locked; + } + GST_OBJECT_UNLOCK (dtmfsrc); + break; + } + + gst_rtp_dtmf_src_event_free (event); + } else if (!dtmfsrc->first_packet && !dtmfsrc->last_packet && + (dtmfsrc->timestamp - dtmfsrc->start_timestamp) / GST_MSECOND >= + MIN_PULSE_DURATION) { + GST_DEBUG_OBJECT (dtmfsrc, "try popping"); + event = g_async_queue_try_pop (dtmfsrc->event_queue); + + + if (event != NULL) { + GST_DEBUG_OBJECT (dtmfsrc, "try popped %d", event->event_type); + + switch (event->event_type) { + case RTP_DTMF_EVENT_TYPE_START: + GST_WARNING_OBJECT (dtmfsrc, + "Received two consecutive DTMF start events"); + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); + break; + + case RTP_DTMF_EVENT_TYPE_STOP: + dtmfsrc->first_packet = FALSE; + dtmfsrc->last_packet = TRUE; + /* Set the redundancy on the last packet */ + dtmfsrc->redundancy_count = dtmfsrc->packet_redundancy; + g_queue_push_tail (&messages, + gst_dtmf_src_prepare_message (dtmfsrc, "dtmf-event-processed", + event)); + break; + + case RTP_DTMF_EVENT_TYPE_PAUSE_TASK: + /* + * We're pushing it back because it has to stay in there until + * the task is really paused (and the queue will then be flushed) + */ + GST_DEBUG_OBJECT (dtmfsrc, "pushing pause_task..."); + GST_OBJECT_LOCK (dtmfsrc); + if (dtmfsrc->paused) { + g_async_queue_push (dtmfsrc->event_queue, event); + goto paused_locked; + } + GST_OBJECT_UNLOCK (dtmfsrc); + break; + } + gst_rtp_dtmf_src_event_free (event); + } + } + } while (dtmfsrc->payload == NULL); + + + GST_DEBUG_OBJECT (dtmfsrc, "Processed events, now lets wait on the clock"); + + clock = gst_element_get_clock (GST_ELEMENT (basesrc)); + if (!clock) + goto no_clock; + clockid = gst_clock_new_single_shot_id (clock, dtmfsrc->timestamp + + gst_element_get_base_time (GST_ELEMENT (dtmfsrc))); + gst_object_unref (clock); + + GST_OBJECT_LOCK (dtmfsrc); + if (!dtmfsrc->paused) { + dtmfsrc->clockid = clockid; + GST_OBJECT_UNLOCK (dtmfsrc); + + clockret = gst_clock_id_wait (clockid, NULL); + + GST_OBJECT_LOCK (dtmfsrc); + if (dtmfsrc->paused) + clockret = GST_CLOCK_UNSCHEDULED; + } else { + clockret = GST_CLOCK_UNSCHEDULED; + } + gst_clock_id_unref (clockid); + dtmfsrc->clockid = NULL; + GST_OBJECT_UNLOCK (dtmfsrc); + + while ((message = g_queue_pop_head (&messages)) != NULL) + gst_element_post_message (GST_ELEMENT (dtmfsrc), message); + + if (clockret == GST_CLOCK_UNSCHEDULED) { + goto paused; + } + +send_last: + + if (dtmfsrc->dirty) + if (!gst_rtp_dtmf_src_negotiate (basesrc)) + return GST_FLOW_NOT_NEGOTIATED; + + /* create buffer to hold the payload */ + *buffer = gst_rtp_dtmf_src_create_next_rtp_packet (dtmfsrc); + + if (dtmfsrc->redundancy_count) + dtmfsrc->redundancy_count--; + + /* Only the very first one has a marker */ + dtmfsrc->first_packet = FALSE; + + /* This is the end of the event */ + if (dtmfsrc->last_packet == TRUE && dtmfsrc->redundancy_count == 0) { + + g_slice_free (GstRTPDTMFPayload, dtmfsrc->payload); + dtmfsrc->payload = NULL; + + dtmfsrc->last_packet = FALSE; + } + + return GST_FLOW_OK; + +paused_locked: + + GST_OBJECT_UNLOCK (dtmfsrc); + +paused: + + if (dtmfsrc->payload) { + dtmfsrc->first_packet = FALSE; + dtmfsrc->last_packet = TRUE; + /* Set the redundanc on the last packet */ + dtmfsrc->redundancy_count = dtmfsrc->packet_redundancy; + goto send_last; + } else { + return GST_FLOW_FLUSHING; + } + +no_clock: + GST_ELEMENT_ERROR (dtmfsrc, STREAM, MUX, ("No available clock"), + ("No available clock")); + gst_pad_pause_task (GST_BASE_SRC_PAD (dtmfsrc)); + return GST_FLOW_ERROR; +} + + +static gboolean +gst_rtp_dtmf_src_negotiate (GstBaseSrc * basesrc) +{ + GstCaps *srccaps, *peercaps; + GstRTPDTMFSrc *dtmfsrc = GST_RTP_DTMF_SRC (basesrc); + gboolean ret; + + /* fill in the defaults, there properties cannot be negotiated. */ + srccaps = gst_caps_new_simple ("application/x-rtp", + "media", G_TYPE_STRING, "audio", + "encoding-name", G_TYPE_STRING, "TELEPHONE-EVENT", NULL); + + /* the peer caps can override some of the defaults */ + peercaps = gst_pad_peer_query_caps (GST_BASE_SRC_PAD (basesrc), NULL); + if (peercaps == NULL) { + /* no peer caps, just add the other properties */ + gst_caps_set_simple (srccaps, + "payload", G_TYPE_INT, dtmfsrc->pt, + "ssrc", G_TYPE_UINT, dtmfsrc->current_ssrc, + "clock-base", G_TYPE_UINT, dtmfsrc->ts_base, + "clock-rate", G_TYPE_INT, dtmfsrc->clock_rate, + "seqnum-base", G_TYPE_UINT, dtmfsrc->seqnum_base, NULL); + + GST_DEBUG_OBJECT (dtmfsrc, "no peer caps: %" GST_PTR_FORMAT, srccaps); + } else { + GstCaps *temp; + GstStructure *s; + const GValue *value; + gint pt; + gint clock_rate; + + /* peer provides caps we can use to fixate, intersect. This always returns a + * writable caps. */ + temp = gst_caps_intersect (srccaps, peercaps); + gst_caps_unref (srccaps); + gst_caps_unref (peercaps); + + if (!temp) { + GST_DEBUG_OBJECT (dtmfsrc, "Could not get intersection with peer caps"); + return FALSE; + } + + if (gst_caps_is_empty (temp)) { + GST_DEBUG_OBJECT (dtmfsrc, "Intersection with peer caps is empty"); + gst_caps_unref (temp); + return FALSE; + } + + /* now fixate, start by taking the first caps */ + temp = gst_caps_truncate (temp); + temp = gst_caps_make_writable (temp); + srccaps = temp; + + /* get first structure */ + s = gst_caps_get_structure (srccaps, 0); + + if (gst_structure_get_int (s, "payload", &pt)) { + /* use peer pt */ + dtmfsrc->pt = pt; + GST_LOG_OBJECT (dtmfsrc, "using peer pt %d", pt); + } else { + if (gst_structure_has_field (s, "payload")) { + /* can only fixate if there is a field */ + gst_structure_fixate_field_nearest_int (s, "payload", dtmfsrc->pt); + gst_structure_get_int (s, "payload", &pt); + GST_LOG_OBJECT (dtmfsrc, "using peer pt %d", pt); + } else { + /* no pt field, use the internal pt */ + pt = dtmfsrc->pt; + gst_structure_set (s, "payload", G_TYPE_INT, pt, NULL); + GST_LOG_OBJECT (dtmfsrc, "using internal pt %d", pt); + } + } + + if (gst_structure_get_int (s, "clock-rate", &clock_rate)) { + dtmfsrc->clock_rate = clock_rate; + GST_LOG_OBJECT (dtmfsrc, "using clock-rate from caps %d", + dtmfsrc->clock_rate); + } else { + GST_LOG_OBJECT (dtmfsrc, "using existing clock-rate %d", + dtmfsrc->clock_rate); + } + gst_structure_set (s, "clock-rate", G_TYPE_INT, dtmfsrc->clock_rate, NULL); + + + if (gst_structure_has_field_typed (s, "ssrc", G_TYPE_UINT)) { + value = gst_structure_get_value (s, "ssrc"); + dtmfsrc->current_ssrc = g_value_get_uint (value); + GST_LOG_OBJECT (dtmfsrc, "using peer ssrc %08x", dtmfsrc->current_ssrc); + } else { + /* FIXME, fixate_nearest_uint would be even better */ + gst_structure_set (s, "ssrc", G_TYPE_UINT, dtmfsrc->current_ssrc, NULL); + GST_LOG_OBJECT (dtmfsrc, "using internal ssrc %08x", + dtmfsrc->current_ssrc); + } + + if (gst_structure_has_field_typed (s, "clock-base", G_TYPE_UINT)) { + value = gst_structure_get_value (s, "clock-base"); + dtmfsrc->ts_base = g_value_get_uint (value); + GST_LOG_OBJECT (dtmfsrc, "using peer clock-base %u", dtmfsrc->ts_base); + } else { + /* FIXME, fixate_nearest_uint would be even better */ + gst_structure_set (s, "clock-base", G_TYPE_UINT, dtmfsrc->ts_base, NULL); + GST_LOG_OBJECT (dtmfsrc, "using internal clock-base %u", + dtmfsrc->ts_base); + } + if (gst_structure_has_field_typed (s, "seqnum-base", G_TYPE_UINT)) { + value = gst_structure_get_value (s, "seqnum-base"); + dtmfsrc->seqnum_base = g_value_get_uint (value); + GST_LOG_OBJECT (dtmfsrc, "using peer seqnum-base %u", + dtmfsrc->seqnum_base); + } else { + /* FIXME, fixate_nearest_uint would be even better */ + gst_structure_set (s, "seqnum-base", G_TYPE_UINT, dtmfsrc->seqnum_base, + NULL); + GST_LOG_OBJECT (dtmfsrc, "using internal seqnum-base %u", + dtmfsrc->seqnum_base); + } + + if (gst_structure_has_field_typed (s, "ptime", G_TYPE_UINT)) { + value = gst_structure_get_value (s, "ptime"); + dtmfsrc->ptime = g_value_get_uint (value); + GST_LOG_OBJECT (dtmfsrc, "using peer ptime %u", dtmfsrc->ptime); + } else if (gst_structure_has_field_typed (s, "maxptime", G_TYPE_UINT)) { + value = gst_structure_get_value (s, "maxptime"); + dtmfsrc->ptime = g_value_get_uint (value); + GST_LOG_OBJECT (dtmfsrc, "using peer maxptime as ptime %u", + dtmfsrc->ptime); + } else { + /* FIXME, fixate_nearest_uint would be even better */ + gst_structure_set (s, "ptime", G_TYPE_UINT, dtmfsrc->ptime, NULL); + GST_LOG_OBJECT (dtmfsrc, "using internal ptime %u", dtmfsrc->ptime); + } + + + GST_DEBUG_OBJECT (dtmfsrc, "with peer caps: %" GST_PTR_FORMAT, srccaps); + } + + ret = gst_pad_set_caps (GST_BASE_SRC_PAD (basesrc), srccaps); + gst_caps_unref (srccaps); + + dtmfsrc->dirty = FALSE; + + return ret; + +} + + +static void +gst_rtp_dtmf_src_ready_to_paused (GstRTPDTMFSrc * dtmfsrc) +{ + if (dtmfsrc->ssrc == -1) + dtmfsrc->current_ssrc = g_random_int (); + else + dtmfsrc->current_ssrc = dtmfsrc->ssrc; + + if (dtmfsrc->seqnum_offset == -1) + dtmfsrc->seqnum_base = g_random_int_range (0, G_MAXUINT16); + else + dtmfsrc->seqnum_base = dtmfsrc->seqnum_offset; + dtmfsrc->seqnum = dtmfsrc->seqnum_base; + + if (dtmfsrc->ts_offset == -1) + dtmfsrc->ts_base = g_random_int (); + else + dtmfsrc->ts_base = dtmfsrc->ts_offset; + + dtmfsrc->timestamp = 0; +} + +static GstStateChangeReturn +gst_rtp_dtmf_src_change_state (GstElement * element, GstStateChange transition) +{ + GstRTPDTMFSrc *dtmfsrc; + GstStateChangeReturn result; + gboolean no_preroll = FALSE; + GstRTPDTMFSrcEvent *event = NULL; + + dtmfsrc = GST_RTP_DTMF_SRC (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + gst_rtp_dtmf_src_ready_to_paused (dtmfsrc); + + /* Flushing the event queue */ + while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) { + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); + gst_rtp_dtmf_src_event_free (event); + } + dtmfsrc->last_event_was_start = FALSE; + + no_preroll = TRUE; + break; + default: + break; + } + + if ((result = + GST_ELEMENT_CLASS (gst_rtp_dtmf_src_parent_class)->change_state + (element, transition)) == GST_STATE_CHANGE_FAILURE) + goto failure; + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + no_preroll = TRUE; + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + + /* Flushing the event queue */ + while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) { + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); + gst_rtp_dtmf_src_event_free (event); + } + dtmfsrc->last_event_was_start = FALSE; + + /* Indicate that we don't do PRE_ROLL */ + break; + + default: + break; + } + + if (no_preroll && result == GST_STATE_CHANGE_SUCCESS) + result = GST_STATE_CHANGE_NO_PREROLL; + + return result; + + /* ERRORS */ +failure: + { + GST_ERROR_OBJECT (dtmfsrc, "parent failed state change"); + return result; + } +} + + +static gboolean +gst_rtp_dtmf_src_unlock (GstBaseSrc * src) +{ + GstRTPDTMFSrc *dtmfsrc = GST_RTP_DTMF_SRC (src); + GstRTPDTMFSrcEvent *event = NULL; + + GST_DEBUG_OBJECT (dtmfsrc, "Called unlock"); + + GST_OBJECT_LOCK (dtmfsrc); + dtmfsrc->paused = TRUE; + if (dtmfsrc->clockid) { + gst_clock_id_unschedule (dtmfsrc->clockid); + } + GST_OBJECT_UNLOCK (dtmfsrc); + + GST_DEBUG_OBJECT (dtmfsrc, "Pushing the PAUSE_TASK event on unlock request"); + event = g_slice_new0 (GstRTPDTMFSrcEvent); + event->event_type = RTP_DTMF_EVENT_TYPE_PAUSE_TASK; + g_async_queue_push (dtmfsrc->event_queue, event); + + return TRUE; +} + + +static gboolean +gst_rtp_dtmf_src_unlock_stop (GstBaseSrc * src) +{ + GstRTPDTMFSrc *dtmfsrc = GST_RTP_DTMF_SRC (src); + + GST_DEBUG_OBJECT (dtmfsrc, "Unlock stopped"); + + GST_OBJECT_LOCK (dtmfsrc); + dtmfsrc->paused = FALSE; + GST_OBJECT_UNLOCK (dtmfsrc); + + return TRUE; +} + +gboolean +gst_rtp_dtmf_src_plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "rtpdtmfsrc", + GST_RANK_NONE, GST_TYPE_RTP_DTMF_SRC); +} diff --git a/gst/dtmf/gstrtpdtmfsrc.h b/gst/dtmf/gstrtpdtmfsrc.h new file mode 100644 index 0000000000000000000000000000000000000000..3e9256ce58ed8980f2eba983ff69bd46cedd132f --- /dev/null +++ b/gst/dtmf/gstrtpdtmfsrc.h @@ -0,0 +1,115 @@ +/* GStreamer RTP DTMF source + * + * gstrtpdtmfsrc.h: + * + * Copyright (C) <2007> Nokia Corporation. + * Contact: Zeeshan Ali <zeeshan.ali@nokia.com> + * Copyright (C) <2005> Wim Taymans <wim@fluendo.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_RTP_DTMF_SRC_H__ +#define __GST_RTP_DTMF_SRC_H__ + +#include <gst/gst.h> +#include <gst/base/gstbasesrc.h> +#include <gst/rtp/gstrtpbuffer.h> + +#include "gstdtmfcommon.h" + +G_BEGIN_DECLS +#define GST_TYPE_RTP_DTMF_SRC (gst_rtp_dtmf_src_get_type()) +#define GST_RTP_DTMF_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_DTMF_SRC,GstRTPDTMFSrc)) +#define GST_RTP_DTMF_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_DTMF_SRC,GstRTPDTMFSrcClass)) +#define GST_RTP_DTMF_SRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_DTMF_SRC, GstRTPDTMFSrcClass)) +#define GST_IS_RTP_DTMF_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_DTMF_SRC)) +#define GST_IS_RTP_DTMF_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_DTMF_SRC)) +#define GST_RTP_DTMF_SRC_CAST(obj) ((GstRTPDTMFSrc *)(obj)) +typedef struct _GstRTPDTMFSrc GstRTPDTMFSrc; +typedef struct _GstRTPDTMFSrcClass GstRTPDTMFSrcClass; + + + +enum _GstRTPDTMFEventType +{ + RTP_DTMF_EVENT_TYPE_START, + RTP_DTMF_EVENT_TYPE_STOP, + RTP_DTMF_EVENT_TYPE_PAUSE_TASK +}; + +typedef enum _GstRTPDTMFEventType GstRTPDTMFEventType; + +struct _GstRTPDTMFSrcEvent +{ + GstRTPDTMFEventType event_type; + GstRTPDTMFPayload *payload; +}; + +typedef struct _GstRTPDTMFSrcEvent GstRTPDTMFSrcEvent; + +/** + * GstRTPDTMFSrc: + * @element: the parent element. + * + * The opaque #GstRTPDTMFSrc data structure. + */ +struct _GstRTPDTMFSrc +{ + /*< private >*/ + GstBaseSrc basesrc; + + GAsyncQueue *event_queue; + GstClockID clockid; + gboolean paused; + GstRTPDTMFPayload *payload; + + GstClockTime timestamp; + GstClockTime start_timestamp; + gboolean first_packet; + gboolean last_packet; + guint32 ts_base; + guint16 seqnum_base; + gint16 seqnum_offset; + guint16 seqnum; + gint32 ts_offset; + guint32 rtp_timestamp; + guint pt; + guint ssrc; + guint current_ssrc; + guint16 ptime; + guint16 packet_redundancy; + guint32 clock_rate; + gboolean last_event_was_start; + + GstClockTime last_stop; + + gboolean dirty; + guint16 redundancy_count; +}; + +struct _GstRTPDTMFSrcClass +{ + GstBaseSrcClass parent_class; +}; + +GType gst_rtp_dtmf_src_get_type (void); + +gboolean gst_rtp_dtmf_src_plugin_init (GstPlugin * plugin); + + +G_END_DECLS +#endif /* __GST_RTP_DTMF_SRC_H__ */ diff --git a/gst/effectv/Makefile.in b/gst/effectv/Makefile.in index 30843790fadb1ac684da9313f649ad9460ed6780..df77d41846bda12c87a8838eed287e632eef29a7 100644 --- a/gst/effectv/Makefile.in +++ b/gst/effectv/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/effectv -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -143,10 +169,23 @@ libgsteffectv_la_OBJECTS = $(am_libgsteffectv_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgsteffectv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgsteffectv_la_CFLAGS) $(CFLAGS) \ $(libgsteffectv_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -159,20 +198,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgsteffectv_la_SOURCES) DIST_SOURCES = $(libgsteffectv_la_SOURCES) am__can_run_installinfo = \ @@ -181,6 +216,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -349,6 +401,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -567,6 +620,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -593,12 +647,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgsteffectv.la: $(libgsteffectv_la_OBJECTS) $(libgsteffectv_la_DEPENDENCIES) $(EXTRA_libgsteffectv_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsteffectv_la_LINK) -rpath $(plugindir) $(libgsteffectv_la_OBJECTS) $(libgsteffectv_la_LIBADD) $(LIBS) @@ -740,26 +797,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -771,15 +817,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -788,6 +830,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -932,19 +989,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/effectv/gstaging.c b/gst/effectv/gstaging.c index 3ba5e8d8c6f6f8a71f5ceaa82f0d0d8f89ad90d2..c6bfa11c6d1882581d0ec58c70acbef68a9ef9c1 100644 --- a/gst/effectv/gstaging.c +++ b/gst/effectv/gstaging.c @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstaging.h b/gst/effectv/gstaging.h index 604af5d187371750ab7d086a11942c527f9f545e..52466d15e3d39ca1067d0611648cd5656af3cad8 100644 --- a/gst/effectv/gstaging.h +++ b/gst/effectv/gstaging.h @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_AGING_H__ diff --git a/gst/effectv/gstdice.c b/gst/effectv/gstdice.c index e9e7d0bc466cea7e06467406f566047c0aed6121..7c90b660a4c2701cd0429612ebc4db67d0be8e67 100644 --- a/gst/effectv/gstdice.c +++ b/gst/effectv/gstdice.c @@ -22,8 +22,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstdice.h b/gst/effectv/gstdice.h index 0a6e5eecf4efaa4a8860179b00f14a57776e848d..4c14c976e642bcafa3885165659e23320b514584 100644 --- a/gst/effectv/gstdice.h +++ b/gst/effectv/gstdice.h @@ -22,8 +22,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_DICE_H__ diff --git a/gst/effectv/gstedge.c b/gst/effectv/gstedge.c index 91047bb84f70e82a3051ae54aa21c4d1b789e06b..d7fe89bab9093d341036bdc1d225afce585aab8b 100644 --- a/gst/effectv/gstedge.c +++ b/gst/effectv/gstedge.c @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstedge.h b/gst/effectv/gstedge.h index f906fa3617e26b8067ff35887d5696bd431afd07..290c3128387620763568536e95c7be6f173171dd 100644 --- a/gst/effectv/gstedge.h +++ b/gst/effectv/gstedge.h @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_EDGE_H__ diff --git a/gst/effectv/gsteffectv.c b/gst/effectv/gsteffectv.c index 51bdaebc3eb30947f567820f7fb96bbcdffaaf3d..0e9ffc05a34ec5762d02efe83d5b46495ef72de6 100644 --- a/gst/effectv/gsteffectv.c +++ b/gst/effectv/gsteffectv.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/effectv/gsteffectv.h b/gst/effectv/gsteffectv.h index a953991900e36e0f258c75595df666f28a96180e..0f00799a545535913e862f089d8424fb3c5b46c8 100644 --- a/gst/effectv/gsteffectv.h +++ b/gst/effectv/gsteffectv.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/gst.h> diff --git a/gst/effectv/gstop.c b/gst/effectv/gstop.c index 119e3f79f7ea47347df4fe7fed45796d1dc83b1a..d91a375f50f7da7dfc88b85e08fe0f6bca570986 100644 --- a/gst/effectv/gstop.c +++ b/gst/effectv/gstop.c @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstop.h b/gst/effectv/gstop.h index 4e948686a7e79310f8de310635c56695574d3b26..557240232171f00f8890238ec7492df4b7763b97 100644 --- a/gst/effectv/gstop.h +++ b/gst/effectv/gstop.h @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_OP_H__ diff --git a/gst/effectv/gstquark.c b/gst/effectv/gstquark.c index 3f7bffa29a9085520bac07f56b63ac20d82abd14..cb02643fe9bc68544fe1f001360bf747f9f8781a 100644 --- a/gst/effectv/gstquark.c +++ b/gst/effectv/gstquark.c @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstquark.h b/gst/effectv/gstquark.h index 2b092ed98a04a51de255ba0d47cc17f4fede6da6..5557756830418e8e3700ebf7cf1a056793b1a087 100644 --- a/gst/effectv/gstquark.h +++ b/gst/effectv/gstquark.h @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_QUARK_H__ diff --git a/gst/effectv/gstradioac.c b/gst/effectv/gstradioac.c index 8280a8d78475beeb9bc25f6a30259d41267bda87..fc2d4090445c2fd5c27d22724bb5fbd10a1cf08a 100644 --- a/gst/effectv/gstradioac.c +++ b/gst/effectv/gstradioac.c @@ -20,8 +20,8 @@ * * You should have received a cradioacy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstradioac.h b/gst/effectv/gstradioac.h index 6771289b24d6d31f3d5caab923fcf8cf1d995fbd..c8d7c99e5b910d46021643585d41f1f7eecf63b6 100644 --- a/gst/effectv/gstradioac.h +++ b/gst/effectv/gstradioac.h @@ -20,8 +20,8 @@ * * You should have received a cradioacy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RADIOAC_H__ diff --git a/gst/effectv/gstrev.c b/gst/effectv/gstrev.c index 23a886646caf99e0b9a1d8bfe568242a1beed282..189e313bfd07d392734870cf624e8e7bf49e872c 100644 --- a/gst/effectv/gstrev.c +++ b/gst/effectv/gstrev.c @@ -36,8 +36,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstrev.h b/gst/effectv/gstrev.h index fc40d8cc8796286d3f74b04857af8d85e43b1a4f..198311b99b27bd65be9975cd2a55fa378eb0cdbc 100644 --- a/gst/effectv/gstrev.h +++ b/gst/effectv/gstrev.h @@ -36,8 +36,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_REV_H__ diff --git a/gst/effectv/gstripple.c b/gst/effectv/gstripple.c index 2fcf05a14843cbc51694c82c95301e3ddb1d211e..71b9796e14fee2e7ba7435be42a427ef7351d7bd 100644 --- a/gst/effectv/gstripple.c +++ b/gst/effectv/gstripple.c @@ -24,8 +24,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstripple.h b/gst/effectv/gstripple.h index 12242a230f7a0b75751eff687a28f39bc6da519f..329e54308d250d2e91eacd1b85a86217181b00cd 100644 --- a/gst/effectv/gstripple.h +++ b/gst/effectv/gstripple.h @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RIPPLE_H__ diff --git a/gst/effectv/gstshagadelic.c b/gst/effectv/gstshagadelic.c index c84876469eb761c816657462cafcd2edb6a0a22e..956e5dd59de2fcfae8c30986de7da5a4fc005454 100644 --- a/gst/effectv/gstshagadelic.c +++ b/gst/effectv/gstshagadelic.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstshagadelic.h b/gst/effectv/gstshagadelic.h index 43d964dc1579e340baebb3b13592aac6da6cee31..a89cbf43c49b617af5f4bc6e202a0c032f64d7f1 100644 --- a/gst/effectv/gstshagadelic.h +++ b/gst/effectv/gstshagadelic.h @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_SHAGADELIC_H__ diff --git a/gst/effectv/gststreak.c b/gst/effectv/gststreak.c index 3b3c622d024b16a54f94133c18781ffafab0ddaf..6eeb08dc7c7d569a486663958199943a25d144e4 100644 --- a/gst/effectv/gststreak.c +++ b/gst/effectv/gststreak.c @@ -24,8 +24,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gststreak.h b/gst/effectv/gststreak.h index 55198f4ddddd49f4bd32076dfda67a70d8432cb3..5d9362de0e58abb79d58a6251667e043371d0dfa 100644 --- a/gst/effectv/gststreak.h +++ b/gst/effectv/gststreak.h @@ -20,8 +20,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_STREAK_H__ diff --git a/gst/effectv/gstvertigo.c b/gst/effectv/gstvertigo.c index f5aeaf4617cad9dbf706daecdf010298d50c8efb..3e575cbb45acd60eb43a50bb168704643a650aa2 100644 --- a/gst/effectv/gstvertigo.c +++ b/gst/effectv/gstvertigo.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/effectv/gstvertigo.h b/gst/effectv/gstvertigo.h index 0081bf0e4668e1b5cf9a65c097bfc3ea8c86e49b..39c225b355a61b4c71333b2f1e2e4fe16a20ba9e 100644 --- a/gst/effectv/gstvertigo.h +++ b/gst/effectv/gstvertigo.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_VERTIGO_H__ diff --git a/gst/effectv/gstwarp.c b/gst/effectv/gstwarp.c index 5ced810975ec927ea4e2a001063ef8be301235de..327c9de52a12a319fc6b276713a2861614b53c28 100644 --- a/gst/effectv/gstwarp.c +++ b/gst/effectv/gstwarp.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/effectv/gstwarp.h b/gst/effectv/gstwarp.h index 3fe48b34bf6ae14b350fa153dde5cd81c03cb3be..73eeebc0de0c051fad951bf8ccdae4e46114410f 100644 --- a/gst/effectv/gstwarp.h +++ b/gst/effectv/gstwarp.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_WARP_H__ diff --git a/gst/equalizer/Makefile.in b/gst/equalizer/Makefile.in index 6651816cc0f7f68a280df94c72e946e57ee396e1..c9c8cdd6e00500a6e90ca69a345a64c11f8e54ef 100644 --- a/gst/equalizer/Makefile.in +++ b/gst/equalizer/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -18,23 +17,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,15 +82,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/equalizer -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -140,10 +166,23 @@ libgstequalizer_la_OBJECTS = $(am_libgstequalizer_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstequalizer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstequalizer_la_CFLAGS) $(CFLAGS) \ $(libgstequalizer_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -156,20 +195,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstequalizer_la_SOURCES) DIST_SOURCES = $(libgstequalizer_la_SOURCES) am__can_run_installinfo = \ @@ -179,6 +214,23 @@ am__can_run_installinfo = \ esac DATA = $(preset_DATA) HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -347,6 +399,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -561,6 +614,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -587,12 +641,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstequalizer.la: $(libgstequalizer_la_OBJECTS) $(libgstequalizer_la_DEPENDENCIES) $(EXTRA_libgstequalizer_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstequalizer_la_LINK) -rpath $(plugindir) $(libgstequalizer_la_OBJECTS) $(libgstequalizer_la_LIBADD) $(LIBS) @@ -683,26 +740,15 @@ uninstall-presetDATA: files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(presetdir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -714,15 +760,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -731,6 +773,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -875,20 +932,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES uninstall-presetDATA .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-presetDATA install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES \ - uninstall-presetDATA +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-presetDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pluginLTLIBRARIES uninstall-presetDATA Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/equalizer/gstiirequalizer.c b/gst/equalizer/gstiirequalizer.c index acc827795b7ef432f61acc4da750b3c7110f526f..d278c4c03443f4617fe5c568c5dd288aaa8ee39b 100644 --- a/gst/equalizer/gstiirequalizer.c +++ b/gst/equalizer/gstiirequalizer.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/equalizer/gstiirequalizer.h b/gst/equalizer/gstiirequalizer.h index 98f2200970dbe21a58766a3ea84522c421b81094..3ba70eed6afe2927ae0e4085f911f1339b788229 100644 --- a/gst/equalizer/gstiirequalizer.h +++ b/gst/equalizer/gstiirequalizer.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_IIR_EQUALIZER__ diff --git a/gst/equalizer/gstiirequalizer10bands.c b/gst/equalizer/gstiirequalizer10bands.c index 0f8b56e4524c97683c1d22b3d2c094d38f8642ff..71bbf53ee41eb40d9d24924fee42638017e846e2 100644 --- a/gst/equalizer/gstiirequalizer10bands.c +++ b/gst/equalizer/gstiirequalizer10bands.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/equalizer/gstiirequalizer10bands.h b/gst/equalizer/gstiirequalizer10bands.h index 72bda61ec88faead571e48313308582b5247bb43..7066721fa70d9c059e3e70390ad2afd23c8f84d2 100644 --- a/gst/equalizer/gstiirequalizer10bands.h +++ b/gst/equalizer/gstiirequalizer10bands.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_IIR_EQUALIZER_10BANDS__ diff --git a/gst/equalizer/gstiirequalizer3bands.c b/gst/equalizer/gstiirequalizer3bands.c index 993d2775832402cecb241d3db1be68747a0d350a..02f14ed4a6158c7387c4df7772af4a3ca5732ebc 100644 --- a/gst/equalizer/gstiirequalizer3bands.c +++ b/gst/equalizer/gstiirequalizer3bands.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/equalizer/gstiirequalizer3bands.h b/gst/equalizer/gstiirequalizer3bands.h index a76249a986e1cdf36237bc95f057e5a80040b897..3790fca99e74b93f81bb3927703953ddc6200ddd 100644 --- a/gst/equalizer/gstiirequalizer3bands.h +++ b/gst/equalizer/gstiirequalizer3bands.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_IIR_EQUALIZER_3BANDS__ diff --git a/gst/equalizer/gstiirequalizernbands.c b/gst/equalizer/gstiirequalizernbands.c index 462003a86c34411103307d6fd8e9f326e0357952..ab2c0318ccf9025c85f923eff3b4b71d6b34d425 100644 --- a/gst/equalizer/gstiirequalizernbands.c +++ b/gst/equalizer/gstiirequalizernbands.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/equalizer/gstiirequalizernbands.h b/gst/equalizer/gstiirequalizernbands.h index b0ffa851dbaa70bd99aecff051caa60d5dbb97cf..c119a1ff1a4115b884d4175c7d257fa40ae2d0bd 100644 --- a/gst/equalizer/gstiirequalizernbands.h +++ b/gst/equalizer/gstiirequalizernbands.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_IIR_EQUALIZER_NBANDS__ diff --git a/gst/flv/Makefile.in b/gst/flv/Makefile.in index d9c57e6dfe1edc1d27e63b17270efa58cbf6de7c..bba3ee8dd171feeca54620350e54f76e82d70a4f 100644 --- a/gst/flv/Makefile.in +++ b/gst/flv/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/flv -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgstflv_la_OBJECTS = $(am_libgstflv_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstflv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstflv_la_CFLAGS) $(CFLAGS) \ $(libgstflv_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstflv_la_SOURCES) DIST_SOURCES = $(libgstflv_la_SOURCES) am__can_run_installinfo = \ @@ -174,6 +209,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -342,6 +394,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -546,6 +599,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -572,12 +626,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstflv.la: $(libgstflv_la_OBJECTS) $(libgstflv_la_DEPENDENCIES) $(EXTRA_libgstflv_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstflv_la_LINK) -rpath $(plugindir) $(libgstflv_la_OBJECTS) $(libgstflv_la_LIBADD) $(LIBS) @@ -631,26 +688,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -662,15 +708,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -679,6 +721,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -823,19 +880,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/flv/amfdefs.h b/gst/flv/amfdefs.h index 00d0c1ae05bc01b2c766bb38a9406ab50bbebc1d..d1e772539ca5f3b537434082215b3c26495e933d 100644 --- a/gst/flv/amfdefs.h +++ b/gst/flv/amfdefs.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __AMFDEFS_H__ diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c index 9f8cbe2570aeadbef94e249feac349bfc079d292..0e166bc75d9ef8bc551cb02123c09245be0fac71 100644 --- a/gst/flv/gstflvdemux.c +++ b/gst/flv/gstflvdemux.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/flv/gstflvdemux.h b/gst/flv/gstflvdemux.h index c4684ed843452f1c3124bcc507f2c6351567de9d..78a82ae71740e54f56c1a2ca24ea77d40e741321 100644 --- a/gst/flv/gstflvdemux.h +++ b/gst/flv/gstflvdemux.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __FLV_DEMUX_H__ diff --git a/gst/flv/gstflvmux.c b/gst/flv/gstflvmux.c index 52008d39b78ad7d635a37537fffb268dbdf89336..8d7387f4d1a8490a0f28979e252a07e0af2e16fb 100644 --- a/gst/flv/gstflvmux.c +++ b/gst/flv/gstflvmux.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -1141,6 +1141,8 @@ gst_flv_mux_write_header (GstFlvMux * mux) GValue streamheader = { 0 }; GSList *l; GstFlowReturn ret; + GstSegment segment; + gchar s_id[32]; /* if not streaming, check if downstream is seekable */ if (!mux->streamable) { @@ -1216,17 +1218,24 @@ gst_flv_mux_write_header (GstFlvMux * mux) if (audio_codec_data != NULL) gst_flv_mux_put_buffer_in_streamheader (&streamheader, audio_codec_data); + /* stream-start (FIXME: create id based on input ids) */ + g_snprintf (s_id, sizeof (s_id), "flvmux-%08x", g_random_int ()); + gst_pad_push_event (mux->srcpad, gst_event_new_stream_start (s_id)); + /* create the caps and put the streamheader in them */ caps = gst_caps_new_empty_simple ("video/x-flv"); structure = gst_caps_get_structure (caps, 0); gst_structure_set_value (structure, "streamheader", &streamheader); g_value_unset (&streamheader); - if (!gst_pad_has_current_caps (mux->srcpad)) - gst_pad_set_caps (mux->srcpad, caps); + gst_pad_set_caps (mux->srcpad, caps); gst_caps_unref (caps); + /* segment */ + gst_segment_init (&segment, GST_FORMAT_BYTES); + gst_pad_push_event (mux->srcpad, gst_event_new_segment (&segment)); + /* push the header buffer, the metadata and the codec info, if any */ ret = gst_flv_mux_push (mux, header); if (ret != GST_FLOW_OK) @@ -1463,26 +1472,13 @@ gst_flv_mux_handle_buffer (GstCollectPads * pads, GstCollectData * cdata, GstFlowReturn ret; if (mux->state == GST_FLV_MUX_STATE_HEADER) { - GstSegment segment; - gchar s_id[32]; - if (mux->collect->data == NULL) { GST_ELEMENT_ERROR (mux, STREAM, MUX, (NULL), ("No input streams configured")); return GST_FLOW_ERROR; } - /* stream-start (FIXME: create id based on input ids) */ - g_snprintf (s_id, sizeof (s_id), "flvmux-%08x", g_random_int ()); - gst_pad_push_event (mux->srcpad, gst_event_new_stream_start (s_id)); - - /* segment */ - gst_segment_init (&segment, GST_FORMAT_BYTES); - if (gst_pad_push_event (mux->srcpad, gst_event_new_segment (&segment))) - ret = gst_flv_mux_write_header (mux); - else - ret = GST_FLOW_ERROR; - + ret = gst_flv_mux_write_header (mux); if (ret != GST_FLOW_OK) return ret; mux->state = GST_FLV_MUX_STATE_DATA; diff --git a/gst/flv/gstflvmux.h b/gst/flv/gstflvmux.h index ca0b2e12fad401bc01771599e31b70ad4f70d798..cb57fc84e486ded58626767018cb90d4d688d39d 100644 --- a/gst/flv/gstflvmux.h +++ b/gst/flv/gstflvmux.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_FLV_MUX_H__ diff --git a/gst/flv/gstindex.c b/gst/flv/gstindex.c index aff8dc124b9d09ec32cfcd04eafaf7f8bbf4d3c1..d56f3cce720ed886a499255823357eefa60fa6ae 100644 --- a/gst/flv/gstindex.c +++ b/gst/flv/gstindex.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/flv/gstindex.h b/gst/flv/gstindex.h index 653aa18b711e3eaf372a390cf4a64b6e1ee67e82..0a51f9c646e17e4e4a7e75331d06fb6cbe9a1f46 100644 --- a/gst/flv/gstindex.h +++ b/gst/flv/gstindex.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_INDEX_H__ diff --git a/gst/flv/gstmemindex.c b/gst/flv/gstmemindex.c index dfcd35c103cae06d97902d58cc3afe2000653317..eef99c2c584cc563bcac274cf4738d32971711b9 100644 --- a/gst/flv/gstmemindex.c +++ b/gst/flv/gstmemindex.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/gst.h> diff --git a/gst/flx/Makefile.in b/gst/flx/Makefile.in index 37676ab321ee8cc20d2082bf1e9960d155be3909..3bb855b3fed5121f4dc2c1e6c246b3ce30e61b2e 100644 --- a/gst/flx/Makefile.in +++ b/gst/flx/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/flx -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgstflxdec_la_OBJECTS = $(am_libgstflxdec_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstflxdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstflxdec_la_CFLAGS) $(CFLAGS) \ $(libgstflxdec_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstflxdec_la_SOURCES) DIST_SOURCES = $(libgstflxdec_la_SOURCES) am__can_run_installinfo = \ @@ -174,6 +209,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -342,6 +394,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstflxdec.la: $(libgstflxdec_la_OBJECTS) $(libgstflxdec_la_DEPENDENCIES) $(EXTRA_libgstflxdec_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstflxdec_la_LINK) -rpath $(plugindir) $(libgstflxdec_la_OBJECTS) $(libgstflxdec_la_LIBADD) $(LIBS) @@ -628,26 +685,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -659,15 +705,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -676,6 +718,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -820,19 +877,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/flx/flx_color.c b/gst/flx/flx_color.c index 854010a4e99fa5b01aa3a6fd294f825d76c25a59..047bfdf6decf682d2e854da0eb508fd84185d0fe 100644 --- a/gst/flx/flx_color.c +++ b/gst/flx/flx_color.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/flx/flx_color.h b/gst/flx/flx_color.h index 80378e1de31bc77f03ed3429b5789668aebead40..fd36ab7dc2ce800a93ad18807456cafa4fa0e76f 100644 --- a/gst/flx/flx_color.h +++ b/gst/flx/flx_color.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __FLX_COLOR_H__ diff --git a/gst/flx/flx_fmt.h b/gst/flx/flx_fmt.h index ae0e268b62c8dd8cb861e6e2409b6ed56bac7c34..fbe850bc10897c891e902ab58fc0a71659591d05 100644 --- a/gst/flx/flx_fmt.h +++ b/gst/flx/flx_fmt.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c index bd169528aaa35a3cfc058180c9e6648564d143bc..35e934edb01ee82493a25b164781dc3101e51bfe 100644 --- a/gst/flx/gstflxdec.c +++ b/gst/flx/gstflxdec.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-flxdec @@ -587,6 +587,13 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) res = gst_pad_push (flxdec->srcpad, out); break; + default: + /* check if we have the complete frame */ + if (avail < flxfh.size) + goto need_more_data; + + gst_adapter_flush (flxdec->adapter, flxfh.size); + break; } if (chunk) diff --git a/gst/flx/gstflxdec.h b/gst/flx/gstflxdec.h index 55f5b7f401634ee65018337023e69a550798cd7f..3f9a0aabe9823138ff13343c4d897e9f561387c1 100644 --- a/gst/flx/gstflxdec.h +++ b/gst/flx/gstflxdec.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_FLX_DECODER_H__ diff --git a/gst/goom/Makefile.in b/gst/goom/Makefile.in index 9a311172f3f2ceb518992c7a187a364ac88b35aa..6928396b7426e91bf7f6857d17abf662267d292b 100644 --- a/gst/goom/Makefile.in +++ b/gst/goom/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,14 +80,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/goom -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -155,10 +182,23 @@ libgstgoom_la_OBJECTS = $(am_libgstgoom_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstgoom_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstgoom_la_CFLAGS) $(CFLAGS) \ $(libgstgoom_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -171,20 +211,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstgoom_la_SOURCES) DIST_SOURCES = $(am__libgstgoom_la_SOURCES_DIST) am__can_run_installinfo = \ @@ -192,6 +228,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -360,6 +413,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -589,6 +643,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -615,12 +670,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstgoom.la: $(libgstgoom_la_OBJECTS) $(libgstgoom_la_DEPENDENCIES) $(EXTRA_libgstgoom_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgoom_la_LINK) -rpath $(plugindir) $(libgstgoom_la_OBJECTS) $(libgstgoom_la_LIBADD) $(LIBS) @@ -810,26 +868,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -841,15 +888,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -858,6 +901,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1002,19 +1060,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES .NOTPARALLEL: diff --git a/gst/goom/config_param.c b/gst/goom/config_param.c index feb501558d12c84c6503402e2b654223e7a5e040..cd1965d7173180e5da732b2f83a59e1c28ac9275 100644 --- a/gst/goom/config_param.c +++ b/gst/goom/config_param.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "goom_config_param.h" diff --git a/gst/goom/convolve_fx.c b/gst/goom/convolve_fx.c index 457b5eb2cde4eb22d8a2a23ca730c2f7d05e298c..980e113a5babb6bdf0f065f19379515d2ddb0668 100644 --- a/gst/goom/convolve_fx.c +++ b/gst/goom/convolve_fx.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "goom_fx.h" #include "goom_plugin_info.h" diff --git a/gst/goom/drawmethods.c b/gst/goom/drawmethods.c index cd8163aa917d66c8fe06f256d87384a0be0eb702..97f0cf1396d40faee5941b529261e207c76e6123 100644 --- a/gst/goom/drawmethods.c +++ b/gst/goom/drawmethods.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "drawmethods.h" diff --git a/gst/goom/drawmethods.h b/gst/goom/drawmethods.h index cdf3d4786888cc5292f4bedbeea016b1b4856127..3f862742415e4a3e96502ed1610328d6f67fe3b6 100644 --- a/gst/goom/drawmethods.h +++ b/gst/goom/drawmethods.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _DRAWMETHODS_H #define _DRAWMETHODS_H diff --git a/gst/goom/filters.c b/gst/goom/filters.c index 8c6dbb103305890613840186732b18e3d0d548f6..aa04960c6ff6ade940aeb807a6ecc28d76fcdcd8 100644 --- a/gst/goom/filters.c +++ b/gst/goom/filters.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ // --- CHUI EN TRAIN DE SUPPRIMER LES EXTERN RESOLX ET C_RESOLY --- diff --git a/gst/goom/flying_stars_fx.c b/gst/goom/flying_stars_fx.c index a0ad8b797f7b4580a3735bc33921aa2c6ad3aef3..de35e7242bc32cd94e19fce0546cc7f3709c79a8 100644 --- a/gst/goom/flying_stars_fx.c +++ b/gst/goom/flying_stars_fx.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "goom_fx.h" #include "goom_plugin_info.h" diff --git a/gst/goom/goom.h b/gst/goom/goom.h index ccfc3f2f3f7ad57e29300ce44faefdb5a307bfb4..02a0936e7dd4c48f2f544398ba1f08ec10e01be3 100644 --- a/gst/goom/goom.h +++ b/gst/goom/goom.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GOOMCORE_H #define _GOOMCORE_H diff --git a/gst/goom/goom_config.h b/gst/goom/goom_config.h index 8daa1d6d8d119e86ed2d2f912450c5e7c0a4780f..7264bfe4ec56c9af7c9fed4ee8c6ba03eeb89931 100644 --- a/gst/goom/goom_config.h +++ b/gst/goom/goom_config.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <glib.h> diff --git a/gst/goom/goom_config_param.h b/gst/goom/goom_config_param.h index 15fd22f189772cb0c8820186568a0abf4176bc1a..ba08da95c511dd39e7c0ddb45933d519ad07bce2 100644 --- a/gst/goom/goom_config_param.h +++ b/gst/goom/goom_config_param.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _CONFIG_PARAM_H #define _CONFIG_PARAM_H diff --git a/gst/goom/goom_core.c b/gst/goom/goom_core.c index 7c2aef1b9b960e1d5605ccd209f5324de44de39c..6f6597ff5f2c73cd2477642ec23e32b566e233fc 100644 --- a/gst/goom/goom_core.c +++ b/gst/goom/goom_core.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/goom/goom_filters.h b/gst/goom/goom_filters.h index 5c6545a020f6c8ba3806f3b95f65069706f07149..13096e270f043998b695b4cb948256906958fe27 100644 --- a/gst/goom/goom_filters.h +++ b/gst/goom/goom_filters.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef FILTERS_H #define FILTERS_H diff --git a/gst/goom/goom_fx.h b/gst/goom/goom_fx.h index b239a38119546887c691dabc28ac5139125808a9..7c82d6cfe2a6b07f6a9f89eb0163ce12c5f1307b 100644 --- a/gst/goom/goom_fx.h +++ b/gst/goom/goom_fx.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GOOM_FX_H #define _GOOM_FX_H diff --git a/gst/goom/goom_graphic.h b/gst/goom/goom_graphic.h index 7632205b438f094d0bd524da8097f942ac7596dc..54dde3765dd387eeceae70cf531090eedcf76eeb 100644 --- a/gst/goom/goom_graphic.h +++ b/gst/goom/goom_graphic.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GRAPHIC_H #define GRAPHIC_H diff --git a/gst/goom/goom_plugin_info.h b/gst/goom/goom_plugin_info.h index 294afe84f5864aae0c75bb69f4b896b79efc5905..da0e96e58ca7e1337c365c922333b06c217b702d 100644 --- a/gst/goom/goom_plugin_info.h +++ b/gst/goom/goom_plugin_info.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _PLUGIN_INFO_H #define _PLUGIN_INFO_H diff --git a/gst/goom/goom_tools.c b/gst/goom/goom_tools.c index 4f9a6b2bc16a219b8cee9353d593c718eca82ea0..01758fd987c10e81b90f1ccfc17c6f76c609398d 100644 --- a/gst/goom/goom_tools.c +++ b/gst/goom/goom_tools.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "goom_tools.h" #include <stdlib.h> diff --git a/gst/goom/goom_tools.h b/gst/goom/goom_tools.h index caaa219e97a7235e4758ee05aace83c95886585e..34f5240fc4f54a60a309f5dc79ae19e80a37d8ca 100644 --- a/gst/goom/goom_tools.h +++ b/gst/goom/goom_tools.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GOOMTOOLS_H #define _GOOMTOOLS_H diff --git a/gst/goom/goom_typedefs.h b/gst/goom/goom_typedefs.h index 7188b4b82dec1876f900df9aa8b131f33e9cd8fb..d3a33a999b2c0a96a695b3a73c45f5a413ff299b 100644 --- a/gst/goom/goom_typedefs.h +++ b/gst/goom/goom_typedefs.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _GOOM_TYPEDEFS_H #define _GOOM_TYPEDEFS_H diff --git a/gst/goom/goom_visual_fx.h b/gst/goom/goom_visual_fx.h index 6f6f964ac8bc7860e5f31471118acc6463488aec..0bb5a49c29a06ec076448d769599f44fe291e1a6 100644 --- a/gst/goom/goom_visual_fx.h +++ b/gst/goom/goom_visual_fx.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _VISUAL_FX_H #define _VISUAL_FX_H diff --git a/gst/goom/graphic.c b/gst/goom/graphic.c index 64c0223702e90e368cb4c57f3348d217e87a129a..9f3044829df207aa9403dbecf502f7a282036a33 100644 --- a/gst/goom/graphic.c +++ b/gst/goom/graphic.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "goom_graphic.h" diff --git a/gst/goom/gstgoom.c b/gst/goom/gstgoom.c index 171ac07a9fbd437da48d565cd9ad2060572d48da..48864c77eed3123b720e72820c3ce2401fc29b0d 100644 --- a/gst/goom/gstgoom.c +++ b/gst/goom/gstgoom.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -545,7 +545,7 @@ gst_goom_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) GST_DEBUG_OBJECT (goom, "processing buffer"); /* get timestamp of the current adapter byte */ - timestamp = gst_adapter_prev_timestamp (goom->adapter, &dist); + timestamp = gst_adapter_prev_pts (goom->adapter, &dist); if (GST_CLOCK_TIME_IS_VALID (timestamp)) { /* convert bytes to time */ dist /= goom->bps; diff --git a/gst/goom/gstgoom.h b/gst/goom/gstgoom.h index 16e745d93f123f58a7566446297463fa5e6e8356..331e6ab5c8bb3933801a9748d5a02fea74ad3dbe 100644 --- a/gst/goom/gstgoom.h +++ b/gst/goom/gstgoom.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_GOOM_H__ diff --git a/gst/goom/lines.c b/gst/goom/lines.c index 096240cda93b81479fbaf12ff171cb759c896804..a7c1eda914144c4e8124dcf6306f0ee43dfbe213 100644 --- a/gst/goom/lines.c +++ b/gst/goom/lines.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "lines.h" diff --git a/gst/goom/lines.h b/gst/goom/lines.h index 6c2b47cd3b4262fd9b2394a8f922a760d00e03e3..4cd50d87791cbbe9d3611f403d89e76574ea06f7 100644 --- a/gst/goom/lines.h +++ b/gst/goom/lines.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _LINES_H diff --git a/gst/goom/mathtools.c b/gst/goom/mathtools.c index 84d5a964e090547f9d9b8fdc1b32689fc58ccd9d..dd190bf607215453e3c2782189de531a318e9631 100644 --- a/gst/goom/mathtools.c +++ b/gst/goom/mathtools.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "mathtools.h" diff --git a/gst/goom/mathtools.h b/gst/goom/mathtools.h index baf79b0183fc84986d708ba7d7dd813f3d8e4764..5340dab743f495a14dd4259ae36d56442ddfba93 100644 --- a/gst/goom/mathtools.h +++ b/gst/goom/mathtools.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef MATHTOOLS_H diff --git a/gst/goom/motif_goom1.h b/gst/goom/motif_goom1.h index ba5a7d45e032692775d8c7f1744def77c08cb2a7..82f381bdb008a45b3bee1d861f55515cab9a0fab 100644 --- a/gst/goom/motif_goom1.h +++ b/gst/goom/motif_goom1.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ static Motif CONV_MOTIF1 = { {15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, diff --git a/gst/goom/motif_goom2.h b/gst/goom/motif_goom2.h index 1ef1cbe1b11f629e6ee8f8d19283b389746d0361..2de92afa293a7948b78c395fdf7575fe27e3e1c5 100644 --- a/gst/goom/motif_goom2.h +++ b/gst/goom/motif_goom2.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ static Motif CONV_MOTIF2 = { {15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, diff --git a/gst/goom/plugin_info.c b/gst/goom/plugin_info.c index b50c9dd9aba307cf3548de58f9ee5343f1341fda..0952dcafb625aa6b7510542b6bacda68004e22bd 100644 --- a/gst/goom/plugin_info.c +++ b/gst/goom/plugin_info.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" diff --git a/gst/goom/ppc_drawings.h b/gst/goom/ppc_drawings.h index 8dd158d585893fbaf546d606da02c29cec3ead00..d35adf6500a3574f1d12285ccbc93c6348af2bbd 100644 --- a/gst/goom/ppc_drawings.h +++ b/gst/goom/ppc_drawings.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* Generic PowerPC Code */ diff --git a/gst/goom/ppc_drawings.s b/gst/goom/ppc_drawings.s index 4e100b75513f7672edf78b4a141f71563f3764c9..943cce7fdee1e314a3264367fe9cb2a1e042a52f 100644 --- a/gst/goom/ppc_drawings.s +++ b/gst/goom/ppc_drawings.s @@ -12,8 +12,8 @@ ; ; You should have received a copy of the GNU Library General Public ; License along with this library; if not, write to the -; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -; Boston, MA 02111-1307, USA. +; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +; Boston, MA 02110-1301, USA. ; Change log : ; 30 May 2003 : File creation diff --git a/gst/goom/ppc_zoom_ultimate.h b/gst/goom/ppc_zoom_ultimate.h index 6c6a4cccaf1e416db8b75f0d25cddbcbe29ee489..cd2c8a268389284fd798376b2f1420cdce1a40d9 100644 --- a/gst/goom/ppc_zoom_ultimate.h +++ b/gst/goom/ppc_zoom_ultimate.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* Generic PowerPC Code */ diff --git a/gst/goom/ppc_zoom_ultimate.s b/gst/goom/ppc_zoom_ultimate.s index 10c25a5a3fa094a5dbaccc7a348b9f2ca3187709..c37ec503e085a0fa692162fc5c0d03ebf9426178 100644 --- a/gst/goom/ppc_zoom_ultimate.s +++ b/gst/goom/ppc_zoom_ultimate.s @@ -12,8 +12,8 @@ ; ; You should have received a copy of the GNU Library General Public ; License along with this library; if not, write to the -; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -; Boston, MA 02111-1307, USA. +; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +; Boston, MA 02110-1301, USA. ; Change log : ; 21 Dec 2003 : Use of altivec is now determined with a parameter diff --git a/gst/goom/sound_tester.c b/gst/goom/sound_tester.c index c6e16103526c5b220ef5485eebd1e8e488968812..d02f0b51ac5f9e37303df866f5fe90701a97d0d7 100644 --- a/gst/goom/sound_tester.c +++ b/gst/goom/sound_tester.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "sound_tester.h" diff --git a/gst/goom/sound_tester.h b/gst/goom/sound_tester.h index a79bf2c5c09b6c80c312985c880a84f2fe7f09f6..2651d5f9de135a9676e0597c0ccaf593334d2c6b 100644 --- a/gst/goom/sound_tester.h +++ b/gst/goom/sound_tester.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _SOUND_TESTER_H #define _SOUND_TESTER_H diff --git a/gst/goom/surf3d.c b/gst/goom/surf3d.c index 588a5535f994d79ab29fbef25592921059274662..847284b370f3dc90109a0e10d1430da4d19dc61c 100644 --- a/gst/goom/surf3d.c +++ b/gst/goom/surf3d.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "surf3d.h" #include "goom_plugin_info.h" diff --git a/gst/goom/surf3d.h b/gst/goom/surf3d.h index 83caa33d9b1b310691b50962f12083747bdfbfb4..f8a2180d9750c2fbe17fa6e2aa8affa0bbcfd398 100644 --- a/gst/goom/surf3d.h +++ b/gst/goom/surf3d.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _SURF3D_H #define _SURF3D_H diff --git a/gst/goom/tentacle3d.c b/gst/goom/tentacle3d.c index 4c0d1438d17f3a11214b25d90ae56c0abff5e8eb..2abe42fc25dad6556d7eff9bbdb76d67f47d09dd 100644 --- a/gst/goom/tentacle3d.c +++ b/gst/goom/tentacle3d.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <stdlib.h> diff --git a/gst/goom/tentacle3d.h b/gst/goom/tentacle3d.h index 3696dd8d4ece3b11e753ae2a1befbe5b274e77f6..9f3ba923428109b3430fc4654e4c9b0ca54a863d 100644 --- a/gst/goom/tentacle3d.h +++ b/gst/goom/tentacle3d.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _TENTACLE3D_H #define _TENTACLE3D_H diff --git a/gst/goom/v3d.c b/gst/goom/v3d.c index f37141eda7c2da8a2b735c24c7f5fd155aaedfb6..7df4f1388bac2f3cbcddcd117e7cd3a0ddeab90a 100644 --- a/gst/goom/v3d.c +++ b/gst/goom/v3d.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "v3d.h" diff --git a/gst/goom/v3d.h b/gst/goom/v3d.h index 4257ccae6db628fd8afdb8d77b47672157bd867b..fd5f939236281172026c0841e5dda6838f0e8bbe 100644 --- a/gst/goom/v3d.h +++ b/gst/goom/v3d.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef _V3D_H #define _V3D_H diff --git a/gst/goom2k1/Makefile.am b/gst/goom2k1/Makefile.am index 5ff22ba5b17ea0ed54f7b14b0cda450f2064d75a..b32753f74d236d2cdbdd4bb19def951ecb7b847c 100644 --- a/gst/goom2k1/Makefile.am +++ b/gst/goom2k1/Makefile.am @@ -7,7 +7,21 @@ noinst_HEADERS = gstgoom.h filters.h goom_core.h goom_tools.h graphic.h lines.h libgstgoom2k1_la_SOURCES = gstgoom.c goom_core.c $(GOOM_FILTER_FILES) graphic.c lines.c -libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) +libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) \ + -Dgst_goom_get_type=gst_goom2k1_get_type \ + -Dgoom_init=goom2k1_init \ + -Dgoom_close=goom2k1_close -Dgoom_update=goom2k1_update \ + -Dgoom_set_resolution=goom2k1_set_resolution \ + -Dgoom_lines=goom2k1_lines \ + -DBLACK=GOOM2K1_BLACK -DWHITE=GOOM2K1_WHITE \ + -DRED=GOOM2K1_RED -DBLUE=GOOM2K1_BLUE \ + -DGREEN=GOOM2K1_GREEN -DYELLOW=GOOM2K1_YELLOW \ + -DORANGE=GOOM2K1_ORANGE -DVIOLET=GOOM2K1_VIOLET \ + -DzoomFilterFastRGB=zoomFilterFastRGB2k1 \ + -DpointFilter=pointFilter2k1 \ + -DzoomFilterDestroy=zoomFilterDestroy2k1 \ + -DzoomFilterNew=zoomFilterNew2k1 + libgstgoom2k1_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) libgstgoom2k1_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstgoom2k1_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) diff --git a/gst/goom2k1/Makefile.in b/gst/goom2k1/Makefile.in index f640fd183584365ac8a000ffb31775963a9fa0a2..e67317073aca75feb0a3cfc5091d16af2a6384d1 100644 --- a/gst/goom2k1/Makefile.in +++ b/gst/goom2k1/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/goom2k1 -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -138,10 +164,23 @@ libgstgoom2k1_la_OBJECTS = $(am_libgstgoom2k1_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstgoom2k1_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) \ $(libgstgoom2k1_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstgoom2k1_la_SOURCES) DIST_SOURCES = $(libgstgoom2k1_la_SOURCES) am__can_run_installinfo = \ @@ -176,6 +211,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -344,6 +396,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -509,7 +562,21 @@ GOOM_FILTER_FILES = filters.c GOOM_FILTER_CFLAGS = -UMMX -UUSE_ASM noinst_HEADERS = gstgoom.h filters.h goom_core.h goom_tools.h graphic.h lines.h libgstgoom2k1_la_SOURCES = gstgoom.c goom_core.c $(GOOM_FILTER_FILES) graphic.c lines.c -libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) +libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) \ + -Dgst_goom_get_type=gst_goom2k1_get_type \ + -Dgoom_init=goom2k1_init \ + -Dgoom_close=goom2k1_close -Dgoom_update=goom2k1_update \ + -Dgoom_set_resolution=goom2k1_set_resolution \ + -Dgoom_lines=goom2k1_lines \ + -DBLACK=GOOM2K1_BLACK -DWHITE=GOOM2K1_WHITE \ + -DRED=GOOM2K1_RED -DBLUE=GOOM2K1_BLUE \ + -DGREEN=GOOM2K1_GREEN -DYELLOW=GOOM2K1_YELLOW \ + -DORANGE=GOOM2K1_ORANGE -DVIOLET=GOOM2K1_VIOLET \ + -DzoomFilterFastRGB=zoomFilterFastRGB2k1 \ + -DpointFilter=pointFilter2k1 \ + -DzoomFilterDestroy=zoomFilterDestroy2k1 \ + -DzoomFilterNew=zoomFilterNew2k1 + libgstgoom2k1_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) libgstgoom2k1_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstgoom2k1_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) @@ -548,6 +615,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -574,12 +642,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstgoom2k1.la: $(libgstgoom2k1_la_OBJECTS) $(libgstgoom2k1_la_DEPENDENCIES) $(EXTRA_libgstgoom2k1_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgoom2k1_la_LINK) -rpath $(plugindir) $(libgstgoom2k1_la_OBJECTS) $(libgstgoom2k1_la_LIBADD) $(LIBS) @@ -657,26 +728,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -688,15 +748,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -705,6 +761,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -849,19 +920,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/goom2k1/gstgoom.c b/gst/goom2k1/gstgoom.c index f09d0d4bd8eaf8beb3e64d9f7fd65b832ad3b810..e124edcd7e6f20ea15676dbeb213f25e75b90d5c 100644 --- a/gst/goom2k1/gstgoom.c +++ b/gst/goom2k1/gstgoom.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -541,7 +541,7 @@ gst_goom_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) GST_DEBUG_OBJECT (goom, "processing buffer"); /* get timestamp of the current adapter byte */ - timestamp = gst_adapter_prev_timestamp (goom->adapter, &dist); + timestamp = gst_adapter_prev_pts (goom->adapter, &dist); if (GST_CLOCK_TIME_IS_VALID (timestamp)) { /* convert bytes to time */ dist /= goom->bps; diff --git a/gst/goom2k1/gstgoom.h b/gst/goom2k1/gstgoom.h index 79b3b99a11953ed18af53834dd68e44461ba63eb..d225a8e2a860b3a3afaf027097b10e03932f4719 100644 --- a/gst/goom2k1/gstgoom.h +++ b/gst/goom2k1/gstgoom.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_GOOM_H__ diff --git a/gst/icydemux/Makefile.in b/gst/icydemux/Makefile.in index cbcc632743bcc70826fef2f916e11cc5f608a48d..21870f2b11e236460767b61754ee2c66cc64d4e7 100644 --- a/gst/icydemux/Makefile.in +++ b/gst/icydemux/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/icydemux -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgsticydemux_la_OBJECTS = $(am_libgsticydemux_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgsticydemux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsticydemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgsticydemux_la_CFLAGS) $(CFLAGS) \ $(libgsticydemux_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgsticydemux_la_SOURCES) DIST_SOURCES = $(libgsticydemux_la_SOURCES) am__can_run_installinfo = \ @@ -174,6 +209,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -342,6 +394,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgsticydemux.la: $(libgsticydemux_la_OBJECTS) $(libgsticydemux_la_DEPENDENCIES) $(EXTRA_libgsticydemux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsticydemux_la_LINK) -rpath $(plugindir) $(libgsticydemux_la_OBJECTS) $(libgsticydemux_la_LIBADD) $(LIBS) @@ -620,26 +677,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -651,15 +697,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -668,6 +710,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -812,19 +869,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/icydemux/gsticydemux.c b/gst/icydemux/gsticydemux.c index d60de27b8074517efa8cc1ef77f6d48d8b963480..40afd0b72d1ceee38924c6c25b68369174801489 100644 --- a/gst/icydemux/gsticydemux.c +++ b/gst/icydemux/gsticydemux.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -207,6 +207,28 @@ gst_icydemux_dispose (GObject * object) G_OBJECT_CLASS (parent_class)->dispose (object); } +typedef struct +{ + GstCaps *caps; + GstPad *pad; +} CopyStickyEventsData; + +static gboolean +copy_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data) +{ + CopyStickyEventsData *data = user_data; + + if (GST_EVENT_TYPE (*event) >= GST_EVENT_CAPS && data->caps) { + gst_pad_set_caps (data->pad, data->caps); + data->caps = NULL; + } + + if (GST_EVENT_TYPE (*event) != GST_EVENT_CAPS) + gst_pad_push_event (data->pad, gst_event_ref (*event)); + + return TRUE; +} + static gboolean gst_icydemux_add_srcpad (GstICYDemux * icydemux, GstCaps * new_caps) { @@ -225,6 +247,8 @@ gst_icydemux_add_srcpad (GstICYDemux * icydemux, GstCaps * new_caps) } if (icydemux->srcpad == NULL) { + CopyStickyEventsData data; + icydemux->srcpad = gst_pad_new_from_template (gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (icydemux), "src"), "src"); @@ -233,10 +257,12 @@ gst_icydemux_add_srcpad (GstICYDemux * icydemux, GstCaps * new_caps) gst_pad_use_fixed_caps (icydemux->srcpad); gst_pad_set_active (icydemux->srcpad, TRUE); - if (icydemux->src_caps) { - if (!gst_pad_set_caps (icydemux->srcpad, icydemux->src_caps)) - GST_WARNING_OBJECT (icydemux, "Failed to set caps on src pad"); - } + data.pad = icydemux->srcpad; + data.caps = icydemux->src_caps; + gst_pad_sticky_events_foreach (icydemux->sinkpad, copy_sticky_events, + &data); + if (data.caps) + gst_pad_set_caps (data.pad, data.caps); GST_DEBUG_OBJECT (icydemux, "Adding src pad with caps %" GST_PTR_FORMAT, icydemux->src_caps); @@ -383,8 +409,9 @@ gst_icydemux_handle_event (GstPad * pad, GstObject * parent, GstEvent * event) return gst_pad_event_default (pad, parent, event); default: - icydemux->cached_events = g_list_append (icydemux->cached_events, - event); + if (!GST_EVENT_IS_STICKY (event)) + icydemux->cached_events = + g_list_append (icydemux->cached_events, event); return TRUE; } } else { @@ -532,7 +559,12 @@ gst_icydemux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) while (size) { if (icydemux->remaining) { chunk = (size <= icydemux->remaining) ? size : icydemux->remaining; - sub = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, offset, chunk); + if (offset == 0 && chunk == size) { + sub = buf; + buf = NULL; + } else { + sub = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, offset, chunk); + } offset += chunk; icydemux->remaining -= chunk; size -= chunk; @@ -576,7 +608,8 @@ gst_icydemux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) } done: - gst_buffer_unref (buf); + if (buf) + gst_buffer_unref (buf); return ret; diff --git a/gst/icydemux/gsticydemux.h b/gst/icydemux/gsticydemux.h index d48339af2c5c53543a1563d071095e850a2d96bd..3f05218ad58661822494c49008af687e2e0f105d 100644 --- a/gst/icydemux/gsticydemux.h +++ b/gst/icydemux/gsticydemux.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_ICYDEMUX_H__ diff --git a/gst/id3demux/Makefile.in b/gst/id3demux/Makefile.in index 3a99c96becabd02f6065e6d556a7fe88e5ca9b63..9cfd22e80004c3219b2fed00b3f7067538aabd01 100644 --- a/gst/id3demux/Makefile.in +++ b/gst/id3demux/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/id3demux -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -135,10 +161,23 @@ libgstid3demux_la_OBJECTS = $(am_libgstid3demux_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstid3demux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstid3demux_la_CFLAGS) $(CFLAGS) \ $(libgstid3demux_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstid3demux_la_SOURCES) DIST_SOURCES = $(libgstid3demux_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -544,6 +597,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -570,12 +624,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstid3demux.la: $(libgstid3demux_la_OBJECTS) $(libgstid3demux_la_DEPENDENCIES) $(EXTRA_libgstid3demux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstid3demux_la_LINK) -rpath $(plugindir) $(libgstid3demux_la_OBJECTS) $(libgstid3demux_la_LIBADD) $(LIBS) @@ -621,26 +678,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -652,15 +698,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -669,6 +711,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -813,19 +870,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/id3demux/gstid3demux.c b/gst/id3demux/gstid3demux.c index 801781643a651cb958cdf47518ed5b359e0992e9..a55832a522467cb8817b90b69a643c106ca9b808 100644 --- a/gst/id3demux/gstid3demux.c +++ b/gst/id3demux/gstid3demux.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/id3demux/gstid3demux.h b/gst/id3demux/gstid3demux.h index a875502b2f017b51d12301255d09ae77f154a708..9561dfdf2db86258f3ee3d758b6be37d6c94d768 100644 --- a/gst/id3demux/gstid3demux.h +++ b/gst/id3demux/gstid3demux.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_ID3DEMUX_H__ diff --git a/gst/imagefreeze/Makefile.in b/gst/imagefreeze/Makefile.in index ad7b15ba3ef63a90896eafdbbe2b8f2d8542a9c7..2fa0722ff4120c7355384cc7e6adb1965d56efc9 100644 --- a/gst/imagefreeze/Makefile.in +++ b/gst/imagefreeze/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/imagefreeze -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -135,10 +161,23 @@ libgstimagefreeze_la_OBJECTS = $(am_libgstimagefreeze_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstimagefreeze_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstimagefreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstimagefreeze_la_CFLAGS) $(CFLAGS) \ $(libgstimagefreeze_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstimagefreeze_la_SOURCES) DIST_SOURCES = $(libgstimagefreeze_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstimagefreeze.la: $(libgstimagefreeze_la_OBJECTS) $(libgstimagefreeze_la_DEPENDENCIES) $(EXTRA_libgstimagefreeze_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstimagefreeze_la_LINK) -rpath $(plugindir) $(libgstimagefreeze_la_OBJECTS) $(libgstimagefreeze_la_LIBADD) $(LIBS) @@ -619,26 +676,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -650,15 +696,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -667,6 +709,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c index 7c56d0e544f4c985aafdac8649bd0dc56836ebf6..63fe84f5a2be70f796611569beef40322bf28e20 100644 --- a/gst/imagefreeze/gstimagefreeze.c +++ b/gst/imagefreeze/gstimagefreeze.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/imagefreeze/gstimagefreeze.h b/gst/imagefreeze/gstimagefreeze.h index 4a00d1cda2316d35530cb3bf61b116d0c474d865..e03528ada2a3c8c2b3691a5362b4537df7c8092f 100644 --- a/gst/imagefreeze/gstimagefreeze.h +++ b/gst/imagefreeze/gstimagefreeze.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_IMAGE_FREEZE_H__ diff --git a/gst/interleave/Makefile.in b/gst/interleave/Makefile.in index 3c10731eae3d123c883bc1bff1557cb2cf6a1c9c..bc6c4bf992c775d3c398a4333ea2e70331f1607b 100644 --- a/gst/interleave/Makefile.in +++ b/gst/interleave/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/interleave -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstinterleave_la_OBJECTS = $(am_libgstinterleave_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstinterleave_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstinterleave_la_CFLAGS) $(CFLAGS) \ $(libgstinterleave_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstinterleave_la_SOURCES) DIST_SOURCES = $(libgstinterleave_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -544,6 +597,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -570,12 +624,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstinterleave.la: $(libgstinterleave_la_OBJECTS) $(libgstinterleave_la_DEPENDENCIES) $(EXTRA_libgstinterleave_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstinterleave_la_LINK) -rpath $(plugindir) $(libgstinterleave_la_OBJECTS) $(libgstinterleave_la_LIBADD) $(LIBS) @@ -637,26 +694,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -668,15 +714,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -685,6 +727,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -829,19 +886,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/interleave/deinterleave.c b/gst/interleave/deinterleave.c index a98774867dbdd64ae5d20e33524d9fd6cf852ac3..507423122bad211161b04e83724d2ad732495c14 100644 --- a/gst/interleave/deinterleave.c +++ b/gst/interleave/deinterleave.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* TODO: @@ -215,21 +215,42 @@ gst_deinterleave_init (GstDeinterleave * self) gst_element_add_pad (GST_ELEMENT (self), self->sink); } +typedef struct +{ + GstCaps *caps; + GstPad *pad; +} CopyStickyEventsData; + +static gboolean +copy_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data) +{ + CopyStickyEventsData *data = user_data; + + if (GST_EVENT_TYPE (*event) >= GST_EVENT_CAPS && data->caps) { + gst_pad_set_caps (data->pad, data->caps); + data->caps = NULL; + } + + if (GST_EVENT_TYPE (*event) != GST_EVENT_CAPS) + gst_pad_push_event (data->pad, gst_event_ref (*event)); + + return TRUE; +} + static void gst_deinterleave_add_new_pads (GstDeinterleave * self, GstCaps * caps) { GstPad *pad; - guint i; for (i = 0; i < GST_AUDIO_INFO_CHANNELS (&self->audio_info); i++) { gchar *name = g_strdup_printf ("src_%u", i); - GstCaps *srccaps; GstAudioInfo info; GstAudioFormat format = GST_AUDIO_INFO_FORMAT (&self->audio_info); gint rate = GST_AUDIO_INFO_RATE (&self->audio_info); GstAudioChannelPosition position = GST_AUDIO_CHANNEL_POSITION_MONO; + CopyStickyEventsData data; /* Set channel position if we know it */ if (self->keep_positions) @@ -247,7 +268,12 @@ gst_deinterleave_add_new_pads (GstDeinterleave * self, GstCaps * caps) gst_pad_set_query_function (pad, GST_DEBUG_FUNCPTR (gst_deinterleave_src_query)); gst_pad_set_active (pad, TRUE); - gst_pad_set_caps (pad, srccaps); + + data.pad = pad; + data.caps = srccaps; + gst_pad_sticky_events_foreach (self->sink, copy_sticky_events, &data); + if (data.caps) + gst_pad_set_caps (pad, data.caps); gst_element_add_pad (GST_ELEMENT (self), pad); self->srcpads = g_list_prepend (self->srcpads, gst_object_ref (pad)); @@ -266,9 +292,9 @@ gst_deinterleave_set_pads_caps (GstDeinterleave * self, GstCaps * caps) for (l = self->srcpads, i = 0; l; l = l->next, i++) { GstPad *pad = GST_PAD (l->data); - GstCaps *srccaps; GstAudioInfo info; + gst_audio_info_from_caps (&info, caps); if (self->keep_positions) GST_AUDIO_INFO_POSITION (&info, 0) = @@ -430,7 +456,6 @@ static void __remove_channels (GstCaps * caps) { GstStructure *s; - gint i, size; size = gst_caps_get_size (caps); @@ -445,7 +470,6 @@ static void __set_channels (GstCaps * caps, gint channels) { GstStructure *s; - gint i, size; size = gst_caps_get_size (caps); @@ -463,9 +487,7 @@ gst_deinterleave_sink_getcaps (GstPad * pad, GstObject * parent, GstCaps * filter) { GstDeinterleave *self = GST_DEINTERLEAVE (parent); - GstCaps *ret; - GList *l; GST_OBJECT_LOCK (self); @@ -479,7 +501,6 @@ gst_deinterleave_sink_getcaps (GstPad * pad, GstObject * parent, ret = gst_caps_new_any (); for (l = GST_ELEMENT (self)->pads; l != NULL; l = l->next) { GstPad *ourpad = GST_PAD (l->data); - GstCaps *peercaps = NULL, *ourcaps; ourcaps = gst_caps_copy (gst_pad_get_pad_template_caps (ourpad)); @@ -503,7 +524,6 @@ gst_deinterleave_sink_getcaps (GstPad * pad, GstObject * parent, * otherwise assume that the peer accepts everything */ if (peercaps) { GstCaps *intersection; - GstCaps *oldret = ret; __remove_channels (peercaps); @@ -533,7 +553,6 @@ static gboolean gst_deinterleave_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) { GstDeinterleave *self = GST_DEINTERLEAVE (parent); - gboolean ret; GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event), @@ -560,13 +579,14 @@ gst_deinterleave_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) } default: - if (self->srcpads) { - ret = gst_pad_event_default (pad, parent, event); - } else { + if (!self->srcpads && !GST_EVENT_IS_STICKY (event)) { + /* Sticky events are copied when creating a new pad */ GST_OBJECT_LOCK (self); self->pending_events = g_list_append (self->pending_events, event); GST_OBJECT_UNLOCK (self); ret = TRUE; + } else { + ret = gst_pad_event_default (pad, parent, event); } break; } @@ -578,14 +598,12 @@ static gboolean gst_deinterleave_src_query (GstPad * pad, GstObject * parent, GstQuery * query) { GstDeinterleave *self = GST_DEINTERLEAVE (parent); - gboolean res; res = gst_pad_query_default (pad, parent, query); if (res && GST_QUERY_TYPE (query) == GST_QUERY_DURATION) { GstFormat format; - gint64 dur; gst_query_parse_duration (query, &format, &dur); @@ -598,7 +616,6 @@ gst_deinterleave_src_query (GstPad * pad, GstObject * parent, GstQuery * query) dur / GST_AUDIO_INFO_CHANNELS (&self->audio_info)); } else if (res && GST_QUERY_TYPE (query) == GST_QUERY_POSITION) { GstFormat format; - gint64 pos; gst_query_parse_position (query, &format, &pos); @@ -657,49 +674,39 @@ static GstFlowReturn gst_deinterleave_process (GstDeinterleave * self, GstBuffer * buf) { GstFlowReturn ret = GST_FLOW_OK; - guint channels = GST_AUDIO_INFO_CHANNELS (&self->audio_info); - guint pads_pushed = 0, buffers_allocated = 0; - guint nframes = gst_buffer_get_size (buf) / channels / (GST_AUDIO_INFO_WIDTH (&self->audio_info) / 8); - guint bufsize = nframes * (GST_AUDIO_INFO_WIDTH (&self->audio_info) / 8); - guint i; - GList *srcs; - GstBuffer **buffers_out = g_new0 (GstBuffer *, channels); - guint8 *in, *out; - GstMapInfo read_info; - gst_buffer_map (buf, &read_info, GST_MAP_READ); + GList *pending_events, *l; /* Send any pending events to all src pads */ GST_OBJECT_LOCK (self); - if (self->pending_events) { - GList *events; + pending_events = self->pending_events; + self->pending_events = NULL; + GST_OBJECT_UNLOCK (self); + if (pending_events) { GstEvent *event; GST_DEBUG_OBJECT (self, "Sending pending events to all src pads"); - - for (events = self->pending_events; events != NULL; events = events->next) { - event = GST_EVENT (events->data); - + for (l = pending_events; l; l = l->next) { + event = l->data; for (srcs = self->srcpads; srcs != NULL; srcs = srcs->next) gst_pad_push_event (GST_PAD (srcs->data), gst_event_ref (event)); gst_event_unref (event); } - - g_list_free (self->pending_events); - self->pending_events = NULL; + g_list_free (pending_events); } - GST_OBJECT_UNLOCK (self); + + gst_buffer_map (buf, &read_info, GST_MAP_READ); /* Allocate buffers */ for (srcs = self->srcpads, i = 0; srcs; srcs = srcs->next, i++) { @@ -732,16 +739,12 @@ gst_deinterleave_process (GstDeinterleave * self, GstBuffer * buf) GstPad *pad = (GstPad *) srcs->data; GstMapInfo write_info; - in = (guint8 *) read_info.data; in += i * (GST_AUDIO_INFO_WIDTH (&self->audio_info) / 8); if (buffers_out[i]) { gst_buffer_map (buffers_out[i], &write_info, GST_MAP_WRITE); - out = (guint8 *) write_info.data; - self->func (out, in, channels, nframes); - gst_buffer_unmap (buffers_out[i], &write_info); ret = gst_pad_push (pad, buffers_out[i]); @@ -801,7 +804,6 @@ static GstFlowReturn gst_deinterleave_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) { GstDeinterleave *self = GST_DEINTERLEAVE (parent); - GstFlowReturn ret; g_return_val_if_fail (self->func != NULL, GST_FLOW_NOT_NEGOTIATED); diff --git a/gst/interleave/deinterleave.h b/gst/interleave/deinterleave.h index 959fc06499a91b7e517957ca837538114d6efb14..07c1885747ab7a7e07cd1933a9362e72b0368753 100644 --- a/gst/interleave/deinterleave.h +++ b/gst/interleave/deinterleave.h @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __DEINTERLEAVE_H__ diff --git a/gst/interleave/interleave.c b/gst/interleave/interleave.c index 4c46a094f1dff2a6aee0615eabcc9696eccecea7..474e6e8a1d3de6c9afcdc620cce11c4856f2b6d2 100644 --- a/gst/interleave/interleave.c +++ b/gst/interleave/interleave.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* TODO: @@ -296,6 +296,24 @@ gst_interleave_set_channel_positions (GstInterleave * self, GstStructure * s) gst_structure_set (s, "channel-mask", GST_TYPE_BITMASK, channel_mask, NULL); } +static void +gst_interleave_send_stream_start (GstInterleave * self) +{ + GST_OBJECT_LOCK (self); + if (self->send_stream_start) { + gchar s_id[32]; + + self->send_stream_start = FALSE; + GST_OBJECT_UNLOCK (self); + + /* stream-start (FIXME: create id based on input ids) */ + g_snprintf (s_id, sizeof (s_id), "interleave-%08x", g_random_int ()); + gst_pad_push_event (self->src, gst_event_new_stream_start (s_id)); + } else { + GST_OBJECT_UNLOCK (self); + } +} + static void gst_interleave_class_init (GstInterleaveClass * klass) { @@ -386,7 +404,6 @@ gst_interleave_init (GstInterleave * self) gst_pad_set_event_function (self->src, GST_DEBUG_FUNCPTR (gst_interleave_src_event)); - gst_pad_set_active (self->src, TRUE); gst_element_add_pad (GST_ELEMENT (self), self->src); self->collect = gst_collect_pads_new (); @@ -508,8 +525,7 @@ gst_interleave_request_new_pad (GstElement * element, GstPadTemplate * templ, gst_structure_set (s, "channels", G_TYPE_INT, self->channels, NULL); gst_interleave_set_channel_positions (self, s); - /* FIXME: send caps event after stream-start event */ - gst_pad_set_active (self->src, TRUE); + gst_interleave_send_stream_start (self); gst_pad_set_caps (self->src, srccaps); gst_caps_unref (srccaps); @@ -575,7 +591,7 @@ gst_interleave_release_pad (GstElement * element, GstPad * pad) gst_structure_set (s, "channels", G_TYPE_INT, self->channels, NULL); gst_interleave_set_channel_positions (self, s); - gst_pad_set_active (self->src, TRUE); + gst_interleave_send_stream_start (self); gst_pad_set_caps (self->src, srccaps); gst_caps_unref (srccaps); } else { @@ -762,7 +778,7 @@ gst_interleave_sink_setcaps (GstInterleave * self, GstPad * pad, gst_structure_set (s, "channels", G_TYPE_INT, self->channels, NULL); gst_interleave_set_channel_positions (self, s); - gst_pad_set_active (self->src, TRUE); + gst_interleave_send_stream_start (self); res = gst_pad_set_caps (self->src, srccaps); gst_caps_unref (srccaps); @@ -1189,18 +1205,6 @@ gst_interleave_collected (GstCollectPads * pads, GstInterleave * self) GstMapInfo write_info; GstClockTime timestamp = -1; - /* FIXME: send caps and tags after stream-start */ -#if 0 - if (self->send_stream_start) { - gchar s_id[32]; - - /* stream-start (FIXME: create id based on input ids) */ - g_snprintf (s_id, sizeof (s_id), "interleave-%08x", g_random_int ()); - gst_pad_push_event (self->src, gst_event_new_stream_start (s_id)); - self->send_stream_start = FALSE; - } -#endif - size = gst_collect_pads_available (pads); if (size == 0) goto eos; diff --git a/gst/interleave/interleave.h b/gst/interleave/interleave.h index 1e01d3ae4905e7687dd26a7b411dff944a38304e..87a8eedb1d4c598ca921c8a120b54130e73b7ba2 100644 --- a/gst/interleave/interleave.h +++ b/gst/interleave/interleave.h @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __INTERLEAVE_H__ diff --git a/gst/interleave/plugin.c b/gst/interleave/plugin.c index 60b6afaf10acda9f96a4a6adcd169687f602a8da..9eb72905a6420fd260d760d6e1767597bee01f71 100644 --- a/gst/interleave/plugin.c +++ b/gst/interleave/plugin.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/interleave/plugin.h b/gst/interleave/plugin.h index 3e96a7e115977774ff077d920377bde24efe6aca..7956827605d2146f7d0c04e1f1d476b8c5ccb5c7 100644 --- a/gst/interleave/plugin.h +++ b/gst/interleave/plugin.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/isomp4/Makefile.am b/gst/isomp4/Makefile.am index 3e806f9583ae3eef2cc4c0e1924d668d1d0fec41..09887126af547dfaa17ca05145cf9c988967ba11 100644 --- a/gst/isomp4/Makefile.am +++ b/gst/isomp4/Makefile.am @@ -10,7 +10,7 @@ libgstisomp4_la_LIBADD = \ -lgstrtp-@GST_API_VERSION@ \ -lgsttag-@GST_API_VERSION@ \ -lgstpbutils-@GST_API_VERSION@ \ - $(GST_BASE_LIBS) $(GST_LIBS) $(ZLIB_LIBS) + $(GST_BASE_LIBS) $(GST_LIBS) $(ZLIB_LIBS) $(LIBM) libgstisomp4_la_LDFLAGS = ${GST_PLUGIN_LDFLAGS} libgstisomp4_la_SOURCES = isomp4-plugin.c gstrtpxqtdepay.c \ qtdemux.c qtdemux_types.c qtdemux_dump.c qtdemux_lang.c \ diff --git a/gst/isomp4/Makefile.in b/gst/isomp4/Makefile.in index 0af9c6d73273b9fd4596e22a441ae54820cb6026..3eef74c95a0e7cbfb80b764752d8bb574e686474 100644 --- a/gst/isomp4/Makefile.in +++ b/gst/isomp4/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/isomp4 -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -130,7 +156,7 @@ LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstisomp4_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstisomp4_la_OBJECTS = libgstisomp4_la-isomp4-plugin.lo \ libgstisomp4_la-gstrtpxqtdepay.lo libgstisomp4_la-qtdemux.lo \ libgstisomp4_la-qtdemux_types.lo \ @@ -144,10 +170,23 @@ libgstisomp4_la_OBJECTS = $(am_libgstisomp4_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstisomp4_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstisomp4_la_CFLAGS) $(CFLAGS) \ $(libgstisomp4_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -160,20 +199,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstisomp4_la_SOURCES) DIST_SOURCES = $(libgstisomp4_la_SOURCES) am__can_run_installinfo = \ @@ -182,6 +217,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -350,6 +402,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -520,7 +573,7 @@ libgstisomp4_la_LIBADD = \ -lgstrtp-@GST_API_VERSION@ \ -lgsttag-@GST_API_VERSION@ \ -lgstpbutils-@GST_API_VERSION@ \ - $(GST_BASE_LIBS) $(GST_LIBS) $(ZLIB_LIBS) + $(GST_BASE_LIBS) $(GST_LIBS) $(ZLIB_LIBS) $(LIBM) libgstisomp4_la_LDFLAGS = ${GST_PLUGIN_LDFLAGS} libgstisomp4_la_SOURCES = isomp4-plugin.c gstrtpxqtdepay.c \ @@ -586,6 +639,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -612,12 +666,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstisomp4.la: $(libgstisomp4_la_OBJECTS) $(libgstisomp4_la_DEPENDENCIES) $(EXTRA_libgstisomp4_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstisomp4_la_LINK) -rpath $(plugindir) $(libgstisomp4_la_OBJECTS) $(libgstisomp4_la_LIBADD) $(LIBS) @@ -759,26 +816,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -790,15 +836,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -807,6 +849,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -951,19 +1008,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/isomp4/atoms.c b/gst/isomp4/atoms.c index 5f02bdb1fefa1742314c8ce68c8e05b420702a8c..7b9af627ea5a9912f84858c3fc2fcc189276a556 100644 --- a/gst/isomp4/atoms.c +++ b/gst/isomp4/atoms.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/atoms.h b/gst/isomp4/atoms.h index 0998c7364b12b26c65126868dd33d9fbcba5ca4e..d2568479509aa1bceed0be07e494767fda6f406b 100644 --- a/gst/isomp4/atoms.h +++ b/gst/isomp4/atoms.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. @@ -953,7 +953,7 @@ void atom_moov_add_3gp_tag (AtomMOOV * moov, guint32 fourcc, guint8 * void atom_moov_add_xmp_tags (AtomMOOV * moov, GstBuffer * xmp); -#define GST_QT_MUX_DEFAULT_TAG_LANGUAGE "eng" +#define GST_QT_MUX_DEFAULT_TAG_LANGUAGE "und" /* undefined/unknown */ guint16 language_code (const char * lang); #endif /* __ATOMS_H__ */ diff --git a/gst/isomp4/atomsrecovery.c b/gst/isomp4/atomsrecovery.c index ce6533606439caaee356d5fd96bcae93bca9467f..e3459c91dcf8e3a60f8917a4a69fc92cca09ab43 100644 --- a/gst/isomp4/atomsrecovery.c +++ b/gst/isomp4/atomsrecovery.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/atomsrecovery.h b/gst/isomp4/atomsrecovery.h index 4dffc48d33e627e860da1311a1c3c20c506a5935..808d428b36956e6e93c20441d93602d2facc0a8f 100644 --- a/gst/isomp4/atomsrecovery.h +++ b/gst/isomp4/atomsrecovery.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/descriptors.c b/gst/isomp4/descriptors.c index e7d5a5d42bb9575e548db1edf676b8e7ad687d76..73d54e857889524b876c4158ffdff97a861953e1 100644 --- a/gst/isomp4/descriptors.c +++ b/gst/isomp4/descriptors.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/descriptors.h b/gst/isomp4/descriptors.h index cc633a305b7ea1a749cdcbcf73b4c43bdbe56b69..b472523196b8ec2356a61493e56d35a1d95b699a 100644 --- a/gst/isomp4/descriptors.h +++ b/gst/isomp4/descriptors.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/fourcc.h b/gst/isomp4/fourcc.h index 295d17e918d929625b017662ad13d24197b2cc49..bcb182e5282c6ed148fbca77cf1316b5395be3e5 100644 --- a/gst/isomp4/fourcc.h +++ b/gst/isomp4/fourcc.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/ftypcc.h b/gst/isomp4/ftypcc.h index 3d31b6dd0b25e86925b72b17e0b2fd18181b4ead..b8b2c5e67e2731cf8da71c513187107546b1991e 100644 --- a/gst/isomp4/ftypcc.h +++ b/gst/isomp4/ftypcc.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/gstqtmoovrecover.c b/gst/isomp4/gstqtmoovrecover.c index 07fd35a6fe764a5d617585041de189685e3b573f..70c7466f0cceaaf91680490140d85fb6f04612e7 100644 --- a/gst/isomp4/gstqtmoovrecover.c +++ b/gst/isomp4/gstqtmoovrecover.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/gstqtmoovrecover.h b/gst/isomp4/gstqtmoovrecover.h index c37692179c2782e9978962c4a38af485a1443b59..b86c2233ef659f9e7e33a1b178f7b38663563aab 100644 --- a/gst/isomp4/gstqtmoovrecover.h +++ b/gst/isomp4/gstqtmoovrecover.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/gstqtmux-doc.c b/gst/isomp4/gstqtmux-doc.c index 59807ab744fed96bdfc8bd06a41127cd108b6b68..4c89197267faf499f7ec7ced02b174e9c236e573 100644 --- a/gst/isomp4/gstqtmux-doc.c +++ b/gst/isomp4/gstqtmux-doc.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/gstqtmux-doc.h b/gst/isomp4/gstqtmux-doc.h index 48b5d8c4148bb236f4bb28d92dd395d3967b78b5..bb8129450064fba400097ee5f3afa42e8f0870ff 100644 --- a/gst/isomp4/gstqtmux-doc.h +++ b/gst/isomp4/gstqtmux-doc.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index 17019839a1063ec639b48f861688a89739b33759..fa9ac9edb42bf660b9bd7d525b27714222454dd4 100644 --- a/gst/isomp4/gstqtmux.c +++ b/gst/isomp4/gstqtmux.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. @@ -82,18 +82,6 @@ * <link linkend="GstQTMux--streamable">streamable</link> allows foregoing to add * index metadata (at the end of file). * - * <link linkend="GstQTMux--dts-method">dts-method</link> allows selecting a - * method for managing input timestamps (stay tuned for 0.11 to have this - * automagically settled). The default delta/duration method should handle nice - * (aka perfect streams) just fine, but may experience problems otherwise - * (e.g. input stream with re-ordered B-frames and/or with frame dropping). - * The re-ordering approach re-assigns incoming timestamps in ascending order - * to incoming buffers and offers an alternative in such cases. In cases where - * that might fail, the remaining method can be tried, which is exact and - * according to specs, but might experience playback on not so spec-wise players. - * Note that this latter approach also requires one to enable - * <link linkend="GstQTMux--presentation-timestamp">presentation-timestamp</link>. - * * <refsect2> * <title>Example pipelines</title> * |[ @@ -119,7 +107,6 @@ #include <gst/base/gstcollectpads.h> #include <gst/audio/audio.h> #include <gst/video/video.h> -#include <gst/tag/xmpwriter.h> #include <gst/tag/tag.h> #include <sys/types.h> @@ -144,6 +131,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_qt_mux_debug); #define GST_CAT_DEFAULT gst_qt_mux_debug +#ifndef GST_REMOVE_DEPRECATED enum { DTS_METHOD_DD, @@ -173,6 +161,7 @@ gst_qt_mux_dts_method_get_type (void) #define GST_TYPE_QT_MUX_DTS_METHOD \ (gst_qt_mux_dts_method_get_type ()) +#endif /* QTMux signals and args */ enum @@ -191,7 +180,9 @@ enum PROP_MOOV_RECOV_FILE, PROP_FRAGMENT_DURATION, PROP_STREAMABLE, +#ifndef GST_REMOVE_DEPRECATED PROP_DTS_METHOD, +#endif PROP_DO_CTTS, }; @@ -207,7 +198,9 @@ enum #define DEFAULT_MOOV_RECOV_FILE NULL #define DEFAULT_FRAGMENT_DURATION 0 #define DEFAULT_STREAMABLE FALSE +#ifndef GST_REMOVE_DEPRECATED #define DEFAULT_DTS_METHOD DTS_METHOD_REORDER +#endif static void gst_qt_mux_finalize (GObject * object); @@ -312,11 +305,14 @@ gst_qt_mux_class_init (GstQTMuxClass * klass) "Calculate and include presentation/composition time " "(in addition to decoding time)", DEFAULT_DO_CTTS, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); +#ifndef GST_REMOVE_DEPRECATED g_object_class_install_property (gobject_class, PROP_DTS_METHOD, g_param_spec_enum ("dts-method", "dts-method", - "Method to determine DTS time", + "(DEPRECATED) Method to determine DTS time", GST_TYPE_QT_MUX_DTS_METHOD, DEFAULT_DTS_METHOD, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); + G_PARAM_DEPRECATED | G_PARAM_READWRITE | G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS)); +#endif g_object_class_install_property (gobject_class, PROP_FAST_START, g_param_spec_boolean ("faststart", "Format file to faststart", "If the file should be formatted for faststart (headers first)", @@ -357,8 +353,6 @@ gst_qt_mux_class_init (GstQTMuxClass * klass) static void gst_qt_mux_pad_reset (GstQTPad * qtpad) { - gint i; - qtpad->fourcc = 0; qtpad->is_out_of_order = FALSE; qtpad->have_dts = FALSE; @@ -369,18 +363,11 @@ gst_qt_mux_pad_reset (GstQTPad * qtpad) qtpad->prepare_buf_func = NULL; qtpad->avg_bitrate = 0; qtpad->max_bitrate = 0; - qtpad->ts_n_entries = 0; qtpad->total_duration = 0; qtpad->total_bytes = 0; qtpad->buf_head = 0; qtpad->buf_tail = 0; - for (i = 0; i < G_N_ELEMENTS (qtpad->buf_entries); i++) { - if (qtpad->buf_entries[i]) { - gst_buffer_unref (qtpad->buf_entries[i]); - qtpad->buf_entries[i] = NULL; - } - } if (qtpad->last_buf) gst_buffer_replace (&qtpad->last_buf, NULL); @@ -2097,22 +2084,6 @@ init: return ret; } -/* sigh, tiny list helpers to re-order stuff */ -static void -gst_qt_mux_push_ts (GstQTMux * qtmux, GstQTPad * pad, GstClockTime ts) -{ - gint i; - - for (i = 0; (i < QTMUX_NO_OF_TS) && (i < pad->ts_n_entries); i++) { - if (ts > pad->ts_entries[i]) - break; - } - memmove (&pad->ts_entries[i + 1], &pad->ts_entries[i], - sizeof (GstClockTime) * (pad->ts_n_entries - i)); - pad->ts_entries[i] = ts; - pad->ts_n_entries++; -} - static void check_and_subtract_ts (GstQTMux * qtmux, GstClockTime * ts_a, GstClockTime ts_b) { @@ -2127,57 +2098,6 @@ check_and_subtract_ts (GstQTMux * qtmux, GstClockTime * ts_a, GstClockTime ts_b) } } -/* subtract ts from all buffers enqueued on the pad */ -static void -gst_qt_mux_subtract_ts (GstQTMux * qtmux, GstQTPad * pad, GstClockTime ts) -{ - gint i; - - for (i = 0; (i < QTMUX_NO_OF_TS) && (i < pad->ts_n_entries); i++) { - check_and_subtract_ts (qtmux, &pad->ts_entries[i], ts); - } - for (i = 0; i < G_N_ELEMENTS (pad->buf_entries); i++) { - if (pad->buf_entries[i]) { - check_and_subtract_ts (qtmux, &GST_BUFFER_TIMESTAMP (pad->buf_entries[i]), - ts); - check_and_subtract_ts (qtmux, - &GST_BUFFER_OFFSET_END (pad->buf_entries[i]), ts); - } - } -} - -/* takes ownership of @buf */ -static GstBuffer * -gst_qt_mux_get_asc_buffer_ts (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) -{ - const gint wrap = G_N_ELEMENTS (pad->buf_entries); - GstClockTime ts; - - /* store buffer and ts, latter ordered */ - if (buf) { - pad->buf_entries[pad->buf_tail++] = buf; - pad->buf_tail %= wrap; - gst_qt_mux_push_ts (qtmux, pad, GST_BUFFER_TIMESTAMP (buf)); - } - - if (pad->ts_n_entries && (!buf || pad->ts_n_entries >= QTMUX_NO_OF_TS)) { - ts = pad->ts_entries[--pad->ts_n_entries]; - buf = pad->buf_entries[pad->buf_head]; - pad->buf_entries[pad->buf_head++] = NULL; - pad->buf_head %= wrap; - buf = gst_buffer_make_writable (buf); - /* track original ts (= pts ?) for later */ - GST_BUFFER_OFFSET_END (buf) = GST_BUFFER_TIMESTAMP (buf); - GST_BUFFER_TIMESTAMP (buf) = ts; - GST_DEBUG_OBJECT (qtmux, "next buffer uses reordered ts %" GST_TIME_FORMAT, - GST_TIME_ARGS (ts)); - } else { - buf = NULL; - } - - return buf; -} - /* * Here we push the buffer and update the tables in the track atoms */ @@ -2191,7 +2111,6 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) gint64 last_dts, scaled_duration; gint64 pts_offset = 0; gboolean sync = FALSE, do_pts = FALSE; - gboolean drain = (buf == NULL); GstFlowReturn ret = GST_FLOW_OK; if (!pad->fourcc) @@ -2205,20 +2124,11 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) if (G_LIKELY (buf != NULL && GST_CLOCK_TIME_IS_VALID (pad->first_ts) && pad->first_ts != 0)) { buf = gst_buffer_make_writable (buf); - check_and_subtract_ts (qtmux, &GST_BUFFER_TIMESTAMP (buf), pad->first_ts); + check_and_subtract_ts (qtmux, &GST_BUFFER_DTS (buf), pad->first_ts); + check_and_subtract_ts (qtmux, &GST_BUFFER_PTS (buf), pad->first_ts); } - /* when we obtain the first_ts we subtract from all stored buffers we have, - * after that we can subtract on input */ -again: last_buf = pad->last_buf; - if (qtmux->dts_method == DTS_METHOD_REORDER) { - buf = gst_qt_mux_get_asc_buffer_ts (qtmux, pad, buf); - if (!buf && !last_buf) { - GST_DEBUG_OBJECT (qtmux, "no reordered buffer"); - return GST_FLOW_OK; - } - } if (last_buf == NULL) { #ifndef GST_DISABLE_GST_DEBUG @@ -2237,58 +2147,19 @@ again: } else gst_buffer_ref (last_buf); - /* nasty heuristic mess to guestimate dealing with DTS/PTS, - * while also trying to stay close to input ts to preserve sync, - * so in DTS_METHOD_DD: - * - prefer using input ts where possible - * - if those detected out-of-order (*), mark as out-of-order - * - if in out-of-order, then - * - if duration available, use that as delta - * Also mind to preserve sync between streams, and adding - * durations might drift, so try to resync when we expect - * input ts == (sum of durations), which is at some keyframe input frame. - * - if no duration available, we are actually in serious trouble and need - * to hack around that, so we fail. - * To remedy failure, alternatively, in DTS_METHOD_REORDER: - * - collect some buffers and re-order timestamp, - * then process the oldest buffer with smallest timestamps. - * This should typically compensate for some codec's handywork with ts. - * ... but in case this makes ts end up where not expected, in DTS_METHOD_ASC: - * - keep each ts with its buffer and still keep a list of most recent X ts, - * use the (ascending) minimum of those as DTS (and the difference as ts delta), - * and use this DTS as a basis to obtain a (positive) CTS offset. - * This should yield exact PTS == buffer ts, but it seems not all players - * out there are aware of ctts pts ... - * - * 0.11 Phew, can we (pretty) please please sort out DTS/PTS on buffers ... - */ - if (G_LIKELY (buf) && !pad->is_out_of_order) { - if (G_LIKELY (GST_BUFFER_TIMESTAMP_IS_VALID (last_buf) && - GST_BUFFER_TIMESTAMP_IS_VALID (buf))) { - if ((GST_BUFFER_TIMESTAMP (buf) < GST_BUFFER_TIMESTAMP (last_buf))) { - GST_DEBUG_OBJECT (qtmux, "detected out-of-order input"); - pad->is_out_of_order = TRUE; - } - } else { - /* this is pretty bad */ - GST_WARNING_OBJECT (qtmux, "missing input timestamp"); - /* fall back to durations */ - pad->is_out_of_order = TRUE; - } - } - - /* would have to be some unusual input, but not impossible */ - if (G_UNLIKELY (qtmux->dts_method == DTS_METHOD_REORDER && - pad->is_out_of_order)) { - goto no_order; - } - /* if this is the first buffer, store the timestamp */ if (G_UNLIKELY (pad->first_ts == GST_CLOCK_TIME_NONE) && last_buf) { - if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (last_buf))) { - pad->first_ts = GST_BUFFER_TIMESTAMP (last_buf); + if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (last_buf))) { + pad->first_ts = GST_BUFFER_PTS (last_buf); + GST_DEBUG ("setting first_ts to %" G_GUINT64_FORMAT, pad->first_ts); + check_and_subtract_ts (qtmux, &GST_BUFFER_DTS (last_buf), pad->first_ts); + check_and_subtract_ts (qtmux, &GST_BUFFER_PTS (last_buf), pad->first_ts); + if (buf) { + check_and_subtract_ts (qtmux, &GST_BUFFER_DTS (buf), pad->first_ts); + check_and_subtract_ts (qtmux, &GST_BUFFER_PTS (buf), pad->first_ts); + } } else { - GST_DEBUG_OBJECT (qtmux, "First buffer for pad %s has no timestamp, " + GST_ERROR_OBJECT (qtmux, "First buffer for pad %s has no timestamp, " "using 0 as first timestamp", GST_PAD_NAME (pad->collect.pad)); pad->first_ts = 0; } @@ -2296,75 +2167,30 @@ again: GST_TIME_FORMAT, GST_PAD_NAME (pad->collect.pad), GST_TIME_ARGS (pad->first_ts)); - gst_qt_mux_subtract_ts (qtmux, pad, pad->first_ts); - - GST_BUFFER_TIMESTAMP (last_buf) = 0; - check_and_subtract_ts (qtmux, &GST_BUFFER_OFFSET_END (last_buf), - pad->first_ts); - if (buf) { - check_and_subtract_ts (qtmux, &GST_BUFFER_TIMESTAMP (buf), pad->first_ts); - check_and_subtract_ts (qtmux, &GST_BUFFER_OFFSET_END (buf), - pad->first_ts); - } } - /* fall back to duration if last buffer or - * out-of-order (determined previously), otherwise use input ts */ - if (buf == NULL || - (pad->is_out_of_order && qtmux->dts_method == DTS_METHOD_DD)) { - if (!GST_BUFFER_DURATION_IS_VALID (last_buf)) { - /* be forgiving for some possibly last upstream flushed buffer */ - if (buf) - goto no_time; - GST_WARNING_OBJECT (qtmux, "no duration for last buffer"); - /* iso spec recommends some small value, try 0 */ - duration = 0; - } else { - duration = GST_BUFFER_DURATION (last_buf); - /* avoid drift in sum timestamps, - * so use input timestamp for suitable keyframe */ - if (buf && !GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT) && - GST_BUFFER_TIMESTAMP (buf) >= pad->last_dts) { - GST_DEBUG_OBJECT (qtmux, "resyncing out-of-order input to ts; " - "replacing %" GST_TIME_FORMAT " by %" GST_TIME_FORMAT, - GST_TIME_ARGS (pad->last_dts + duration), - GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); - duration = GST_BUFFER_TIMESTAMP (buf) - pad->last_dts; - } - } - } else if (qtmux->dts_method != DTS_METHOD_ASC) { - duration = GST_BUFFER_TIMESTAMP (buf) - GST_BUFFER_TIMESTAMP (last_buf); - } else { - GstClockTime ts; - - g_assert (qtmux->dts_method == DTS_METHOD_ASC); - if (!qtmux->guess_pts) - goto need_pts; - - /* add timestamp to queue; keeps in descending order */ - gst_qt_mux_push_ts (qtmux, pad, GST_BUFFER_TIMESTAMP (last_buf)); - /* chuck out smallest/last one if we have enough */ - if (G_LIKELY (pad->ts_n_entries > QTMUX_NO_OF_TS)) - pad->ts_n_entries--; - /* peek the now smallest timestamp */ - ts = pad->ts_entries[pad->ts_n_entries - 1]; - /* these tails are expected to be (strictly) ascending with - * large enough history */ - GST_DEBUG_OBJECT (qtmux, "ASC method; base timestamp %" GST_TIME_FORMAT, - GST_TIME_ARGS (ts)); - if (ts >= pad->last_dts) { - duration = ts - pad->last_dts; - } else { - /* fallback to previous value, negative ct offset might handle */ - GST_WARNING_OBJECT (qtmux, "unexpected decrease in timestamp"); - duration = 0; - } - /* arrange for small non-zero duration/delta << expected frame time */ - ts = gst_util_uint64_scale (10, GST_SECOND, - atom_trak_get_timescale (pad->trak)); - duration = MAX (duration, ts); + if (last_buf && buf && GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (buf)) && + GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (last_buf)) && + GST_BUFFER_DTS (buf) < GST_BUFFER_DTS (last_buf)) { + GST_ERROR ("decreasing DTS value %" GST_TIME_FORMAT " < %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_DTS (buf)), + GST_TIME_ARGS (GST_BUFFER_DTS (last_buf))); + GST_BUFFER_DTS (buf) = GST_BUFFER_DTS (last_buf); } + /* duration actually means time delta between samples, so we calculate + * the duration based on the difference in DTS or PTS, falling back + * to DURATION if the other two don't exist, such as with the last + * sample before EOS. */ + if (last_buf && buf && GST_BUFFER_DTS_IS_VALID (buf) + && GST_BUFFER_DTS_IS_VALID (last_buf)) + duration = GST_BUFFER_DTS (buf) - GST_BUFFER_DTS (last_buf); + else if (last_buf && buf && GST_BUFFER_PTS_IS_VALID (buf) + && GST_BUFFER_PTS_IS_VALID (last_buf)) + duration = GST_BUFFER_PTS (buf) - GST_BUFFER_PTS (last_buf); + else + duration = GST_BUFFER_DURATION (last_buf); + /* for computing the avg bitrate */ if (G_LIKELY (last_buf)) { pad->total_bytes += gst_buffer_get_size (last_buf); @@ -2402,7 +2228,12 @@ again: sample_size = gst_buffer_get_size (last_buf); if (pad->have_dts) { gint64 scaled_dts; - pad->last_dts = GST_BUFFER_OFFSET_END (last_buf); + if (pad->last_buf) { + pad->last_dts = GST_BUFFER_DTS (pad->last_buf); + } else { + pad->last_dts = GST_BUFFER_DTS (last_buf) + + GST_BUFFER_DURATION (last_buf); + } if ((gint64) (pad->last_dts) < 0) { scaled_dts = -gst_util_uint64_scale_round (-pad->last_dts, atom_trak_get_timescale (pad->trak), GST_SECOND); @@ -2440,27 +2271,25 @@ again: sync = TRUE; } - /* optionally calculate ctts entry values - * (if composition-time expected different from decoding-time) */ - /* really not recommended: - * - decoder typically takes care of dts/pts issues - * - in case of out-of-order, dts may only be determined as above - * (e.g. sum of duration), which may be totally different from - * buffer timestamps in case of multiple segment, non-perfect streams - * (and just perhaps maybe with some luck segment_to_running_time - * or segment_to_media_time might get near to it) */ - if ((pad->have_dts || qtmux->guess_pts)) { - guint64 pts; - - pts = qtmux->dts_method == DTS_METHOD_REORDER ? - GST_BUFFER_OFFSET_END (last_buf) : GST_BUFFER_TIMESTAMP (last_buf); - pts = gst_util_uint64_scale_round (pts, + if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (last_buf))) { + do_pts = TRUE; + last_dts = gst_util_uint64_scale_round (GST_BUFFER_DTS (last_buf), atom_trak_get_timescale (pad->trak), GST_SECOND); - pts_offset = (gint64) (pts - last_dts); + pts_offset = + (gint64) (gst_util_uint64_scale_round (GST_BUFFER_PTS (last_buf), + atom_trak_get_timescale (pad->trak), GST_SECOND) - last_dts); + + } else { + pts_offset = 0; do_pts = TRUE; - GST_LOG_OBJECT (qtmux, "Adding ctts entry for pad %s: %" G_GINT64_FORMAT, - GST_PAD_NAME (pad->collect.pad), pts_offset); + last_dts = gst_util_uint64_scale_round (GST_BUFFER_PTS (last_buf), + atom_trak_get_timescale (pad->trak), GST_SECOND); } + GST_DEBUG ("dts: %" GST_TIME_FORMAT " pts: %" GST_TIME_FORMAT + " timebase_dts: %d pts_offset: %d", + GST_TIME_ARGS (GST_BUFFER_DTS (last_buf)), + GST_TIME_ARGS (GST_BUFFER_PTS (last_buf)), + (int) (last_dts), (int) (pts_offset)); /* * Each buffer starts a new chunk, so we can assume the buffer @@ -2501,11 +2330,6 @@ again: } exit: - if (G_UNLIKELY (drain && qtmux->dts_method == DTS_METHOD_REORDER && - ret == GST_FLOW_OK)) { - buf = NULL; - goto again; - } return ret; @@ -2517,25 +2341,6 @@ bail: gst_buffer_unref (last_buf); return GST_FLOW_ERROR; } -no_time: - { - GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL), - ("Received buffer without timestamp/duration. " - "Using e.g. dts-method=reorder might help.")); - goto bail; - } -no_order: - { - GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL), - ("DTS method failed to re-order timestamps.")); - goto bail; - } -need_pts: - { - GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL), - ("Selected DTS method also needs PTS enabled.")); - goto bail; - } fragmented_sample: { GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL), @@ -2577,7 +2382,7 @@ gst_qt_mux_handle_buffer (GstCollectPads * pads, GstCollectData * cdata, /* clipping already converted to running time */ if (best_pad != NULL) { g_assert (buf); - best_time = GST_BUFFER_TIMESTAMP (buf); + best_time = GST_BUFFER_PTS (buf); GST_LOG_OBJECT (qtmux, "selected pad %s with time %" GST_TIME_FORMAT, GST_PAD_NAME (best_pad->collect.pad), GST_TIME_ARGS (best_time)); ret = gst_qt_mux_add_buffer (qtmux, best_pad, buf); @@ -3124,6 +2929,7 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps) ext_atom = build_codec_data_extension (FOURCC_avcC, codec_data); if (ext_atom != NULL) ext_atom_list = g_list_prepend (ext_atom_list, ext_atom); + qtpad->have_dts = TRUE; } else if (strcmp (mimetype, "video/x-svq") == 0) { gint version = 0; const GstBuffer *seqh = NULL; @@ -3480,9 +3286,11 @@ gst_qt_mux_get_property (GObject * object, case PROP_DO_CTTS: g_value_set_boolean (value, qtmux->guess_pts); break; +#ifndef GST_REMOVE_DEPRECATED case PROP_DTS_METHOD: g_value_set_enum (value, qtmux->dts_method); break; +#endif case PROP_FAST_START: g_value_set_boolean (value, qtmux->fast_start); break; @@ -3535,9 +3343,11 @@ gst_qt_mux_set_property (GObject * object, case PROP_DO_CTTS: qtmux->guess_pts = g_value_get_boolean (value); break; +#ifndef GST_REMOVE_DEPRECATED case PROP_DTS_METHOD: qtmux->dts_method = g_value_get_enum (value); break; +#endif case PROP_FAST_START: qtmux->fast_start = g_value_get_boolean (value); break; diff --git a/gst/isomp4/gstqtmux.h b/gst/isomp4/gstqtmux.h index a0d2b53301da31b3027592c6b8fb98c200780e96..e61831d87954cfd6dc6174057ac98d91a55e879d 100644 --- a/gst/isomp4/gstqtmux.h +++ b/gst/isomp4/gstqtmux.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. @@ -108,9 +108,6 @@ struct _GstQTPad /* store the first timestamp for comparing with other streams and * know if there are late streams */ GstClockTime first_ts; - GstClockTime ts_entries[QTMUX_NO_OF_TS + 2]; - guint ts_n_entries; - GstBuffer *buf_entries[QTMUX_NO_OF_TS + 2]; guint buf_head; guint buf_tail; @@ -186,7 +183,9 @@ struct _GstQTMux AtomsTreeFlavor flavor; gboolean fast_start; gboolean guess_pts; +#ifndef GST_REMOVE_DEPRECATED gint dts_method; +#endif gchar *fast_start_file_path; gchar *moov_recov_file_path; guint32 fragment_duration; diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c index ef703054e65ccebae685fe877a55ae472965c350..b739a7c8be959b2b5ecca6719c17472bb1ebbd2f 100644 --- a/gst/isomp4/gstqtmuxmap.c +++ b/gst/isomp4/gstqtmuxmap.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/gstqtmuxmap.h b/gst/isomp4/gstqtmuxmap.h index f069a2f1dd4524fffc6466cd8b7fea61c34c66f2..1c5829c52a6ff3c9b569eb5f76d3b993ae3bef98 100644 --- a/gst/isomp4/gstqtmuxmap.h +++ b/gst/isomp4/gstqtmuxmap.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/gstrtpxqtdepay.c b/gst/isomp4/gstrtpxqtdepay.c index 5f02eafe9ff71e53ddd2a2c1cfbd2eb54d8f73d2..54baf09ad20f154bad46b50c8db94d9e4f1cb011 100644 --- a/gst/isomp4/gstrtpxqtdepay.c +++ b/gst/isomp4/gstrtpxqtdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/isomp4/gstrtpxqtdepay.h b/gst/isomp4/gstrtpxqtdepay.h index a26ad651259493ce70bba92bc43e27f169ba634f..ca4e41a47c550a9bb5f1544ac9e4161c9d03cf44 100644 --- a/gst/isomp4/gstrtpxqtdepay.h +++ b/gst/isomp4/gstrtpxqtdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_XQT_DEPAY_H__ diff --git a/gst/isomp4/isomp4-plugin.c b/gst/isomp4/isomp4-plugin.c index b0fe3266256882d47b347c16e18a60fd5279d033..27af5d91eaebb1998a96e41496dd4a41dfe893cb 100644 --- a/gst/isomp4/isomp4-plugin.c +++ b/gst/isomp4/isomp4-plugin.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/isomp4/properties.c b/gst/isomp4/properties.c index 8dafb2e2142620e54c4b4555417d517478b0d903..cb43e295e5e775e1f348d1a53e1abcd23df88a75 100644 --- a/gst/isomp4/properties.c +++ b/gst/isomp4/properties.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/properties.h b/gst/isomp4/properties.h index ad67e0da036442688d18c923cf03fd957f49d946..443288c54965dda8860810f710abdb2d0d2c836f 100644 --- a/gst/isomp4/properties.h +++ b/gst/isomp4/properties.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/isomp4/qtatomparser.h b/gst/isomp4/qtatomparser.h index 06bb3447bd5f3e5a83ed54fcf5aee56e3bcd1db2..89bab50d8ea00e354cf8345c5fb17b40033745eb 100644 --- a/gst/isomp4/qtatomparser.h +++ b/gst/isomp4/qtatomparser.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef QT_ATOM_PARSER_H diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 256d8e093a864baf353488f24e40f8b35aa3907c..ca5f9d5a7a4f0085e7f7418b6e34ce0e29f040bd 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -70,6 +70,9 @@ #include <stdlib.h> #include <string.h> +#include <math.h> +#include <gst/math-compat.h> + #ifdef HAVE_ZLIB # include <zlib.h> #endif @@ -200,6 +203,9 @@ struct _QtDemuxStream GstCaps *caps; guint32 fourcc; + gboolean new_caps; + gboolean new_stream; /* signals that a stream_start is required */ + /* if the stream has a redirect URI in its headers, we store it here */ gchar *redirect_uri; @@ -219,6 +225,8 @@ struct _QtDemuxStream gboolean all_keyframe; /* TRUE when all samples are keyframes (no stss) */ guint32 min_duration; /* duration in timescale of first sample, used for figuring out the framerate, in timescale units */ + guint32 offset_in_sample; + guint32 max_buffer_size; /* if we use chunks or samples */ gboolean sampled; @@ -413,6 +421,9 @@ static GstFlowReturn gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf); static gboolean gst_qtdemux_handle_sink_event (GstPad * pad, GstObject * parent, GstEvent * event); +static gboolean gst_qtdemux_setcaps (GstQTDemux * qtdemux, GstCaps * caps); +static gboolean gst_qtdemux_configure_stream (GstQTDemux * qtdemux, + QtDemuxStream * stream); static gboolean qtdemux_parse_moov (GstQTDemux * qtdemux, const guint8 * buffer, guint length); @@ -438,6 +449,12 @@ static GstCaps *qtdemux_generic_caps (GstQTDemux * qtdemux, static gboolean qtdemux_parse_samples (GstQTDemux * qtdemux, QtDemuxStream * stream, guint32 n); static GstFlowReturn qtdemux_expose_streams (GstQTDemux * qtdemux); +static void gst_qtdemux_stream_free (GstQTDemux * qtdemux, + QtDemuxStream * stream); +static void gst_qtdemux_stream_clear (QtDemuxStream * stream); +static GstFlowReturn qtdemux_prepare_streams (GstQTDemux * qtdemux); +static void qtdemux_do_allocation (GstQTDemux * qtdemux, + QtDemuxStream * stream); static void gst_qtdemux_class_init (GstQTDemuxClass * klass) @@ -500,6 +517,12 @@ gst_qtdemux_init (GstQTDemux * qtdemux) qtdemux->got_moov = FALSE; qtdemux->mdatoffset = GST_CLOCK_TIME_NONE; qtdemux->mdatbuffer = NULL; + qtdemux->fragment_start = -1; + qtdemux->media_caps = NULL; + qtdemux->exposed = FALSE; + qtdemux->mss_mode = FALSE; + qtdemux->pending_newsegment = NULL; + qtdemux->upstream_newsegment = FALSE; gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME); GST_OBJECT_FLAG_SET (qtdemux, GST_ELEMENT_FLAG_INDEXABLE); @@ -728,7 +751,6 @@ gst_qtdemux_handle_src_query (GstPad * pad, GstObject * parent, res = gst_pad_query_default (pad, parent, query); if (!res) { gint64 duration = -1; - gst_qtdemux_get_duration (qtdemux, &duration); if (duration > 0) { gst_query_set_duration (query, GST_FORMAT_TIME, duration); @@ -760,29 +782,60 @@ gst_qtdemux_handle_src_query (GstPad * pad, GstObject * parent, GstFormat fmt; gboolean seekable; - gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL); - if (fmt == GST_FORMAT_TIME) { - gint64 duration = -1; - - gst_qtdemux_get_duration (qtdemux, &duration); - seekable = TRUE; - if (!qtdemux->pullbased) { - GstQuery *q; - - /* we might be able with help from upstream */ - seekable = FALSE; - q = gst_query_new_seeking (GST_FORMAT_BYTES); - if (gst_pad_peer_query (qtdemux->sinkpad, q)) { - gst_query_parse_seeking (q, &fmt, &seekable, NULL, NULL); - GST_LOG_OBJECT (qtdemux, "upstream BYTE seekable %d", seekable); + /* try upstream first */ + res = gst_pad_query_default (pad, parent, query); + + if (!res) { + gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL); + if (fmt == GST_FORMAT_TIME) { + gint64 duration = -1; + + gst_qtdemux_get_duration (qtdemux, &duration); + seekable = TRUE; + if (!qtdemux->pullbased) { + GstQuery *q; + + /* we might be able with help from upstream */ + seekable = FALSE; + q = gst_query_new_seeking (GST_FORMAT_BYTES); + if (gst_pad_peer_query (qtdemux->sinkpad, q)) { + gst_query_parse_seeking (q, &fmt, &seekable, NULL, NULL); + GST_LOG_OBJECT (qtdemux, "upstream BYTE seekable %d", seekable); + } + gst_query_unref (q); } - gst_query_unref (q); + gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, 0, duration); + res = TRUE; } - gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, 0, duration); - res = TRUE; } break; } + case GST_QUERY_SEGMENT: + { + GstFormat format; + gint64 start, stop; + + format = qtdemux->segment.format; + + start = + gst_segment_to_stream_time (&qtdemux->segment, format, + qtdemux->segment.start); + if ((stop = qtdemux->segment.stop) == -1) + stop = qtdemux->segment.duration; + else + stop = gst_segment_to_stream_time (&qtdemux->segment, format, stop); + + if (qtdemux->segment.rate < 0.0) { + gint64 tmp; + tmp = stop; + stop = start; + start = tmp; + } + + gst_query_set_segment (query, qtdemux->segment.rate, format, start, stop); + res = TRUE; + break; + } default: res = gst_pad_query_default (pad, parent, query); break; @@ -830,6 +883,7 @@ gst_qtdemux_push_event (GstQTDemux * qtdemux, GstEvent * event) for (n = 0; n < qtdemux->n_streams; n++) { GstPad *pad; QtDemuxStream *stream = qtdemux->streams[n]; + GST_DEBUG_OBJECT (qtdemux, "pushing on pad %i", n); if ((pad = stream->pad)) { has_valid_stream = TRUE; @@ -860,6 +914,7 @@ gst_qtdemux_push_pending_newsegment (GstQTDemux * qtdemux) if (qtdemux->pending_newsegment) { gst_qtdemux_push_event (qtdemux, qtdemux->pending_newsegment); qtdemux->pending_newsegment = NULL; + qtdemux->upstream_newsegment = FALSE; } } @@ -1089,6 +1144,7 @@ gst_qtdemux_move_stream (GstQTDemux * qtdemux, QtDemuxStream * str, /* position changed, we have a discont */ str->sample_index = index; + str->offset_in_sample = 0; /* Each time we move in the stream we store the position where we are * starting from */ str->from_sample = index; @@ -1327,6 +1383,7 @@ gst_qtdemux_perform_seek (GstQTDemux * qtdemux, GstSegment * segment) stream->time_position = desired_offset; stream->sample_index = -1; + stream->offset_in_sample = 0; stream->segment_index = -1; stream->last_ret = GST_FLOW_OK; stream->sent_eos = FALSE; @@ -1478,6 +1535,14 @@ gst_qtdemux_handle_src_event (GstPad * pad, GstObject * parent, #ifndef GST_DISABLE_GST_DEBUG GstClockTime ts = gst_util_get_timestamp (); #endif + + if (qtdemux->mss_mode || qtdemux->fragmented) { + /* seek should be handled by upstream, we might need to re-download fragments */ + GST_DEBUG_OBJECT (qtdemux, + "leting upstream handle seek for smoothstreaming"); + goto upstream; + } + /* Build complete index for seeking; * if not a fragmented file at least */ if (!qtdemux->fragmented) @@ -1510,6 +1575,7 @@ gst_qtdemux_handle_src_event (GstPad * pad, GstObject * parent, gst_event_unref (event); break; default: + upstream: res = gst_pad_event_default (pad, parent, event); break; } @@ -1599,6 +1665,184 @@ gst_qtdemux_find_sample (GstQTDemux * qtdemux, gint64 byte_pos, gboolean fw, *_index = index; } +static QtDemuxStream * +_create_stream (void) +{ + QtDemuxStream *stream; + + stream = g_new0 (QtDemuxStream, 1); + /* new streams always need a discont */ + stream->discont = TRUE; + /* we enable clipping for raw audio/video streams */ + stream->need_clip = FALSE; + stream->need_process = FALSE; + stream->segment_index = -1; + stream->time_position = 0; + stream->sample_index = -1; + stream->offset_in_sample = 0; + stream->last_ret = GST_FLOW_OK; + stream->new_stream = TRUE; + return stream; +} + +static gboolean +gst_qtdemux_setcaps (GstQTDemux * demux, GstCaps * caps) +{ + GstStructure *structure; + const gchar *variant; + const GstCaps *mediacaps = NULL; + + GST_DEBUG_OBJECT (demux, "Sink set caps: %" GST_PTR_FORMAT, caps); + + structure = gst_caps_get_structure (caps, 0); + variant = gst_structure_get_string (structure, "variant"); + + if (variant && strcmp (variant, "mss-fragmented") == 0) { + QtDemuxStream *stream; + const GValue *value; + + demux->fragmented = TRUE; + demux->mss_mode = TRUE; + + if (demux->n_streams > 1) { + /* can't do this, we can only renegotiate for another mss format */ + return FALSE; + } + + value = gst_structure_get_value (structure, "media-caps"); + /* create stream */ + if (value) { + const GValue *timescale_v; + + /* TODO update when stream changes during playback */ + + if (demux->n_streams == 0) { + stream = _create_stream (); + demux->streams[demux->n_streams] = stream; + demux->n_streams = 1; + } else { + stream = demux->streams[0]; + } + + timescale_v = gst_structure_get_value (structure, "timescale"); + if (timescale_v) { + stream->timescale = g_value_get_uint64 (timescale_v); + } else { + /* default mss timescale */ + stream->timescale = 10000000; + } + demux->timescale = stream->timescale; + + mediacaps = gst_value_get_caps (value); + if (!stream->caps || !gst_caps_is_equal_fixed (mediacaps, stream->caps)) { + GST_DEBUG_OBJECT (demux, "We have a new caps %" GST_PTR_FORMAT, + mediacaps); + stream->new_caps = TRUE; + } + gst_caps_replace (&stream->caps, (GstCaps *) mediacaps); + structure = gst_caps_get_structure (mediacaps, 0); + if (g_str_has_prefix (gst_structure_get_name (structure), "video")) { + stream->subtype = FOURCC_vide; + + gst_structure_get_int (structure, "width", &stream->width); + gst_structure_get_int (structure, "height", &stream->height); + gst_structure_get_fraction (structure, "framerate", &stream->fps_n, + &stream->fps_d); + } else if (g_str_has_prefix (gst_structure_get_name (structure), "audio")) { + gint rate = 0; + stream->subtype = FOURCC_soun; + gst_structure_get_int (structure, "channels", &stream->n_channels); + gst_structure_get_int (structure, "rate", &rate); + stream->rate = rate; + } + } + gst_caps_replace (&demux->media_caps, (GstCaps *) mediacaps); + } + + return TRUE; +} + +static void +gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard) +{ + gint n; + + GST_DEBUG_OBJECT (qtdemux, "Resetting demux"); + gst_pad_stop_task (qtdemux->sinkpad); + + if (hard || qtdemux->mss_mode) { + qtdemux->state = QTDEMUX_STATE_INITIAL; + qtdemux->neededbytes = 16; + qtdemux->todrop = 0; + qtdemux->pullbased = FALSE; + qtdemux->posted_redirect = FALSE; + qtdemux->first_mdat = -1; + qtdemux->header_size = 0; + qtdemux->mdatoffset = GST_CLOCK_TIME_NONE; + if (qtdemux->mdatbuffer) + gst_buffer_unref (qtdemux->mdatbuffer); + qtdemux->mdatbuffer = NULL; + qtdemux->mdatleft = 0; + if (qtdemux->comp_brands) + gst_buffer_unref (qtdemux->comp_brands); + qtdemux->comp_brands = NULL; + if (qtdemux->moov_node) + g_node_destroy (qtdemux->moov_node); + qtdemux->moov_node = NULL; + qtdemux->moov_node_compressed = NULL; + if (qtdemux->tag_list) + gst_mini_object_unref (GST_MINI_OBJECT_CAST (qtdemux->tag_list)); + qtdemux->tag_list = NULL; +#if 0 + if (qtdemux->element_index) + gst_object_unref (qtdemux->element_index); + qtdemux->element_index = NULL; +#endif + qtdemux->major_brand = 0; + gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME); + if (qtdemux->pending_newsegment) + gst_object_unref (qtdemux->pending_newsegment); + qtdemux->pending_newsegment = NULL; + qtdemux->upstream_newsegment = TRUE; + qtdemux->requested_seek_time = GST_CLOCK_TIME_NONE; + qtdemux->seek_offset = 0; + qtdemux->upstream_seekable = FALSE; + qtdemux->upstream_size = 0; + + qtdemux->fragment_start = -1; + qtdemux->duration = 0; + qtdemux->mfra_offset = 0; + qtdemux->moof_offset = 0; + } + qtdemux->offset = 0; + gst_adapter_clear (qtdemux->adapter); + + if (hard) { + for (n = 0; n < qtdemux->n_streams; n++) { + gst_qtdemux_stream_free (qtdemux, qtdemux->streams[n]); + qtdemux->streams[n] = NULL; + } + qtdemux->n_streams = 0; + qtdemux->n_video_streams = 0; + qtdemux->n_audio_streams = 0; + qtdemux->n_sub_streams = 0; + qtdemux->exposed = FALSE; + qtdemux->fragmented = FALSE; + qtdemux->mss_mode = FALSE; + gst_caps_replace (&qtdemux->media_caps, NULL); + qtdemux->timescale = 0; + qtdemux->got_moov = FALSE; + } else if (qtdemux->mss_mode) { + for (n = 0; n < qtdemux->n_streams; n++) + gst_qtdemux_stream_clear (qtdemux->streams[n]); + } else { + for (n = 0; n < qtdemux->n_streams; n++) { + qtdemux->streams[n]->last_ret = GST_FLOW_OK; + qtdemux->streams[n]->sent_eos = FALSE; + } + } +} + static gboolean gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, GstEvent * event) @@ -1621,10 +1865,21 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, GST_DEBUG_OBJECT (demux, "received newsegment %" GST_SEGMENT_FORMAT, &segment); + if (segment.format == GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (demux, "new pending_newsegment"); + gst_event_replace (&demux->pending_newsegment, event); + demux->upstream_newsegment = TRUE; + } else { + GST_DEBUG_OBJECT (demux, "Not storing upstream newsegment, " + "not in time format"); + } + /* chain will send initial newsegment after pads have been added */ if (demux->state != QTDEMUX_STATE_MOVIE || !demux->n_streams) { - GST_DEBUG_OBJECT (demux, "still starting, eating event"); - goto exit; + if (!demux->mss_mode) { + GST_DEBUG_OBJECT (demux, "still starting, eating event"); + goto exit; + } } /* we only expect a BYTE segment, e.g. following a seek */ @@ -1658,6 +1913,17 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, * but make sure in other rare cases */ segment.stop = MAX (segment.stop, segment.start); } + } else if (segment.format == GST_FORMAT_TIME) { + /* NOP */ +#if 0 + gst_qtdemux_push_event (demux, gst_event_ref (event)); + gst_event_new_new_segment_full (segment.update, segment.rate, + segment.arate, GST_FORMAT_TIME, segment.start, segment.stop, + segment.start); + gst_adapter_clear (demux->adapter); + demux->neededbytes = 16; + goto exit; +#endif } else { GST_DEBUG_OBJECT (demux, "unsupported segment format, ignoring"); goto exit; @@ -1684,7 +1950,11 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, demux->neededbytes = demux->todrop + stream->samples[idx].size; } else { /* set up for EOS */ - demux->neededbytes = -1; + if (demux->mss_mode) { + demux->neededbytes = 16; + } else { + demux->neededbytes = -1; + } demux->todrop = 0; } exit: @@ -1695,21 +1965,7 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, } case GST_EVENT_FLUSH_STOP: { - gint i; - GstClockTime dur; - - /* clean up, force EOS if no more info follows */ - gst_adapter_clear (demux->adapter); - demux->offset = 0; - demux->neededbytes = -1; - /* reset flow return, e.g. following seek */ - for (i = 0; i < demux->n_streams; i++) { - demux->streams[i]->last_ret = GST_FLOW_OK; - demux->streams[i]->sent_eos = FALSE; - } - dur = demux->segment.duration; - gst_segment_init (&demux->segment, GST_FORMAT_TIME); - demux->segment.duration = dur; + gst_qtdemux_reset (demux, FALSE); break; } case GST_EVENT_EOS: @@ -1728,6 +1984,16 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, gst_qtdemux_post_no_playable_stream_error (demux); } break; + case GST_EVENT_CAPS:{ + GstCaps *caps = NULL; + + gst_event_parse_caps (event, &caps); + gst_qtdemux_setcaps (demux, caps); + res = TRUE; + gst_event_unref (event); + goto drop; + break; + } default: break; } @@ -1797,7 +2063,7 @@ gst_qtdemux_stbl_free (QtDemuxStream * stream) } static void -gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream) +gst_qtdemux_stream_clear (QtDemuxStream * stream) { if (stream->allocator) gst_object_unref (stream->allocator); @@ -1805,17 +2071,36 @@ gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream) gst_buffer_unref (GST_BUFFER_CAST (stream->buffers->data)); stream->buffers = g_slist_delete_link (stream->buffers, stream->buffers); } - if (stream->pad) - gst_element_remove_pad (GST_ELEMENT_CAST (qtdemux), stream->pad); g_free (stream->samples); - if (stream->caps) - gst_caps_unref (stream->caps); + stream->samples = NULL; g_free (stream->segments); + stream->segments = NULL; if (stream->pending_tags) gst_tag_list_unref (stream->pending_tags); + stream->pending_tags = NULL; g_free (stream->redirect_uri); + stream->redirect_uri = NULL; /* free stbl sub-atoms */ gst_qtdemux_stbl_free (stream); + + stream->last_ret = GST_FLOW_OK; + stream->sent_eos = FALSE; + stream->segment_index = -1; + stream->time_position = 0; + stream->sample_index = -1; + stream->stbl_index = -1; + stream->n_samples = 0; +} + +static void +gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream) +{ + gst_qtdemux_stream_clear (stream); + if (stream->caps) + gst_caps_unref (stream->caps); + stream->caps = NULL; + if (stream->pad) + gst_element_remove_pad (GST_ELEMENT_CAST (qtdemux), stream->pad); g_free (stream); } @@ -1836,47 +2121,7 @@ gst_qtdemux_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY:{ - gint n; - - qtdemux->state = QTDEMUX_STATE_INITIAL; - qtdemux->neededbytes = 16; - qtdemux->todrop = 0; - qtdemux->pullbased = FALSE; - qtdemux->posted_redirect = FALSE; - qtdemux->offset = 0; - qtdemux->first_mdat = -1; - qtdemux->header_size = 0; - qtdemux->got_moov = FALSE; - qtdemux->mdatoffset = GST_CLOCK_TIME_NONE; - if (qtdemux->mdatbuffer) - gst_buffer_unref (qtdemux->mdatbuffer); - qtdemux->mdatbuffer = NULL; - if (qtdemux->comp_brands) - gst_buffer_unref (qtdemux->comp_brands); - qtdemux->comp_brands = NULL; - if (qtdemux->tag_list) - gst_tag_list_unref (qtdemux->tag_list); - qtdemux->tag_list = NULL; -#if 0 - if (qtdemux->element_index) - gst_object_unref (qtdemux->element_index); - qtdemux->element_index = NULL; -#endif - gst_adapter_clear (qtdemux->adapter); - for (n = 0; n < qtdemux->n_streams; n++) { - gst_qtdemux_stream_free (qtdemux, qtdemux->streams[n]); - qtdemux->streams[n] = NULL; - } - qtdemux->major_brand = 0; - qtdemux->n_streams = 0; - qtdemux->n_video_streams = 0; - qtdemux->n_audio_streams = 0; - qtdemux->n_sub_streams = 0; - gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME); - qtdemux->requested_seek_time = GST_CLOCK_TIME_NONE; - qtdemux->seek_offset = 0; - qtdemux->upstream_seekable = FALSE; - qtdemux->upstream_size = 0; + gst_qtdemux_reset (qtdemux, TRUE); break; } default: @@ -1930,6 +2175,10 @@ qtdemux_parse_uuid (GstQTDemux * qtdemux, const guint8 * buffer, gint length) 0x9C, 0x71, 0x99, 0x94, 0x91, 0xE3, 0xAF, 0xAC }; + static guint8 playready_uuid[] = { + 0xd0, 0x8a, 0x4f, 0x18, 0x10, 0xf3, 0x4a, 0x82, + 0xb6, 0xc8, 0x32, 0xd8, 0xab, 0xa1, 0x83, 0xd3 + }; guint offset; /* counts as header data */ @@ -1953,8 +2202,27 @@ qtdemux_parse_uuid (GstQTDemux * qtdemux, const guint8 * buffer, gint length) qtdemux_handle_xmp_taglist (qtdemux, taglist); + } else if (memcmp (buffer + offset, playready_uuid, 16) == 0) { + int len; + const gunichar2 *s_utf16; + char *contents; + + len = GST_READ_UINT16_LE (buffer + offset + 0x30); + s_utf16 = (const gunichar2 *) (buffer + offset + 0x32); + contents = g_utf16_to_utf8 (s_utf16, len / 2, NULL, NULL, NULL); + GST_ERROR_OBJECT (qtdemux, "contents: %s", contents); + + g_free (contents); + + GST_ELEMENT_ERROR (qtdemux, STREAM, DECRYPT, + (_("Cannot play stream because it is encrypted with PlayReady DRM.")), + (NULL)); } else { - GST_DEBUG_OBJECT (qtdemux, "Ignoring unknown uuid"); + GST_DEBUG_OBJECT (qtdemux, "Ignoring unknown uuid: %08x-%08x-%08x-%08x", + GST_READ_UINT32_LE (buffer + offset), + GST_READ_UINT32_LE (buffer + offset + 4), + GST_READ_UINT32_LE (buffer + offset + 8), + GST_READ_UINT32_LE (buffer + offset + 12)); } } @@ -2205,15 +2473,21 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun, if (stream->samples == NULL) goto out_of_memory; - if (G_UNLIKELY (stream->n_samples == 0)) { - /* the timestamp of the first sample is also provided by the tfra entry - * but we shouldn't rely on it as it is at the end of files */ - timestamp = 0; + if (qtdemux->fragment_start != -1) { + timestamp = gst_util_uint64_scale_int (qtdemux->fragment_start, + stream->timescale, GST_SECOND); + qtdemux->fragment_start = -1; } else { - /* subsequent fragments extend stream */ - timestamp = - stream->samples[stream->n_samples - 1].timestamp + - stream->samples[stream->n_samples - 1].duration; + if (G_UNLIKELY (stream->n_samples == 0)) { + /* the timestamp of the first sample is also provided by the tfra entry + * but we shouldn't rely on it as it is at the end of files */ + timestamp = 0; + } else { + /* subsequent fragments extend stream */ + timestamp = + stream->samples[stream->n_samples - 1].timestamp + + stream->samples[stream->n_samples - 1].duration; + } } sample = stream->samples + stream->n_samples; for (i = 0; i < samples_count; i++) { @@ -2313,6 +2587,10 @@ qtdemux_find_stream (GstQTDemux * qtdemux, guint32 id) if (stream->track_id == id) return stream; } + if (qtdemux->mss_mode) { + /* mss should have only 1 stream anyway */ + return qtdemux->streams[0]; + } return NULL; } @@ -2441,19 +2719,18 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length, &tfdt_data); if (tfdt_node) { guint64 decode_time = 0; + GstClockTime decode_time_ts; + qtdemux_parse_tfdt (qtdemux, &tfdt_data, &decode_time); - /* If there is a new segment pending, update the time/position */ - if (qtdemux->pending_newsegment) { - GstSegment segment; - - gst_segment_init (&segment, GST_FORMAT_TIME); - segment.time = gst_util_uint64_scale (decode_time, - GST_SECOND, stream->timescale); - gst_event_replace (&qtdemux->pending_newsegment, - gst_event_new_segment (&segment)); - /* ref added when replaced, release the original _new one */ - gst_event_unref (qtdemux->pending_newsegment); - } + + /* FIXME, we can use decode_time to interpolate timestamps + * in case the input timestamps are missing */ + decode_time_ts = gst_util_uint64_scale (decode_time, GST_SECOND, + stream->timescale); + + GST_DEBUG_OBJECT (qtdemux, "decode time %" G_GUINT64_FORMAT + " (%" GST_TIME_FORMAT ")", decode_time, + GST_TIME_ARGS (decode_time_ts)); } if (G_UNLIKELY (!stream)) { @@ -2767,12 +3044,12 @@ gst_qtdemux_loop_state_header (GstQTDemux * qtdemux) /* Ok, we've found that special case. Allocate a new buffer with * that free atom actually present. */ GstBuffer *newmoov = gst_buffer_new_and_alloc (length); - gst_buffer_copy_into (newmoov, moov, 0, 0, map.size); + gst_buffer_fill (newmoov, 0, map.data, map.size); + gst_buffer_memset (newmoov, map.size, 0, final_length - 8); gst_buffer_unmap (moov, &map); - gst_buffer_map (newmoov, &map, GST_MAP_WRITE); - memset (map.data + length - final_length + 8, 0, final_length - 8); gst_buffer_unref (moov); moov = newmoov; + gst_buffer_map (moov, &map, GST_MAP_READ); } } } @@ -2853,8 +3130,9 @@ gst_qtdemux_loop_state_header (GstQTDemux * qtdemux) } beach: - if (ret == GST_FLOW_EOS && qtdemux->got_moov) { + if (ret == GST_FLOW_EOS && (qtdemux->got_moov || qtdemux->media_caps)) { /* digested all data, show what we have */ + qtdemux_prepare_streams (qtdemux); ret = qtdemux_expose_streams (qtdemux); qtdemux->state = QTDEMUX_STATE_MOVIE; @@ -3134,6 +3412,7 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream, stream->segment.start = start; stream->segment.stop = stop; stream->segment.time = time; + stream->segment.position = start; /* now prepare and send the segment */ if (stream->pad) { @@ -3302,6 +3581,7 @@ gst_qtdemux_advance_sample (GstQTDemux * qtdemux, QtDemuxStream * stream) /* move to next sample */ stream->sample_index++; + stream->offset_in_sample = 0; /* get current segment */ segment = &stream->segments[stream->segment_index]; @@ -3590,17 +3870,23 @@ gst_qtdemux_process_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream, stream->need_process = FALSE; } - if (G_UNLIKELY (stream->subtype != FOURCC_text)) { + if (G_UNLIKELY (stream->subtype != FOURCC_text + && stream->subtype != FOURCC_sbtl)) { return buf; } gst_buffer_map (buf, &map, GST_MAP_READ); - if (G_LIKELY (map.size >= 2)) { - nsize = GST_READ_UINT16_BE (map.data); - nsize = MIN (nsize, map.size - 2); + /* empty buffer is sent to terminate previous subtitle */ + if (map.size <= 2) { + gst_buffer_unmap (buf, &map); + gst_buffer_unref (buf); + return NULL; } + nsize = GST_READ_UINT16_BE (map.data); + nsize = MIN (nsize, map.size - 2); + GST_LOG_OBJECT (qtdemux, "3GPP timed text subtitle: %d/%" G_GSIZE_FORMAT "", nsize, map.size); @@ -3612,8 +3898,9 @@ gst_qtdemux_process_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream, gst_buffer_unref (buf); buf = _gst_buffer_new_wrapped (str, strlen (str), g_free); } else { - /* may be 0-size subtitle, which is also sent to keep pipeline going */ - gst_buffer_resize (buf, 2, nsize); + /* this should not really happen unless the subtitle is corrupted */ + gst_buffer_unref (buf); + buf = NULL; } /* FIXME ? convert optional subsequent style info to markup */ @@ -3625,7 +3912,7 @@ gst_qtdemux_process_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream, * Also checks for additional actions and custom processing that may * need to be done first. */ -static gboolean +static GstFlowReturn gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream, GstBuffer * buf, guint64 dts, guint64 pts, guint64 duration, gboolean keyframe, @@ -3689,6 +3976,10 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux, if (G_UNLIKELY (stream->need_process)) buf = gst_qtdemux_process_buffer (qtdemux, stream, buf); + if (!buf) { + goto exit; + } + GST_BUFFER_DTS (buf) = dts; GST_BUFFER_PTS (buf) = pts; GST_BUFFER_DURATION (buf) = duration; @@ -3743,6 +4034,11 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux, ret = gst_pad_push (stream->pad, buf); + if (GST_CLOCK_TIME_IS_VALID (pts) && GST_CLOCK_TIME_IS_VALID (duration)) { + /* mark position in stream, we'll need this to know when to send GAP event */ + stream->segment.position = pts + duration; + } + exit: return ret; } @@ -3759,7 +4055,8 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) guint64 pts = GST_CLOCK_TIME_NONE; guint64 duration = 0; gboolean keyframe = FALSE; - guint size = 0; + guint sample_size = 0; + guint size; gint index; gint i; @@ -3794,27 +4091,59 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) goto eos; } + /* gap events for subtitle streams */ + for (i = 0; i < qtdemux->n_streams; i++) { + stream = qtdemux->streams[i]; + if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text + || stream->subtype == FOURCC_sbtl) { + /* send one second gap events until the stream catches up */ + /* gaps can only be sent after segment is activated (segment.stop is no longer -1) */ + while (GST_CLOCK_TIME_IS_VALID (stream->segment.stop) && + GST_CLOCK_TIME_IS_VALID (stream->segment.position) && + stream->segment.position + GST_SECOND < min_time) { + GstEvent *gap = + gst_event_new_gap (stream->segment.position, GST_SECOND); + gst_pad_push_event (stream->pad, gap); + stream->segment.position += GST_SECOND; + } + } + } + stream = qtdemux->streams[index]; + if (stream->new_caps) { + gst_qtdemux_configure_stream (qtdemux, stream); + qtdemux_do_allocation (qtdemux, stream); + } /* fetch info for the current sample of this stream */ if (G_UNLIKELY (!gst_qtdemux_prepare_current_sample (qtdemux, stream, &offset, - &size, &dts, &pts, &duration, &keyframe))) + &sample_size, &dts, &pts, &duration, &keyframe))) goto eos_stream; - GST_LOG_OBJECT (qtdemux, + GST_DEBUG_OBJECT (qtdemux, "pushing from stream %d, offset %" G_GUINT64_FORMAT ", size %d, dts=%" GST_TIME_FORMAT ", pts=%" GST_TIME_FORMAT - ", duration %" GST_TIME_FORMAT, index, offset, size, + ", duration %" GST_TIME_FORMAT, index, offset, sample_size, GST_TIME_ARGS (dts), GST_TIME_ARGS (pts), GST_TIME_ARGS (duration)); /* hmm, empty sample, skip and move to next sample */ - if (G_UNLIKELY (size <= 0)) + if (G_UNLIKELY (sample_size <= 0)) goto next; /* last pushed sample was out of boundary, goto next sample */ if (G_UNLIKELY (stream->last_ret == GST_FLOW_EOS)) goto next; + if (stream->max_buffer_size == 0 || sample_size <= stream->max_buffer_size) { + size = sample_size; + } else { + GST_DEBUG_OBJECT (qtdemux, + "size %d larger than stream max_buffer_size %d, trimming", + sample_size, stream->max_buffer_size); + size = + MIN (sample_size - stream->offset_in_sample, stream->max_buffer_size); + } + GST_LOG_OBJECT (qtdemux, "reading %d bytes @ %" G_GUINT64_FORMAT, size, offset); @@ -3823,13 +4152,43 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) buf = gst_buffer_new_allocate (stream->allocator, size, &stream->params); } - ret = gst_qtdemux_pull_atom (qtdemux, offset, size, &buf); + ret = gst_qtdemux_pull_atom (qtdemux, offset + stream->offset_in_sample, + size, &buf); if (G_UNLIKELY (ret != GST_FLOW_OK)) goto beach; + if (size != sample_size) { + pts += gst_util_uint64_scale_int (GST_SECOND, + stream->offset_in_sample / stream->bytes_per_frame, stream->timescale); + dts += gst_util_uint64_scale_int (GST_SECOND, + stream->offset_in_sample / stream->bytes_per_frame, stream->timescale); + duration = gst_util_uint64_scale_int (GST_SECOND, + size / stream->bytes_per_frame, stream->timescale); + } + ret = gst_qtdemux_decorate_and_push_buffer (qtdemux, stream, buf, dts, pts, duration, keyframe, min_time, offset); + if (size != sample_size) { + QtDemuxSample *sample = &stream->samples[stream->sample_index]; + QtDemuxSegment *segment = &stream->segments[stream->segment_index]; + + GstClockTime time_position = gst_util_uint64_scale (sample->timestamp + + stream->offset_in_sample / stream->bytes_per_frame, GST_SECOND, + stream->timescale); + if (time_position >= segment->media_start) { + /* inside the segment, update time_position, looks very familiar to + * GStreamer segments, doesn't it? */ + stream->time_position = (time_position - segment->media_start) + + segment->time; + } else { + /* not yet in segment, time does not yet increment. This means + * that we are still prerolling keyframes to the decoder so it can + * decode the first sample of the segment. */ + stream->time_position = segment->time; + } + } + /* combine flows */ ret = gst_qtdemux_combine_flows (qtdemux, stream, ret); /* ignore unlinked, we will not push on the pad anymore and we will EOS when @@ -3837,6 +4196,12 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) if (ret == GST_FLOW_EOS) ret = GST_FLOW_OK; + stream->offset_in_sample += size; + if (stream->offset_in_sample >= sample_size) { + gst_qtdemux_advance_sample (qtdemux, stream); + } + goto beach; + next: gst_qtdemux_advance_sample (qtdemux, stream); @@ -3977,8 +4342,10 @@ next_entry_size (GstQTDemux * demux) for (i = 0; i < demux->n_streams; i++) { stream = demux->streams[i]; - if (stream->sample_index == -1) + if (stream->sample_index == -1) { stream->sample_index = 0; + stream->offset_in_sample = 0; + } if (stream->sample_index >= stream->n_samples) { GST_LOG_OBJECT (demux, "stream %d samples exhausted", i); @@ -4100,14 +4467,24 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) { GstQTDemux *demux; GstFlowReturn ret = GST_FLOW_OK; + GstClockTime timestamp; demux = GST_QTDEMUX (parent); + timestamp = GST_BUFFER_TIMESTAMP (inbuf); + + if (G_UNLIKELY (GST_CLOCK_TIME_IS_VALID (timestamp))) { + demux->fragment_start = timestamp; + GST_DEBUG_OBJECT (demux, "got fragment_start %" GST_TIME_FORMAT, + GST_TIME_ARGS (timestamp)); + } + gst_adapter_push (demux->adapter, inbuf); /* we never really mean to buffer that much */ - if (demux->neededbytes == -1) + if (demux->neededbytes == -1) { goto eos; + } GST_DEBUG_OBJECT (demux, "pushing in inbuf %p, neededbytes:%u, available:%" G_GSIZE_FORMAT, inbuf, @@ -4234,30 +4611,50 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) if (fourcc == FOURCC_moov) { /* in usual fragmented setup we could try to scan for more * and end up at the the moov (after mdat) again */ - if (demux->got_moov && demux->n_streams > 0) { + if (demux->got_moov && demux->n_streams > 0 && !demux->fragmented) { GST_DEBUG_OBJECT (demux, "Skipping moov atom as we have one already"); } else { GST_DEBUG_OBJECT (demux, "Parsing [moov]"); - demux->got_moov = TRUE; - - /* prepare newsegment to send when streaming actually starts */ - if (!demux->pending_newsegment) - demux->pending_newsegment = - gst_event_new_segment (&demux->segment); + if (demux->got_moov && demux->fragmented) { + GST_DEBUG_OBJECT (demux, + "Got a second moov, clean up data from old one"); + if (demux->moov_node) + g_node_destroy (demux->moov_node); + demux->moov_node = NULL; + demux->moov_node_compressed = NULL; + } else { + /* prepare newsegment to send when streaming actually starts */ + if (!demux->pending_newsegment) + demux->pending_newsegment = + gst_event_new_segment (&demux->segment); + } qtdemux_parse_moov (demux, data, demux->neededbytes); qtdemux_node_dump (demux, demux->moov_node); qtdemux_parse_tree (demux); - qtdemux_expose_streams (demux); + qtdemux_prepare_streams (demux); + if (!demux->got_moov) + qtdemux_expose_streams (demux); + else { + gint n; + + for (n = 0; n < demux->n_streams; n++) { + QtDemuxStream *stream = demux->streams[n]; + + gst_qtdemux_configure_stream (demux, stream); + } + } + + demux->got_moov = TRUE; g_node_destroy (demux->moov_node); demux->moov_node = NULL; GST_DEBUG_OBJECT (demux, "Finished parsing the header"); } } else if (fourcc == FOURCC_moof) { - if (demux->got_moov && demux->fragmented) { + if ((demux->got_moov || demux->media_caps) && demux->fragmented) { GST_DEBUG_OBJECT (demux, "Parsing [moof]"); if (!qtdemux_parse_moof (demux, data, demux->neededbytes, demux->offset, NULL)) { @@ -4265,6 +4662,16 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) ret = GST_FLOW_ERROR; goto done; } + /* in MSS we need to expose the pads after the first moof as we won't get a moov */ + if (demux->mss_mode && !demux->exposed) { + if (!demux->pending_newsegment) { + GstSegment segment; + gst_segment_init (&segment, GST_FORMAT_TIME); + GST_DEBUG_OBJECT (demux, "new pending_newsegment"); + demux->pending_newsegment = gst_event_new_segment (&segment); + } + qtdemux_expose_streams (demux); + } } else { GST_DEBUG_OBJECT (demux, "Discarding [moof]"); } @@ -4390,8 +4797,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) /* initial newsegment sent here after having added pads, * possible others in sink_event */ if (G_UNLIKELY (demux->pending_newsegment)) { - gst_qtdemux_push_event (demux, demux->pending_newsegment); - demux->pending_newsegment = NULL; + gst_qtdemux_push_pending_newsegment (demux); /* clear to send tags on all streams */ for (i = 0; i < demux->n_streams; i++) { gst_qtdemux_push_tags (demux, demux->streams[i]); @@ -4416,6 +4822,10 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) if (G_UNLIKELY (stream == NULL || i == demux->n_streams)) goto unknown_stream; + if (stream->new_caps) { + gst_qtdemux_configure_stream (demux, stream); + } + /* Put data in a buffer, set timestamps, caps, ... */ outbuf = gst_adapter_take_buffer (demux->adapter, demux->neededbytes); GST_DEBUG_OBJECT (demux, "stream : %" GST_FOURCC_FORMAT, @@ -4437,6 +4847,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) ret = gst_qtdemux_combine_flows (demux, stream, ret); stream->sample_index++; + stream->offset_in_sample = 0; /* update current offset and figure out size of next buffer */ GST_LOG_OBJECT (demux, "increasing offset %" G_GUINT64_FORMAT " by %u", @@ -4887,6 +5298,9 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer, guint32 version; int tlen; + /* codec_data is contained inside these atoms, which all have + * the same format. */ + GST_DEBUG_OBJECT (qtdemux, "parsing in %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (fourcc)); version = QT_UINT32 (buffer + 16); @@ -4955,6 +5369,11 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer, qtdemux_parse_container (qtdemux, node, buffer + 0x34, end); break; } + case FOURCC_uuid: + { + qtdemux_parse_uuid (qtdemux, buffer, end - buffer); + break; + } default: if (!strcmp (type->name, "unknown")) GST_MEMDUMP ("Unknown tag", buffer + 4, end - buffer - 4); @@ -5067,6 +5486,14 @@ qtdemux_tree_get_sibling_by_type (GNode * node, guint32 fourcc) static void qtdemux_do_allocation (GstQTDemux * qtdemux, QtDemuxStream * stream) { +/* FIXME: This can only reliably work if demuxers have a + * separate streaming thread per srcpad. This should be + * done in a demuxer base class, which integrates parts + * of multiqueue + * + * https://bugzilla.gnome.org/show_bug.cgi?id=701856 + */ +#if 0 GstQuery *query; query = gst_query_new_allocation (stream->caps, FALSE); @@ -5090,22 +5517,13 @@ qtdemux_do_allocation (GstQTDemux * qtdemux, QtDemuxStream * stream) stream->use_allocator = FALSE; } gst_query_unref (query); +#endif } static gboolean -gst_qtdemux_add_stream (GstQTDemux * qtdemux, - QtDemuxStream * stream, GstTagList * list) +gst_qtdemux_configure_stream (GstQTDemux * qtdemux, QtDemuxStream * stream) { - /* consistent default for push based mode */ - gst_segment_init (&stream->segment, GST_FORMAT_TIME); - if (stream->subtype == FOURCC_vide) { - gchar *name = g_strdup_printf ("video_%u", qtdemux->n_video_streams); - - stream->pad = - gst_pad_new_from_static_template (&gst_qtdemux_videosrc_template, name); - g_free (name); - /* fps is calculated base on the duration of the first frames since * qt does not have a fixed framerate. */ if ((stream->n_samples == 1) && (stream->min_duration == 0)) { @@ -5113,11 +5531,19 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux, stream->fps_n = 0; stream->fps_d = 1; } else { - stream->fps_n = stream->timescale; - if (stream->min_duration == 0) - stream->fps_d = 1; + /* we might need to scale the timescale to get precise framerate */ + const int required_scale = rint (log (10000) / 2.303); /* divide to get log10 */ + int current_scale = rint (log (stream->timescale) / 2.303); + int factor = pow (10.0, MAX (0, required_scale - current_scale)); + + stream->fps_n = stream->timescale * factor; + + if (stream->duration == 0) + stream->fps_d = factor; else - stream->fps_d = stream->min_duration; + stream->fps_d = + gst_util_uint64_scale_int_round (stream->duration, factor, + stream->n_samples); } if (stream->caps) { @@ -5125,6 +5551,8 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux, gint depth, palette_count; const guint32 *palette_data = NULL; + stream->caps = gst_caps_make_writable (stream->caps); + gst_caps_set_simple (stream->caps, "width", G_TYPE_INT, stream->width, "height", G_TYPE_INT, stream->height, @@ -5214,18 +5642,15 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux, stream->pad = NULL; } } - qtdemux->n_video_streams++; } else if (stream->subtype == FOURCC_soun) { - gchar *name = g_strdup_printf ("audio_%u", qtdemux->n_audio_streams); - - stream->pad = - gst_pad_new_from_static_template (&gst_qtdemux_audiosrc_template, name); - g_free (name); if (stream->caps) { - gst_caps_set_simple (stream->caps, - "rate", G_TYPE_INT, (int) stream->rate, - "channels", G_TYPE_INT, stream->n_channels, NULL); - + stream->caps = gst_caps_make_writable (stream->caps); + if (stream->rate > 0) + gst_caps_set_simple (stream->caps, + "rate", G_TYPE_INT, (int) stream->rate, NULL); + if (stream->n_channels > 0) + gst_caps_set_simple (stream->caps, + "channels", G_TYPE_INT, stream->n_channels, NULL); if (stream->n_channels > 2) { /* FIXME: Need to parse the 'chan' atom to get channel layouts * correctly; this is just the minimum we can do - assume @@ -5234,15 +5659,67 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux, "channel-mask", GST_TYPE_BITMASK, G_GUINT64_CONSTANT (0), NULL); } } + } + + if (stream->pad) { + GST_PAD_ELEMENT_PRIVATE (stream->pad) = stream; + gst_pad_set_event_function (stream->pad, gst_qtdemux_handle_src_event); + gst_pad_set_query_function (stream->pad, gst_qtdemux_handle_src_query); + gst_pad_set_active (stream->pad, TRUE); + + gst_pad_use_fixed_caps (stream->pad); + + GST_DEBUG_OBJECT (qtdemux, "setting caps %" GST_PTR_FORMAT, stream->caps); + if (stream->new_stream) { + gchar *stream_id; + + stream->new_stream = FALSE; + stream_id = + gst_pad_create_stream_id_printf (stream->pad, + GST_ELEMENT_CAST (qtdemux), "%03u", stream->track_id); + gst_pad_push_event (stream->pad, gst_event_new_stream_start (stream_id)); + g_free (stream_id); + } + gst_pad_set_caps (stream->pad, stream->caps); + stream->new_caps = FALSE; + } + return TRUE; +} + +static gboolean +gst_qtdemux_add_stream (GstQTDemux * qtdemux, + QtDemuxStream * stream, GstTagList * list) +{ + /* consistent default for push based mode */ + gst_segment_init (&stream->segment, GST_FORMAT_TIME); + + if (stream->subtype == FOURCC_vide) { + gchar *name = g_strdup_printf ("video_%u", qtdemux->n_video_streams); + + stream->pad = + gst_pad_new_from_static_template (&gst_qtdemux_videosrc_template, name); + g_free (name); + + gst_qtdemux_configure_stream (qtdemux, stream); + qtdemux->n_video_streams++; + } else if (stream->subtype == FOURCC_soun) { + gchar *name = g_strdup_printf ("audio_%u", qtdemux->n_audio_streams); + + stream->pad = + gst_pad_new_from_static_template (&gst_qtdemux_audiosrc_template, name); + g_free (name); + gst_qtdemux_configure_stream (qtdemux, stream); qtdemux->n_audio_streams++; } else if (stream->subtype == FOURCC_strm) { GST_DEBUG_OBJECT (qtdemux, "stream type, not creating pad"); - } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text) { + } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text + || stream->subtype == FOURCC_sbtl) { gchar *name = g_strdup_printf ("subtitle_%u", qtdemux->n_sub_streams); stream->pad = gst_pad_new_from_static_template (&gst_qtdemux_subsrc_template, name); g_free (name); + gst_qtdemux_configure_stream (qtdemux, stream); qtdemux->n_sub_streams++; } else if (stream->caps) { gchar *name = g_strdup_printf ("video_%u", qtdemux->n_video_streams); @@ -5250,6 +5727,7 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux, stream->pad = gst_pad_new_from_static_template (&gst_qtdemux_videosrc_template, name); g_free (name); + gst_qtdemux_configure_stream (qtdemux, stream); qtdemux->n_video_streams++; } else { GST_DEBUG_OBJECT (qtdemux, "unknown stream type"); @@ -5257,23 +5735,6 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux, } if (stream->pad) { - gchar *stream_id; - - GST_PAD_ELEMENT_PRIVATE (stream->pad) = stream; - - gst_pad_use_fixed_caps (stream->pad); - gst_pad_set_event_function (stream->pad, gst_qtdemux_handle_src_event); - gst_pad_set_query_function (stream->pad, gst_qtdemux_handle_src_query); - gst_pad_set_active (stream->pad, TRUE); - - GST_DEBUG_OBJECT (qtdemux, "setting caps %" GST_PTR_FORMAT, stream->caps); - stream_id = - gst_pad_create_stream_id_printf (stream->pad, - GST_ELEMENT_CAST (qtdemux), "%u", stream->track_id); - gst_pad_push_event (stream->pad, gst_event_new_stream_start (stream_id)); - g_free (stream_id); - gst_pad_set_caps (stream->pad, stream->caps); - GST_DEBUG_OBJECT (qtdemux, "adding pad %s %p to qtdemux %p", GST_OBJECT_NAME (stream->pad), stream->pad, qtdemux); gst_element_add_pad (GST_ELEMENT_CAST (qtdemux), stream->pad); @@ -5283,8 +5744,6 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux, stream->pending_tags = list; /* global tags go on each pad anyway */ stream->send_global_tags = TRUE; - - qtdemux_do_allocation (qtdemux, stream); } done: return TRUE; @@ -5429,6 +5888,7 @@ static gboolean qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl) { stream->stbl_index = -1; /* no samples have yet been parsed */ + stream->sample_index = -1; /* time-to-sample atom */ if (!qtdemux_tree_get_child_by_type_full (stbl, FOURCC_stts, &stream->stts)) @@ -5769,7 +6229,8 @@ qtdemux_parse_samples (GstQTDemux * qtdemux, QtDemuxStream * stream, guint32 n) for (k = stream->stsc_sample_index; k < samples_per_chunk; k++) { GST_LOG_OBJECT (qtdemux, "Creating entry %d with offset %" - G_GUINT64_FORMAT, (guint) (cur - samples), stream->chunk_offset); + G_GUINT64_FORMAT "and size %d", + (guint) (cur - samples), stream->chunk_offset, cur->size); cur->offset = chunk_offset; chunk_offset += cur->size; @@ -6448,7 +6909,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) GNode *wave; GNode *esds; GNode *pasp; - QtDemuxStream *stream; + QtDemuxStream *stream = NULL; GstTagList *list = NULL; gchar *codec = NULL; const guint8 *stsd_data; @@ -6458,17 +6919,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) guint8 tkhd_version = 0; guint32 fourcc; guint value_size, len; + guint32 track_id; - stream = g_new0 (QtDemuxStream, 1); - /* new streams always need a discont */ - stream->discont = TRUE; - /* we enable clipping for raw audio/video streams */ - stream->need_clip = FALSE; - stream->need_process = FALSE; - stream->segment_index = -1; - stream->time_position = 0; - stream->sample_index = -1; - stream->last_ret = GST_FLOW_OK; + GST_DEBUG_OBJECT (qtdemux, "parse_trak"); if (!qtdemux_tree_get_child_by_type_full (trak, FOURCC_tkhd, &tkhd) || !gst_byte_reader_get_uint8 (&tkhd, &tkhd_version) @@ -6481,9 +6934,22 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) /* pick between 64 or 32 bits */ value_size = tkhd_version == 1 ? 8 : 4; if (!gst_byte_reader_skip (&tkhd, value_size * 2) || - !gst_byte_reader_get_uint32_be (&tkhd, &stream->track_id)) + !gst_byte_reader_get_uint32_be (&tkhd, &track_id)) goto corrupt_file; + if (!qtdemux->got_moov) { + if (qtdemux_find_stream (qtdemux, track_id)) + goto existing_stream; + stream = _create_stream (); + stream->track_id = track_id; + } else { + stream = qtdemux_find_stream (qtdemux, track_id); + if (!stream) { + GST_WARNING_OBJECT (qtdemux, "Stream not found, going to ignore it"); + goto skip_track; + } + } + GST_LOG_OBJECT (qtdemux, "track[tkhd] version/flags/id: 0x%02x/%06x/%u", tkhd_version, tkhd_flags, stream->track_id); @@ -7057,6 +7523,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) gboolean amrwb = FALSE; offset = 32; + /* sample description entry (16) + sound sample description v0 (20) */ if (len < 36) goto corrupt_file; @@ -7140,6 +7607,10 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) } if (version == 0x00010000) { + /* sample description entry (16) + sound sample description v1 (20+16) */ + if (len < 52) + goto corrupt_file; + switch (fourcc) { case FOURCC_twos: case FOURCC_sowt: @@ -7178,22 +7649,31 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) guint64 val; } qtfp; - stream->samples_per_packet = QT_UINT32 (stsd_data + offset); + /* sample description entry (16) + sound sample description v2 (56) */ + if (len < 72) + goto corrupt_file; + qtfp.val = QT_UINT64 (stsd_data + offset + 4); stream->rate = qtfp.fp; stream->n_channels = QT_UINT32 (stsd_data + offset + 12); - GST_LOG_OBJECT (qtdemux, "samples/packet: %d", - stream->samples_per_packet); - GST_LOG_OBJECT (qtdemux, "sample rate: %g", stream->rate); - GST_LOG_OBJECT (qtdemux, "n_channels: %d", stream->n_channels); - + GST_LOG_OBJECT (qtdemux, "Sound sample description Version 2"); + GST_LOG_OBJECT (qtdemux, "sample rate: %g", stream->rate); + GST_LOG_OBJECT (qtdemux, "n_channels: %d", stream->n_channels); + GST_LOG_OBJECT (qtdemux, "bits/channel: %d", + QT_UINT32 (stsd_data + offset + 20)); + GST_LOG_OBJECT (qtdemux, "format flags: %X", + QT_UINT32 (stsd_data + offset + 24)); + GST_LOG_OBJECT (qtdemux, "bytes/packet: %d", + QT_UINT32 (stsd_data + offset + 28)); + GST_LOG_OBJECT (qtdemux, "LPCM frames/packet: %d", + QT_UINT32 (stsd_data + offset + 32)); } else { GST_WARNING_OBJECT (qtdemux, "unknown version %08x", version); } - stream->caps = qtdemux_audio_caps (qtdemux, stream, fourcc, NULL, 0, - &codec); + stream->caps = qtdemux_audio_caps (qtdemux, stream, fourcc, + stsd_data + 32, len - 16, &codec); switch (fourcc) { case FOURCC_in24: @@ -7486,7 +7966,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) goto unknown_stream; } stream->sampled = TRUE; - } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text) { + } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text + || stream->subtype == FOURCC_sbtl) { stream->sampled = TRUE; @@ -7634,14 +8115,17 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) if (qtdemux->n_streams >= GST_QTDEMUX_MAX_STREAMS) goto too_many_streams; - stream->pending_tags = list; - qtdemux->streams[qtdemux->n_streams] = stream; - qtdemux->n_streams++; - GST_DEBUG_OBJECT (qtdemux, "n_streams is now %d", qtdemux->n_streams); + if (!qtdemux->got_moov) { + stream->pending_tags = list; + qtdemux->streams[qtdemux->n_streams] = stream; + qtdemux->n_streams++; + GST_DEBUG_OBJECT (qtdemux, "n_streams is now %d", qtdemux->n_streams); + } return TRUE; /* ERRORS */ +skip_track: track_disabled: { GST_INFO_OBJECT (qtdemux, "skip disabled track"); @@ -7670,6 +8154,14 @@ segments_failed: g_free (stream); return FALSE; } +existing_stream: + { + GST_INFO_OBJECT (qtdemux, "stream with track id %i already exists", + track_id); + if (stream) + g_free (stream); + return TRUE; + } unknown_stream: { GST_INFO_OBJECT (qtdemux, "unknown subtype %" GST_FOURCC_FORMAT, @@ -7782,19 +8274,18 @@ gst_qtdemux_guess_bitrate (GstQTDemux * qtdemux) } static GstFlowReturn -qtdemux_expose_streams (GstQTDemux * qtdemux) +qtdemux_prepare_streams (GstQTDemux * qtdemux) { gint i; GstFlowReturn ret = GST_FLOW_OK; - GST_DEBUG_OBJECT (qtdemux, "exposing streams"); + GST_DEBUG_OBJECT (qtdemux, "prepare streams"); for (i = 0; ret == GST_FLOW_OK && i < qtdemux->n_streams; i++) { QtDemuxStream *stream = qtdemux->streams[i]; guint32 sample_num = 0; guint samples = 20; GArray *durations; - GstTagList *list; GST_DEBUG_OBJECT (qtdemux, "stream %d, id %d, fourcc %" GST_FOURCC_FORMAT, i, stream->track_id, GST_FOURCC_ARGS (stream->fourcc)); @@ -7849,10 +8340,34 @@ qtdemux_expose_streams (GstQTDemux * qtdemux) stream->min_duration = g_array_index (durations, guint32, samples / 2); g_array_free (durations, TRUE); } + } + + return ret; +} + +static GstFlowReturn +qtdemux_expose_streams (GstQTDemux * qtdemux) +{ + gint i; + GstFlowReturn ret = GST_FLOW_OK; + GSList *oldpads = NULL; + GSList *iter; + + GST_DEBUG_OBJECT (qtdemux, "exposing streams"); + + for (i = 0; ret == GST_FLOW_OK && i < qtdemux->n_streams; i++) { + QtDemuxStream *stream = qtdemux->streams[i]; + GstPad *oldpad = stream->pad; + GstTagList *list; + + GST_DEBUG_OBJECT (qtdemux, "stream %d, id %d, fourcc %" GST_FOURCC_FORMAT, + i, stream->track_id, GST_FOURCC_ARGS (stream->fourcc)); /* now we have all info and can expose */ list = stream->pending_tags; stream->pending_tags = NULL; + if (oldpad) + oldpads = g_slist_prepend (oldpads, oldpad); gst_qtdemux_add_stream (qtdemux, stream, list); } @@ -7860,6 +8375,15 @@ qtdemux_expose_streams (GstQTDemux * qtdemux) gst_element_no_more_pads (GST_ELEMENT_CAST (qtdemux)); + for (iter = oldpads; iter; iter = g_slist_next (iter)) { + GstPad *oldpad = iter->data; + + gst_pad_push_event (oldpad, gst_event_new_eos ()); + gst_pad_set_active (oldpad, FALSE); + gst_element_remove_pad (GST_ELEMENT (qtdemux), oldpad); + gst_object_unref (oldpad); + } + /* check if we should post a redirect in case there is a single trak * and it is a redirecting trak */ if (qtdemux->n_streams == 1 && qtdemux->streams[0]->redirect_uri != NULL) { @@ -7875,6 +8399,13 @@ qtdemux_expose_streams (GstQTDemux * qtdemux) qtdemux->posted_redirect = TRUE; } + for (i = 0; i < qtdemux->n_streams; i++) { + QtDemuxStream *stream = qtdemux->streams[i]; + + qtdemux_do_allocation (qtdemux, stream); + } + + qtdemux->exposed = TRUE; return ret; } @@ -8744,6 +9275,8 @@ qtdemux_parse_udta (GstQTDemux * qtdemux, GNode * udta) if (!qtdemux->tag_list) { qtdemux->tag_list = gst_tag_list_new_empty (); gst_tag_list_set_scope (qtdemux->tag_list, GST_TAG_SCOPE_GLOBAL); + } else { + qtdemux->tag_list = gst_tag_list_make_writable (qtdemux->tag_list); } i = 0; @@ -9002,6 +9535,14 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) GstDateTime *datetime = NULL; gint version; + /* make sure we have a usable taglist */ + if (!qtdemux->tag_list) { + qtdemux->tag_list = gst_tag_list_new_empty (); + gst_tag_list_set_scope (qtdemux->tag_list, GST_TAG_SCOPE_GLOBAL); + } else { + qtdemux->tag_list = gst_tag_list_make_writable (qtdemux->tag_list); + } + mvhd = qtdemux_tree_get_child_by_type (qtdemux->moov_node, FOURCC_mvhd); if (mvhd == NULL) { GST_LOG_OBJECT (qtdemux, "No mvhd node found, looking for redirects."); @@ -9041,11 +9582,6 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) } } if (datetime) { - if (!qtdemux->tag_list) { - qtdemux->tag_list = gst_tag_list_new_empty (); - gst_tag_list_set_scope (qtdemux->tag_list, GST_TAG_SCOPE_GLOBAL); - } - /* Use KEEP as explicit tags should have a higher priority than mvhd tag */ gst_tag_list_add (qtdemux->tag_list, GST_TAG_MERGE_KEEP, GST_TAG_DATE_TIME, datetime, NULL); @@ -9476,7 +10012,8 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, case GST_MAKE_FOURCC ('U', '2', '6', '3'): _codec ("H.263"); /* ffmpeg uses the height/width props, don't know why */ - caps = gst_caps_new_empty_simple ("video/x-h263"); + caps = gst_caps_new_simple ("video/x-h263", + "variant", G_TYPE_STRING, "itu", NULL); break; case GST_MAKE_FOURCC ('m', 'p', '4', 'v'): case GST_MAKE_FOURCC ('M', 'P', '4', 'V'): @@ -9586,6 +10123,10 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, _codec ("VP3"); caps = gst_caps_new_empty_simple ("video/x-vp3"); break; + case GST_MAKE_FOURCC ('V', 'P', '6', 'F'): + _codec ("VP6 Flash"); + caps = gst_caps_new_empty_simple ("video/x-vp6-flash"); + break; case GST_MAKE_FOURCC ('X', 'i', 'T', 'h'): _codec ("Theora"); caps = gst_caps_new_empty_simple ("video/x-theora"); @@ -9819,7 +10360,7 @@ qtdemux_audio_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, case GST_MAKE_FOURCC ('Q', 'D', 'M', '2'): _codec ("QDesign Music v.2"); /* FIXME: QDesign music version 2 (no constant) */ - if (data) { + if (FALSE && data) { caps = gst_caps_new_simple ("audio/x-qdm2", "framesize", G_TYPE_INT, QT_UINT32 (data + 52), "bitrate", G_TYPE_INT, QT_UINT32 (data + 40), @@ -9857,6 +10398,63 @@ qtdemux_audio_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, _codec ("WMA"); caps = gst_caps_new_empty_simple ("audio/x-wma"); break; + case GST_MAKE_FOURCC ('l', 'p', 'c', 'm'): + { + guint32 flags = 0; + guint32 depth = 0; + guint32 width = 0; + GstAudioFormat format; + enum + { + FLAG_IS_FLOAT = 0x1, + FLAG_IS_BIG_ENDIAN = 0x2, + FLAG_IS_SIGNED = 0x4, + FLAG_IS_PACKED = 0x8, + FLAG_IS_ALIGNED_HIGH = 0x10, + FLAG_IS_NON_INTERLEAVED = 0x20 + }; + _codec ("Raw LPCM audio"); + + if (data && len >= 56) { + depth = QT_UINT32 (data + 40); + flags = QT_UINT32 (data + 44); + width = QT_UINT32 (data + 48) * 8 / stream->n_channels; + } + if ((flags & FLAG_IS_FLOAT) == 0) { + if (depth == 0) + depth = 16; + if (width == 0) + width = 16; + format = gst_audio_format_build_integer ((flags & FLAG_IS_SIGNED) ? + TRUE : FALSE, (flags & FLAG_IS_BIG_ENDIAN) ? + G_BIG_ENDIAN : G_LITTLE_ENDIAN, width, depth); + caps = gst_caps_new_simple ("audio/x-raw", + "format", G_TYPE_STRING, gst_audio_format_to_string (format), + "layout", G_TYPE_STRING, (flags & FLAG_IS_NON_INTERLEAVED) ? + "non-interleaved" : "interleaved", NULL); + } else { + if (depth == 0) + depth = 32; + if (width == 0) + width = 32; + if (width == 64) { + if (flags & FLAG_IS_BIG_ENDIAN) + format = GST_AUDIO_FORMAT_F64BE; + else + format = GST_AUDIO_FORMAT_F64LE; + } else { + if (flags & FLAG_IS_BIG_ENDIAN) + format = GST_AUDIO_FORMAT_F32BE; + else + format = GST_AUDIO_FORMAT_F32LE; + } + caps = gst_caps_new_simple ("audio/x-raw", + "format", G_TYPE_STRING, gst_audio_format_to_string (format), + "layout", G_TYPE_STRING, (flags & FLAG_IS_NON_INTERLEAVED) ? + "non-interleaved" : "interleaved", NULL); + } + break; + } case GST_MAKE_FOURCC ('q', 't', 'v', 'r'): /* ? */ default: @@ -9884,6 +10482,8 @@ qtdemux_audio_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, name = gst_structure_get_name (s); if (g_str_has_prefix (name, "audio/x-raw")) { stream->need_clip = TRUE; + stream->max_buffer_size = 4096 * stream->bytes_per_frame; + GST_DEBUG ("setting max buffer size to %d", stream->max_buffer_size); } return caps; } diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h index a9e50ab53834a77c72e6e2c1cf34012ba194288a..efc6ffa96aedd7cd01c52636ffda0ed6c8dfba55 100644 --- a/gst/isomp4/qtdemux.h +++ b/gst/isomp4/qtdemux.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ @@ -101,6 +101,7 @@ struct _GstQTDemux { /* configured playback region */ GstSegment segment; GstEvent *pending_newsegment; + gboolean upstream_newsegment; #if 0 /* gst index support */ @@ -113,6 +114,13 @@ struct _GstQTDemux { gboolean upstream_seekable; gint64 upstream_size; + + /* MSS streams have a single media that is unspecified at the atoms, so + * upstream provides it at the caps */ + GstCaps *media_caps; + gboolean exposed; + gboolean mss_mode; /* flag to indicate that we're working with a smoothstreaming fragment */ + guint64 fragment_start; }; struct _GstQTDemuxClass { diff --git a/gst/isomp4/qtdemux_dump.c b/gst/isomp4/qtdemux_dump.c index 952b0c78daf7c9e26672977969d34a415d957336..b62ef174bbe8003f9401e062ba322be41509e076 100644 --- a/gst/isomp4/qtdemux_dump.c +++ b/gst/isomp4/qtdemux_dump.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "qtdemux_types.h" diff --git a/gst/isomp4/qtdemux_dump.h b/gst/isomp4/qtdemux_dump.h index d5486eebf0f6c7c2dddcb8b567362cf485c6eab3..0003ac1350b9ca962bfd35efed598c26fa3ba1c7 100644 --- a/gst/isomp4/qtdemux_dump.h +++ b/gst/isomp4/qtdemux_dump.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_QTDEMUX_DUMP_H__ diff --git a/gst/isomp4/qtdemux_fourcc.h b/gst/isomp4/qtdemux_fourcc.h index b14f91a26d8d506ebe5018f092441544781b5207..077b54b18351b5dc7bb26489d974df83ef4ab65e 100644 --- a/gst/isomp4/qtdemux_fourcc.h +++ b/gst/isomp4/qtdemux_fourcc.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_QTDEMUX_FOURCC_H__ @@ -65,6 +65,7 @@ G_BEGIN_DECLS #define FOURCC_vide GST_MAKE_FOURCC('v','i','d','e') #define FOURCC_soun GST_MAKE_FOURCC('s','o','u','n') #define FOURCC_subp GST_MAKE_FOURCC('s','u','b','p') +#define FOURCC_sbtl GST_MAKE_FOURCC('s','b','t','l') #define FOURCC_strm GST_MAKE_FOURCC('s','t','r','m') #define FOURCC_rtsp GST_MAKE_FOURCC('r','t','s','p') #define FOURCC_co64 GST_MAKE_FOURCC('c','o','6','4') diff --git a/gst/isomp4/qtdemux_lang.c b/gst/isomp4/qtdemux_lang.c index 9a46d9075eb3b4fe32946b40783bab352c2f8e66..0c7a5d9f52563eba246eeef4328ec958024ed2c3 100644 --- a/gst/isomp4/qtdemux_lang.c +++ b/gst/isomp4/qtdemux_lang.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "qtdemux.h" diff --git a/gst/isomp4/qtdemux_lang.h b/gst/isomp4/qtdemux_lang.h index a5fdec0fdbc6b8b2ad6ef421ac85ab5deda94c84..707c5f72137b19410d6b8ff0f6ec77ad298d4653 100644 --- a/gst/isomp4/qtdemux_lang.h +++ b/gst/isomp4/qtdemux_lang.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_QTDEMUX_LANG_H__ diff --git a/gst/isomp4/qtdemux_types.c b/gst/isomp4/qtdemux_types.c index 65afc8e2a8e612a9d4a674b731def8385f13b1e8..c6767341b2708dd67bcf847d6cd227118541386e 100644 --- a/gst/isomp4/qtdemux_types.c +++ b/gst/isomp4/qtdemux_types.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "qtdemux_types.h" diff --git a/gst/isomp4/qtdemux_types.h b/gst/isomp4/qtdemux_types.h index a22efb8bfcd56a92db3c848c8015f05f64ffe853..57ab4f096805ed7f06075eab4e8878fa0e046d0c 100644 --- a/gst/isomp4/qtdemux_types.h +++ b/gst/isomp4/qtdemux_types.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_QTDEMUX_TYPES_H__ diff --git a/gst/isomp4/qtpalette.h b/gst/isomp4/qtpalette.h index 80ece2aea43826fff0dfd85042be6aae36be1f76..a41e9911cc2062bd6eba9364cf7e30a8c8dac3bb 100644 --- a/gst/isomp4/qtpalette.h +++ b/gst/isomp4/qtpalette.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/law/Makefile.in b/gst/law/Makefile.in index 7d01bde7122ab528381a0b90c2080ec6f044c76b..fac35eb8dda64114229663304c15b594e62a8fa4 100644 --- a/gst/law/Makefile.in +++ b/gst/law/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/law -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,6 +162,7 @@ libgstalaw_la_OBJECTS = $(am_libgstalaw_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstalaw_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstalaw_la_CFLAGS) $(CFLAGS) \ @@ -150,6 +177,18 @@ libgstmulaw_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstmulaw_la_CFLAGS) $(CFLAGS) \ $(libgstmulaw_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -162,20 +201,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstalaw_la_SOURCES) $(libgstmulaw_la_SOURCES) DIST_SOURCES = $(libgstalaw_la_SOURCES) $(libgstmulaw_la_SOURCES) am__can_run_installinfo = \ @@ -184,6 +219,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -352,6 +404,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -562,6 +615,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -588,14 +642,18 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstalaw.la: $(libgstalaw_la_OBJECTS) $(libgstalaw_la_DEPENDENCIES) $(EXTRA_libgstalaw_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstalaw_la_LINK) -rpath $(plugindir) $(libgstalaw_la_OBJECTS) $(libgstalaw_la_LIBADD) $(LIBS) + libgstmulaw.la: $(libgstmulaw_la_OBJECTS) $(libgstmulaw_la_DEPENDENCIES) $(EXTRA_libgstmulaw_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmulaw_la_LINK) -rpath $(plugindir) $(libgstmulaw_la_OBJECTS) $(libgstmulaw_la_LIBADD) $(LIBS) @@ -689,26 +747,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -720,15 +767,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -737,6 +780,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -881,19 +939,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/law/alaw-decode.c b/gst/law/alaw-decode.c index 7b5d936ed2e579be8b82ac9d290c46edac9010ad..e08dc57b0668b934509ff8f54228c9b6cc317f7e 100644 --- a/gst/law/alaw-decode.c +++ b/gst/law/alaw-decode.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-alawdec diff --git a/gst/law/alaw-decode.h b/gst/law/alaw-decode.h index b2d331d56929137e33f6c22abd7e6350afa03f8e..0680f5039c43afe8fc5e3725d1f67971e5b2e455 100644 --- a/gst/law/alaw-decode.h +++ b/gst/law/alaw-decode.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_ALAW_DECODE_H__ diff --git a/gst/law/alaw-encode.c b/gst/law/alaw-encode.c index d286ecf9a5bb38f40429b734fa1b8e4629eac72f..6bcd35e9695acfed64fc814521e1374fc9beeb72 100644 --- a/gst/law/alaw-encode.c +++ b/gst/law/alaw-encode.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-alawenc diff --git a/gst/law/alaw-encode.h b/gst/law/alaw-encode.h index 3ca53a63fcc034cf7ccd0b07c5ca30dd6daef70e..16a61ddd57dc00df543d6750ff510eec26e88c3a 100644 --- a/gst/law/alaw-encode.h +++ b/gst/law/alaw-encode.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/law/alaw.c b/gst/law/alaw.c index 047c0776f7b744887b07431421167c12dfdde1e8..64f7e069f8d63a66ed8e779c3712f88cf4d8a38d 100644 --- a/gst/law/alaw.c +++ b/gst/law/alaw.c @@ -12,8 +12,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/law/mulaw-decode.c b/gst/law/mulaw-decode.c index ba0d4f940057e18407d42f4e5bfa9761edce3c46..a26a34dfc751a2479ca32ee5090b57fec3408576 100644 --- a/gst/law/mulaw-decode.c +++ b/gst/law/mulaw-decode.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-mulawdec @@ -33,6 +33,11 @@ extern GstStaticPadTemplate mulaw_dec_src_factory; extern GstStaticPadTemplate mulaw_dec_sink_factory; +static gboolean gst_mulawdec_set_format (GstAudioDecoder * dec, GstCaps * caps); +static GstFlowReturn gst_mulawdec_handle_frame (GstAudioDecoder * dec, + GstBuffer * buffer); + + /* Stereo signals and args */ enum { @@ -45,278 +50,113 @@ enum ARG_0 }; -static GstStateChangeReturn -gst_mulawdec_change_state (GstElement * element, GstStateChange transition); - -static gboolean gst_mulawdec_event (GstPad * pad, GstObject * parent, - GstEvent * event); -static GstFlowReturn gst_mulawdec_chain (GstPad * pad, GstObject * parent, - GstBuffer * buffer); - #define gst_mulawdec_parent_class parent_class -G_DEFINE_TYPE (GstMuLawDec, gst_mulawdec, GST_TYPE_ELEMENT); +G_DEFINE_TYPE (GstMuLawDec, gst_mulawdec, GST_TYPE_AUDIO_DECODER); static gboolean -mulawdec_setcaps (GstMuLawDec * mulawdec, GstCaps * caps) +gst_mulawdec_set_format (GstAudioDecoder * dec, GstCaps * caps) { + GstMuLawDec *mulawdec = GST_MULAWDEC (dec); GstStructure *structure; int rate, channels; - gboolean ret; - GstCaps *outcaps; GstAudioInfo info; structure = gst_caps_get_structure (caps, 0); - ret = gst_structure_get_int (structure, "rate", &rate); - ret = ret && gst_structure_get_int (structure, "channels", &channels); - if (!ret) - return FALSE; - - gst_audio_info_init (&info); - gst_audio_info_set_format (&info, GST_AUDIO_FORMAT_S16, rate, channels, NULL); - - outcaps = gst_audio_info_to_caps (&info); - ret = gst_pad_set_caps (mulawdec->srcpad, outcaps); - gst_caps_unref (outcaps); - - if (ret) { - GST_DEBUG_OBJECT (mulawdec, "rate=%d, channels=%d", rate, channels); - mulawdec->info = info; + if (!structure) { + GST_ERROR ("failed to get structure from caps"); + goto error_failed_get_structure; } - return ret; -} -static GstCaps * -mulawdec_getcaps (GstPad * pad, GstCaps * filter) -{ - GstMuLawDec *mulawdec; - GstPad *otherpad; - GstCaps *othercaps, *result; - GstCaps *templ; - const gchar *name; - gint i; - - mulawdec = GST_MULAWDEC (GST_PAD_PARENT (pad)); - - /* figure out the name of the caps we are going to return */ - if (pad == mulawdec->srcpad) { - name = "audio/x-raw"; - otherpad = mulawdec->sinkpad; - } else { - name = "audio/x-mulaw"; - otherpad = mulawdec->srcpad; - } - /* get caps from the peer, this can return NULL when there is no peer */ - othercaps = gst_pad_peer_query_caps (otherpad, NULL); - - /* get the template caps to make sure we return something acceptable */ - templ = gst_pad_get_pad_template_caps (pad); - - if (othercaps) { - /* there was a peer */ - othercaps = gst_caps_make_writable (othercaps); - - /* go through the caps and remove the fields we don't want */ - for (i = 0; i < gst_caps_get_size (othercaps); i++) { - GstStructure *structure; - - structure = gst_caps_get_structure (othercaps, i); - - /* adjust the name */ - gst_structure_set_name (structure, name); - - if (pad == mulawdec->sinkpad) { - /* remove the fields we don't want */ - gst_structure_remove_fields (structure, "format", "layout", NULL); - } else { - /* add fixed fields */ - gst_structure_set (structure, "format", G_TYPE_STRING, - GST_AUDIO_NE (S16), "layout", G_TYPE_STRING, "interleaved", NULL); - } - } - /* filter against the allowed caps of the pad to return our result */ - result = gst_caps_intersect (othercaps, templ); - gst_caps_unref (othercaps); - gst_caps_unref (templ); - } else { - /* there was no peer, return the template caps */ - result = templ; + if (!gst_structure_get_int (structure, "rate", &rate)) { + GST_ERROR ("failed to find field rate in input caps"); + goto error_failed_find_rate; } - if (filter && result) { - GstCaps *temp; - temp = gst_caps_intersect (result, filter); - gst_caps_unref (result); - result = temp; + if (!gst_structure_get_int (structure, "channels", &channels)) { + GST_ERROR ("failed to find field channels in input caps"); + goto error_failed_find_channel; } - return result; -} -static gboolean -gst_mulawdec_query (GstPad * pad, GstObject * parent, GstQuery * query) -{ - gboolean res; - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_CAPS: - { - GstCaps *filter, *caps; - - gst_query_parse_caps (query, &filter); - caps = mulawdec_getcaps (pad, filter); - gst_query_set_caps_result (query, caps); - gst_caps_unref (caps); - - res = TRUE; - break; - } - default: - res = gst_pad_query_default (pad, parent, query); - break; - } - return res; -} - -static void -gst_mulawdec_class_init (GstMuLawDecClass * klass) -{ - GstElementClass *element_class = (GstElementClass *) klass; - - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mulaw_dec_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mulaw_dec_sink_factory)); - - gst_element_class_set_static_metadata (element_class, "Mu Law audio decoder", - "Codec/Decoder/Audio", - "Convert 8bit mu law to 16bit PCM", - "Zaheer Abbas Merali <zaheerabbas at merali dot org>"); + gst_audio_info_init (&info); + gst_audio_info_set_format (&info, GST_AUDIO_FORMAT_S16, rate, channels, NULL); - element_class->change_state = GST_DEBUG_FUNCPTR (gst_mulawdec_change_state); -} + GST_DEBUG_OBJECT (mulawdec, "rate=%d, channels=%d", rate, channels); -static void -gst_mulawdec_init (GstMuLawDec * mulawdec) -{ - mulawdec->sinkpad = - gst_pad_new_from_static_template (&mulaw_dec_sink_factory, "sink"); - gst_pad_set_query_function (mulawdec->sinkpad, gst_mulawdec_query); - gst_pad_set_event_function (mulawdec->sinkpad, gst_mulawdec_event); - gst_pad_set_chain_function (mulawdec->sinkpad, gst_mulawdec_chain); - gst_element_add_pad (GST_ELEMENT (mulawdec), mulawdec->sinkpad); - - mulawdec->srcpad = - gst_pad_new_from_static_template (&mulaw_dec_src_factory, "src"); - gst_pad_set_query_function (mulawdec->srcpad, gst_mulawdec_query); - gst_element_add_pad (GST_ELEMENT (mulawdec), mulawdec->srcpad); -} + return gst_audio_decoder_set_output_format (dec, &info); -static gboolean -gst_mulawdec_event (GstPad * pad, GstObject * parent, GstEvent * event) -{ - GstMuLawDec *mulawdec; - gboolean res; - - mulawdec = GST_MULAWDEC (parent); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_CAPS: - { - GstCaps *caps; - - gst_event_parse_caps (event, &caps); - mulawdec_setcaps (mulawdec, caps); - gst_event_unref (event); - - res = TRUE; - break; - } - default: - res = gst_pad_event_default (pad, parent, event); - break; - } - return res; +error_failed_find_channel: +error_failed_find_rate: +error_failed_get_structure: + return FALSE; } static GstFlowReturn -gst_mulawdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) +gst_mulawdec_handle_frame (GstAudioDecoder * dec, GstBuffer * buffer) { - GstMuLawDec *mulawdec; GstMapInfo inmap, outmap; gint16 *linear_data; guint8 *mulaw_data; gsize mulaw_size, linear_size; GstBuffer *outbuf; - GstFlowReturn ret; - mulawdec = GST_MULAWDEC (parent); + if (!buffer) { + return GST_FLOW_OK; + } - if (G_UNLIKELY (!GST_AUDIO_INFO_IS_VALID (&mulawdec->info))) - goto not_negotiated; + if (!gst_buffer_map (buffer, &inmap, GST_MAP_READ)) { + GST_ERROR ("failed to map input buffer"); + goto error_failed_map_input_buffer; + } - gst_buffer_map (buffer, &inmap, GST_MAP_READ); mulaw_data = inmap.data; mulaw_size = inmap.size; linear_size = mulaw_size * 2; - outbuf = gst_buffer_new_allocate (NULL, linear_size, NULL); - gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE); - linear_data = (gint16 *) outmap.data; - - /* copy discont flag */ - if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); - - GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buffer); - if (GST_BUFFER_DURATION_IS_VALID (buffer)) { - GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (buffer); - } else { - GST_BUFFER_DURATION (outbuf) = gst_util_uint64_scale_int (GST_SECOND, - linear_size, GST_AUDIO_INFO_RATE (&mulawdec->info) * - GST_AUDIO_INFO_BPF (&mulawdec->info)); + outbuf = gst_audio_decoder_allocate_output_buffer (dec, linear_size); + if (!gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE)) { + GST_ERROR ("failed to map input buffer"); + goto error_failed_map_output_buffer; } + linear_data = (gint16 *) outmap.data; + mulaw_decode (mulaw_data, linear_data, mulaw_size); gst_buffer_unmap (outbuf, &outmap); gst_buffer_unmap (buffer, &inmap); - gst_buffer_unref (buffer); - ret = gst_pad_push (mulawdec->srcpad, outbuf); + return gst_audio_decoder_finish_frame (dec, outbuf, -1); - return ret; +error_failed_map_output_buffer: + gst_buffer_unref (outbuf); - /* ERRORS */ -not_negotiated: - { - GST_WARNING_OBJECT (mulawdec, "no input format set: not-negotiated"); - gst_buffer_unref (buffer); - return GST_FLOW_NOT_NEGOTIATED; - } +error_failed_map_input_buffer: + return GST_FLOW_ERROR; } -static GstStateChangeReturn -gst_mulawdec_change_state (GstElement * element, GstStateChange transition) +static void +gst_mulawdec_class_init (GstMuLawDecClass * klass) { - GstStateChangeReturn ret; - GstMuLawDec *dec = GST_MULAWDEC (element); + GstElementClass *element_class = (GstElementClass *) klass; + GstAudioDecoderClass *audiodec_class = GST_AUDIO_DECODER_CLASS (klass); - switch (transition) { - default: - break; - } + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&mulaw_dec_src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&mulaw_dec_sink_factory)); - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - if (ret != GST_STATE_CHANGE_SUCCESS) - return ret; - switch (transition) { - case GST_STATE_CHANGE_PAUSED_TO_READY: - gst_audio_info_init (&dec->info); - break; - default: - break; - } + audiodec_class->set_format = GST_DEBUG_FUNCPTR (gst_mulawdec_set_format); + audiodec_class->handle_frame = GST_DEBUG_FUNCPTR (gst_mulawdec_handle_frame); - return ret; + gst_element_class_set_static_metadata (element_class, "Mu Law audio decoder", + "Codec/Decoder/Audio", + "Convert 8bit mu law to 16bit PCM", + "Zaheer Abbas Merali <zaheerabbas at merali dot org>"); +} + +static void +gst_mulawdec_init (GstMuLawDec * mulawdec) +{ } diff --git a/gst/law/mulaw-decode.h b/gst/law/mulaw-decode.h index 03f0c1569fe41c0667c1ee317bef830da2676312..bed62fa097cc8dce3482e54a74082c52cf02968a 100644 --- a/gst/law/mulaw-decode.h +++ b/gst/law/mulaw-decode.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MULAWDECODE_H__ @@ -22,9 +22,9 @@ #include <gst/gst.h> #include <gst/audio/audio.h> +#include <gst/audio/gstaudiodecoder.h> G_BEGIN_DECLS - #define GST_TYPE_MULAWDEC \ (gst_mulawdec_get_type()) #define GST_MULAWDEC(obj) \ @@ -35,24 +35,20 @@ G_BEGIN_DECLS (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MULAWDEC)) #define GST_IS_MULAWDEC_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MULAWDEC)) - typedef struct _GstMuLawDec GstMuLawDec; typedef struct _GstMuLawDecClass GstMuLawDecClass; -struct _GstMuLawDec { - GstElement element; - - GstPad *sinkpad,*srcpad; - - GstAudioInfo info; +struct _GstMuLawDec +{ + GstAudioDecoder element; }; -struct _GstMuLawDecClass { - GstElementClass parent_class; +struct _GstMuLawDecClass +{ + GstAudioDecoderClass parent_class; }; -GType gst_mulawdec_get_type(void); +GType gst_mulawdec_get_type (void); G_END_DECLS - #endif /* __GST_STEREO_H__ */ diff --git a/gst/law/mulaw-encode.c b/gst/law/mulaw-encode.c index b244c21c706cb1bd83cfb667247b91ccd6001bd9..ed943af52815538d56ce652ad7ba919755f3be9b 100644 --- a/gst/law/mulaw-encode.c +++ b/gst/law/mulaw-encode.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-mulawenc @@ -46,199 +46,88 @@ enum ARG_0 }; -static gboolean gst_mulawenc_event (GstPad * pad, GstObject * parent, - GstEvent * event); -static GstFlowReturn gst_mulawenc_chain (GstPad * pad, GstObject * parent, +static gboolean gst_mulawenc_start (GstAudioEncoder * audioenc); +static gboolean gst_mulawenc_set_format (GstAudioEncoder * enc, + GstAudioInfo * info); +static GstFlowReturn gst_mulawenc_handle_frame (GstAudioEncoder * enc, GstBuffer * buffer); +static void gst_mulawenc_set_tags (GstMuLawEnc * mulawenc); + #define gst_mulawenc_parent_class parent_class -G_DEFINE_TYPE (GstMuLawEnc, gst_mulawenc, GST_TYPE_ELEMENT); +G_DEFINE_TYPE (GstMuLawEnc, gst_mulawenc, GST_TYPE_AUDIO_ENCODER); /*static guint gst_stereo_signals[LAST_SIGNAL] = { 0 }; */ -static GstCaps * -mulawenc_getcaps (GstPad * pad, GstCaps * filter) +static gboolean +gst_mulawenc_start (GstAudioEncoder * audioenc) { - GstMuLawEnc *mulawenc; - GstPad *otherpad; - GstCaps *othercaps, *result; - GstCaps *templ; - const gchar *name; - gint i; - - mulawenc = GST_MULAWENC (GST_PAD_PARENT (pad)); - - /* figure out the name of the caps we are going to return */ - if (pad == mulawenc->srcpad) { - name = "audio/x-mulaw"; - otherpad = mulawenc->sinkpad; - } else { - name = "audio/x-raw"; - otherpad = mulawenc->srcpad; - } - /* get caps from the peer, this can return NULL when there is no peer */ - othercaps = gst_pad_peer_query_caps (otherpad, NULL); - - /* get the template caps to make sure we return something acceptable */ - templ = gst_pad_get_pad_template_caps (pad); - - if (othercaps) { - /* there was a peer */ - othercaps = gst_caps_make_writable (othercaps); - - /* go through the caps and remove the fields we don't want */ - for (i = 0; i < gst_caps_get_size (othercaps); i++) { - GstStructure *structure; - - structure = gst_caps_get_structure (othercaps, i); - - /* adjust the name */ - gst_structure_set_name (structure, name); - - if (pad == mulawenc->srcpad) { - /* remove the fields we don't want */ - gst_structure_remove_fields (structure, "format", NULL); - } else { - /* add fixed fields */ - gst_structure_set (structure, "format", G_TYPE_STRING, - GST_AUDIO_NE (S16), NULL); - } - } - /* filter against the allowed caps of the pad to return our result */ - result = gst_caps_intersect (othercaps, templ); - gst_caps_unref (othercaps); - gst_caps_unref (templ); - } else { - /* there was no peer, return the template caps */ - result = templ; - } - if (filter && result) { - GstCaps *temp; + GstMuLawEnc *mulawenc = GST_MULAWENC (audioenc); - temp = gst_caps_intersect (result, filter); - gst_caps_unref (result); - result = temp; - } + mulawenc->channels = 0; + mulawenc->rate = 0; - return result; + return TRUE; } -static gboolean -gst_mulawenc_query (GstPad * pad, GstObject * parent, GstQuery * query) + +static void +gst_mulawenc_set_tags (GstMuLawEnc * mulawenc) { - gboolean res; - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_CAPS: - { - GstCaps *filter, *caps; - - gst_query_parse_caps (query, &filter); - caps = mulawenc_getcaps (pad, filter); - gst_query_set_caps_result (query, caps); - gst_caps_unref (caps); - - res = TRUE; - break; - } - default: - res = gst_pad_query_default (pad, parent, query); - break; - } - return res; + GstTagList *taglist; + guint bitrate; + + /* bitrate of mulaw is 8 bits/sample * sample rate * number of channels */ + bitrate = 8 * mulawenc->rate * mulawenc->channels; + + taglist = gst_tag_list_new_empty (); + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, + GST_TAG_MAXIMUM_BITRATE, bitrate, NULL); + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, + GST_TAG_MINIMUM_BITRATE, bitrate, NULL); + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, + GST_TAG_BITRATE, bitrate, NULL); + + gst_audio_encoder_merge_tags (GST_AUDIO_ENCODER (mulawenc), + taglist, GST_TAG_MERGE_REPLACE); + + gst_tag_list_unref (taglist); } static gboolean -mulawenc_setcaps (GstMuLawEnc * mulawenc, GstCaps * caps) +gst_mulawenc_set_format (GstAudioEncoder * audioenc, GstAudioInfo * info) { - GstStructure *structure; GstCaps *base_caps; + GstStructure *structure; + GstMuLawEnc *mulawenc = GST_MULAWENC (audioenc); + gboolean ret; - structure = gst_caps_get_structure (caps, 0); - gst_structure_get_int (structure, "channels", &mulawenc->channels); - gst_structure_get_int (structure, "rate", &mulawenc->rate); + mulawenc->rate = info->rate; + mulawenc->channels = info->channels; - base_caps = gst_pad_get_pad_template_caps (mulawenc->srcpad); + base_caps = + gst_pad_get_pad_template_caps (GST_AUDIO_ENCODER_SRC_PAD (audioenc)); + g_assert (base_caps); base_caps = gst_caps_make_writable (base_caps); + g_assert (base_caps); structure = gst_caps_get_structure (base_caps, 0); + g_assert (structure); gst_structure_set (structure, "rate", G_TYPE_INT, mulawenc->rate, NULL); gst_structure_set (structure, "channels", G_TYPE_INT, mulawenc->channels, NULL); - gst_pad_set_caps (mulawenc->srcpad, base_caps); + gst_mulawenc_set_tags (mulawenc); + ret = gst_audio_encoder_set_output_format (audioenc, base_caps); gst_caps_unref (base_caps); - return TRUE; -} - -static void -gst_mulawenc_class_init (GstMuLawEncClass * klass) -{ - GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mulaw_enc_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mulaw_enc_sink_factory)); - - gst_element_class_set_static_metadata (element_class, "Mu Law audio encoder", - "Codec/Encoder/Audio", - "Convert 16bit PCM to 8bit mu law", - "Zaheer Abbas Merali <zaheerabbas at merali dot org>"); -} - -static void -gst_mulawenc_init (GstMuLawEnc * mulawenc) -{ - mulawenc->sinkpad = - gst_pad_new_from_static_template (&mulaw_enc_sink_factory, "sink"); - gst_pad_set_query_function (mulawenc->sinkpad, gst_mulawenc_query); - gst_pad_set_event_function (mulawenc->sinkpad, gst_mulawenc_event); - gst_pad_set_chain_function (mulawenc->sinkpad, gst_mulawenc_chain); - gst_element_add_pad (GST_ELEMENT (mulawenc), mulawenc->sinkpad); - - mulawenc->srcpad = - gst_pad_new_from_static_template (&mulaw_enc_src_factory, "src"); - gst_pad_set_query_function (mulawenc->srcpad, gst_mulawenc_query); - gst_element_add_pad (GST_ELEMENT (mulawenc), mulawenc->srcpad); - - /* init rest */ - mulawenc->channels = 0; - mulawenc->rate = 0; -} - -static gboolean -gst_mulawenc_event (GstPad * pad, GstObject * parent, GstEvent * event) -{ - GstMuLawEnc *mulawenc; - gboolean res; - - mulawenc = GST_MULAWENC (parent); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_CAPS: - { - GstCaps *caps; - - gst_event_parse_caps (event, &caps); - mulawenc_setcaps (mulawenc, caps); - gst_event_unref (event); - - res = TRUE; - break; - } - default: - res = gst_pad_event_default (pad, parent, event); - break; - } - return res; + return ret; } static GstFlowReturn -gst_mulawenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) +gst_mulawenc_handle_frame (GstAudioEncoder * audioenc, GstBuffer * buffer) { GstMuLawEnc *mulawenc; GstMapInfo inmap, outmap; @@ -248,9 +137,13 @@ gst_mulawenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) guint mulaw_size; GstBuffer *outbuf; GstFlowReturn ret; - GstClockTime timestamp, duration; - mulawenc = GST_MULAWENC (parent); + if (!buffer) { + ret = GST_FLOW_OK; + goto done; + } + + mulawenc = GST_MULAWENC (audioenc); if (!mulawenc->rate || !mulawenc->channels) goto not_negotiated; @@ -261,33 +154,19 @@ gst_mulawenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) mulaw_size = linear_size / 2; - timestamp = GST_BUFFER_TIMESTAMP (buffer); - duration = GST_BUFFER_DURATION (buffer); + outbuf = gst_audio_encoder_allocate_output_buffer (audioenc, mulaw_size); - outbuf = gst_buffer_new_allocate (NULL, mulaw_size, NULL); - - if (duration == -1) { - duration = gst_util_uint64_scale_int (mulaw_size, - GST_SECOND, mulawenc->rate * mulawenc->channels); - } + g_assert (outbuf); gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE); mulaw_data = outmap.data; - /* copy discont flag */ - if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); - - GST_BUFFER_TIMESTAMP (outbuf) = timestamp; - GST_BUFFER_DURATION (outbuf) = duration; - mulaw_encode (linear_data, mulaw_data, mulaw_size); gst_buffer_unmap (outbuf, &outmap); gst_buffer_unmap (buffer, &inmap); - gst_buffer_unref (buffer); - ret = gst_pad_push (mulawenc->srcpad, outbuf); + ret = gst_audio_encoder_finish_frame (audioenc, outbuf, -1); done: @@ -297,7 +176,36 @@ not_negotiated: { GST_DEBUG_OBJECT (mulawenc, "no format negotiated"); ret = GST_FLOW_NOT_NEGOTIATED; - gst_buffer_unref (buffer); goto done; } } + + + +static void +gst_mulawenc_class_init (GstMuLawEncClass * klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + GstAudioEncoderClass *audio_encoder_class = GST_AUDIO_ENCODER_CLASS (klass); + + audio_encoder_class->start = GST_DEBUG_FUNCPTR (gst_mulawenc_start); + audio_encoder_class->set_format = GST_DEBUG_FUNCPTR (gst_mulawenc_set_format); + audio_encoder_class->handle_frame = + GST_DEBUG_FUNCPTR (gst_mulawenc_handle_frame); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&mulaw_enc_src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&mulaw_enc_sink_factory)); + + gst_element_class_set_static_metadata (element_class, "Mu Law audio encoder", + "Codec/Encoder/Audio", + "Convert 16bit PCM to 8bit mu law", + "Zaheer Abbas Merali <zaheerabbas at merali dot org>"); +} + +static void +gst_mulawenc_init (GstMuLawEnc * mulawenc) +{ + +} diff --git a/gst/law/mulaw-encode.h b/gst/law/mulaw-encode.h index f428c3c5096868a52c443a06bae8fda9aedacae0..c5ade39c1ec2bb555cee5e6aa741bc878b89a1f7 100644 --- a/gst/law/mulaw-encode.h +++ b/gst/law/mulaw-encode.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ @@ -22,9 +22,9 @@ #define __GST_MULAWENCODE_H__ #include <gst/gst.h> +#include <gst/audio/gstaudioencoder.h> G_BEGIN_DECLS - #define GST_TYPE_MULAWENC \ (gst_mulawenc_get_type()) #define GST_MULAWENC(obj) \ @@ -35,25 +35,23 @@ G_BEGIN_DECLS (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MULAWENC)) #define GST_IS_MULAWENC_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MULAWENC)) - typedef struct _GstMuLawEnc GstMuLawEnc; typedef struct _GstMuLawEncClass GstMuLawEncClass; -struct _GstMuLawEnc { - GstElement element; - - GstPad *sinkpad,*srcpad; +struct _GstMuLawEnc +{ + GstAudioEncoder element; gint channels; gint rate; }; -struct _GstMuLawEncClass { - GstElementClass parent_class; +struct _GstMuLawEncClass +{ + GstAudioEncoderClass parent_class; }; -GType gst_mulawenc_get_type(void); +GType gst_mulawenc_get_type (void); G_END_DECLS - #endif /* __GST_STEREO_H__ */ diff --git a/gst/law/mulaw.c b/gst/law/mulaw.c index ad143be4872a7ee4d8c4af9d854052af5ca4060b..a2e614df7dccd26887136cbfdc43f0adf7545059 100644 --- a/gst/law/mulaw.c +++ b/gst/law/mulaw.c @@ -12,8 +12,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/level/Makefile.in b/gst/level/Makefile.in index bba87359b49d229864d860b439ef93cd96ec56c7..ffff66f0063e4efebfc1d9a7db3391794cb7a7ce 100644 --- a/gst/level/Makefile.in +++ b/gst/level/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/level -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -135,10 +161,23 @@ libgstlevel_la_OBJECTS = $(am_libgstlevel_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstlevel_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstlevel_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstlevel_la_CFLAGS) $(CFLAGS) \ $(libgstlevel_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstlevel_la_SOURCES) DIST_SOURCES = $(libgstlevel_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstlevel.la: $(libgstlevel_la_OBJECTS) $(libgstlevel_la_DEPENDENCIES) $(EXTRA_libgstlevel_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstlevel_la_LINK) -rpath $(plugindir) $(libgstlevel_la_OBJECTS) $(libgstlevel_la_LIBADD) $(LIBS) @@ -619,26 +676,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -650,15 +696,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -667,6 +709,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/level/gstlevel.c b/gst/level/gstlevel.c index 19e02bceef7e93ae3dff68639c9aafd267ae1be0..59943d488e3e7506bd3273a72c43abb83217de3d 100644 --- a/gst/level/gstlevel.c +++ b/gst/level/gstlevel.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -146,8 +146,9 @@ GST_STATIC_PAD_TEMPLATE ("src", enum { PROP_0, - PROP_SIGNAL_LEVEL, - PROP_SIGNAL_INTERVAL, + PROP_POST_MESSAGES, + PROP_MESSAGE, + PROP_INTERVAL, PROP_PEAK_TTL, PROP_PEAK_FALLOFF }; @@ -182,11 +183,30 @@ gst_level_class_init (GstLevelClass * klass) gobject_class->get_property = gst_level_get_property; gobject_class->finalize = gst_level_finalize; - g_object_class_install_property (gobject_class, PROP_SIGNAL_LEVEL, + /** + * GstLevel:post-messages + * + * Post messages on the bus with level information. + * + * Since: 1.1.0 + */ + g_object_class_install_property (gobject_class, PROP_POST_MESSAGES, + g_param_spec_boolean ("post-messages", "Post Messages", + "Whether to post a 'level' element message on the bus for each " + "passed interval", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /* FIXME(2.0): remove this property */ + /** + * GstLevel:post-messages + * + * Post messages on the bus with level information. + * + * Deprecated: use the #GstLevel:post-messages property + */ + g_object_class_install_property (gobject_class, PROP_MESSAGE, g_param_spec_boolean ("message", "message", - "Post a level message for each passed interval", + "Post a 'level' message for each passed interval (deprecated)", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_SIGNAL_INTERVAL, + g_object_class_install_property (gobject_class, PROP_INTERVAL, g_param_spec_uint64 ("interval", "Interval", "Interval of time between message posts (in nanoseconds)", 1, G_MAXUINT64, GST_SECOND / 10, @@ -224,6 +244,10 @@ gst_level_init (GstLevel * filter) { filter->CS = NULL; filter->peak = NULL; + filter->last_peak = NULL; + filter->decay_peak = NULL; + filter->decay_peak_base = NULL; + filter->decay_peak_age = NULL; gst_audio_info_init (&filter->info); @@ -231,7 +255,7 @@ gst_level_init (GstLevel * filter) filter->decay_peak_ttl = GST_SECOND / 10 * 3; filter->decay_peak_falloff = 10.0; /* dB falloff (/sec) */ - filter->message = TRUE; + filter->post_messages = TRUE; filter->process = NULL; @@ -267,10 +291,12 @@ gst_level_set_property (GObject * object, guint prop_id, GstLevel *filter = GST_LEVEL (object); switch (prop_id) { - case PROP_SIGNAL_LEVEL: - filter->message = g_value_get_boolean (value); + case PROP_POST_MESSAGES: + /* fall-through */ + case PROP_MESSAGE: + filter->post_messages = g_value_get_boolean (value); break; - case PROP_SIGNAL_INTERVAL: + case PROP_INTERVAL: filter->interval = g_value_get_uint64 (value); if (GST_AUDIO_INFO_RATE (&filter->info)) { filter->interval_frames = @@ -298,10 +324,12 @@ gst_level_get_property (GObject * object, guint prop_id, GstLevel *filter = GST_LEVEL (object); switch (prop_id) { - case PROP_SIGNAL_LEVEL: - g_value_set_boolean (value, filter->message); + case PROP_POST_MESSAGES: + /* fall-through */ + case PROP_MESSAGE: + g_value_set_boolean (value, filter->post_messages); break; - case PROP_SIGNAL_INTERVAL: + case PROP_INTERVAL: g_value_set_uint64 (value, filter->interval); break; case PROP_PEAK_TTL: @@ -326,11 +354,11 @@ gst_level_get_property (GObject * object, guint prop_id, * * caller must assure num is a multiple of channels * samples for multiple channels are interleaved - * input sample data enters in *in_data as 8 or 16 bit data + * input sample data enters in *in_data and is not modified * this filter only accepts signed audio data, so mid level is always 0 * - * for 16 bit, this code considers the non-existant 32768 value to be - * full-scale; so 32767 will not map to 1.0 + * for integers, this code considers the non-existant positive max value to be + * full-scale; so max-1 will not map to 1.0 */ #define DEFINE_INT_LEVEL_CALCULATOR(TYPE, RESOLUTION) \ @@ -340,23 +368,21 @@ gst_level_calculate_##TYPE (gpointer data, guint num, guint channels, \ { \ TYPE * in = (TYPE *)data; \ register guint j; \ - gdouble squaresum = 0.0; /* square sum of the integer samples */ \ + gdouble squaresum = 0.0; /* square sum of the input samples */ \ register gdouble square = 0.0; /* Square */ \ register gdouble peaksquare = 0.0; /* Peak Square Sample */ \ - gdouble normalizer; /* divisor to get a [-1.0, 1.0] range */ \ + gdouble normalizer; /* divisor to get a [-1.0, 1.0] range */ \ \ /* *NCS = 0.0; Normalized Cumulative Square */ \ - /* *NPS = 0.0; Normalized Peask Square */ \ + /* *NPS = 0.0; Normalized Peak Square */ \ \ - normalizer = (gdouble) (G_GINT64_CONSTANT(1) << (RESOLUTION * 2)); \ - \ - for (j = 0; j < num; j += channels) \ - { \ + for (j = 0; j < num; j += channels) { \ square = ((gdouble) in[j]) * in[j]; \ if (square > peaksquare) peaksquare = square; \ squaresum += square; \ } \ \ + normalizer = (gdouble) (G_GINT64_CONSTANT(1) << (RESOLUTION * 2)); \ *NCS = squaresum / normalizer; \ *NPS = peaksquare / normalizer; \ } @@ -373,16 +399,15 @@ gst_level_calculate_##TYPE (gpointer data, guint num, guint channels, \ { \ TYPE * in = (TYPE *)data; \ register guint j; \ - gdouble squaresum = 0.0; /* square sum of the integer samples */ \ + gdouble squaresum = 0.0; /* square sum of the input samples */ \ register gdouble square = 0.0; /* Square */ \ register gdouble peaksquare = 0.0; /* Peak Square Sample */ \ \ /* *NCS = 0.0; Normalized Cumulative Square */ \ - /* *NPS = 0.0; Normalized Peask Square */ \ + /* *NPS = 0.0; Normalized Peak Square */ \ \ /* orc_level_squaresum_f64(&squaresum,in,num); */ \ - for (j = 0; j < num; j += channels) \ - { \ + for (j = 0; j < num; j += channels) { \ square = ((gdouble) in[j]) * in[j]; \ if (square > peaksquare) peaksquare = square; \ squaresum += square; \ @@ -474,6 +499,7 @@ gst_level_start (GstBaseTransform * trans) GstLevel *filter = GST_LEVEL (trans); filter->num_frames = 0; + filter->message_ts = GST_CLOCK_TIME_NONE; return TRUE; } @@ -556,9 +582,11 @@ gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in) gsize in_size; gdouble CS; guint i; - guint num_frames = 0; + guint num_frames; guint num_int_samples = 0; /* number of interleaved samples * ie. total count for all channels combined */ + guint block_size, block_int_size; /* we subdivide buffers to not skip message + * intervals */ GstClockTimeDiff falloff_time; gint channels, rate, bps; @@ -579,75 +607,87 @@ gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in) g_return_val_if_fail (num_int_samples % channels == 0, GST_FLOW_ERROR); + if (GST_BUFFER_FLAG_IS_SET (in, GST_BUFFER_FLAG_DISCONT)) { + filter->message_ts = GST_BUFFER_TIMESTAMP (in); + filter->num_frames = 0; + } + if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (filter->message_ts))) { + filter->message_ts = GST_BUFFER_TIMESTAMP (in); + } + num_frames = num_int_samples / channels; + while (num_frames > 0) { + block_size = filter->interval_frames - filter->num_frames; + block_size = MIN (block_size, num_frames); + block_int_size = block_size * channels; - for (i = 0; i < channels; ++i) { - if (!GST_BUFFER_FLAG_IS_SET (in, GST_BUFFER_FLAG_GAP)) { - filter->process (in_data, num_int_samples, channels, &CS, - &filter->peak[i]); - GST_LOG_OBJECT (filter, - "channel %d, cumulative sum %f, peak %f, over %d samples/%d channels", - i, CS, filter->peak[i], num_int_samples, channels); - filter->CS[i] += CS; - } else { - filter->peak[i] = 0.0; - } - in_data += bps; - - filter->decay_peak_age[i] += GST_FRAMES_TO_CLOCK_TIME (num_frames, rate); - GST_LOG_OBJECT (filter, "filter peak info [%d]: decay peak %f, age %" - GST_TIME_FORMAT, i, - filter->decay_peak[i], GST_TIME_ARGS (filter->decay_peak_age[i])); - - /* update running peak */ - if (filter->peak[i] > filter->last_peak[i]) - filter->last_peak[i] = filter->peak[i]; - - /* make decay peak fall off if too old */ - falloff_time = - GST_CLOCK_DIFF (gst_gdouble_to_guint64 (filter->decay_peak_ttl), - filter->decay_peak_age[i]); - if (falloff_time > 0) { - gdouble falloff_dB; - gdouble falloff; - gdouble length; /* length of falloff time in seconds */ - - length = (gdouble) falloff_time / (gdouble) GST_SECOND; - falloff_dB = filter->decay_peak_falloff * length; - falloff = pow (10, falloff_dB / -20.0); + for (i = 0; i < channels; ++i) { + if (!GST_BUFFER_FLAG_IS_SET (in, GST_BUFFER_FLAG_GAP)) { + filter->process (in_data, block_int_size, channels, &CS, + &filter->peak[i]); + GST_LOG_OBJECT (filter, + "[%d]: cumulative squares %lf, over %d samples/%d channels", + i, CS, block_int_size, channels); + filter->CS[i] += CS; + } else { + filter->peak[i] = 0.0; + } + in_data += bps; + filter->decay_peak_age[i] += GST_FRAMES_TO_CLOCK_TIME (num_frames, rate); GST_LOG_OBJECT (filter, - "falloff: current %f, base %f, interval %" GST_TIME_FORMAT - ", dB falloff %f, factor %e", - filter->decay_peak[i], filter->decay_peak_base[i], - GST_TIME_ARGS (falloff_time), falloff_dB, falloff); - filter->decay_peak[i] = filter->decay_peak_base[i] * falloff; - GST_LOG_OBJECT (filter, - "peak is %" GST_TIME_FORMAT " old, decayed with factor %e to %f", - GST_TIME_ARGS (filter->decay_peak_age[i]), falloff, - filter->decay_peak[i]); - } else { - GST_LOG_OBJECT (filter, "peak not old enough, not decaying"); - } + "[%d]: peak %f, last peak %f, decay peak %f, age %" GST_TIME_FORMAT, + i, filter->peak[i], filter->last_peak[i], filter->decay_peak[i], + GST_TIME_ARGS (filter->decay_peak_age[i])); + + /* update running peak */ + if (filter->peak[i] > filter->last_peak[i]) + filter->last_peak[i] = filter->peak[i]; + + /* make decay peak fall off if too old */ + falloff_time = + GST_CLOCK_DIFF (gst_gdouble_to_guint64 (filter->decay_peak_ttl), + filter->decay_peak_age[i]); + if (falloff_time > 0) { + gdouble falloff_dB; + gdouble falloff; + gdouble length; /* length of falloff time in seconds */ + + length = (gdouble) falloff_time / (gdouble) GST_SECOND; + falloff_dB = filter->decay_peak_falloff * length; + falloff = pow (10, falloff_dB / -20.0); + + GST_LOG_OBJECT (filter, + "falloff: current %f, base %f, interval %" GST_TIME_FORMAT + ", dB falloff %f, factor %e", + filter->decay_peak[i], filter->decay_peak_base[i], + GST_TIME_ARGS (falloff_time), falloff_dB, falloff); + filter->decay_peak[i] = filter->decay_peak_base[i] * falloff; + GST_LOG_OBJECT (filter, + "peak is %" GST_TIME_FORMAT " old, decayed with factor %e to %f", + GST_TIME_ARGS (filter->decay_peak_age[i]), falloff, + filter->decay_peak[i]); + } else { + GST_LOG_OBJECT (filter, "peak not old enough, not decaying"); + } - /* if the peak of this run is higher, the decay peak gets reset */ - if (filter->peak[i] >= filter->decay_peak[i]) { - GST_LOG_OBJECT (filter, "new peak, %f", filter->peak[i]); - filter->decay_peak[i] = filter->peak[i]; - filter->decay_peak_base[i] = filter->peak[i]; - filter->decay_peak_age[i] = G_GINT64_CONSTANT (0); + /* if the peak of this run is higher, the decay peak gets reset */ + if (filter->peak[i] >= filter->decay_peak[i]) { + GST_LOG_OBJECT (filter, "new peak, %f", filter->peak[i]); + filter->decay_peak[i] = filter->peak[i]; + filter->decay_peak_base[i] = filter->peak[i]; + filter->decay_peak_age[i] = G_GINT64_CONSTANT (0); + } } - } + in_data += ((block_int_size * bps) - bps); - if (G_UNLIKELY (!filter->num_frames)) { - /* remember start timestamp for message */ - filter->message_ts = GST_BUFFER_TIMESTAMP (in); - } - filter->num_frames += num_frames; + filter->num_frames += block_size; + num_frames -= block_size; - /* do we need to message ? */ - if (filter->num_frames >= filter->interval_frames) { - gst_level_post_message (filter); + /* do we need to message ? */ + if (filter->num_frames >= filter->interval_frames) { + gst_level_post_message (filter); + } } gst_buffer_unmap (in, &map); @@ -659,37 +699,36 @@ static void gst_level_post_message (GstLevel * filter) { guint i; - gint channels, rate; + gint channels, rate, frames = filter->num_frames; + GstClockTime duration; channels = GST_AUDIO_INFO_CHANNELS (&filter->info); rate = GST_AUDIO_INFO_RATE (&filter->info); + duration = GST_FRAMES_TO_CLOCK_TIME (frames, rate); - - if (filter->message) { - GstMessage *m; - GstClockTime duration = GST_FRAMES_TO_CLOCK_TIME (filter->num_frames, rate); - - m = gst_level_message_new (filter, filter->message_ts, duration); + if (filter->post_messages) { + GstMessage *m = + gst_level_message_new (filter, filter->message_ts, duration); GST_LOG_OBJECT (filter, - "message: ts %" GST_TIME_FORMAT ", num_frames %d", - GST_TIME_ARGS (filter->message_ts), filter->num_frames); + "message: ts %" GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT + ", num_frames %d", GST_TIME_ARGS (filter->message_ts), + GST_TIME_ARGS (duration), frames); for (i = 0; i < channels; ++i) { gdouble RMS; - gdouble RMSdB, lastdB, decaydB; + gdouble RMSdB, peakdB, decaydB; - RMS = sqrt (filter->CS[i] / filter->num_frames); + RMS = sqrt (filter->CS[i] / frames); GST_LOG_OBJECT (filter, - "message: channel %d, CS %f, num_frames %d, RMS %f", - i, filter->CS[i], filter->num_frames, RMS); + "message: channel %d, CS %f, RMS %f", i, filter->CS[i], RMS); GST_LOG_OBJECT (filter, "message: last_peak: %f, decay_peak: %f", filter->last_peak[i], filter->decay_peak[i]); /* RMS values are calculated in amplitude, so 20 * log 10 */ RMSdB = 20 * log10 (RMS + EPSILON); /* peak values are square sums, ie. power, so 10 * log 10 */ - lastdB = 10 * log10 (filter->last_peak[i] + EPSILON); + peakdB = 10 * log10 (filter->last_peak[i] + EPSILON); decaydB = 10 * log10 (filter->decay_peak[i] + EPSILON); if (filter->decay_peak[i] < filter->last_peak[i]) { @@ -697,14 +736,14 @@ gst_level_post_message (GstLevel * filter) * the last peak is between decay_peak and decay_peak_base */ GST_DEBUG_OBJECT (filter, "message: decay peak dB %f smaller than last peak dB %f, copying", - decaydB, lastdB); + decaydB, peakdB); filter->decay_peak[i] = filter->last_peak[i]; } GST_LOG_OBJECT (filter, "message: RMS %f dB, peak %f dB, decay %f dB", - RMSdB, lastdB, decaydB); + RMSdB, peakdB, decaydB); - gst_level_message_append_channel (m, RMSdB, lastdB, decaydB); + gst_level_message_append_channel (m, RMSdB, peakdB, decaydB); /* reset cumulative and normal peak */ filter->CS[i] = 0.0; @@ -712,8 +751,10 @@ gst_level_post_message (GstLevel * filter) } gst_element_post_message (GST_ELEMENT (filter), m); + } - filter->num_frames = 0; + filter->num_frames -= frames; + filter->message_ts += duration; } diff --git a/gst/level/gstlevel.h b/gst/level/gstlevel.h index ae9ba3a946a08e5a1774a6031e4be23cc57398d7..e6d927ae6dad0a1f76848a197fa23c0a3f742664 100644 --- a/gst/level/gstlevel.h +++ b/gst/level/gstlevel.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ @@ -56,13 +56,13 @@ typedef struct _GstLevelClass GstLevelClass; struct _GstLevel { GstBaseTransform element; - gboolean message; /* whether or not to post messages */ - guint64 interval; /* how many seconds between emits */ + /* properties */ + gboolean post_messages; /* whether or not to post messages */ + guint64 interval; /* how many nanoseconds between emits */ + gdouble decay_peak_ttl; /* time to live for peak in nanoseconds */ + gdouble decay_peak_falloff; /* falloff in dB/sec */ GstAudioInfo info; - - gdouble decay_peak_ttl; /* time to live for peak in seconds */ - gdouble decay_peak_falloff; /* falloff in dB/sec */ gint num_frames; /* frame count (1 sample per channel) * since last emit */ gint interval_frames; /* after how many frame to sent a message */ @@ -74,8 +74,6 @@ struct _GstLevel { gdouble *last_peak; /* last normalized Peak value over interval */ gdouble *decay_peak; /* running decaying normalized Peak */ gdouble *decay_peak_base; /* value of last peak we are decaying from */ - gdouble *MS; /* normalized Mean Square of buffer */ - gdouble *RMS_dB; /* RMS in dB to emit */ GstClockTime *decay_peak_age; /* age of last peak */ void (*process)(gpointer, guint, guint, gdouble*, gdouble*); diff --git a/gst/matroska/Makefile.in b/gst/matroska/Makefile.in index e73a7859c162a799d9d0ea14bd5c51035a2e5bab..37d1f7e9cc0946ff60c69aee3decae3d67f78cb6 100644 --- a/gst/matroska/Makefile.in +++ b/gst/matroska/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/matroska -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -144,10 +170,23 @@ libgstmatroska_la_OBJECTS = $(am_libgstmatroska_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstmatroska_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstmatroska_la_CFLAGS) $(CFLAGS) \ $(libgstmatroska_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -160,20 +199,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstmatroska_la_SOURCES) DIST_SOURCES = $(libgstmatroska_la_SOURCES) am__can_run_installinfo = \ @@ -182,6 +217,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -350,6 +402,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -588,6 +641,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -614,12 +668,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstmatroska.la: $(libgstmatroska_la_OBJECTS) $(libgstmatroska_la_DEPENDENCIES) $(EXTRA_libgstmatroska_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmatroska_la_LINK) -rpath $(plugindir) $(libgstmatroska_la_OBJECTS) $(libgstmatroska_la_LIBADD) $(LIBS) @@ -737,26 +794,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -768,15 +814,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -785,6 +827,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -929,19 +986,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/matroska/ebml-ids.h b/gst/matroska/ebml-ids.h index 14edf74fdfeda870573088fb11afd67d8e20fed1..ef2e6cb5d6f2bd0a4cd3c1749d6e4d54910a23e5 100644 --- a/gst/matroska/ebml-ids.h +++ b/gst/matroska/ebml-ids.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_EBML_IDS_H__ diff --git a/gst/matroska/ebml-read.c b/gst/matroska/ebml-read.c index 42a06fe82c6838c90624ba14fffc333a7b8c06c3..af5b6369b79b85dd6e3370b198fcb3dee1279b7f 100644 --- a/gst/matroska/ebml-read.c +++ b/gst/matroska/ebml-read.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/matroska/ebml-read.h b/gst/matroska/ebml-read.h index b5c9aa208be1c2c3bc6d808ab04d66569038974c..ce894da7f77b42f5e4646323a7aeda14b4a8279f 100644 --- a/gst/matroska/ebml-read.h +++ b/gst/matroska/ebml-read.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_EBML_READ_H__ diff --git a/gst/matroska/ebml-write.c b/gst/matroska/ebml-write.c index 0c7584e12fdfa1b4a0f99c95c0d8e1bfadfd4719..4596c2f20090deb77943f8f2ebcfbdda1807570f 100644 --- a/gst/matroska/ebml-write.c +++ b/gst/matroska/ebml-write.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/matroska/ebml-write.h b/gst/matroska/ebml-write.h index 4d0293d460d72e0607c0e3a7817fa9781c6e7785..2dbe350f1e1724d234f6c50c979e97c576ee9fe6 100644 --- a/gst/matroska/ebml-write.h +++ b/gst/matroska/ebml-write.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_EBML_WRITE_H__ diff --git a/gst/matroska/lzo.c b/gst/matroska/lzo.c index 995638f83f0c8dc4d916af171443a96ef28c5370..3c564bbdf657fa9aeeeccc5c1a245a20182b0d4b 100644 --- a/gst/matroska/lzo.c +++ b/gst/matroska/lzo.c @@ -18,6 +18,9 @@ * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include <gst/gst.h> #include <stdlib.h> diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index f56ea05fa693d99e803e7fd3a1306689065f6839..334533768510d23937e32c587f6e53ae86c6d02c 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* TODO: check CRC32 if present @@ -314,6 +314,9 @@ gst_matroska_track_free (GstMatroskaTrackContext * track) if (track->index_table) g_array_free (track->index_table, TRUE); + if (track->stream_headers) + gst_buffer_list_unref (track->stream_headers); + g_free (track); } @@ -522,18 +525,45 @@ gst_matroska_decode_buffer (GstMatroskaTrackContext * context, GstBuffer * buf) } } +static void +gst_matroska_demux_add_stream_headers_to_caps (GstMatroskaDemux * demux, + GstBufferList * list, GstCaps * caps) +{ + GstStructure *s; + GValue arr_val = G_VALUE_INIT; + GValue buf_val = G_VALUE_INIT; + gint i, num; + + g_assert (gst_caps_is_writable (caps)); + + g_value_init (&arr_val, GST_TYPE_ARRAY); + g_value_init (&buf_val, GST_TYPE_BUFFER); + + num = gst_buffer_list_length (list); + for (i = 0; i < num; ++i) { + g_value_set_boxed (&buf_val, gst_buffer_list_get (list, i)); + gst_value_array_append_value (&arr_val, &buf_val); + } + + s = gst_caps_get_structure (caps, 0); + gst_structure_take_value (s, "streamheader", &arr_val); + g_value_unset (&buf_val); +} + static GstFlowReturn gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml) { GstElementClass *klass = GST_ELEMENT_GET_CLASS (demux); GstMatroskaTrackContext *context; GstPadTemplate *templ = NULL; + GstStreamFlags stream_flags; GstCaps *caps = NULL; gchar *padname = NULL; GstFlowReturn ret; guint32 id, riff_fourcc = 0; guint16 riff_audio_fmt = 0; GstTagList *list = NULL; + GstEvent *stream_start; gchar *codec = NULL; gchar *stream_id; @@ -1081,7 +1111,7 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml) context->flags &= ~GST_MATROSKA_TRACK_DEFAULT; GST_DEBUG_OBJECT (demux, "TrackDefault: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); + (context->flags & GST_MATROSKA_TRACK_DEFAULT) ? 1 : 0); break; } @@ -1098,7 +1128,7 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml) context->flags &= ~GST_MATROSKA_TRACK_FORCED; GST_DEBUG_OBJECT (demux, "TrackForced: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); + (context->flags & GST_MATROSKA_TRACK_FORCED) ? 1 : 0); break; } @@ -1116,7 +1146,7 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml) context->flags &= ~GST_MATROSKA_TRACK_LACING; GST_DEBUG_OBJECT (demux, "TrackLacing: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); + (context->flags & GST_MATROSKA_TRACK_LACING) ? 1 : 0); break; } @@ -1316,6 +1346,9 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml) gst_caps_set_simple (caps, "fourcc", G_TYPE_STRING, fstr, NULL); g_free (fstr); } + } else if (context->stream_headers != NULL) { + gst_matroska_demux_add_stream_headers_to_caps (demux, + context->stream_headers, caps); } /* the pad in here */ @@ -1339,9 +1372,16 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml) stream_id = gst_pad_create_stream_id_printf (context->pad, GST_ELEMENT_CAST (demux), - "%u", context->uid); - gst_pad_push_event (context->pad, gst_event_new_stream_start (stream_id)); + "%03u", context->uid); + stream_start = gst_event_new_stream_start (stream_id); g_free (stream_id); + stream_flags = GST_STREAM_FLAG_NONE; + if (context->type == GST_MATROSKA_TRACK_TYPE_SUBTITLE) + stream_flags |= GST_STREAM_FLAG_SPARSE; + if (context->flags & GST_MATROSKA_TRACK_DEFAULT) + stream_flags |= GST_STREAM_FLAG_SELECT; + gst_event_set_stream_flags (stream_start, stream_flags); + gst_pad_push_event (context->pad, stream_start); gst_pad_set_caps (context->pad, context->caps); gst_element_add_pad (GST_ELEMENT (demux), context->pad); @@ -2556,161 +2596,38 @@ gst_matroska_demux_sync_streams (GstMatroskaDemux * demux) } static GstFlowReturn -gst_matroska_demux_push_hdr_buf (GstMatroskaDemux * demux, - GstMatroskaTrackContext * stream, guint8 * data, guint len) -{ - GstFlowReturn ret, cret; - GstBuffer *header_buf; - - header_buf = gst_buffer_new_wrapped (g_memdup (data, len), len); - - if (stream->set_discont) { - GST_BUFFER_FLAG_SET (header_buf, GST_BUFFER_FLAG_DISCONT); - stream->set_discont = FALSE; - } - - ret = gst_pad_push (stream->pad, header_buf); - - /* combine flows */ - cret = gst_matroska_demux_combine_flows (demux, stream, ret); - - return cret; -} - -static GstFlowReturn -gst_matroska_demux_push_flac_codec_priv_data (GstMatroskaDemux * demux, +gst_matroska_demux_push_stream_headers (GstMatroskaDemux * demux, GstMatroskaTrackContext * stream) { - GstFlowReturn ret; - guint8 *pdata; - guint off, len; - - GST_LOG_OBJECT (demux, "priv data size = %" G_GSIZE_FORMAT, - stream->codec_priv_size); - - pdata = (guint8 *) stream->codec_priv; - - /* need at least 'fLaC' marker + STREAMINFO metadata block */ - if (stream->codec_priv_size < ((4) + (4 + 34))) { - GST_WARNING_OBJECT (demux, "not enough codec priv data for flac headers"); - return GST_FLOW_ERROR; - } - - if (memcmp (pdata, "fLaC", 4) != 0) { - GST_WARNING_OBJECT (demux, "no flac marker at start of stream headers"); - return GST_FLOW_ERROR; - } - - ret = gst_matroska_demux_push_hdr_buf (demux, stream, pdata, 4); - if (ret != GST_FLOW_OK) - return ret; - - off = 4; /* skip fLaC marker */ - while (off < stream->codec_priv_size) { - len = GST_READ_UINT8 (pdata + off + 1) << 16; - len |= GST_READ_UINT8 (pdata + off + 2) << 8; - len |= GST_READ_UINT8 (pdata + off + 3); - - GST_DEBUG_OBJECT (demux, "header packet: len=%u bytes, flags=0x%02x", - len, (guint) pdata[off]); - - ret = gst_matroska_demux_push_hdr_buf (demux, stream, pdata + off, len + 4); - if (ret != GST_FLOW_OK) - return ret; - - off += 4 + len; - } - return GST_FLOW_OK; -} - -static GstFlowReturn -gst_matroska_demux_push_speex_codec_priv_data (GstMatroskaDemux * demux, - GstMatroskaTrackContext * stream) -{ - GstFlowReturn ret; - guint8 *pdata = stream->codec_priv; - - GST_LOG_OBJECT (demux, "priv data size = %" G_GSIZE_FORMAT, - stream->codec_priv_size); + GstFlowReturn ret = GST_FLOW_OK; + gint i, num; - /* need at least 'fLaC' marker + STREAMINFO metadata block */ - if (stream->codec_priv_size < 80) { - GST_WARNING_OBJECT (demux, "not enough codec priv data for speex headers"); - return GST_FLOW_ERROR; - } + num = gst_buffer_list_length (stream->stream_headers); + for (i = 0; i < num; ++i) { + GstBuffer *buf; - if (memcmp (pdata, "Speex ", 8) != 0) { - GST_WARNING_OBJECT (demux, "no Speex marker at start of stream headers"); - return GST_FLOW_ERROR; - } + buf = gst_buffer_list_get (stream->stream_headers, i); + buf = gst_buffer_copy (buf); - ret = gst_matroska_demux_push_hdr_buf (demux, stream, pdata, 80); - if (ret != GST_FLOW_OK) - return ret; + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER); - if (stream->codec_priv_size == 80) - return ret; - else - return gst_matroska_demux_push_hdr_buf (demux, stream, pdata + 80, - stream->codec_priv_size - 80); -} - -static GstFlowReturn -gst_matroska_demux_push_xiph_codec_priv_data (GstMatroskaDemux * demux, - GstMatroskaTrackContext * stream) -{ - GstFlowReturn ret; - guint8 *p = stream->codec_priv; - gint i, offset, num_packets; - guint *length, last; - - if (stream->codec_priv == NULL || stream->codec_priv_size == 0) { - GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL), - ("Missing codec private data for xiph headers, broken file")); - return GST_FLOW_ERROR; - } - - /* start of the stream and vorbis audio or theora video, need to - * send the codec_priv data as first three packets */ - num_packets = p[0] + 1; - GST_DEBUG_OBJECT (demux, - "%u stream headers, total length=%" G_GSIZE_FORMAT " bytes", - (guint) num_packets, stream->codec_priv_size); - - length = g_alloca (num_packets * sizeof (guint)); - last = 0; - offset = 1; - - /* first packets, read length values */ - for (i = 0; i < num_packets - 1; i++) { - length[i] = 0; - while (offset < stream->codec_priv_size) { - length[i] += p[offset]; - if (p[offset++] != 0xff) - break; + if (stream->set_discont) { + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT); + stream->set_discont = FALSE; } - last += length[i]; - } - if (offset + last > stream->codec_priv_size) - return GST_FLOW_ERROR; - /* last packet is the remaining size */ - length[i] = stream->codec_priv_size - offset - last; + /* push out all headers in one go and use last flow return */ + ret = gst_pad_push (stream->pad, buf); + } - for (i = 0; i < num_packets; i++) { - GST_DEBUG_OBJECT (demux, "buffer %d: length=%u bytes", i, - (guint) length[i]); - if (offset + length[i] > stream->codec_priv_size) - return GST_FLOW_ERROR; + /* don't need these any longer */ + gst_buffer_list_unref (stream->stream_headers); + stream->stream_headers = NULL; - ret = - gst_matroska_demux_push_hdr_buf (demux, stream, p + offset, length[i]); - if (ret != GST_FLOW_OK) - return ret; + /* combine flows */ + ret = gst_matroska_demux_combine_flows (demux, stream, ret); - offset += length[i]; - } - return GST_FLOW_OK; + return ret; } static void @@ -3033,8 +2950,9 @@ gst_matroska_demux_check_subtitle_buffer (GstElement * element, if (g_utf8_validate ((gchar *) map.data, map.size, NULL)) { goto next; } - GST_WARNING_OBJECT (element, "subtitle stream %d is not valid UTF-8, this " - "is broken according to the matroska specification", stream->num); + GST_WARNING_OBJECT (element, "subtitle stream %" G_GUINT64_FORMAT + " is not valid UTF-8, this is broken according to the matroska" + " specification", stream->num); sub_stream->invalid_utf8 = TRUE; } @@ -3332,27 +3250,6 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, break; } - if (stream->send_xiph_headers) { - ret = gst_matroska_demux_push_xiph_codec_priv_data (demux, stream); - stream->send_xiph_headers = FALSE; - } - - if (stream->send_flac_headers) { - ret = gst_matroska_demux_push_flac_codec_priv_data (demux, stream); - stream->send_flac_headers = FALSE; - } - - if (stream->send_speex_headers) { - ret = gst_matroska_demux_push_speex_codec_priv_data (demux, stream); - stream->send_speex_headers = FALSE; - } - - if (stream->send_dvd_event) { - gst_matroska_demux_push_dvd_clut_change_event (demux, stream); - /* FIXME: should we send this event again after (flushing) seek ? */ - stream->send_dvd_event = FALSE; - } - if (ret != GST_FLOW_OK) break; @@ -3433,9 +3330,10 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, goto data_error; if (ret == GST_FLOW_OK && readblock) { + gboolean invisible_frame = FALSE; + gboolean delta_unit = FALSE; guint64 duration = 0; gint64 lace_time = 0; - gboolean delta_unit; stream = g_ptr_array_index (demux->common.src, stream_num); @@ -3488,6 +3386,23 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, demux->need_segment = FALSE; } + if (stream->send_stream_headers) { + if (stream->stream_headers != NULL) { + ret = gst_matroska_demux_push_stream_headers (demux, stream); + } else { + /* FIXME: perhaps we can just disable and skip this stream then */ + GST_ELEMENT_ERROR (demux, STREAM, DECODE, (NULL), + ("Failed to extract stream headers from codec private data")); + } + stream->send_stream_headers = FALSE; + } + + if (stream->send_dvd_event) { + gst_matroska_demux_push_dvd_clut_change_event (demux, stream); + /* FIXME: should we send this event again after (flushing) seek ? */ + stream->send_dvd_event = FALSE; + } + if (block_duration != -1) { if (stream->timecodescale == 1.0) duration = gst_util_uint64_scale (block_duration, @@ -3505,8 +3420,14 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, /* For SimpleBlock, look at the keyframe bit in flags. Otherwise, a ReferenceBlock implies that this is not a keyframe. In either case, it only makes sense for video streams. */ - delta_unit = stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO && - ((is_simpleblock && !(flags & 0x80)) || referenceblock); + if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + if ((is_simpleblock && !(flags & 0x80)) || referenceblock) { + delta_unit = TRUE; + invisible_frame = ((flags & 0x08)) && + (!strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP8) || + !strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP9)); + } + } if (delta_unit && stream->set_discont) { /* When doing seeks or such, we need to restart on key frames or @@ -3571,6 +3492,9 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, else GST_BUFFER_FLAG_UNSET (sub, GST_BUFFER_FLAG_DELTA_UNIT); + if (invisible_frame) + GST_BUFFER_FLAG_SET (sub, GST_BUFFER_FLAG_DECODE_ONLY); + if (stream->encodings != NULL && stream->encodings->len > 0) sub = gst_matroska_decode_buffer (stream, sub); @@ -4924,10 +4848,6 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext * g_assert (videocontext != NULL); g_assert (codec_name != NULL); - context->send_xiph_headers = FALSE; - context->send_flac_headers = FALSE; - context->send_speex_headers = FALSE; - if (riff_fourcc) *riff_fourcc = 0; @@ -5043,6 +4963,8 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext * priv = gst_buffer_new_wrapped (g_memdup (data, size), size); gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, priv, NULL); gst_buffer_unref (priv); + + gst_codec_utils_mpeg4video_caps_set_level_and_profile (caps, data, size); } if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_MPEG4_ASP)) *codec_name = g_strdup ("MPEG-4 advanced simple profile"); @@ -5136,13 +5058,20 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext * *codec_name = g_strdup_printf ("RealVideo %d.0", rmversion); } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_THEORA)) { caps = gst_caps_new_empty_simple ("video/x-theora"); - context->send_xiph_headers = TRUE; + context->stream_headers = + gst_matroska_parse_xiph_stream_headers (context->codec_priv, + context->codec_priv_size); + /* FIXME: mark stream as broken and skip if there are no stream headers */ + context->send_stream_headers = TRUE; } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_DIRAC)) { caps = gst_caps_new_empty_simple ("video/x-dirac"); *codec_name = g_strdup_printf ("Dirac"); } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP8)) { caps = gst_caps_new_empty_simple ("video/x-vp8"); *codec_name = g_strdup_printf ("On2 VP8"); + } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP9)) { + caps = gst_caps_new_empty_simple ("video/x-vp9"); + *codec_name = g_strdup_printf ("On2 VP9"); } else { GST_WARNING ("Unknown codec '%s', cannot build Caps", codec_id); return NULL; @@ -5300,10 +5229,6 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext * if (riff_audio_fmt) *riff_audio_fmt = 0; - context->send_xiph_headers = FALSE; - context->send_flac_headers = FALSE; - context->send_speex_headers = FALSE; - /* TODO: check if we have all codec types from matroska-ids.h * check if we have to do more special things with codec_private * check if we need bitdepth in different places too @@ -5385,14 +5310,25 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext * *codec_name = g_strdup ("DTS audio"); } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_VORBIS)) { caps = gst_caps_new_empty_simple ("audio/x-vorbis"); - context->send_xiph_headers = TRUE; - /* vorbis decoder does tags */ + context->stream_headers = + gst_matroska_parse_xiph_stream_headers (context->codec_priv, + context->codec_priv_size); + /* FIXME: mark stream as broken and skip if there are no stream headers */ + context->send_stream_headers = TRUE; } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_FLAC)) { caps = gst_caps_new_empty_simple ("audio/x-flac"); - context->send_flac_headers = TRUE; + context->stream_headers = + gst_matroska_parse_flac_stream_headers (context->codec_priv, + context->codec_priv_size); + /* FIXME: mark stream as broken and skip if there are no stream headers */ + context->send_stream_headers = TRUE; } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_SPEEX)) { caps = gst_caps_new_empty_simple ("audio/x-speex"); - context->send_speex_headers = TRUE; + context->stream_headers = + gst_matroska_parse_speex_stream_headers (context->codec_priv, + context->codec_priv_size); + /* FIXME: mark stream as broken and skip if there are no stream headers */ + context->send_stream_headers = TRUE; } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_ACM)) { gst_riff_strf_auds auds; @@ -5508,6 +5444,9 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext * "framed", G_TYPE_BOOLEAN, TRUE, "stream-format", G_TYPE_STRING, "raw", NULL); gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, priv, NULL); + if (context->codec_priv && context->codec_priv_size > 0) + gst_codec_utils_aac_caps_set_level_and_profile (caps, + context->codec_priv, context->codec_priv_size); *codec_name = g_strdup_printf ("MPEG-%d AAC audio", mpegversion); gst_buffer_unref (priv); } @@ -5650,7 +5589,11 @@ gst_matroska_demux_subtitle_caps (GstMatroskaTrackSubtitleContext * caps = gst_caps_new_empty_simple ("subpicture/x-pgs"); } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_KATE)) { caps = gst_caps_new_empty_simple ("subtitle/x-kate"); - context->send_xiph_headers = TRUE; + context->stream_headers = + gst_matroska_parse_xiph_stream_headers (context->codec_priv, + context->codec_priv_size); + /* FIXME: mark stream as broken and skip if there are no stream headers */ + context->send_stream_headers = TRUE; } else { GST_DEBUG ("Unknown subtitle stream: codec_id='%s'", codec_id); caps = gst_caps_new_empty_simple ("application/x-subtitle-unknown"); diff --git a/gst/matroska/matroska-demux.h b/gst/matroska/matroska-demux.h index 0376c8aacc686a5fcdec746041f6bdd34254cd3e..787a819732b206b9a267a5c01a49e3a624e833f8 100644 --- a/gst/matroska/matroska-demux.h +++ b/gst/matroska/matroska-demux.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MATROSKA_DEMUX_H__ diff --git a/gst/matroska/matroska-ids.c b/gst/matroska/matroska-ids.c index 8e6239594aed1a5fae50b646bf1289ce1b8b18be..da8f82bda1fbd957c475a5e5531bfb6d4904bf7c 100644 --- a/gst/matroska/matroska-ids.c +++ b/gst/matroska/matroska-ids.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -26,6 +26,8 @@ #include "matroska-ids.h" +#include <string.h> + gboolean gst_matroska_track_init_video_context (GstMatroskaTrackContext ** p_context) { @@ -116,3 +118,151 @@ gst_matroska_register_tags (void) { /* TODO: register other custom tags */ } + +GstBufferList * +gst_matroska_parse_xiph_stream_headers (gpointer codec_data, + gsize codec_data_size) +{ + GstBufferList *list = NULL; + guint8 *p = codec_data; + gint i, offset, num_packets; + guint *length, last; + + GST_MEMDUMP ("xiph codec data", codec_data, codec_data_size); + + if (codec_data == NULL || codec_data_size == 0) + goto error; + + /* start of the stream and vorbis audio or theora video, need to + * send the codec_priv data as first three packets */ + num_packets = p[0] + 1; + GST_DEBUG ("%u stream headers, total length=%" G_GSIZE_FORMAT " bytes", + (guint) num_packets, codec_data_size); + + length = g_alloca (num_packets * sizeof (guint)); + last = 0; + offset = 1; + + /* first packets, read length values */ + for (i = 0; i < num_packets - 1; i++) { + length[i] = 0; + while (offset < codec_data_size) { + length[i] += p[offset]; + if (p[offset++] != 0xff) + break; + } + last += length[i]; + } + if (offset + last > codec_data_size) + goto error; + + /* last packet is the remaining size */ + length[i] = codec_data_size - offset - last; + + list = gst_buffer_list_new (); + + for (i = 0; i < num_packets; i++) { + GstBuffer *hdr; + + GST_DEBUG ("buffer %d: %u bytes", i, (guint) length[i]); + + if (offset + length[i] > codec_data_size) + goto error; + + hdr = gst_buffer_new_wrapped (g_memdup (p + offset, length[i]), length[i]); + gst_buffer_list_add (list, hdr); + + offset += length[i]; + } + + return list; + +/* ERRORS */ +error: + { + if (list != NULL) + gst_buffer_list_unref (list); + return NULL; + } +} + +GstBufferList * +gst_matroska_parse_speex_stream_headers (gpointer codec_data, + gsize codec_data_size) +{ + GstBufferList *list = NULL; + GstBuffer *hdr; + guint8 *pdata = codec_data; + + GST_MEMDUMP ("speex codec data", codec_data, codec_data_size); + + if (codec_data == NULL || codec_data_size < 80) { + GST_WARNING ("not enough codec priv data for speex headers"); + return NULL; + } + + if (memcmp (pdata, "Speex ", 8) != 0) { + GST_WARNING ("no Speex marker at start of stream headers"); + return NULL; + } + + list = gst_buffer_list_new (); + + hdr = gst_buffer_new_wrapped (g_memdup (pdata, 80), 80); + gst_buffer_list_add (list, hdr); + + if (codec_data_size > 80) { + hdr = gst_buffer_new_wrapped (g_memdup (pdata + 80, codec_data_size - 80), + codec_data_size - 80); + gst_buffer_list_add (list, hdr); + } + + return list; +} + +GstBufferList * +gst_matroska_parse_flac_stream_headers (gpointer codec_data, + gsize codec_data_size) +{ + GstBufferList *list = NULL; + GstBuffer *hdr; + guint8 *pdata = codec_data; + guint len, off; + + GST_MEMDUMP ("flac codec data", codec_data, codec_data_size); + + /* need at least 'fLaC' marker + STREAMINFO metadata block */ + if (codec_data == NULL || codec_data_size < ((4) + (4 + 34))) { + GST_WARNING ("not enough codec priv data for flac headers"); + return NULL; + } + + if (memcmp (pdata, "fLaC", 4) != 0) { + GST_WARNING ("no flac marker at start of stream headers"); + return NULL; + } + + list = gst_buffer_list_new (); + + hdr = gst_buffer_new_wrapped (g_memdup (pdata, 4), 4); + gst_buffer_list_add (list, hdr); + + /* skip fLaC marker */ + off = 4; + + /* FIXME: check size remaining */ + while (off < codec_data_size) { + len = GST_READ_UINT8 (pdata + off + 1) << 16; + len |= GST_READ_UINT8 (pdata + off + 2) << 8; + len |= GST_READ_UINT8 (pdata + off + 3); + + GST_DEBUG ("header packet: len=%u bytes, flags=0x%02x", len, pdata[off]); + + /* FIXME: check size remaining */ + hdr = gst_buffer_new_wrapped (g_memdup (pdata + off, len + 4), len + 4); + gst_buffer_list_add (list, hdr); + + off += 4 + len; + } + return list; +} diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h index 6dbbfd5f2b296b0e40b6f009684366e5561e46ec..f19a6d2f588b236fc81aa65e9a46df4b42d098fb 100644 --- a/gst/matroska/matroska-ids.h +++ b/gst/matroska/matroska-ids.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MATROSKA_IDS_H__ @@ -210,7 +210,7 @@ #define GST_MATROSKA_ID_TARGETTYPEVALUE 0x68CA #define GST_MATROSKA_ID_TARGETTYPE 0x63CA #define GST_MATROSKA_ID_TARGETTRACKUID 0x63C5 -#define GST_MATROSKA_ID_TARGETEDITIONUID 0x63C5 +#define GST_MATROSKA_ID_TARGETEDITIONUID 0x63C9 #define GST_MATROSKA_ID_TARGETCHAPTERUID 0x63C4 #define GST_MATROSKA_ID_TARGETATTACHMENTUID 0x63C6 @@ -345,6 +345,7 @@ #define GST_MATROSKA_CODEC_ID_VIDEO_SNOW "V_SNOW" #define GST_MATROSKA_CODEC_ID_VIDEO_DIRAC "V_DIRAC" #define GST_MATROSKA_CODEC_ID_VIDEO_VP8 "V_VP8" +#define GST_MATROSKA_CODEC_ID_VIDEO_VP9 "V_VP9" #define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L1 "A_MPEG/L1" #define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L2 "A_MPEG/L2" @@ -399,10 +400,10 @@ #define GST_MATROSKA_TAG_ID_ARTIST "ARTIST" #define GST_MATROSKA_TAG_ID_ALBUM "ALBUM" #define GST_MATROSKA_TAG_ID_COMMENTS "COMMENTS" +#define GST_MATROSKA_TAG_ID_COMMENT "COMMENT" #define GST_MATROSKA_TAG_ID_BITSPS "BITSPS" #define GST_MATROSKA_TAG_ID_BPS "BPS" #define GST_MATROSKA_TAG_ID_ENCODER "ENCODER" -#define GST_MATROSKA_TAG_ID_DATE "DATE" #define GST_MATROSKA_TAG_ID_ISRC "ISRC" #define GST_MATROSKA_TAG_ID_COPYRIGHT "COPYRIGHT" #define GST_MATROSKA_TAG_ID_BPM "BPM" @@ -411,6 +412,25 @@ #define GST_MATROSKA_TAG_ID_COMPOSER "COMPOSER" #define GST_MATROSKA_TAG_ID_LEAD_PERFORMER "LEAD_PERFOMER" #define GST_MATROSKA_TAG_ID_GENRE "GENRE" +#define GST_MATROSKA_TAG_ID_TOTAL_PARTS "TOTAL_PARTS" +#define GST_MATROSKA_TAG_ID_PART_NUMBER "PART_NUMBER" +#define GST_MATROSKA_TAG_ID_SUBTITLE "SUBTITLE" +#define GST_MATROSKA_TAG_ID_ACCOMPANIMENT "ACCOMPANIMENT" +#define GST_MATROSKA_TAG_ID_LYRICS "LYRICS" +#define GST_MATROSKA_TAG_ID_CONDUCTOR "CONDUCTOR" +#define GST_MATROSKA_TAG_ID_ENCODED_BY "ENCODED_BY" +#define GST_MATROSKA_TAG_ID_DESCRIPTION "DESCRIPTION" +#define GST_MATROSKA_TAG_ID_KEYWORDS "KEYWORDS" +#define GST_MATROSKA_TAG_ID_DATE_RELEASED "DATE_RELEASED" +#define GST_MATROSKA_TAG_ID_DATE_RECORDED "DATE_RECORDED" +#define GST_MATROSKA_TAG_ID_DATE_ENCODED "DATE_ENCODED" +#define GST_MATROSKA_TAG_ID_DATE_TAGGED "DATE_TAGGED" +#define GST_MATROSKA_TAG_ID_DATE_DIGITIZED "DATE_DIGITIZED" +#define GST_MATROSKA_TAG_ID_DATE_WRITTEN "DATE_WRITTEN" +#define GST_MATROSKA_TAG_ID_DATE_PURCHASED "DATE_PURCHASED" +#define GST_MATROSKA_TAG_ID_RECORDING_LOCATION "RECORDING_LOCATION" +#define GST_MATROSKA_TAG_ID_PRODUCTION_COPYRIGHT "PRODUCTION_COPYRIGHT" +#define GST_MATROSKA_TAG_ID_LICENSE "LICENSE" /* * TODO: add this tag & mappings @@ -492,7 +512,7 @@ struct _GstMatroskaTrackContext { gpointer codec_state; gsize codec_state_size; GstMatroskaTrackType type; - guint uid, num; + guint64 uid, num; GstMatroskaTrackFlags flags; guint64 default_duration; guint64 pos; @@ -500,20 +520,9 @@ struct _GstMatroskaTrackContext { gboolean set_discont; /* TRUE = set DISCONT flag on next buffer */ - /* Special flag for Vorbis and Theora, for which we need to send - * codec_priv first before sending any data, and just testing - * for time == 0 is not enough to detect that. Used by demuxer */ - gboolean send_xiph_headers; - - /* Special flag for Flac, for which we need to reconstruct the header - * buffer from the codec_priv data before sending any data, and just - * testing for time == 0 is not enough to detect that. Used by demuxer */ - gboolean send_flac_headers; - - /* Special flag for Speex, for which we need to reconstruct the header - * buffer from the codec_priv data before sending any data, and just - * testing for time == 0 is not enough to detect that. Used by demuxer */ - gboolean send_speex_headers; + /* Stream header buffer, to put into caps and send before any other buffers */ + GstBufferList * stream_headers; + gboolean send_stream_headers; /* Special flag for VobSub, for which we have to send colour table info * (if available) first before sending any data, and just testing @@ -624,4 +633,13 @@ gboolean gst_matroska_track_init_subtitle_context (GstMatroskaTrackContext ** p_ void gst_matroska_register_tags (void); +GstBufferList * gst_matroska_parse_xiph_stream_headers (gpointer codec_data, + gsize codec_data_size); + +GstBufferList * gst_matroska_parse_speex_stream_headers (gpointer codec_data, + gsize codec_data_size); + +GstBufferList * gst_matroska_parse_flac_stream_headers (gpointer codec_data, + gsize codec_data_size); + #endif /* __GST_MATROSKA_IDS_H__ */ diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c index 380f72de677a7ae88b5b88467af91e776da8a483..d31b1ab4dc6290c183ecc3f605f1f53f0656805e 100644 --- a/gst/matroska/matroska-mux.c +++ b/gst/matroska/matroska-mux.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* TODO: - check everywhere that we don't write invalid values @@ -34,7 +34,7 @@ * <refsect2> * <title>Example launch line</title> * |[ - * gst-launch-1.0 -v filesrc location=/path/to/mp3 ! mp3parse ! matroskamux name=mux ! filesink location=test.mkv filesrc location=/path/to/theora.ogg ! oggdemux ! theoraparse ! mux. + * gst-launch-1.0 -v filesrc location=/path/to/mp3 ! mpegaudioparse ! matroskamux name=mux ! filesink location=test.mkv filesrc location=/path/to/theora.ogg ! oggdemux ! theoraparse ! mux. * ]| This pipeline muxes an MP3 file and a Ogg Theora video into a Matroska file. * |[ * gst-launch-1.0 -v audiotestsrc num-buffers=100 ! audioconvert ! vorbisenc ! matroskamux ! filesink location=test.mka @@ -961,7 +961,8 @@ gst_matroska_mux_video_pad_setcaps (GstPad * pad, GstCaps * caps) /* set vp8 defaults or let user override it */ if (GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration_user == FALSE - && (!strcmp (mimetype, "video/x-vp8"))) + && (!strcmp (mimetype, "video/x-vp8") + || !strcmp (mimetype, "video/x-vp9"))) GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration = DEFAULT_PAD_FRAME_DURATION_VP8; @@ -1136,6 +1137,8 @@ skip_details: gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_DIRAC); } else if (!strcmp (mimetype, "video/x-vp8")) { gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_VP8); + } else if (!strcmp (mimetype, "video/x-vp9")) { + gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_VP9); } else if (!strcmp (mimetype, "video/mpeg")) { gint mpegversion; @@ -3218,7 +3221,9 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad, gint64 relative_timestamp64; guint64 block_duration; gboolean is_video_keyframe = FALSE; + gboolean is_video_invisible = FALSE; GstMatroskamuxPad *pad; + gint flags = 0; /* write data */ pad = GST_MATROSKAMUX_PAD_CAST (collect_pad->collect.pad); @@ -3254,11 +3259,20 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad, /* set the timestamp for outgoing buffers */ ebml->timestamp = GST_BUFFER_TIMESTAMP (buf); - if (collect_pad->track->type == GST_MATROSKA_TRACK_TYPE_VIDEO && - !GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT)) { - GST_LOG_OBJECT (mux, "have video keyframe, ts=%" GST_TIME_FORMAT, - GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); - is_video_keyframe = TRUE; + if (collect_pad->track->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT)) { + GST_LOG_OBJECT (mux, "have video keyframe, ts=%" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); + is_video_keyframe = TRUE; + } else if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DECODE_ONLY) && + (!strcmp (collect_pad->track->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP8) + || !strcmp (collect_pad->track->codec_id, + GST_MATROSKA_CODEC_ID_VIDEO_VP9))) { + GST_LOG_OBJECT (mux, + "have VP8 video invisible frame, " "ts=%" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); + is_video_invisible = TRUE; + } } if (mux->cluster) { @@ -3373,9 +3387,13 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad, } relative_timestamp = gst_util_uint64_scale (relative_timestamp64, 1, mux->time_scale); + + if (is_video_invisible) + flags |= 0x08; + if (mux->doctype_version > 1 && !write_duration) { - int flags = - GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT) ? 0 : 0x80; + if (is_video_keyframe) + flags |= 0x80; hdr = gst_matroska_mux_create_buffer_header (collect_pad->track, @@ -3395,7 +3413,7 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad, blockgroup = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_BLOCKGROUP); hdr = gst_matroska_mux_create_buffer_header (collect_pad->track, - relative_timestamp, 0); + relative_timestamp, flags); if (write_duration) gst_ebml_write_uint (ebml, GST_MATROSKA_ID_BLOCKDURATION, block_duration); gst_ebml_write_buffer_header (ebml, GST_MATROSKA_ID_BLOCK, diff --git a/gst/matroska/matroska-mux.h b/gst/matroska/matroska-mux.h index 2df0ec94c4a0e52ceb4ab256794c3de3c8a1c8e1..7fea78dd203a63d6716328c865b342616703527a 100644 --- a/gst/matroska/matroska-mux.h +++ b/gst/matroska/matroska-mux.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MATROSKA_MUX_H__ diff --git a/gst/matroska/matroska-parse.c b/gst/matroska/matroska-parse.c index dce4898353e8e5b98754ce6dd06d4a520e861adc..83b0d6384508c56ec748362297d37d357f6f2870 100644 --- a/gst/matroska/matroska-parse.c +++ b/gst/matroska/matroska-parse.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* TODO: check CRC32 if present @@ -342,7 +342,7 @@ gst_matroska_parse_reset (GstElement * element) parse->next_cluster_offset = 0; parse->index_offset = 0; parse->seekable = FALSE; - parse->need_newsegment = FALSE; + parse->need_newsegment = TRUE; parse->building_index = FALSE; if (parse->seek_event) { gst_event_unref (parse->seek_event); @@ -2546,6 +2546,12 @@ gst_matroska_parse_output (GstMatroskaParse * parse, GstBuffer * buffer, //gst_caps_replace (parse->caps, caps); gst_pad_set_caps (parse->srcpad, caps); + if (parse->need_newsegment) { + gst_pad_push_event (parse->srcpad, + gst_event_new_segment (&parse->common.segment)); + parse->need_newsegment = FALSE; + } + buf = gst_buffer_copy (parse->streamheader); gst_caps_unref (caps); diff --git a/gst/matroska/matroska-parse.h b/gst/matroska/matroska-parse.h index a447e776cd0fb1a8bf989461ad712a6d988a1b7a..0d61ba521b325c5d18bfe5c890f6f98f7342e8ee 100644 --- a/gst/matroska/matroska-parse.h +++ b/gst/matroska/matroska-parse.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MATROSKA_PARSE_H__ diff --git a/gst/matroska/matroska-read-common.c b/gst/matroska/matroska-read-common.c index cd4d535e13789f70849319de3f30efe8c8d95046..ffef5788a4390f4b878a05b4da4dde8730e80211 100644 --- a/gst/matroska/matroska-read-common.c +++ b/gst/matroska/matroska-read-common.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -60,6 +60,15 @@ GST_DEBUG_CATEGORY (matroskareadcommon_debug); #define GST_MATROSKA_TOC_UID_EDITION "edition" #define GST_MATROSKA_TOC_UID_EMPTY "empty" +typedef struct +{ + GstTagList *result; + guint64 target_type_value; + gchar *target_type; + gboolean audio_only; +} TargetTypeContext; + + static gboolean gst_matroska_decompress_data (GstMatroskaTrackEncoding * enc, gpointer * data_out, gsize * size_out, @@ -763,14 +772,20 @@ gst_matroska_read_common_parse_toc_tag (GstTocEntry * entry, static GstFlowReturn gst_matroska_read_common_parse_metadata_targets (GstMatroskaReadCommon * common, - GstEbmlRead * ebml, GArray * edition_targets, GArray * chapter_targets) + GstEbmlRead * ebml, GArray * edition_targets, GArray * chapter_targets, + GArray * track_targets, guint64 * target_type_value, gchar ** target_type) { GstFlowReturn ret = GST_FLOW_OK; guint32 id; guint64 uid; + guint64 tmp; + gchar *str; DEBUG_ELEMENT_START (common, ebml, "TagTargets"); + *target_type_value = 50; + *target_type = NULL; + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { DEBUG_ELEMENT_STOP (common, ebml, "TagTargets", ret); return ret; @@ -791,6 +806,24 @@ gst_matroska_read_common_parse_metadata_targets (GstMatroskaReadCommon * common, g_array_append_val (edition_targets, uid); break; + case GST_MATROSKA_ID_TARGETTRACKUID: + if ((ret = gst_ebml_read_uint (ebml, &id, &uid)) == GST_FLOW_OK) + g_array_append_val (track_targets, uid); + break; + + case GST_MATROSKA_ID_TARGETTYPEVALUE: + if ((ret = gst_ebml_read_uint (ebml, &id, &tmp)) == GST_FLOW_OK) + *target_type_value = tmp; + break; + + case GST_MATROSKA_ID_TARGETTYPE: + if ((ret = gst_ebml_read_ascii (ebml, &id, &str)) == GST_FLOW_OK) { + if (*target_type != NULL) + g_free (*target_type); + *target_type = str; + } + break; + default: ret = gst_matroska_read_common_parse_skip (common, ebml, "TagTargets", @@ -1746,7 +1779,7 @@ gst_matroska_read_common_parse_info (GstMatroskaReadCommon * common, static GstFlowReturn gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon * - common, GstEbmlRead * ebml, GstTagList ** p_taglist) + common, GstEbmlRead * ebml, GstTagList ** p_taglist, gchar * parent) { /* FIXME: check if there are more useful mappings */ static const struct @@ -1756,27 +1789,165 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon * } tag_conv[] = { { + /* The following list has the _same_ order as the one in Matroska spec. Please, don't mess it up. */ + /* TODO: Nesting information: + ORIGINAL A special tag that is meant to have other tags inside (using nested tags) to describe the original work of art that this item is based on. All tags in this list can be used "under" the ORIGINAL tag like LYRICIST, PERFORMER, etc. + SAMPLE A tag that contains other tags to describe a sample used in the targeted item taken from another work of art. All tags in this list can be used "under" the SAMPLE tag like TITLE, ARTIST, DATE_RELEASED, etc. + COUNTRY The name of the country (biblio ISO-639-2) that is meant to have other tags inside (using nested tags) to country specific information about the item. All tags in this list can be used "under" the COUNTRY_SPECIFIC tag like LABEL, PUBLISH_RATING, etc. + */ + + /* Organizational Information */ + GST_MATROSKA_TAG_ID_TOTAL_PARTS, GST_TAG_TRACK_COUNT}, { + GST_MATROSKA_TAG_ID_PART_NUMBER, GST_TAG_TRACK_NUMBER}, { + /* TODO: PART_OFFSET A number to add to PART_NUMBER when the parts at that level don't start at 1. (e.g. if TargetType is TRACK, the track number of the second audio CD) */ + + /* Titles */ + GST_MATROSKA_TAG_ID_SUBTITLE, GST_TAG_TITLE}, { /* Sub Title of the entity. Since we're concat'ing all title-like entities anyway, might as well add the sub-title. */ GST_MATROSKA_TAG_ID_TITLE, GST_TAG_TITLE}, { + GST_MATROSKA_TAG_ID_ALBUM, GST_TAG_ALBUM}, { /* Matroska spec does NOT have this tag! Dunno what it was doing here, probably for compatibility. */ + + /* TODO: Nested Information: + URL URL corresponding to the tag it's included in. + SORT_WITH A child element to indicate what alternative value the parent tag can have to be sorted, for example "Pet Shop Boys" instead of "The Pet Shop Boys". Or "Marley Bob" and "Marley Ziggy" (no comma needed). + INSTRUMENTS The instruments that are being used/played, separated by a comma. It should be a child of the following tags: ARTIST, LEAD_PERFORMER or ACCOMPANIMENT. + EMAIL Email corresponding to the tag it's included in. + ADDRESS The physical address of the entity. The address should include a country code. It can be useful for a recording label. + FAX The fax number corresponding to the tag it's included in. It can be useful for a recording label. + PHONE The phone number corresponding to the tag it's included in. It can be useful for a recording label. + */ + + /* Entities */ GST_MATROSKA_TAG_ID_ARTIST, GST_TAG_ARTIST}, { + GST_MATROSKA_TAG_ID_LEAD_PERFORMER, GST_TAG_PERFORMER}, { + GST_MATROSKA_TAG_ID_ACCOMPANIMENT, GST_TAG_PERFORMER}, { /* Band/orchestra/accompaniment/musician. This is akin to the TPE2 tag in ID3. */ + GST_MATROSKA_TAG_ID_COMPOSER, GST_TAG_COMPOSER}, { + /* ARRANGER The person who arranged the piece, e.g., Ravel. */ + GST_MATROSKA_TAG_ID_LYRICS, GST_TAG_LYRICS}, { /* The lyrics corresponding to a song (in case audio synchronization is not known or as a doublon to a subtitle track). Editing this value when subtitles are found should also result in editing the subtitle track for more consistency. */ + /* LYRICIST The person who wrote the lyrics for a musical item. This is akin to the TEXT tag in ID3. */ + GST_MATROSKA_TAG_ID_CONDUCTOR, GST_TAG_PERFORMER}, { /* Conductor/performer refinement. This is akin to the TPE3 tag in ID3. */ + /* DIRECTOR This is akin to the IART tag in RIFF. */ GST_MATROSKA_TAG_ID_AUTHOR, GST_TAG_ARTIST}, { - GST_MATROSKA_TAG_ID_ALBUM, GST_TAG_ALBUM}, { - GST_MATROSKA_TAG_ID_COMMENTS, GST_TAG_COMMENT}, { - GST_MATROSKA_TAG_ID_BITSPS, GST_TAG_BITRATE}, { - GST_MATROSKA_TAG_ID_BPS, GST_TAG_BITRATE}, { + /* ASSISTANT_DIRECTOR The name of the assistant director. */ + /* DIRECTOR_OF_PHOTOGRAPHY The name of the director of photography, also known as cinematographer. This is akin to the ICNM tag in Extended RIFF. */ + /* SOUND_ENGINEER The name of the sound engineer or sound recordist. */ + /* ART_DIRECTOR The person who oversees the artists and craftspeople who build the sets. */ + /* PRODUCTION_DESIGNER Artist responsible for designing the overall visual appearance of a movie. */ + /* CHOREGRAPHER The name of the choregrapher */ + /* COSTUME_DESIGNER The name of the costume designer */ + /* ACTOR An actor or actress playing a role in this movie. This is the person's real name, not the character's name the person is playing. */ + /* CHARACTER The name of the character an actor or actress plays in this movie. This should be a sub-tag of an ACTOR tag in order not to cause ambiguities. */ + /* WRITTEN_BY The author of the story or script (used for movies and TV shows). */ + /* SCREENPLAY_BY The author of the screenplay or scenario (used for movies and TV shows). */ + /* EDITED_BY This is akin to the IEDT tag in Extended RIFF. */ + /* PRODUCER Produced by. This is akin to the IPRO tag in Extended RIFF. */ + /* COPRODUCER The name of a co-producer. */ + /* EXECUTIVE_PRODUCER The name of an executive producer. */ + /* DISTRIBUTED_BY This is akin to the IDST tag in Extended RIFF. */ + /* MASTERED_BY The engineer who mastered the content for a physical medium or for digital distribution. */ + GST_MATROSKA_TAG_ID_ENCODED_BY, GST_TAG_ENCODED_BY}, { /* This is akin to the TENC tag in ID3. */ + /* MIXED_BY DJ mix by the artist specified */ + /* REMIXED_BY Interpreted, remixed, or otherwise modified by. This is akin to the TPE4 tag in ID3. */ + /* PRODUCTION_STUDIO This is akin to the ISTD tag in Extended RIFF. */ + /* THANKS_TO A very general tag for everyone else that wants to be listed. */ + /* PUBLISHER This is akin to the TPUB tag in ID3. */ + /* LABEL The record label or imprint on the disc. */ + /* Search / Classification */ + GST_MATROSKA_TAG_ID_GENRE, GST_TAG_GENRE}, { + /* MOOD Intended to reflect the mood of the item with a few keywords, e.g. "Romantic", "Sad" or "Uplifting". The format follows that of the TMOO tag in ID3. */ + /* ORIGINAL_MEDIA_TYPE Describes the original type of the media, such as, "DVD", "CD", "computer image," "drawing," "lithograph," and so forth. This is akin to the TMED tag in ID3. */ + /* CONTENT_TYPE The type of the item. e.g. Documentary, Feature Film, Cartoon, Music Video, Music, Sound FX, ... */ + /* SUBJECT Describes the topic of the file, such as "Aerial view of Seattle." */ + GST_MATROSKA_TAG_ID_DESCRIPTION, GST_TAG_DESCRIPTION}, { /* A short description of the content, such as "Two birds flying." */ + GST_MATROSKA_TAG_ID_KEYWORDS, GST_TAG_KEYWORDS}, { /* Keywords to the item separated by a comma, used for searching. */ + /* SUMMARY A plot outline or a summary of the story. */ + /* SYNOPSIS A description of the story line of the item. */ + /* INITIAL_KEY The initial key that a musical track starts in. The format is identical to ID3. */ + /* PERIOD Describes the period that the piece is from or about. For example, "Renaissance". */ + /* LAW_RATING Depending on the country it's the format of the rating of a movie (P, R, X in the USA, an age in other countries or a URI defining a logo). */ + /* ICRA The ICRA content rating for parental control. (Previously RSACi) */ + + /* Temporal Information */ + GST_MATROSKA_TAG_ID_DATE_RELEASED, GST_TAG_DATE}, { /* The time that the item was originaly released. This is akin to the TDRL tag in ID3. */ + GST_MATROSKA_TAG_ID_DATE_RECORDED, GST_TAG_DATE}, { /* The time that the recording began. This is akin to the TDRC tag in ID3. */ + GST_MATROSKA_TAG_ID_DATE_ENCODED, GST_TAG_DATE}, { /* The time that the encoding of this item was completed began. This is akin to the TDEN tag in ID3. */ + GST_MATROSKA_TAG_ID_DATE_TAGGED, GST_TAG_DATE}, { /* The time that the tags were done for this item. This is akin to the TDTG tag in ID3. */ + GST_MATROSKA_TAG_ID_DATE_DIGITIZED, GST_TAG_DATE}, { /* The time that the item was tranfered to a digital medium. This is akin to the IDIT tag in RIFF. */ + GST_MATROSKA_TAG_ID_DATE_WRITTEN, GST_TAG_DATE}, { /* The time that the writing of the music/script began. */ + GST_MATROSKA_TAG_ID_DATE_PURCHASED, GST_TAG_DATE}, { /* Information on when the file was purchased (see also purchase tags). */ + GST_MATROSKA_TAG_ID_DATE, GST_TAG_DATE}, { /* Matroska spec does NOT have this tag! Dunno what it was doing here, probably for compatibility. */ + + /* Spacial Information */ + GST_MATROSKA_TAG_ID_RECORDING_LOCATION, GST_TAG_GEO_LOCATION_NAME}, { /* The location where the item was recorded. The countries corresponding to the string, same 2 octets as in Internet domains, or possibly ISO-3166. This code is followed by a comma, then more detailed information such as state/province, another comma, and then city. For example, "US, Texas, Austin". This will allow for easy sorting. It is okay to only store the country, or the country and the state/province. More detailed information can be added after the city through the use of additional commas. In cases where the province/state is unknown, but you want to store the city, simply leave a space between the two commas. For example, "US, , Austin". */ + /* COMPOSITION_LOCATION Location that the item was originaly designed/written. The countries corresponding to the string, same 2 octets as in Internet domains, or possibly ISO-3166. This code is followed by a comma, then more detailed information such as state/province, another comma, and then city. For example, "US, Texas, Austin". This will allow for easy sorting. It is okay to only store the country, or the country and the state/province. More detailed information can be added after the city through the use of additional commas. In cases where the province/state is unknown, but you want to store the city, simply leave a space between the two commas. For example, "US, , Austin". */ + /* COMPOSER_NATIONALITY Nationality of the main composer of the item, mostly for classical music. The countries corresponding to the string, same 2 octets as in Internet domains, or possibly ISO-3166. */ + + /* Personal */ + GST_MATROSKA_TAG_ID_COMMENT, GST_TAG_COMMENT}, { /* Any comment related to the content. */ + GST_MATROSKA_TAG_ID_COMMENTS, GST_TAG_COMMENT}, { /* Matroska spec does NOT have this tag! Dunno what it was doing here, probably for compatibility. */ + /* PLAY_COUNTER The number of time the item has been played. */ + /* TODO: RATING A numeric value defining how much a person likes the song/movie. The number is between 0 and 5 with decimal values possible (e.g. 2.7), 5(.0) being the highest possible rating. Other rating systems with different ranges will have to be scaled. */ + + /* Technical Information */ GST_MATROSKA_TAG_ID_ENCODER, GST_TAG_ENCODER}, { - GST_MATROSKA_TAG_ID_DATE, GST_TAG_DATE}, { + /* ENCODER_SETTINGS A list of the settings used for encoding this item. No specific format. */ + GST_MATROSKA_TAG_ID_BPS, GST_TAG_BITRATE}, { + GST_MATROSKA_TAG_ID_BITSPS, GST_TAG_BITRATE}, { /* Matroska spec does NOT have this tag! Dunno what it was doing here, probably for compatibility. */ + /* WONTFIX (already handled in another way): FPS The average frames per second of the specified item. This is typically the average number of Blocks per second. In the event that lacing is used, each laced chunk is to be counted as a seperate frame. */ + GST_MATROSKA_TAG_ID_BPM, GST_TAG_BEATS_PER_MINUTE}, { + /* MEASURE In music, a measure is a unit of time in Western music like "4/4". It represents a regular grouping of beats, a meter, as indicated in musical notation by the time signature.. The majority of the contemporary rock and pop music you hear on the radio these days is written in the 4/4 time signature. */ + /* TUNING It is saved as a frequency in hertz to allow near-perfect tuning of instruments to the same tone as the musical piece (e.g. "441.34" in Hertz). The default value is 440.0 Hz. */ + /* TODO: REPLAYGAIN_GAIN The gain to apply to reach 89dB SPL on playback. This is based on the Replay Gain standard. Note that ReplayGain information can be found at all TargetType levels (track, album, etc). */ + /* TODO: REPLAYGAIN_PEAK The maximum absolute peak value of the item. This is based on the Replay Gain standard. */ + + /* Identifiers */ GST_MATROSKA_TAG_ID_ISRC, GST_TAG_ISRC}, { + /* MCDI This is a binary dump of the TOC of the CDROM that this item was taken from. This holds the same information as the MCDI in ID3. */ + /* ISBN International Standard Book Number */ + /* BARCODE EAN-13 (European Article Numbering) or UPC-A (Universal Product Code) bar code identifier */ + /* CATALOG_NUMBER A label-specific string used to identify the release (TIC 01 for example). */ + /* LABEL_CODE A 4-digit or 5-digit number to identify the record label, typically printed as (LC) xxxx or (LC) 0xxxx on CDs medias or covers (only the number is stored). */ + /* LCCN Library of Congress Control Number */ + + /* Commercial */ + /* PURCHASE_ITEM URL to purchase this file. This is akin to the WPAY tag in ID3. */ + /* PURCHASE_INFO Information on where to purchase this album. This is akin to the WCOM tag in ID3. */ + /* PURCHASE_OWNER Information on the person who purchased the file. This is akin to the TOWN tag in ID3. */ + /* PURCHASE_PRICE The amount paid for entity. There should only be a numeric value in here. Only numbers, no letters or symbols other than ".". For instance, you would store "15.59" instead of "$15.59USD". */ + /* PURCHASE_CURRENCY The currency type used to pay for the entity. Use ISO-4217 for the 3 letter currency code. */ + + /* Legal */ GST_MATROSKA_TAG_ID_COPYRIGHT, GST_TAG_COPYRIGHT}, { - GST_MATROSKA_TAG_ID_BPM, GST_TAG_BEATS_PER_MINUTE}, { - GST_MATROSKA_TAG_ID_TERMS_OF_USE, GST_TAG_LICENSE}, { - GST_MATROSKA_TAG_ID_COMPOSER, GST_TAG_COMPOSER}, { - GST_MATROSKA_TAG_ID_LEAD_PERFORMER, GST_TAG_PERFORMER}, { - GST_MATROSKA_TAG_ID_GENRE, GST_TAG_GENRE} + GST_MATROSKA_TAG_ID_PRODUCTION_COPYRIGHT, GST_TAG_COPYRIGHT}, { /* The copyright information as per the production copyright holder. This is akin to the TPRO tag in ID3. */ + GST_MATROSKA_TAG_ID_LICENSE, GST_TAG_LICENSE}, { /* The license applied to the content (like Creative Commons variants). */ + GST_MATROSKA_TAG_ID_TERMS_OF_USE, GST_TAG_LICENSE} + }; + static const struct + { + const gchar *matroska_tagname; + const gchar *gstreamer_tagname; + } + child_tag_conv[] = { + { + "TITLE/SORT_WITH=", GST_TAG_TITLE_SORTNAME}, { + "ARTIST/SORT_WITH=", GST_TAG_ARTIST_SORTNAME}, { + /* ALBUM-stuff is handled elsewhere */ + "COMPOSER/SORT_WITH=", GST_TAG_TITLE_SORTNAME}, { + "ORIGINAL/URL=", GST_TAG_LOCATION}, { + /* EMAIL, PHONE, FAX all can be mapped to GST_TAG_CONTACT, there is special + * code for that later. + */ + "TITLE/URL=", GST_TAG_HOMEPAGE}, { + "ARTIST/URL=", GST_TAG_HOMEPAGE}, { + "COPYRIGHT/URL=", GST_TAG_COPYRIGHT_URI}, { + "LICENSE/URL=", GST_TAG_LICENSE_URI}, { + "LICENSE/URL=", GST_TAG_LICENSE_URI} }; GstFlowReturn ret; guint32 id; gchar *value = NULL; gchar *tag = NULL; + gchar *name_with_parent = NULL; + GstTagList *child_taglist = NULL; DEBUG_ELEMENT_START (common, ebml, "SimpleTag"); @@ -1785,6 +1956,11 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon * return ret; } + if (parent) + child_taglist = *p_taglist; + else + child_taglist = gst_tag_list_new_empty (); + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { /* read all sub-entries */ @@ -1797,6 +1973,11 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon * tag = NULL; ret = gst_ebml_read_ascii (ebml, &id, &tag); GST_DEBUG_OBJECT (common, "TagName: %s", GST_STR_NULL (tag)); + g_free (name_with_parent); + if (parent != NULL) + name_with_parent = g_strdup_printf ("%s/%s", parent, tag); + else + name_with_parent = g_strdup (tag); break; case GST_MATROSKA_ID_TAGSTRING: @@ -1806,11 +1987,23 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon * GST_DEBUG_OBJECT (common, "TagString: %s", GST_STR_NULL (value)); break; + case GST_MATROSKA_ID_SIMPLETAG: + /* Recursive SimpleTag */ + /* This implementation requires tag name of _this_ tag to be known + * in order to read its children. It's not in the spec, just the way + * the code is written. + */ + if (name_with_parent != NULL) { + ret = gst_matroska_read_common_parse_metadata_id_simple_tag (common, + ebml, &child_taglist, name_with_parent); + break; + } + /* fall-through */ + default: ret = gst_matroska_read_common_parse_skip (common, ebml, "SimpleTag", id); break; - /* fall-through */ case GST_MATROSKA_ID_TAGLANGUAGE: case GST_MATROSKA_ID_TAGDEFAULT: @@ -1822,10 +2015,18 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon * DEBUG_ELEMENT_STOP (common, ebml, "SimpleTag", ret); - if (tag && value) { + if (parent && tag && value && *value != '\0') { + /* Don't bother mapping children tags - parent will do that */ + gchar *key_val; + /* TODO: read LANGUAGE sub-tag, and use "key[lc]=val" form */ + key_val = g_strdup_printf ("%s=%s", name_with_parent, value); + gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND, + GST_TAG_EXTENDED_COMMENT, key_val, NULL); + } else if (tag && value && *value != '\0') { + gboolean matched = FALSE; guint i; - for (i = 0; i < G_N_ELEMENTS (tag_conv); i++) { + for (i = 0; !matched && i < G_N_ELEMENTS (tag_conv); i++) { const gchar *tagname_gst = tag_conv[i].gstreamer_tagname; const gchar *tagname_mkv = tag_conv[i].matroska_tagname; @@ -1856,26 +2057,250 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon * g_type_name (dest_type)); } g_value_unset (&dest); - break; + matched = TRUE; + } + } + if (!matched) { + gchar *key_val; + /* TODO: read LANGUAGE sub-tag, and use "key[lc]=val" form */ + key_val = g_strdup_printf ("%s=%s", tag, value); + gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND, + GST_TAG_EXTENDED_COMMENT, key_val, NULL); + } + } + + if (!parent) { + /* Map children tags. This only supports top-anchored mapping. That is, + * we start at toplevel tag (this tag), and see how its combinations + * with its children can be mapped. Which means that grandchildren + * are also combined here, with _this_ tag taken into consideration. + * If grandchildren can be combined only with children, that combination + * will not happen. + */ + gint child_tags_n = gst_tag_list_n_tags (child_taglist); + if (child_tags_n > 0) { + gint i; + for (i = 0; i < child_tags_n; i++) { + gint j; + const gchar *child_name = gst_tag_list_nth_tag_name (child_taglist, i); + guint taglen = gst_tag_list_get_tag_size (child_taglist, child_name); + for (j = 0; j < taglen; j++) { + gchar *val; + gboolean matched = FALSE; + gchar *val_pre, *val_post; + gint k; + + if (!gst_tag_list_get_string_index (child_taglist, child_name, + j, &val)) + continue; + if (!strchr (val, '=')) { + g_free (val); + continue; + } + val_post = g_strdup (strchr (val, '=') + 1); + val_pre = g_strdup (val); + *(strchr (val_pre, '=') + 1) = '\0'; + + for (k = 0; !matched && k < G_N_ELEMENTS (child_tag_conv); k++) { + const gchar *tagname_gst = child_tag_conv[k].gstreamer_tagname; + + const gchar *tagname_mkv = child_tag_conv[k].matroska_tagname; + + /* TODO: Once "key[lc]=value" form support is implemented, + * strip [lc] here. It can't be used in combined tags. + * If a tag is not combined, leave [lc] as it is. + */ + if (strcmp (tagname_mkv, val_pre) == 0) { + GValue dest = { 0, }; + GType dest_type = gst_tag_get_type (tagname_gst); + + g_value_init (&dest, dest_type); + if (gst_value_deserialize (&dest, val_post)) { + gst_tag_list_add_values (*p_taglist, GST_TAG_MERGE_APPEND, + tagname_gst, &dest, NULL); + } else { + GST_WARNING_OBJECT (common, "Can't transform complex tag '%s' " + "to target type '%s'", val, g_type_name (dest_type)); + } + g_value_unset (&dest); + matched = TRUE; + } + } + if (!matched) { + gchar *last_slash = strrchr (val_pre, '/'); + if (last_slash) { + last_slash++; + if (strcmp (last_slash, "EMAIL=") == 0 || + strcmp (last_slash, "PHONE=") == 0 || + strcmp (last_slash, "ADDRESS=") == 0 || + strcmp (last_slash, "FAX=") == 0) { + gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND, + GST_TAG_CONTACT, val_post, NULL); + matched = TRUE; + } + } + } + if (!matched) + gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND, + GST_TAG_EXTENDED_COMMENT, val, NULL); + g_free (val_post); + g_free (val_pre); + g_free (val); + } } } + gst_tag_list_unref (child_taglist); } g_free (tag); g_free (value); + g_free (name_with_parent); return ret; } + +static void +gst_matroska_read_common_count_streams (GstMatroskaReadCommon * common, + gint * a, gint * v, gint * s) +{ + gint i; + gint video_streams = 0, audio_streams = 0, subtitle_streams = 0; + + for (i = 0; i < common->src->len; i++) { + GstMatroskaTrackContext *stream; + + stream = g_ptr_array_index (common->src, i); + if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) + video_streams += 1; + else if (stream->type == GST_MATROSKA_TRACK_TYPE_AUDIO) + audio_streams += 1; + else if (stream->type == GST_MATROSKA_TRACK_TYPE_SUBTITLE) + subtitle_streams += 1; + } + *v = video_streams; + *a = audio_streams; + *v = subtitle_streams; +} + + +static void +gst_matroska_read_common_apply_target_type_foreach (const GstTagList * list, + const gchar * tag, gpointer user_data) +{ + guint vallen; + guint i; + TargetTypeContext *ctx = (TargetTypeContext *) user_data; + + vallen = gst_tag_list_get_tag_size (list, tag); + if (vallen == 0) + return; + + for (i = 0; i < vallen; i++) { + GValue val = { 0 }; + const GValue *val_ref; + + val_ref = gst_tag_list_get_value_index (list, tag, i); + if (val_ref == NULL) + continue; + g_value_init (&val, G_VALUE_TYPE (val_ref)); + g_value_copy (val_ref, &val); + + /* TODO: use the optional ctx->target_type somehow */ + if (strcmp (tag, GST_TAG_TITLE) == 0) { + if (ctx->target_type_value >= 70 && !ctx->audio_only) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_SHOW_NAME, &val); + continue; + } else if (ctx->target_type_value >= 50) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_ALBUM, &val); + continue; + } + } else if (strcmp (tag, GST_TAG_TITLE_SORTNAME) == 0) { + if (ctx->target_type_value >= 70 && !ctx->audio_only) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_SHOW_SORTNAME, &val); + continue; + } else if (ctx->target_type_value >= 50) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_ALBUM_SORTNAME, &val); + continue; + } + } else if (strcmp (tag, GST_TAG_ARTIST) == 0) { + if (ctx->target_type_value >= 50) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_ALBUM_ARTIST, &val); + continue; + } + } else if (strcmp (tag, GST_TAG_ARTIST_SORTNAME) == 0) { + if (ctx->target_type_value >= 50) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_ALBUM_ARTIST_SORTNAME, &val); + continue; + } + } else if (strcmp (tag, GST_TAG_TRACK_COUNT) == 0) { + if (ctx->target_type_value >= 60) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_ALBUM_VOLUME_COUNT, &val); + continue; + } + } else if (strcmp (tag, GST_TAG_TRACK_NUMBER) == 0) { + if (ctx->target_type_value >= 60 && !ctx->audio_only) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_SHOW_SEASON_NUMBER, &val); + continue; + } else if (ctx->target_type_value >= 50 && !ctx->audio_only) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_SHOW_EPISODE_NUMBER, &val); + continue; + } else if (ctx->target_type_value >= 50) { + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, + GST_TAG_ALBUM_VOLUME_NUMBER, &val); + continue; + } + } + gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, tag, &val); + g_value_unset (&val); + } +} + + +static GstTagList * +gst_matroska_read_common_apply_target_type (GstMatroskaReadCommon * common, + GstTagList * taglist, guint64 target_type_value, gchar * target_type) +{ + TargetTypeContext ctx; + gint a = 0; + gint v = 0; + gint s = 0; + + gst_matroska_read_common_count_streams (common, &a, &v, &s); + + ctx.audio_only = (a > 0 && v == 0 && s == 0); + ctx.result = gst_tag_list_new_empty (); + ctx.target_type_value = target_type_value; + ctx.target_type = target_type; + + gst_tag_list_foreach (taglist, + gst_matroska_read_common_apply_target_type_foreach, &ctx); + + gst_tag_list_unref (taglist); + return ctx.result; +} + + static GstFlowReturn gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common, GstEbmlRead * ebml, GstTagList ** p_taglist) { guint32 id; GstFlowReturn ret; - GArray *chapter_targets, *edition_targets; + GArray *chapter_targets, *edition_targets, *track_targets; GstTagList *taglist; GList *cur; + guint64 target_type_value = 50; + gchar *target_type = NULL; DEBUG_ELEMENT_START (common, ebml, "Tag"); @@ -1886,7 +2311,9 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common, edition_targets = g_array_new (FALSE, FALSE, sizeof (guint64)); chapter_targets = g_array_new (FALSE, FALSE, sizeof (guint64)); + track_targets = g_array_new (FALSE, FALSE, sizeof (guint64)); taglist = gst_tag_list_new_empty (); + target_type = NULL; while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { /* read all sub-entries */ @@ -1897,13 +2324,16 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common, switch (id) { case GST_MATROSKA_ID_SIMPLETAG: ret = gst_matroska_read_common_parse_metadata_id_simple_tag (common, - ebml, &taglist); + ebml, &taglist, NULL); break; case GST_MATROSKA_ID_TARGETS: - ret = - gst_matroska_read_common_parse_metadata_targets (common, ebml, - edition_targets, chapter_targets); + g_free (target_type); + target_type = NULL; + target_type_value = 50; + ret = gst_matroska_read_common_parse_metadata_targets (common, ebml, + edition_targets, chapter_targets, track_targets, + &target_type_value, &target_type); break; default: @@ -1914,19 +2344,47 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common, DEBUG_ELEMENT_STOP (common, ebml, "Tag", ret); + taglist = gst_matroska_read_common_apply_target_type (common, taglist, + target_type_value, target_type); + g_free (target_type); + /* if tag is chapter/edition specific - try to find that entry */ - if (G_UNLIKELY (chapter_targets->len > 0 || edition_targets->len > 0)) { - if (common->toc == NULL) - GST_WARNING_OBJECT (common, - "Found chapter/edition specific tag, but TOC doesn't present"); - else { - cur = gst_toc_get_entries (common->toc); - while (cur != NULL) { - gst_matroska_read_common_parse_toc_tag (cur->data, edition_targets, - chapter_targets, taglist); - cur = cur->next; + if (G_UNLIKELY (chapter_targets->len > 0 || edition_targets->len > 0 || + track_targets->len > 0)) { + gint i; + if (chapter_targets->len > 0 || edition_targets->len > 0) { + if (common->toc == NULL) + GST_WARNING_OBJECT (common, + "Found chapter/edition specific tag, but TOC is not present"); + else { + cur = gst_toc_get_entries (common->toc); + while (cur != NULL) { + gst_matroska_read_common_parse_toc_tag (cur->data, edition_targets, + chapter_targets, taglist); + cur = cur->next; + } + common->toc_updated = TRUE; + } + } + for (i = 0; i < track_targets->len; i++) { + gint j; + gboolean found = FALSE; + guint64 tgt = g_array_index (track_targets, guint64, i); + + for (j = 0; j < common->src->len; j++) { + GstMatroskaTrackContext *stream = g_ptr_array_index (common->src, j); + + if (stream->uid == tgt) { + gst_tag_list_insert (stream->pending_tags, taglist, + GST_TAG_MERGE_REPLACE); + found = TRUE; + } + } + if (!found) { + GST_WARNING_OBJECT (common, + "Found track-specific tag(s), but track %" G_GUINT64_FORMAT + " is not known (yet?)", tgt); } - common->toc_updated = TRUE; } } else gst_tag_list_insert (*p_taglist, taglist, GST_TAG_MERGE_APPEND); @@ -1934,6 +2392,7 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common, gst_tag_list_unref (taglist); g_array_unref (chapter_targets); g_array_unref (edition_targets); + g_array_unref (track_targets); return ret; } @@ -2182,7 +2641,7 @@ gst_matroska_read_common_read_track_encoding (GstMatroskaReadCommon * common, if (!gst_matroska_read_common_encoding_order_unique (context->encodings, num)) { GST_ERROR_OBJECT (common, "ContentEncodingOrder %" G_GUINT64_FORMAT - "is not unique for track %d", num, context->num); + "is not unique for track %" G_GUINT64_FORMAT, num, context->num); ret = GST_FLOW_ERROR; break; } diff --git a/gst/matroska/matroska-read-common.h b/gst/matroska/matroska-read-common.h index 0a18eaa81a9d205ca3c3fd3244d24bce8f9c00f2..10054b0c9b067e01ffb56b8ac0a419a42271e9fd 100644 --- a/gst/matroska/matroska-read-common.h +++ b/gst/matroska/matroska-read-common.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MATROSKA_READ_COMMON_H__ diff --git a/gst/matroska/matroska.c b/gst/matroska/matroska.c index ab2abd41173b038c9d0ddce4dccbed66560367a8..6e43972f6665a7a0743cb04a7d2d8091bd56e6b5 100644 --- a/gst/matroska/matroska.c +++ b/gst/matroska/matroska.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/matroska/webm-mux.c b/gst/matroska/webm-mux.c index c2cc00d519ab2c878aeec7c8b2778d49e900b74f..19aa245772b2a1764c49ebb3bf5dc946dcd17cd8 100644 --- a/gst/matroska/webm-mux.c +++ b/gst/matroska/webm-mux.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -62,10 +62,11 @@ static GstStaticPadTemplate webm_src_templ = GST_STATIC_PAD_TEMPLATE ("src", ); static GstStaticPadTemplate webm_videosink_templ = -GST_STATIC_PAD_TEMPLATE ("video_%u", + GST_STATIC_PAD_TEMPLATE ("video_%u", GST_PAD_SINK, GST_PAD_REQUEST, - GST_STATIC_CAPS ("video/x-vp8, " COMMON_VIDEO_CAPS) + GST_STATIC_CAPS ("video/x-vp8, " COMMON_VIDEO_CAPS ";" + "video/x-vp9, " COMMON_VIDEO_CAPS) ); static GstStaticPadTemplate webm_audiosink_templ = diff --git a/gst/matroska/webm-mux.h b/gst/matroska/webm-mux.h index cb007b00cb2c578e29c26c7c41bee55d29f8ed6b..6fee844633c1b8629c07fa3491a1fb68e4faa7dc 100644 --- a/gst/matroska/webm-mux.h +++ b/gst/matroska/webm-mux.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_WEBM_MUX_H__ diff --git a/gst/monoscope/Makefile.in b/gst/monoscope/Makefile.in index 048d3b03e388702e766b9a063a6a8722427774c1..2d262f06a3bbb0fb8eb2be1f7eeea2bca43e1eaa 100644 --- a/gst/monoscope/Makefile.in +++ b/gst/monoscope/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/monoscope -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgstmonoscope_la_OBJECTS = $(am_libgstmonoscope_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstmonoscope_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) \ $(libgstmonoscope_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstmonoscope_la_SOURCES) DIST_SOURCES = $(libgstmonoscope_la_SOURCES) am__can_run_installinfo = \ @@ -174,6 +209,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -342,6 +394,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstmonoscope.la: $(libgstmonoscope_la_OBJECTS) $(libgstmonoscope_la_DEPENDENCIES) $(EXTRA_libgstmonoscope_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmonoscope_la_LINK) -rpath $(plugindir) $(libgstmonoscope_la_OBJECTS) $(libgstmonoscope_la_LIBADD) $(LIBS) @@ -636,26 +693,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -667,15 +713,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -684,6 +726,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -828,19 +885,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/monoscope/convolve.c b/gst/monoscope/convolve.c index 584f680daefa2c6da5b1b40d43619aa1524c88a7..972753f6789bb3b57402d0dfb20e5d0966d2487c 100644 --- a/gst/monoscope/convolve.c +++ b/gst/monoscope/convolve.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * * Note: 7th December 2004: This file used to be licensed under the GPL, diff --git a/gst/monoscope/convolve.h b/gst/monoscope/convolve.h index dc934ec877f2e7ca337c8f149af72187da877f0e..64da744452068a626fbc5d2ba72fdf6ccddb0b49 100644 --- a/gst/monoscope/convolve.h +++ b/gst/monoscope/convolve.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * * Note: 7th December 2004: This file used to be licensed under the GPL, diff --git a/gst/monoscope/gstmonoscope.c b/gst/monoscope/gstmonoscope.c index 93948f967eff0a033ec8e1f28f7a17fe0a9c1591..4632aa47f665475366d7e1e06f589c518f5af31c 100644 --- a/gst/monoscope/gstmonoscope.c +++ b/gst/monoscope/gstmonoscope.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -349,7 +349,8 @@ gst_monoscope_chain (GstPad * pad, GstObject * parent, GstBuffer * inbuf) if (GST_BUFFER_TIMESTAMP (inbuf) != GST_CLOCK_TIME_NONE) monoscope->next_ts = GST_BUFFER_TIMESTAMP (inbuf); - GST_LOG_OBJECT (monoscope, "in buffer has %d samples, ts=%" GST_TIME_FORMAT, + GST_LOG_OBJECT (monoscope, + "in buffer has %" G_GSIZE_FORMAT " samples, ts=%" GST_TIME_FORMAT, gst_buffer_get_size (inbuf) / monoscope->bps, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (inbuf))); diff --git a/gst/monoscope/gstmonoscope.h b/gst/monoscope/gstmonoscope.h index e68153c35208f5b1c7756fb4d80238509f8932ce..b66a6d2f3ae8309912bb071ea399743ea057f0d2 100644 --- a/gst/monoscope/gstmonoscope.h +++ b/gst/monoscope/gstmonoscope.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MONOSCOPE__ diff --git a/gst/multifile/Makefile.in b/gst/multifile/Makefile.in index 97494020dd66dc280c43342fdcae707f81a1b08b..90f79e2112d81fa907e053bb47b98616b0b65b79 100644 --- a/gst/multifile/Makefile.in +++ b/gst/multifile/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/multifile -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -141,10 +167,23 @@ libgstmultifile_la_OBJECTS = $(am_libgstmultifile_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstmultifile_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstmultifile_la_CFLAGS) $(CFLAGS) \ $(libgstmultifile_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -157,20 +196,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstmultifile_la_SOURCES) DIST_SOURCES = $(libgstmultifile_la_SOURCES) am__can_run_installinfo = \ @@ -179,6 +214,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -347,6 +399,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstmultifile.la: $(libgstmultifile_la_OBJECTS) $(libgstmultifile_la_DEPENDENCIES) $(EXTRA_libgstmultifile_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmultifile_la_LINK) -rpath $(plugindir) $(libgstmultifile_la_OBJECTS) $(libgstmultifile_la_LIBADD) $(LIBS) @@ -663,26 +720,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -694,15 +740,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -711,6 +753,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -855,19 +912,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/multifile/gstmultifile.c b/gst/multifile/gstmultifile.c index 322d3ea4d7d69069551ea3554ff7c1f5f88934be..e89dadaa6670f76a1924d5056d05030cc7bb2817 100644 --- a/gst/multifile/gstmultifile.c +++ b/gst/multifile/gstmultifile.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/multifile/gstmultifilesink.c b/gst/multifile/gstmultifilesink.c index 56742c97c16e85309015335fdc8c59a53346c0a0..eed57160deb4d691c35b580d35fa720eec3ff9fd 100644 --- a/gst/multifile/gstmultifilesink.c +++ b/gst/multifile/gstmultifilesink.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-multifilesink @@ -271,7 +271,6 @@ gst_multi_file_sink_class_init (GstMultiFileSinkClass * klass) gobject_class->finalize = gst_multi_file_sink_finalize; - gstbasesink_class->get_times = NULL; gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_multi_file_sink_stop); gstbasesink_class->render = GST_DEBUG_FUNCPTR (gst_multi_file_sink_render); gstbasesink_class->render_list = @@ -586,10 +585,12 @@ gst_multi_file_sink_render (GstBaseSink * sink, GstBuffer * buffer) if (multifilesink->file == NULL) { if (!gst_multi_file_sink_open_next_file (multifilesink)) goto stdio_write_error; - } - if (!gst_multi_file_sink_write_stream_headers (multifilesink)) - goto stdio_write_error; + /* we don't need to write stream headers here, they will be inserted in + * the stream by upstream elements if key unit events have + * all_headers=true set + */ + } ret = fwrite (map.data, map.size, 1, multifilesink->file); diff --git a/gst/multifile/gstmultifilesink.h b/gst/multifile/gstmultifilesink.h index dd234d6415b3d55c9a67574e644abb2504ce0933..22c6d128c8dabf73e1cea1890b29a468ee92b655 100644 --- a/gst/multifile/gstmultifilesink.h +++ b/gst/multifile/gstmultifilesink.h @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MULTIFILESINK_H__ diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c index d384f4de861f26d891f097994620e0c3f8bc487b..63f9583dc13157d1cfdb522603fe1cab0f6bbd23 100644 --- a/gst/multifile/gstmultifilesrc.c +++ b/gst/multifile/gstmultifilesrc.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-multifilesrc @@ -119,7 +119,7 @@ gst_multi_file_src_class_init (GstMultiFileSrcClass * klass) 0, INT_MAX, DEFAULT_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_STOP_INDEX, - g_param_spec_int ("stop-index", "Start Index", + g_param_spec_int ("stop-index", "Stop Index", "Stop value of index. The special value -1 means no stop.", -1, INT_MAX, DEFAULT_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); @@ -340,6 +340,15 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) if (multifilesrc->index < multifilesrc->start_index) { multifilesrc->index = multifilesrc->start_index; } + + if (multifilesrc->stop_index != -1 && + multifilesrc->index > multifilesrc->stop_index) { + if (multifilesrc->loop) + multifilesrc->index = multifilesrc->start_index; + else + return GST_FLOW_EOS; + } + filename = gst_multi_file_src_get_filename (multifilesrc); GST_DEBUG_OBJECT (multifilesrc, "reading from file \"%s\".", filename); @@ -376,10 +385,6 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) multifilesrc->successful_read = TRUE; multifilesrc->index++; - if (multifilesrc->stop_index != -1 && - multifilesrc->index >= multifilesrc->stop_index) { - multifilesrc->index = multifilesrc->start_index; - } buf = gst_buffer_new (); gst_buffer_append_memory (buf, diff --git a/gst/multifile/gstmultifilesrc.h b/gst/multifile/gstmultifilesrc.h index 57ed038084e4ebb6f9b28e118ac83016abe71afa..ac43fe989675c38dbb171374210f67d89684c258 100644 --- a/gst/multifile/gstmultifilesrc.h +++ b/gst/multifile/gstmultifilesrc.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MULTIFILESRC_H__ diff --git a/gst/multifile/gstsplitfilesrc.c b/gst/multifile/gstsplitfilesrc.c index 56def5cd4631721e7d23b6892d758b69611c26d5..f0bc980bc92ab29c67fa8173018ca023bcebc839 100644 --- a/gst/multifile/gstsplitfilesrc.c +++ b/gst/multifile/gstsplitfilesrc.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-splitfilesrc diff --git a/gst/multifile/gstsplitfilesrc.h b/gst/multifile/gstsplitfilesrc.h index f52b3bf2a8fcab476d20a633724c0f17e84f2d28..80abdd3f11a931390f31f03a05d4e5d59c716ef2 100644 --- a/gst/multifile/gstsplitfilesrc.h +++ b/gst/multifile/gstsplitfilesrc.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_SPLIT_FILE_SRC_H__ #define __GST_SPLIT_FILE_SRC_H__ diff --git a/gst/multifile/patternspec.c b/gst/multifile/patternspec.c index 59de8d1ffbd67fa388d895f3712bb9a7a8b72983..848aaba2d6e55bd8230e72b7f3ea4543dfbd35db 100644 --- a/gst/multifile/patternspec.c +++ b/gst/multifile/patternspec.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" diff --git a/gst/multifile/patternspec.h b/gst/multifile/patternspec.h index c3e9436384713e1909dcd9efac554fcbc43f46ba..5bb9b403c55caa2a61a2854a6b0264b0f9b5fcc8 100644 --- a/gst/multifile/patternspec.h +++ b/gst/multifile/patternspec.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __PATTERN_SPEC_H__ diff --git a/gst/multipart/Makefile.in b/gst/multipart/Makefile.in index 5f66dc570002d7fef4fdbbace88989d8f40d9a1b..95b069b42fb8922b8af7ea6ca25b07abb74e8bea 100644 --- a/gst/multipart/Makefile.in +++ b/gst/multipart/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/multipart -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstmultipart_la_OBJECTS = $(am_libgstmultipart_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstmultipart_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstmultipart_la_CFLAGS) $(CFLAGS) \ $(libgstmultipart_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstmultipart_la_SOURCES) DIST_SOURCES = $(libgstmultipart_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -544,6 +597,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -570,12 +624,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstmultipart.la: $(libgstmultipart_la_OBJECTS) $(libgstmultipart_la_DEPENDENCIES) $(EXTRA_libgstmultipart_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmultipart_la_LINK) -rpath $(plugindir) $(libgstmultipart_la_OBJECTS) $(libgstmultipart_la_LIBADD) $(LIBS) @@ -637,26 +694,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -668,15 +714,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -685,6 +727,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -829,19 +886,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/multipart/multipart.c b/gst/multipart/multipart.c index be14d4abab6fe406e6de1a38ab0b1a3fec81d733..30f10626bd89bd7b7de1f4ed353029f7140b2514 100644 --- a/gst/multipart/multipart.c +++ b/gst/multipart/multipart.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/multipart/multipartdemux.c b/gst/multipart/multipartdemux.c index e8dcd30c163c32f52bf7326655fb98c0270069e2..4889e45c49e282f5174fefae99d7522245e2f021 100644 --- a/gst/multipart/multipartdemux.c +++ b/gst/multipart/multipartdemux.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -40,7 +40,7 @@ * <refsect2> * <title>Sample pipelines</title> * |[ - * gst-launch-1.0 filesrc location=/tmp/test.multipart ! multipartdemux ! jpegdec ! videoconvert ! ximagesink + * gst-launch-1.0 filesrc location=/tmp/test.multipart ! multipartdemux ! image/jpeg,framerate=\(fraction\)5/1 ! jpegparse ! jpegdec ! videoconvert ! autovideosink * ]| a simple pipeline to demux a multipart file muxed with #GstMultipartMux * containing JPEG frames. * </refsect2> diff --git a/gst/multipart/multipartdemux.h b/gst/multipart/multipartdemux.h index 48e901b00c68d924f68a48b369f1df29eff67574..f4ac4e2e1c60954a302cc32212b810a7f9c5dca2 100644 --- a/gst/multipart/multipartdemux.h +++ b/gst/multipart/multipartdemux.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MULTIPART_DEMUX__ diff --git a/gst/multipart/multipartmux.c b/gst/multipart/multipartmux.c index a709f7dfa28935fe00d41df86bb175783e090af6..681429387e5af8ec319d07f35a6cfdadde40a7c3 100644 --- a/gst/multipart/multipartmux.c +++ b/gst/multipart/multipartmux.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -85,6 +85,8 @@ static GstPad *gst_multipart_mux_request_new_pad (GstElement * element, static GstStateChangeReturn gst_multipart_mux_change_state (GstElement * element, GstStateChange transition); +static gboolean gst_multipart_mux_sink_event (GstCollectPads * pads, + GstCollectData * pad, GstEvent * event, GstMultipartMux * mux); static GstFlowReturn gst_multipart_mux_collected (GstCollectPads * pads, GstMultipartMux * mux); @@ -150,6 +152,9 @@ gst_multipart_mux_init (GstMultipartMux * multipart_mux) multipart_mux->boundary = g_strdup (DEFAULT_BOUNDARY); multipart_mux->collect = gst_collect_pads_new (); + gst_collect_pads_set_event_function (multipart_mux->collect, + (GstCollectPadsEventFunction) GST_DEBUG_FUNCPTR (gst_multipart_mux_sink_event), + multipart_mux); gst_collect_pads_set_function (multipart_mux->collect, (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_multipart_mux_collected), multipart_mux); @@ -376,6 +381,27 @@ gst_multipart_mux_queue_pads (GstMultipartMux * mux) return bestpad; } +static gboolean +gst_multipart_mux_sink_event (GstCollectPads * pads, GstCollectData * data, + GstEvent * event, GstMultipartMux * mux) +{ + gboolean ret; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_STOP: + { + mux->need_segment = TRUE; + break; + } + default: + break; + } + + ret = gst_collect_pads_event_default (pads, data, event, FALSE); + + return ret; +} + /* basic idea: * * 1) find a pad to pull on, this is done by pulling on all pads and diff --git a/gst/multipart/multipartmux.h b/gst/multipart/multipartmux.h index 7a171898d51a0573adaf74deaed5c758f9382579..f66d35e935241b0beea5553fde596d6e28541f8d 100644 --- a/gst/multipart/multipartmux.h +++ b/gst/multipart/multipartmux.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MULTIPART_MUX__ diff --git a/gst/replaygain/Makefile.in b/gst/replaygain/Makefile.in index 327cb32e446ddfea1744f567d9e090e556a9e308..3bdb564839b20c5290b37c9cfdc182fcfe180fa4 100644 --- a/gst/replaygain/Makefile.in +++ b/gst/replaygain/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/replaygain -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -140,10 +166,23 @@ libgstreplaygain_la_OBJECTS = $(am_libgstreplaygain_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstreplaygain_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) \ $(libgstreplaygain_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -156,20 +195,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstreplaygain_la_SOURCES) DIST_SOURCES = $(libgstreplaygain_la_SOURCES) am__can_run_installinfo = \ @@ -178,6 +213,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -346,6 +398,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -566,6 +619,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -592,12 +646,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstreplaygain.la: $(libgstreplaygain_la_OBJECTS) $(libgstreplaygain_la_DEPENDENCIES) $(EXTRA_libgstreplaygain_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstreplaygain_la_LINK) -rpath $(plugindir) $(libgstreplaygain_la_OBJECTS) $(libgstreplaygain_la_LIBADD) $(LIBS) @@ -675,26 +732,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -706,15 +752,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -723,6 +765,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -867,19 +924,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/replaygain/gstrgvolume.c b/gst/replaygain/gstrgvolume.c index c41684d4fffa379ba1575446304a6e468cb059c8..05c21e0dee9ebf48a76b8c22c05febf6535b7bdd 100644 --- a/gst/replaygain/gstrgvolume.c +++ b/gst/replaygain/gstrgvolume.c @@ -448,12 +448,10 @@ static gboolean gst_rg_volume_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) { GstRgVolume *self; - GstPad *volume_sink_pad; GstEvent *send_event = event; gboolean res; self = GST_RG_VOLUME (parent); - volume_sink_pad = gst_ghost_pad_get_target (GST_GHOST_PAD (pad)); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_TAG: @@ -477,12 +475,10 @@ gst_rg_volume_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) } if (G_LIKELY (send_event != NULL)) - res = gst_pad_send_event (volume_sink_pad, send_event); + res = gst_pad_event_default (pad, parent, send_event); else res = TRUE; - gst_object_unref (volume_sink_pad); - return res; } diff --git a/gst/rtp/Makefile.am b/gst/rtp/Makefile.am index 1d9d8df44da4e0db615408d56f46bd23ee988d4e..6c1d6b8ec31ee85ed1044bea85f84b57fd6d0e89 100644 --- a/gst/rtp/Makefile.am +++ b/gst/rtp/Makefile.am @@ -1,6 +1,7 @@ plugin_LTLIBRARIES = libgstrtp.la libgstrtp_la_SOURCES = \ + dboolhuff.c \ fnv1hash.c \ gstrtp.c \ gstrtpchannels.c \ @@ -61,6 +62,8 @@ libgstrtp_la_SOURCES = \ gstrtpmp4apay.c \ gstrtpqcelpdepay.c \ gstrtpqdmdepay.c \ + gstrtpsbcdepay.c \ + gstrtpsbcpay.c \ gstrtpsirenpay.c \ gstrtpsirendepay.c \ gstrtpspeexdepay.c \ @@ -70,92 +73,105 @@ libgstrtp_la_SOURCES = \ gstrtptheorapay.c \ gstrtpvorbisdepay.c \ gstrtpvorbispay.c \ + gstrtpvp8depay.c \ + gstrtpvp8pay.c \ gstrtpvrawdepay.c \ gstrtpvrawpay.c -libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) +libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) -Dvp8_norm=gst_rtpvp8_vp8_norm \ + -Dvp8dx_start_decode=gst_rtpvp8_vp8dx_start_decode \ + -Dvp8dx_bool_decoder_fill=gst_rtpvp8_vp8dx_bool_decoder_fill + libgstrtp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ - -lgstaudio-@GST_API_VERSION@ \ - -lgstvideo-@GST_API_VERSION@ \ - -lgsttag-@GST_API_VERSION@ \ - -lgstrtp-@GST_API_VERSION@ \ - -lgstpbutils-@GST_API_VERSION@ \ - $(GST_BASE_LIBS) $(GST_LIBS) \ - $(LIBM) + -lgstaudio-@GST_API_VERSION@ \ + -lgstvideo-@GST_API_VERSION@ \ + -lgsttag-@GST_API_VERSION@ \ + -lgstrtp-@GST_API_VERSION@ \ + -lgstpbutils-@GST_API_VERSION@ \ + $(GST_BASE_LIBS) $(GST_LIBS) \ + $(LIBM) libgstrtp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstrtp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) noinst_HEADERS = \ - fnv1hash.h \ - gstrtpchannels.h \ - gstrtpL16depay.h \ - gstrtpL16pay.h \ - gstrtpac3depay.h \ - gstrtpac3pay.h \ - gstrtpbvdepay.h \ - gstrtpbvpay.h \ - gstrtpceltpay.h \ - gstrtpceltdepay.h \ - gstrtpdvdepay.h \ - gstrtpdvpay.h \ - gstrtpamrdepay.h \ - gstrtpamrpay.h \ - gstrtpgstdepay.h \ - gstrtpgstpay.h \ - gstrtpilbcdepay.h \ - gstrtpilbcpay.h \ - gstrtppcmadepay.h \ - gstrtppcmudepay.h \ - gstrtppcmupay.h \ - gstrtppcmapay.h \ - gstrtpg722depay.h \ - gstrtpg722pay.h \ - gstrtpg723depay.h \ - gstrtpg723pay.h \ - gstrtpg726depay.h \ - gstrtpg726pay.h \ - gstrtpg729depay.h \ - gstrtpg729pay.h \ - gstrtpgsmdepay.h \ - gstrtpgsmpay.h \ - gstrtpmpadepay.h \ - gstrtpmparobustdepay.h \ - gstrtpmpapay.h \ - gstrtpmpvdepay.h \ - gstrtpmpvpay.h \ - gstrtph263pdepay.h \ - gstrtph263ppay.h \ - gstrtph263depay.h \ - gstrtph263pay.h \ - gstrtph264depay.h \ - gstrtph264pay.h \ - gstrtpj2kdepay.h \ - gstrtpj2kpay.h \ - gstrtpjpegdepay.h \ - gstrtpjpegpay.h \ - gstrtpmp1sdepay.h \ - gstrtpmp2tdepay.h \ - gstrtpmp2tpay.h \ - gstrtpmp4vdepay.h \ - gstrtpmp4vpay.h \ - gstrtpmp4gdepay.h \ - gstrtpmp4gpay.h \ - gstrtpmp4adepay.h \ - gstrtpmp4apay.h \ - gstasteriskh263.h \ - gstrtpqcelpdepay.h \ - gstrtpqdmdepay.h \ - gstrtpsirenpay.h \ - gstrtpsirendepay.h \ - gstrtpspeexdepay.h \ - gstrtpspeexpay.h \ - gstrtpsv3vdepay.h \ - gstrtptheoradepay.h \ - gstrtptheorapay.h \ - gstrtpvorbisdepay.h \ - gstrtpvorbispay.h \ - gstrtpvrawdepay.h \ - gstrtpvrawpay.h + dboolhuff.h \ + fnv1hash.h \ + gstrtpchannels.h \ + gstrtpL16depay.h \ + gstrtpL16pay.h \ + gstrtpac3depay.h \ + gstrtpac3pay.h \ + gstrtpbvdepay.h \ + gstrtpbvpay.h \ + gstrtpceltpay.h \ + gstrtpceltdepay.h \ + gstrtpdvdepay.h \ + gstrtpdvpay.h \ + gstrtpamrdepay.h \ + gstrtpamrpay.h \ + gstrtpgstdepay.h \ + gstrtpgstpay.h \ + gstrtpilbcdepay.h \ + gstrtpilbcpay.h \ + gstrtppcmadepay.h \ + gstrtppcmudepay.h \ + gstrtppcmupay.h \ + gstrtppcmapay.h \ + gstrtpg722depay.h \ + gstrtpg722pay.h \ + gstrtpg723depay.h\ + gstrtpg723pay.h \ + gstrtpg726depay.h \ + gstrtpg726pay.h \ + gstrtpg729depay.h \ + gstrtpg729pay.h \ + gstrtpgsmdepay.h \ + gstrtpgsmpay.h \ + gstrtpmpadepay.h \ + gstrtpmparobustdepay.h \ + gstrtpmpapay.h \ + gstrtpmpvdepay.h \ + gstrtpmpvpay.h \ + gstrtph263pdepay.h \ + gstrtph263ppay.h \ + gstrtph263depay.h \ + gstrtph263pay.h \ + gstrtph264depay.h \ + gstrtph264pay.h \ + gstrtpj2kdepay.h \ + gstrtpj2kpay.h \ + gstrtpjpegdepay.h \ + gstrtpjpegpay.h \ + gstrtpmp1sdepay.h \ + gstrtpmp2tdepay.h \ + gstrtpmp2tpay.h \ + gstrtpmp4vdepay.h \ + gstrtpmp4vpay.h \ + gstrtpmp4gdepay.h \ + gstrtpmp4gpay.h \ + gstrtpmp4adepay.h \ + gstrtpmp4apay.h \ + gstasteriskh263.h \ + gstrtpqcelpdepay.h \ + gstrtpqdmdepay.h \ + gstrtpsbcdepay.h \ + gstrtpsbcpay.h \ + gstrtpsirenpay.h \ + gstrtpsirendepay.h \ + gstrtpspeexdepay.h \ + gstrtpspeexpay.h \ + gstrtpsv3vdepay.h \ + gstrtptheoradepay.h \ + gstrtptheorapay.h \ + gstrtpvorbisdepay.h \ + gstrtpvorbispay.h \ + gstrtpvp8depay.h \ + gstrtpvp8pay.h \ + gstrtpvrawdepay.h \ + gstrtpvrawpay.h + +EXTRA_DIST = dboolhuff.LICENSE Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ @@ -165,8 +181,8 @@ Android.mk: Makefile.am $(BUILT_SOURCES) -:SOURCES $(libgstrtp_la_SOURCES) \ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstrtp_la_CFLAGS) \ -:LDFLAGS $(libgstrtp_la_LDFLAGS) \ - $(libgstrtp_la_LIBADD) \ - -ldl \ + $(libgstrtp_la_LIBADD) \ + -ldl \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ - LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ > $@ diff --git a/gst/rtp/Makefile.in b/gst/rtp/Makefile.in index b62d6694e70d66122b3eb076bd40a42c7b648022..7491d01d77c66de9ceaac2a027879b8b940960fd 100644 --- a/gst/rtp/Makefile.in +++ b/gst/rtp/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/rtp -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in TODO +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) README TODO ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -131,15 +157,16 @@ am__DEPENDENCIES_1 = libgstrtp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -am_libgstrtp_la_OBJECTS = libgstrtp_la-fnv1hash.lo \ - libgstrtp_la-gstrtp.lo libgstrtp_la-gstrtpchannels.lo \ - libgstrtp_la-gstrtpac3depay.lo libgstrtp_la-gstrtpac3pay.lo \ - libgstrtp_la-gstrtpbvdepay.lo libgstrtp_la-gstrtpbvpay.lo \ - libgstrtp_la-gstrtpceltdepay.lo libgstrtp_la-gstrtpceltpay.lo \ - libgstrtp_la-gstrtpdvdepay.lo libgstrtp_la-gstrtpdvpay.lo \ - libgstrtp_la-gstrtpgstdepay.lo libgstrtp_la-gstrtpgstpay.lo \ - libgstrtp_la-gstrtpilbcdepay.lo libgstrtp_la-gstrtpilbcpay.lo \ - libgstrtp_la-gstrtpmpadepay.lo libgstrtp_la-gstrtpmpapay.lo \ +am_libgstrtp_la_OBJECTS = libgstrtp_la-dboolhuff.lo \ + libgstrtp_la-fnv1hash.lo libgstrtp_la-gstrtp.lo \ + libgstrtp_la-gstrtpchannels.lo libgstrtp_la-gstrtpac3depay.lo \ + libgstrtp_la-gstrtpac3pay.lo libgstrtp_la-gstrtpbvdepay.lo \ + libgstrtp_la-gstrtpbvpay.lo libgstrtp_la-gstrtpceltdepay.lo \ + libgstrtp_la-gstrtpceltpay.lo libgstrtp_la-gstrtpdvdepay.lo \ + libgstrtp_la-gstrtpdvpay.lo libgstrtp_la-gstrtpgstdepay.lo \ + libgstrtp_la-gstrtpgstpay.lo libgstrtp_la-gstrtpilbcdepay.lo \ + libgstrtp_la-gstrtpilbcpay.lo libgstrtp_la-gstrtpmpadepay.lo \ + libgstrtp_la-gstrtpmpapay.lo \ libgstrtp_la-gstrtpmparobustdepay.lo \ libgstrtp_la-gstrtpmpvdepay.lo libgstrtp_la-gstrtpmpvpay.lo \ libgstrtp_la-gstrtppcmadepay.lo \ @@ -163,23 +190,38 @@ am_libgstrtp_la_OBJECTS = libgstrtp_la-fnv1hash.lo \ libgstrtp_la-gstrtpmp4gdepay.lo libgstrtp_la-gstrtpmp4gpay.lo \ libgstrtp_la-gstrtpmp4adepay.lo libgstrtp_la-gstrtpmp4apay.lo \ libgstrtp_la-gstrtpqcelpdepay.lo \ - libgstrtp_la-gstrtpqdmdepay.lo libgstrtp_la-gstrtpsirenpay.lo \ + libgstrtp_la-gstrtpqdmdepay.lo libgstrtp_la-gstrtpsbcdepay.lo \ + libgstrtp_la-gstrtpsbcpay.lo libgstrtp_la-gstrtpsirenpay.lo \ libgstrtp_la-gstrtpsirendepay.lo \ libgstrtp_la-gstrtpspeexdepay.lo \ libgstrtp_la-gstrtpspeexpay.lo libgstrtp_la-gstrtpsv3vdepay.lo \ libgstrtp_la-gstrtptheoradepay.lo \ libgstrtp_la-gstrtptheorapay.lo \ libgstrtp_la-gstrtpvorbisdepay.lo \ - libgstrtp_la-gstrtpvorbispay.lo \ - libgstrtp_la-gstrtpvrawdepay.lo libgstrtp_la-gstrtpvrawpay.lo + libgstrtp_la-gstrtpvorbispay.lo libgstrtp_la-gstrtpvp8depay.lo \ + libgstrtp_la-gstrtpvp8pay.lo libgstrtp_la-gstrtpvrawdepay.lo \ + libgstrtp_la-gstrtpvrawpay.lo libgstrtp_la_OBJECTS = $(am_libgstrtp_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstrtp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstrtp_la_CFLAGS) $(CFLAGS) \ $(libgstrtp_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -192,20 +234,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstrtp_la_SOURCES) DIST_SOURCES = $(libgstrtp_la_SOURCES) am__can_run_installinfo = \ @@ -214,6 +252,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -382,6 +437,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -544,6 +600,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstrtp.la libgstrtp_la_SOURCES = \ + dboolhuff.c \ fnv1hash.c \ gstrtp.c \ gstrtpchannels.c \ @@ -604,6 +661,8 @@ libgstrtp_la_SOURCES = \ gstrtpmp4apay.c \ gstrtpqcelpdepay.c \ gstrtpqdmdepay.c \ + gstrtpsbcdepay.c \ + gstrtpsbcpay.c \ gstrtpsirenpay.c \ gstrtpsirendepay.c \ gstrtpspeexdepay.c \ @@ -613,93 +672,105 @@ libgstrtp_la_SOURCES = \ gstrtptheorapay.c \ gstrtpvorbisdepay.c \ gstrtpvorbispay.c \ + gstrtpvp8depay.c \ + gstrtpvp8pay.c \ gstrtpvrawdepay.c \ gstrtpvrawpay.c -libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) +libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) -Dvp8_norm=gst_rtpvp8_vp8_norm \ + -Dvp8dx_start_decode=gst_rtpvp8_vp8dx_start_decode \ + -Dvp8dx_bool_decoder_fill=gst_rtpvp8_vp8dx_bool_decoder_fill + libgstrtp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ - -lgstaudio-@GST_API_VERSION@ \ - -lgstvideo-@GST_API_VERSION@ \ - -lgsttag-@GST_API_VERSION@ \ - -lgstrtp-@GST_API_VERSION@ \ - -lgstpbutils-@GST_API_VERSION@ \ - $(GST_BASE_LIBS) $(GST_LIBS) \ - $(LIBM) + -lgstaudio-@GST_API_VERSION@ \ + -lgstvideo-@GST_API_VERSION@ \ + -lgsttag-@GST_API_VERSION@ \ + -lgstrtp-@GST_API_VERSION@ \ + -lgstpbutils-@GST_API_VERSION@ \ + $(GST_BASE_LIBS) $(GST_LIBS) \ + $(LIBM) libgstrtp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstrtp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) noinst_HEADERS = \ - fnv1hash.h \ - gstrtpchannels.h \ - gstrtpL16depay.h \ - gstrtpL16pay.h \ - gstrtpac3depay.h \ - gstrtpac3pay.h \ - gstrtpbvdepay.h \ - gstrtpbvpay.h \ - gstrtpceltpay.h \ - gstrtpceltdepay.h \ - gstrtpdvdepay.h \ - gstrtpdvpay.h \ - gstrtpamrdepay.h \ - gstrtpamrpay.h \ - gstrtpgstdepay.h \ - gstrtpgstpay.h \ - gstrtpilbcdepay.h \ - gstrtpilbcpay.h \ - gstrtppcmadepay.h \ - gstrtppcmudepay.h \ - gstrtppcmupay.h \ - gstrtppcmapay.h \ - gstrtpg722depay.h \ - gstrtpg722pay.h \ - gstrtpg723depay.h \ - gstrtpg723pay.h \ - gstrtpg726depay.h \ - gstrtpg726pay.h \ - gstrtpg729depay.h \ - gstrtpg729pay.h \ - gstrtpgsmdepay.h \ - gstrtpgsmpay.h \ - gstrtpmpadepay.h \ - gstrtpmparobustdepay.h \ - gstrtpmpapay.h \ - gstrtpmpvdepay.h \ - gstrtpmpvpay.h \ - gstrtph263pdepay.h \ - gstrtph263ppay.h \ - gstrtph263depay.h \ - gstrtph263pay.h \ - gstrtph264depay.h \ - gstrtph264pay.h \ - gstrtpj2kdepay.h \ - gstrtpj2kpay.h \ - gstrtpjpegdepay.h \ - gstrtpjpegpay.h \ - gstrtpmp1sdepay.h \ - gstrtpmp2tdepay.h \ - gstrtpmp2tpay.h \ - gstrtpmp4vdepay.h \ - gstrtpmp4vpay.h \ - gstrtpmp4gdepay.h \ - gstrtpmp4gpay.h \ - gstrtpmp4adepay.h \ - gstrtpmp4apay.h \ - gstasteriskh263.h \ - gstrtpqcelpdepay.h \ - gstrtpqdmdepay.h \ - gstrtpsirenpay.h \ - gstrtpsirendepay.h \ - gstrtpspeexdepay.h \ - gstrtpspeexpay.h \ - gstrtpsv3vdepay.h \ - gstrtptheoradepay.h \ - gstrtptheorapay.h \ - gstrtpvorbisdepay.h \ - gstrtpvorbispay.h \ - gstrtpvrawdepay.h \ - gstrtpvrawpay.h - + dboolhuff.h \ + fnv1hash.h \ + gstrtpchannels.h \ + gstrtpL16depay.h \ + gstrtpL16pay.h \ + gstrtpac3depay.h \ + gstrtpac3pay.h \ + gstrtpbvdepay.h \ + gstrtpbvpay.h \ + gstrtpceltpay.h \ + gstrtpceltdepay.h \ + gstrtpdvdepay.h \ + gstrtpdvpay.h \ + gstrtpamrdepay.h \ + gstrtpamrpay.h \ + gstrtpgstdepay.h \ + gstrtpgstpay.h \ + gstrtpilbcdepay.h \ + gstrtpilbcpay.h \ + gstrtppcmadepay.h \ + gstrtppcmudepay.h \ + gstrtppcmupay.h \ + gstrtppcmapay.h \ + gstrtpg722depay.h \ + gstrtpg722pay.h \ + gstrtpg723depay.h\ + gstrtpg723pay.h \ + gstrtpg726depay.h \ + gstrtpg726pay.h \ + gstrtpg729depay.h \ + gstrtpg729pay.h \ + gstrtpgsmdepay.h \ + gstrtpgsmpay.h \ + gstrtpmpadepay.h \ + gstrtpmparobustdepay.h \ + gstrtpmpapay.h \ + gstrtpmpvdepay.h \ + gstrtpmpvpay.h \ + gstrtph263pdepay.h \ + gstrtph263ppay.h \ + gstrtph263depay.h \ + gstrtph263pay.h \ + gstrtph264depay.h \ + gstrtph264pay.h \ + gstrtpj2kdepay.h \ + gstrtpj2kpay.h \ + gstrtpjpegdepay.h \ + gstrtpjpegpay.h \ + gstrtpmp1sdepay.h \ + gstrtpmp2tdepay.h \ + gstrtpmp2tpay.h \ + gstrtpmp4vdepay.h \ + gstrtpmp4vpay.h \ + gstrtpmp4gdepay.h \ + gstrtpmp4gpay.h \ + gstrtpmp4adepay.h \ + gstrtpmp4apay.h \ + gstasteriskh263.h \ + gstrtpqcelpdepay.h \ + gstrtpqdmdepay.h \ + gstrtpsbcdepay.h \ + gstrtpsbcpay.h \ + gstrtpsirenpay.h \ + gstrtpsirendepay.h \ + gstrtpspeexdepay.h \ + gstrtpspeexpay.h \ + gstrtpsv3vdepay.h \ + gstrtptheoradepay.h \ + gstrtptheorapay.h \ + gstrtpvorbisdepay.h \ + gstrtpvorbispay.h \ + gstrtpvp8depay.h \ + gstrtpvp8pay.h \ + gstrtpvrawdepay.h \ + gstrtpvrawpay.h + +EXTRA_DIST = dboolhuff.LICENSE all: all-am .SUFFIXES: @@ -734,6 +805,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -760,12 +832,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstrtp.la: $(libgstrtp_la_OBJECTS) $(libgstrtp_la_DEPENDENCIES) $(EXTRA_libgstrtp_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrtp_la_LINK) -rpath $(plugindir) $(libgstrtp_la_OBJECTS) $(libgstrtp_la_LIBADD) $(LIBS) @@ -775,6 +850,7 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-dboolhuff.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-fnv1hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstasteriskh263.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtp.Plo@am__quote@ @@ -835,6 +911,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtppcmupay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpqcelpdepay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpqdmdepay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsbcdepay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsbcpay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsirendepay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Plo@am__quote@ @@ -844,6 +922,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtptheorapay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvp8depay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvp8pay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvrawpay.Plo@am__quote@ @@ -868,6 +948,13 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< +libgstrtp_la-dboolhuff.lo: dboolhuff.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-dboolhuff.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-dboolhuff.Tpo -c -o libgstrtp_la-dboolhuff.lo `test -f 'dboolhuff.c' || echo '$(srcdir)/'`dboolhuff.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-dboolhuff.Tpo $(DEPDIR)/libgstrtp_la-dboolhuff.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dboolhuff.c' object='libgstrtp_la-dboolhuff.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-dboolhuff.lo `test -f 'dboolhuff.c' || echo '$(srcdir)/'`dboolhuff.c + libgstrtp_la-fnv1hash.lo: fnv1hash.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-fnv1hash.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-fnv1hash.Tpo -c -o libgstrtp_la-fnv1hash.lo `test -f 'fnv1hash.c' || echo '$(srcdir)/'`fnv1hash.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-fnv1hash.Tpo $(DEPDIR)/libgstrtp_la-fnv1hash.Plo @@ -1288,6 +1375,20 @@ libgstrtp_la-gstrtpqdmdepay.lo: gstrtpqdmdepay.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpqdmdepay.lo `test -f 'gstrtpqdmdepay.c' || echo '$(srcdir)/'`gstrtpqdmdepay.c +libgstrtp_la-gstrtpsbcdepay.lo: gstrtpsbcdepay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsbcdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsbcdepay.Tpo -c -o libgstrtp_la-gstrtpsbcdepay.lo `test -f 'gstrtpsbcdepay.c' || echo '$(srcdir)/'`gstrtpsbcdepay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsbcdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsbcdepay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpsbcdepay.c' object='libgstrtp_la-gstrtpsbcdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsbcdepay.lo `test -f 'gstrtpsbcdepay.c' || echo '$(srcdir)/'`gstrtpsbcdepay.c + +libgstrtp_la-gstrtpsbcpay.lo: gstrtpsbcpay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsbcpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsbcpay.Tpo -c -o libgstrtp_la-gstrtpsbcpay.lo `test -f 'gstrtpsbcpay.c' || echo '$(srcdir)/'`gstrtpsbcpay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsbcpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsbcpay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpsbcpay.c' object='libgstrtp_la-gstrtpsbcpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsbcpay.lo `test -f 'gstrtpsbcpay.c' || echo '$(srcdir)/'`gstrtpsbcpay.c + libgstrtp_la-gstrtpsirenpay.lo: gstrtpsirenpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsirenpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Tpo -c -o libgstrtp_la-gstrtpsirenpay.lo `test -f 'gstrtpsirenpay.c' || echo '$(srcdir)/'`gstrtpsirenpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Plo @@ -1351,6 +1452,20 @@ libgstrtp_la-gstrtpvorbispay.lo: gstrtpvorbispay.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvorbispay.lo `test -f 'gstrtpvorbispay.c' || echo '$(srcdir)/'`gstrtpvorbispay.c +libgstrtp_la-gstrtpvp8depay.lo: gstrtpvp8depay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvp8depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvp8depay.Tpo -c -o libgstrtp_la-gstrtpvp8depay.lo `test -f 'gstrtpvp8depay.c' || echo '$(srcdir)/'`gstrtpvp8depay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvp8depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvp8depay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpvp8depay.c' object='libgstrtp_la-gstrtpvp8depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvp8depay.lo `test -f 'gstrtpvp8depay.c' || echo '$(srcdir)/'`gstrtpvp8depay.c + +libgstrtp_la-gstrtpvp8pay.lo: gstrtpvp8pay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvp8pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvp8pay.Tpo -c -o libgstrtp_la-gstrtpvp8pay.lo `test -f 'gstrtpvp8pay.c' || echo '$(srcdir)/'`gstrtpvp8pay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvp8pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvp8pay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpvp8pay.c' object='libgstrtp_la-gstrtpvp8pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvp8pay.lo `test -f 'gstrtpvp8pay.c' || echo '$(srcdir)/'`gstrtpvp8pay.c + libgstrtp_la-gstrtpvrawdepay.lo: gstrtpvrawdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvrawdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Tpo -c -o libgstrtp_la-gstrtpvrawdepay.lo `test -f 'gstrtpvrawdepay.c' || echo '$(srcdir)/'`gstrtpvrawdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Plo @@ -1371,26 +1486,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1402,15 +1506,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1419,6 +1519,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1563,19 +1678,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) @@ -1586,10 +1702,10 @@ Android.mk: Makefile.am $(BUILT_SOURCES) -:SOURCES $(libgstrtp_la_SOURCES) \ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstrtp_la_CFLAGS) \ -:LDFLAGS $(libgstrtp_la_LDFLAGS) \ - $(libgstrtp_la_LIBADD) \ - -ldl \ + $(libgstrtp_la_LIBADD) \ + -ldl \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ - LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/gst/rtp/README b/gst/rtp/README index 97afe6b282fc02d473530d513e08f26fa85b0dee..94549d703d7d4059d9d27600ec5dc2e6a3b7f130 100644 --- a/gst/rtp/README +++ b/gst/rtp/README @@ -343,7 +343,7 @@ Some gst-launch-1.0 lines: Even when sync is enabled, the two different streams will not play synchronised against eachother because the receiver does not have enough information to - perform this task. For this you need to add the gstrtpbin element in both the + perform this task. For this you need to add the rtpbin element in both the sender and receiver pipeline and use additional sources and sinks to transmit RTCP packets used for inter-stream synchronisation. diff --git a/gst/rtp/dboolhuff.LICENSE b/gst/rtp/dboolhuff.LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..83e4e6f6d7722fa52e30567ce891d096dd4d110f --- /dev/null +++ b/gst/rtp/dboolhuff.LICENSE @@ -0,0 +1,29 @@ +Copyright (c) 2010, Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/gst/rtp/dboolhuff.c b/gst/rtp/dboolhuff.c new file mode 100644 index 0000000000000000000000000000000000000000..0e1fd6e2fa22aaad55bc08526bf6e5bdb27b4c1a --- /dev/null +++ b/gst/rtp/dboolhuff.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the dboolhuff.LICENSE file in this directory. + * See the libvpx original distribution for more information, + * including patent information, and author information. + */ + + +#include "dboolhuff.h" + +const unsigned char vp8_norm[256] __attribute__ ((aligned (16))) = { +0, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +int +vp8dx_start_decode (BOOL_DECODER * br, + const unsigned char *source, unsigned int source_sz) +{ + br->user_buffer_end = source + source_sz; + br->user_buffer = source; + br->value = 0; + br->count = -8; + br->range = 255; + + if (source_sz && !source) + return 1; + + /* Populate the buffer */ + vp8dx_bool_decoder_fill (br); + + return 0; +} + + +void +vp8dx_bool_decoder_fill (BOOL_DECODER * br) +{ + const unsigned char *bufptr; + const unsigned char *bufend; + VP8_BD_VALUE value; + int count; + bufend = br->user_buffer_end; + bufptr = br->user_buffer; + value = br->value; + count = br->count; + + VP8DX_BOOL_DECODER_FILL (count, value, bufptr, bufend); + + br->user_buffer = bufptr; + br->value = value; + br->count = count; +} diff --git a/gst/rtp/dboolhuff.h b/gst/rtp/dboolhuff.h new file mode 100644 index 0000000000000000000000000000000000000000..41b0f5d9a4231b58e527d71caf4e0dcdeb19357f --- /dev/null +++ b/gst/rtp/dboolhuff.h @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the dboolhuff.LICENSE file in this directory. + * See the libvpx original distribution for more information, + * including patent information, and author information. + */ + + +#ifndef DBOOLHUFF_H +#define DBOOLHUFF_H +#include <stddef.h> +#include <limits.h> +#include <glib.h> + +typedef size_t VP8_BD_VALUE; + +# define VP8_BD_VALUE_SIZE ((int)sizeof(VP8_BD_VALUE)*CHAR_BIT) +/*This is meant to be a large, positive constant that can still be efficiently + loaded as an immediate (on platforms like ARM, for example). + Even relatively modest values like 100 would work fine.*/ +# define VP8_LOTS_OF_BITS (0x40000000) + +typedef struct +{ + const unsigned char *user_buffer_end; + const unsigned char *user_buffer; + VP8_BD_VALUE value; + int count; + unsigned int range; +} BOOL_DECODER; + +extern const unsigned char vp8_norm[256] __attribute__((aligned(16))); + +int vp8dx_start_decode(BOOL_DECODER *br, + const unsigned char *source, + unsigned int source_sz); + +void vp8dx_bool_decoder_fill(BOOL_DECODER *br); + +/*The refill loop is used in several places, so define it in a macro to make + sure they're all consistent. + An inline function would be cleaner, but has a significant penalty, because + multiple BOOL_DECODER fields must be modified, and the compiler is not smart + enough to eliminate the stores to those fields and the subsequent reloads + from them when inlining the function.*/ +#define VP8DX_BOOL_DECODER_FILL(_count,_value,_bufptr,_bufend) \ + do \ + { \ + int shift = VP8_BD_VALUE_SIZE - 8 - ((_count) + 8); \ + int loop_end, x; \ + size_t bits_left = ((_bufend)-(_bufptr))*CHAR_BIT; \ + \ + x = shift + CHAR_BIT - bits_left; \ + loop_end = 0; \ + if(x >= 0) \ + { \ + (_count) += VP8_LOTS_OF_BITS; \ + loop_end = x; \ + if(!bits_left) break; \ + } \ + while(shift >= loop_end) \ + { \ + (_count) += CHAR_BIT; \ + (_value) |= (VP8_BD_VALUE)*(_bufptr)++ << shift; \ + shift -= CHAR_BIT; \ + } \ + } \ + while(0) \ + + +static int vp8dx_decode_bool(BOOL_DECODER *br, int probability) { + unsigned int bit = 0; + VP8_BD_VALUE value; + unsigned int split; + VP8_BD_VALUE bigsplit; + int count; + unsigned int range; + + split = 1 + (((br->range - 1) * probability) >> 8); + + if(br->count < 0) + vp8dx_bool_decoder_fill(br); + + value = br->value; + count = br->count; + + bigsplit = (VP8_BD_VALUE)split << (VP8_BD_VALUE_SIZE - 8); + + range = split; + + if (value >= bigsplit) + { + range = br->range - split; + value = value - bigsplit; + bit = 1; + } + + { + register unsigned int shift = vp8_norm[range]; + range <<= shift; + value <<= shift; + count -= shift; + } + br->value = value; + br->count = count; + br->range = range; + + return bit; +} + +static G_GNUC_UNUSED int vp8_decode_value(BOOL_DECODER *br, int bits) +{ + int z = 0; + int bit; + + for (bit = bits - 1; bit >= 0; bit--) + { + z |= (vp8dx_decode_bool(br, 0x80) << bit); + } + + return z; +} + +static G_GNUC_UNUSED int vp8dx_bool_error(BOOL_DECODER *br) +{ + /* Check if we have reached the end of the buffer. + * + * Variable 'count' stores the number of bits in the 'value' buffer, minus + * 8. The top byte is part of the algorithm, and the remainder is buffered + * to be shifted into it. So if count == 8, the top 16 bits of 'value' are + * occupied, 8 for the algorithm and 8 in the buffer. + * + * When reading a byte from the user's buffer, count is filled with 8 and + * one byte is filled into the value buffer. When we reach the end of the + * data, count is additionally filled with VP8_LOTS_OF_BITS. So when + * count == VP8_LOTS_OF_BITS - 1, the user's data has been exhausted. + */ + if ((br->count > VP8_BD_VALUE_SIZE) && (br->count < VP8_LOTS_OF_BITS)) + { + /* We have tried to decode bits after the end of + * stream was encountered. + */ + return 1; + } + + /* No error. */ + return 0; +} +#endif diff --git a/gst/rtp/fnv1hash.c b/gst/rtp/fnv1hash.c index a7926e46d480a8a4baf830eb5b12c5b3ed8834e7..9885bb2688d2bc8334e120dd272e5e5549ff2ff0 100644 --- a/gst/rtp/fnv1hash.c +++ b/gst/rtp/fnv1hash.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/fnv1hash.h b/gst/rtp/fnv1hash.h index e50a5b9755f560022e740c0c3cafdb5748d1e1b8..7047067ff33a0241969aef05bb8e5c500fa7d54d 100644 --- a/gst/rtp/fnv1hash.h +++ b/gst/rtp/fnv1hash.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_FNV1_HASH_H__ diff --git a/gst/rtp/gstasteriskh263.c b/gst/rtp/gstasteriskh263.c index 85e91661e45f137ee6976174e9e139442d89c0ad..a01fbc8a85999d000de2e86e8c1622e731c197b2 100644 --- a/gst/rtp/gstasteriskh263.c +++ b/gst/rtp/gstasteriskh263.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstasteriskh263.h b/gst/rtp/gstasteriskh263.h index 8451e7e2f8d4db300b56acd7e82485848870b2de..1c9523d4c9ae4ba191ed26eac011a75d2e963395 100644 --- a/gst/rtp/gstasteriskh263.h +++ b/gst/rtp/gstasteriskh263.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_ASTERISK_H263_H__ diff --git a/gst/rtp/gstrtp.c b/gst/rtp/gstrtp.c index ca104ecb9473c27f01803d403aab86b74e9aefea..d317156c169485d3d6b04d64a11493deb2b48f98 100644 --- a/gst/rtp/gstrtp.c +++ b/gst/rtp/gstrtp.c @@ -13,14 +13,16 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif +#include <gst/tag/tag.h> + #include "gstrtpac3depay.h" #include "gstrtpac3pay.h" #include "gstrtpbvdepay.h" @@ -78,6 +80,8 @@ #include "gstrtpmp4gpay.h" #include "gstrtpqcelpdepay.h" #include "gstrtpqdmdepay.h" +#include "gstrtpsbcdepay.h" +#include "gstrtpsbcpay.h" #include "gstrtpsirenpay.h" #include "gstrtpsirendepay.h" #include "gstrtpspeexpay.h" @@ -87,12 +91,16 @@ #include "gstrtptheorapay.h" #include "gstrtpvorbisdepay.h" #include "gstrtpvorbispay.h" +#include "gstrtpvp8depay.h" +#include "gstrtpvp8pay.h" #include "gstrtpvrawdepay.h" #include "gstrtpvrawpay.h" static gboolean plugin_init (GstPlugin * plugin) { + gst_tag_image_type_get_type (); + if (!gst_rtp_ac3_depay_plugin_init (plugin)) return FALSE; @@ -264,6 +272,12 @@ plugin_init (GstPlugin * plugin) if (!gst_rtp_qdm2_depay_plugin_init (plugin)) return FALSE; + if (!gst_rtp_sbc_depay_plugin_init (plugin)) + return FALSE; + + if (!gst_rtp_sbc_pay_plugin_init (plugin)) + return FALSE; + if (!gst_rtp_siren_pay_plugin_init (plugin)) return FALSE; @@ -291,6 +305,12 @@ plugin_init (GstPlugin * plugin) if (!gst_rtp_vorbis_pay_plugin_init (plugin)) return FALSE; + if (!gst_rtp_vp8_depay_plugin_init (plugin)) + return FALSE; + + if (!gst_rtp_vp8_pay_plugin_init (plugin)) + return FALSE; + if (!gst_rtp_vraw_depay_plugin_init (plugin)) return FALSE; diff --git a/gst/rtp/gstrtpL16depay.c b/gst/rtp/gstrtpL16depay.c index c8d6e7481d480b663861712fcdc05782ba3d78fd..7e96d9dd64b23c88058e73c154e94b530fb3c504 100644 --- a/gst/rtp/gstrtpL16depay.c +++ b/gst/rtp/gstrtpL16depay.c @@ -13,8 +13,26 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-rtpL16depay + * @see_also: rtpL16pay + * + * Extract raw audio from RTP packets according to RFC 3551. + * For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt + * + * <refsect2> + * <title>Example pipeline</title> + * |[ + * gst-launch udpsrc caps='application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)L16, encoding-params=(string)1, channels=(int)1, payload=(int)96' ! rtpL16depay ! pulsesink + * ]| This example pipeline will depayload an RTP raw audio stream. Refer to + * the rtpL16pay example to create the RTP stream. + * </refsect2> + * + * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H @@ -47,9 +65,7 @@ static GstStaticPadTemplate gst_rtp_L16_depay_sink_template = GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " - "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " - "clock-rate = (int) [ 1, MAX ], " + "media = (string) \"audio\", " "clock-rate = (int) [ 1, MAX ], " /* "channels = (int) [1, MAX]" */ /* "emphasis = (string) ANY" */ /* "channel-order = (string) ANY" */ @@ -233,8 +249,8 @@ gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) marker = gst_rtp_buffer_get_marker (&rtp); if (marker) { - /* mark talk spurt with DISCONT */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* mark talk spurt with RESYNC */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } outbuf = gst_buffer_make_writable (outbuf); diff --git a/gst/rtp/gstrtpL16depay.h b/gst/rtp/gstrtpL16depay.h index b5b7c937662f8f8986a5a72a908d0cc7385e0434..125d4cd53db6d6b43d4d810444c5e19862eb725a 100644 --- a/gst/rtp/gstrtpL16depay.h +++ b/gst/rtp/gstrtpL16depay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_L16_DEPAY_H__ diff --git a/gst/rtp/gstrtpL16pay.c b/gst/rtp/gstrtpL16pay.c index 19b89b89073dda99f34d3bb0c34f2b4a9912c9c7..4a101ee1de1633679ad4764a32d7541a6b5482d8 100644 --- a/gst/rtp/gstrtpL16pay.c +++ b/gst/rtp/gstrtpL16pay.c @@ -13,8 +13,26 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-rtpL16pay + * @see_also: rtpL16depay + * + * Payload raw audio into RTP packets according to RFC 3551. + * For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt + * + * <refsect2> + * <title>Example pipeline</title> + * |[ + * gst-launch -v audiotestsrc ! audioconvert ! rtpL16pay ! udpsink + * ]| This example pipeline will payload raw audio. Refer to + * the rtpL16depay example to depayload and play the RTP stream. + * </refsect2> + * + * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpL16pay.h b/gst/rtp/gstrtpL16pay.h index 515a512d93dc7ff6410bae09c839f38dc6529dcd..f4f3702e1b703651c30d9c3f772626c51ce6e215 100644 --- a/gst/rtp/gstrtpL16pay.h +++ b/gst/rtp/gstrtpL16pay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_L16_PAY_H__ diff --git a/gst/rtp/gstrtpac3depay.c b/gst/rtp/gstrtpac3depay.c index 7e6c6f26fc66389dee1b0aebd3bf5d69ea06828c..fc79b5d903d9abedf3b2ace297185ae5b2f6f1e6 100644 --- a/gst/rtp/gstrtpac3depay.c +++ b/gst/rtp/gstrtpac3depay.c @@ -13,8 +13,26 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-rtpac3depay + * @see_also: rtpac3pay + * + * Extract AC3 audio from RTP packets according to RFC 4184. + * For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt + * + * <refsect2> + * <title>Example pipeline</title> + * |[ + * gst-launch-1.0 udpsrc caps='application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)AC3, payload=(int)96' ! rtpac3depay ! a52dec ! pulsesink + * ]| This example pipeline will depayload and decode an RTP AC3 stream. Refer to + * the rtpac3pay example to create the RTP stream. + * </refsect2> + * + * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H @@ -42,7 +60,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) { 32000, 44100, 48000 }, " "encoding-name = (string) \"AC3\"") ); diff --git a/gst/rtp/gstrtpac3depay.h b/gst/rtp/gstrtpac3depay.h index 15d0779cb9cadec02bc680c9b277add0001ca504..294bb12c421cf92cb320d527712b5ee5f2297569 100644 --- a/gst/rtp/gstrtpac3depay.h +++ b/gst/rtp/gstrtpac3depay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_AC3_DEPAY_H__ diff --git a/gst/rtp/gstrtpac3pay.c b/gst/rtp/gstrtpac3pay.c index 0b10adfbdd1c13b6139db8d30365489434e61042..175d627225425a1989b6c504582d41ce16fe9607 100644 --- a/gst/rtp/gstrtpac3pay.c +++ b/gst/rtp/gstrtpac3pay.c @@ -13,8 +13,26 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-rtpac3pay + * @see_also: rtpac3depay + * + * Payload AC3 audio into RTP packets according to RFC 4184. + * For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt + * + * <refsect2> + * <title>Example pipeline</title> + * |[ + * gst-launch -v audiotestsrc ! avenc_ac3 ! rtpac3pay ! udpsink + * ]| This example pipeline will encode and payload AC3 stream. Refer to + * the rtpac3depay example to depayload and decode the RTP stream. + * </refsect2> + * + * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpac3pay.h b/gst/rtp/gstrtpac3pay.h index f856a068fda746a5515671e2f3641ddb6ca38df1..c131eac132877384b715022bd2b3d33d5f808ba8 100644 --- a/gst/rtp/gstrtpac3pay.h +++ b/gst/rtp/gstrtpac3pay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_AC3_PAY_H__ diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c index 58ce7f2b3c5a238241ad12eaaf1ff1f33f11ef34..e1208bfad0cf265e0a4159d2d16975610399499a 100644 --- a/gst/rtp/gstrtpamrdepay.c +++ b/gst/rtp/gstrtpamrdepay.c @@ -13,10 +13,34 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ +/** + * SECTION:element-rtpamrdepay + * @see_also: rtpamrpay + * + * Extract AMR audio from RTP packets according to RFC 3267. + * For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt + * + * <refsect2> + * <title>Example pipeline</title> + * |[ + * gst-launch-1.0 udpsrc caps='application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1, payload=(int)96' ! rtpamrdepay ! amrnbdec ! pulsesink + * ]| This example pipeline will depayload and decode an RTP AMR stream. Refer to + * the rtpamrpay example to create the RTP stream. + * </refsect2> + * + * Last reviewed on 2013-04-25 (1.1.0) + */ + +/* + * RFC 3267 - Real-Time Transport Protocol (RTP) Payload Format and File + * Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate + * Wideband (AMR-WB) Audio Codecs. + * + */ #ifdef HAVE_CONFIG_H # include "config.h" #endif @@ -30,13 +54,6 @@ GST_DEBUG_CATEGORY_STATIC (rtpamrdepay_debug); #define GST_CAT_DEFAULT (rtpamrdepay_debug) -/* references: - * - * RFC 3267 - Real-Time Transport Protocol (RTP) Payload Format and File - * Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate - * Wideband (AMR-WB) Audio Codecs. - */ - /* RtpAMRDepay signals and args */ enum { @@ -59,7 +76,6 @@ static GstStaticPadTemplate gst_rtp_amr_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 8000, " "encoding-name = (string) \"AMR\", " "encoding-params = (string) \"1\", " @@ -79,7 +95,6 @@ static GstStaticPadTemplate gst_rtp_amr_depay_sink_template = */ "application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 16000, " "encoding-name = (string) \"AMR-WB\", " "encoding-params = (string) \"1\", " @@ -407,9 +422,9 @@ gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) GST_BUFFER_DURATION (outbuf) = num_packets * 20 * GST_MSECOND; if (gst_rtp_buffer_get_marker (&rtp)) { - /* marker bit marks a discont buffer after a talkspurt. */ + /* marker bit marks a buffer after a talkspurt. */ GST_DEBUG_OBJECT (depayload, "marker bit was set"); - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } GST_DEBUG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT, diff --git a/gst/rtp/gstrtpamrdepay.h b/gst/rtp/gstrtpamrdepay.h index 491c007ea7f12e75a8e2c32e5b0ceecdcde2be03..0b806345d782564c087e4de8eb1f1d5181b0f3f8 100644 --- a/gst/rtp/gstrtpamrdepay.h +++ b/gst/rtp/gstrtpamrdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_AMR_DEPAY_H__ diff --git a/gst/rtp/gstrtpamrpay.c b/gst/rtp/gstrtpamrpay.c index 7829b39b6a0ebcf929e63fcd7d86133cb78b42a5..defc7f4ba25a34737241497e956d91d472ef5401 100644 --- a/gst/rtp/gstrtpamrpay.c +++ b/gst/rtp/gstrtpamrpay.c @@ -13,22 +13,27 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include <string.h> - -#include <gst/rtp/gstrtpbuffer.h> - -#include "gstrtpamrpay.h" - -GST_DEBUG_CATEGORY_STATIC (rtpamrpay_debug); -#define GST_CAT_DEFAULT (rtpamrpay_debug) +/** + * SECTION:element-rtpamrpay + * @see_also: rtpamrdepay + * + * Payload AMR audio into RTP packets according to RFC 3267. + * For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt + * + * <refsect2> + * <title>Example pipeline</title> + * |[ + * gst-launch -v audiotestsrc ! amrnbenc ! rtpamrpay ! udpsink + * ]| This example pipeline will encode and payload an AMR stream. Refer to + * the rtpamrdepay example to depayload and decode the RTP stream. + * </refsect2> + * + * Last reviewed on 2013-04-25 (1.1.0) + */ /* references: * @@ -43,6 +48,19 @@ GST_DEBUG_CATEGORY_STATIC (rtpamrpay_debug); * (3GPP TS 26.201 version 6.0.0 Release 6) */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include <string.h> + +#include <gst/rtp/gstrtpbuffer.h> + +#include "gstrtpamrpay.h" + +GST_DEBUG_CATEGORY_STATIC (rtpamrpay_debug); +#define GST_CAT_DEFAULT (rtpamrpay_debug) + static GstStaticPadTemplate gst_rtp_amr_pay_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, diff --git a/gst/rtp/gstrtpamrpay.h b/gst/rtp/gstrtpamrpay.h index b57082370936560669d869681515fc46969a7ddc..a3df1ce6320dced17464135cd8f446ffef1d4efa 100644 --- a/gst/rtp/gstrtpamrpay.h +++ b/gst/rtp/gstrtpamrpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_AMR_PAY_H__ diff --git a/gst/rtp/gstrtpbvdepay.c b/gst/rtp/gstrtpbvdepay.c index ae2710ac9c16993f0719ddbde7fd8207f04fc265..7b85558d4e333a7b0c09f7018c53631ff3e58a4c 100644 --- a/gst/rtp/gstrtpbvdepay.c +++ b/gst/rtp/gstrtpbvdepay.c @@ -13,8 +13,18 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-rtpbvdepay + * @see_also: rtpbvpay + * + * Extract BroadcomVoice audio from RTP packets according to RFC 4298. + * For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt + * + * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H @@ -33,12 +43,10 @@ static GstStaticPadTemplate gst_rtp_bv_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 8000, " "encoding-name = (string) \"BV16\"; " "application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 16000, " "encoding-name = (string) \"BV32\"") ); @@ -167,8 +175,8 @@ gst_rtp_bv_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) gst_rtp_buffer_unmap (&rtp); if (marker && outbuf) { - /* mark start of talkspurt with DISCONT */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* mark start of talkspurt with RESYNC */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } return outbuf; diff --git a/gst/rtp/gstrtpbvdepay.h b/gst/rtp/gstrtpbvdepay.h index d63066ac351982bc2eba0e30f2fbbc864409c4ba..f130682c0a74cb038bab87c79b2af2707d63f99f 100644 --- a/gst/rtp/gstrtpbvdepay.h +++ b/gst/rtp/gstrtpbvdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_BV_DEPAY_H__ diff --git a/gst/rtp/gstrtpbvpay.c b/gst/rtp/gstrtpbvpay.c index 8fd650a2d0c711ec5b746fdac92006ea9eba4995..be12b38d0669cac0ae90ede4906ad982fb242879 100644 --- a/gst/rtp/gstrtpbvpay.c +++ b/gst/rtp/gstrtpbvpay.c @@ -13,8 +13,18 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-rtpbvpay + * @see_also: rtpbvdepay + * + * Payload BroadcomVoice audio into RTP packets according to RFC 4298. + * For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt + * + * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpbvpay.h b/gst/rtp/gstrtpbvpay.h index 1976693d20baa588f72e4440dae054556b294c38..09766ccaabff9d69905be991c9044d29d6781e40 100644 --- a/gst/rtp/gstrtpbvpay.h +++ b/gst/rtp/gstrtpbvpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_BV_PAY_H__ diff --git a/gst/rtp/gstrtpceltdepay.c b/gst/rtp/gstrtpceltdepay.c index 90c126390ad4c2a9271434da24197df8b4519b94..7203f10ebeb53d1acf197c0ee68dc94a8e63ddc4 100644 --- a/gst/rtp/gstrtpceltdepay.c +++ b/gst/rtp/gstrtpceltdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -53,7 +53,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [32000, 48000], " "encoding-name = (string) \"CELT\"") ); diff --git a/gst/rtp/gstrtpceltpay.c b/gst/rtp/gstrtpceltpay.c index b1950682cb00e04d88b0eed508329202829d6b14..3aabd9fea355dca77b9afb05a50bf51ef8d2a257 100644 --- a/gst/rtp/gstrtpceltpay.c +++ b/gst/rtp/gstrtpceltpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpchannels.c b/gst/rtp/gstrtpchannels.c index 2c56ec22a5a6c5a8adeef00f45e45af25bb46d16..100aaa4bd496c36135badb5e3fbc7fa48357095a 100644 --- a/gst/rtp/gstrtpchannels.c +++ b/gst/rtp/gstrtpchannels.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> diff --git a/gst/rtp/gstrtpchannels.h b/gst/rtp/gstrtpchannels.h index 0a1b3a5de5a37bc26c7ee454fef4600cfa3af6fa..31727fbb410a8db3e4906c04bc9a5af6be328bb3 100644 --- a/gst/rtp/gstrtpchannels.h +++ b/gst/rtp/gstrtpchannels.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> diff --git a/gst/rtp/gstrtpdvdepay.c b/gst/rtp/gstrtpdvdepay.c index 62fccb8f6ec31c36632abb7ab93488fa8ad4924d..7cb1ff41084f576aacc1c57195a20f2da4927f19 100644 --- a/gst/rtp/gstrtpdvdepay.c +++ b/gst/rtp/gstrtpdvdepay.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -59,7 +59,6 @@ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) { \"video\", \"audio\" }," - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "encoding-name = (string) \"DV\", " "clock-rate = (int) 90000," "encode = (string) { \"SD-VCR/525-60\", \"SD-VCR/625-50\", \"HD-VCR/1125-60\"," diff --git a/gst/rtp/gstrtpdvdepay.h b/gst/rtp/gstrtpdvdepay.h index e3176a254a4c8d1f6fcbc4979a73d8c5156faee7..1ce5b9715a40711b7f6f5b486d093a248917ebef 100644 --- a/gst/rtp/gstrtpdvdepay.h +++ b/gst/rtp/gstrtpdvdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GSTRTPDVDEPAY_H__ diff --git a/gst/rtp/gstrtpdvpay.c b/gst/rtp/gstrtpdvpay.c index f93bcb589d2f25de75e1824dc76e1bed821acefc..d779f12303fce2236b71ffac68bd5f19e498f58c 100644 --- a/gst/rtp/gstrtpdvpay.c +++ b/gst/rtp/gstrtpdvpay.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpdvpay.h b/gst/rtp/gstrtpdvpay.h index 887c3bd14a9849ddb82691374777f539d3e6c692..4c250a840ece9b0a4f0bb3080ef319462bb15f69 100644 --- a/gst/rtp/gstrtpdvpay.h +++ b/gst/rtp/gstrtpdvpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/rtp/gstrtpg722depay.c b/gst/rtp/gstrtpg722depay.c index 6835a3e1ab8d71814fa0ffdb40374c0d60feed99..c77fb95138cb01683cc6d7920acbcd91595476d2 100644 --- a/gst/rtp/gstrtpg722depay.c +++ b/gst/rtp/gstrtpg722depay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -45,9 +45,7 @@ static GstStaticPadTemplate gst_rtp_g722_depay_sink_template = GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " - "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " - "clock-rate = (int) 8000, " + "media = (string) \"audio\", " "clock-rate = (int) 8000, " /* "channels = (int) [1, MAX]" */ /* "channel-order = (string) ANY" */ "encoding-name = (string) \"G722\";" @@ -240,8 +238,8 @@ gst_rtp_g722_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) gst_rtp_buffer_unmap (&rtp); if (marker && outbuf) { - /* mark talk spurt with DISCONT */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* mark talk spurt with RESYNC */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } return outbuf; diff --git a/gst/rtp/gstrtpg722depay.h b/gst/rtp/gstrtpg722depay.h index 86e7e9104f86f3aecbe5106ef26ae7ece6133f4a..8b6ffa046df538b0a8880ff6d0df81814d62f0de 100644 --- a/gst/rtp/gstrtpg722depay.h +++ b/gst/rtp/gstrtpg722depay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_G722_DEPAY_H__ diff --git a/gst/rtp/gstrtpg722pay.c b/gst/rtp/gstrtpg722pay.c index f328e5d56d9250b2807291a5ff82dae7a4afedf6..e9e625a6e9edf4ae05408976f0476240f9daf05d 100644 --- a/gst/rtp/gstrtpg722pay.c +++ b/gst/rtp/gstrtpg722pay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpg722pay.h b/gst/rtp/gstrtpg722pay.h index b76b1066c147220eafd9d9856df3ab2085cabbcc..f238286ea38983f05503b263283f2ce6f753ceef 100644 --- a/gst/rtp/gstrtpg722pay.h +++ b/gst/rtp/gstrtpg722pay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_G722_PAY_H__ diff --git a/gst/rtp/gstrtpg723depay.c b/gst/rtp/gstrtpg723depay.c index 62213bd50c4d451f7ef761d3b6c7f146516212e6..b8226889b8231d80624c007b40ef2fd051a0381c 100644 --- a/gst/rtp/gstrtpg723depay.c +++ b/gst/rtp/gstrtpg723depay.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -57,7 +57,6 @@ static GstStaticPadTemplate gst_rtp_g723_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 8000, " "encoding-name = (string) \"G723\"; " "application/x-rtp, " @@ -198,7 +197,7 @@ gst_rtp_g723_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) if (marker) { /* marker bit starts talkspurt */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } GST_LOG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT, diff --git a/gst/rtp/gstrtpg723depay.h b/gst/rtp/gstrtpg723depay.h index 0071ca46a0e1b785757feb037df44c9dd2ee74e8..dd942b3b6bbffe8348402ceda1df3d6ff5350688 100644 --- a/gst/rtp/gstrtpg723depay.h +++ b/gst/rtp/gstrtpg723depay.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_G723_DEPAY_H__ diff --git a/gst/rtp/gstrtpg723pay.c b/gst/rtp/gstrtpg723pay.c index 104ee689b3286c3e4c5de2edcc1e2e331b42b57e..4a10b3bc2d1e5be41201a8a541c1b792586e8922 100644 --- a/gst/rtp/gstrtpg723pay.c +++ b/gst/rtp/gstrtpg723pay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpg723pay.h b/gst/rtp/gstrtpg723pay.h index f1c77acef815babc124ba54226ef9a2fd8cc3e27..37807412a40c2ecce6f5d37c51ed0a7c9edd52c5 100644 --- a/gst/rtp/gstrtpg723pay.h +++ b/gst/rtp/gstrtpg723pay.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_G723_PAY_H__ diff --git a/gst/rtp/gstrtpg726depay.c b/gst/rtp/gstrtpg726depay.c index b59fc44428d87e2248447bb7af7896f21cedc3a8..45d99dc835bbd3eb903cbae405b5432b28ee5bce 100644 --- a/gst/rtp/gstrtpg726depay.c +++ b/gst/rtp/gstrtpg726depay.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -60,7 +60,6 @@ static GstStaticPadTemplate gst_rtp_g726_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "encoding-name = (string) { \"G726\", \"G726-16\", \"G726-24\", \"G726-32\", \"G726-40\", " "\"AAL2-G726-16\", \"AAL2-G726-24\", \"AAL2-G726-32\", \"AAL2-G726-40\" }, " "clock-rate = (int) 8000;") @@ -330,8 +329,8 @@ gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) } if (marker) { - /* mark start of talkspurt with discont */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* mark start of talkspurt with RESYNC */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } return outbuf; diff --git a/gst/rtp/gstrtpg726pay.c b/gst/rtp/gstrtpg726pay.c index 2da0c4a5a6078ab5d483ab96d615ff0e1aea6545..323fd26dd460d852f3969005c3c36c8aee10bf9a 100644 --- a/gst/rtp/gstrtpg726pay.c +++ b/gst/rtp/gstrtpg726pay.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpg729depay.c b/gst/rtp/gstrtpg729depay.c index dd06791bd750b0364917711285db9ac1f4be629b..f763e4cd83b9f55e50a3c0d0f7c01ba92f3ba9dd 100644 --- a/gst/rtp/gstrtpg729depay.c +++ b/gst/rtp/gstrtpg729depay.c @@ -12,8 +12,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -55,7 +55,6 @@ static GstStaticPadTemplate gst_rtp_g729_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 8000, " "encoding-name = (string) \"G729\"; " "application/x-rtp, " @@ -203,7 +202,7 @@ gst_rtp_g729_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) if (marker) { /* marker bit starts talkspurt */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } GST_LOG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT, diff --git a/gst/rtp/gstrtpg729depay.h b/gst/rtp/gstrtpg729depay.h index ffd4bb918f814ad0c244aaf174e61d3c5dc2725d..a23562e569abae914e9953182fc043f978c5035c 100644 --- a/gst/rtp/gstrtpg729depay.h +++ b/gst/rtp/gstrtpg729depay.h @@ -12,8 +12,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_G729_DEPAY_H__ diff --git a/gst/rtp/gstrtpg729pay.c b/gst/rtp/gstrtpg729pay.c index aaede04d490b54332417d4b6ca12efcec682a0a6..898bcd12ad3021e4674878a62125616586149839 100644 --- a/gst/rtp/gstrtpg729pay.c +++ b/gst/rtp/gstrtpg729pay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/rtp/gstrtpg729pay.h b/gst/rtp/gstrtpg729pay.h index 52b9951e4594a64f75756af945197f429cb1abbf..1b9246050608990cab17e135125bbf770ca6f6db 100644 --- a/gst/rtp/gstrtpg729pay.h +++ b/gst/rtp/gstrtpg729pay.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_G729_PAY_H__ diff --git a/gst/rtp/gstrtpgsmdepay.c b/gst/rtp/gstrtpgsmdepay.c index 570253699de893252f9323a9655589e53c4faec3..96b30cfe85439687746aefdedd35a9f6a67c0444 100644 --- a/gst/rtp/gstrtpgsmdepay.c +++ b/gst/rtp/gstrtpgsmdepay.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -49,7 +49,6 @@ static GstStaticPadTemplate gst_rtp_gsm_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 8000, " "encoding-name = (string) \"GSM\";" "application/x-rtp, " "media = (string) \"audio\", " @@ -137,8 +136,8 @@ gst_rtp_gsm_depay_process (GstRTPBaseDepayload * _depayload, GstBuffer * buf) gst_rtp_buffer_unmap (&rtp); if (marker && outbuf) { - /* mark start of talkspurt with DISCONT */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* mark start of talkspurt with RESYNC */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } return outbuf; diff --git a/gst/rtp/gstrtpgsmdepay.h b/gst/rtp/gstrtpgsmdepay.h index 73234ca1a7e1671a5edbff81b078a1af08a45924..e428aa09f4b2435c673891bdc1d11a6ac9b7b107 100644 --- a/gst/rtp/gstrtpgsmdepay.h +++ b/gst/rtp/gstrtpgsmdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_GSM_DEPAY_H__ diff --git a/gst/rtp/gstrtpgsmpay.c b/gst/rtp/gstrtpgsmpay.c index 481c3b1ffafc8bfcdd9cd9752ed85b70474921d6..b6964c598d366ae71dcf709bace6e4ac5fc07172 100644 --- a/gst/rtp/gstrtpgsmpay.c +++ b/gst/rtp/gstrtpgsmpay.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpgsmpay.h b/gst/rtp/gstrtpgsmpay.h index 085da8009246a3d4ab3fec2bbff7b7bf5e4b14f9..b6437f516edf62cf6b86445addd1698adceb4c77 100644 --- a/gst/rtp/gstrtpgsmpay.h +++ b/gst/rtp/gstrtpgsmpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/rtp/gstrtpgstdepay.c b/gst/rtp/gstrtpgstdepay.c index 8c211b67f9aa567d0ce38179693123f23211ef91..69b24596dfdd2ae52fe12aaab9e2cdcffc9ab0c2 100644 --- a/gst/rtp/gstrtpgstdepay.c +++ b/gst/rtp/gstrtpgstdepay.c @@ -13,17 +13,17 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif -#include <gst/rtp/gstrtpbuffer.h> - #include <string.h> +#include <stdlib.h> + #include "gstrtpgstdepay.h" GST_DEBUG_CATEGORY_STATIC (rtpgstdepay_debug); @@ -41,7 +41,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"application\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"X-GST\"") ); @@ -134,11 +133,9 @@ gst_rtp_gst_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps) { GstRtpGSTDepay *rtpgstdepay; GstStructure *structure; - GstCaps *outcaps; gint clock_rate; gboolean res; const gchar *capsenc; - gchar *capsstr; rtpgstdepay = GST_RTP_GST_DEPAY (depayload); @@ -150,25 +147,165 @@ gst_rtp_gst_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps) capsenc = gst_structure_get_string (structure, "caps"); if (capsenc) { + GstCaps *outcaps; gsize out_len; + gchar *capsstr; + const gchar *capsver; + guint CV; + /* decode caps */ capsstr = (gchar *) g_base64_decode (capsenc, &out_len); outcaps = gst_caps_from_string (capsstr); g_free (capsstr); - /* we have the SDP caps as output caps */ - rtpgstdepay->current_CV = 0; + /* parse version */ + capsver = gst_structure_get_string (structure, "capsversion"); + if (capsver) { + CV = atoi (capsver); + } else { + /* no version, assume 0 */ + CV = 0; + } + /* store in cache */ + rtpgstdepay->current_CV = CV; gst_caps_ref (outcaps); - store_cache (rtpgstdepay, 0, outcaps); + store_cache (rtpgstdepay, CV, outcaps); + + res = gst_pad_set_caps (depayload->srcpad, outcaps); + gst_caps_unref (outcaps); } else { - outcaps = gst_caps_new_any (); + GST_WARNING_OBJECT (depayload, "no caps given"); + rtpgstdepay->current_CV = -1; + res = TRUE; } - res = gst_pad_set_caps (depayload->srcpad, outcaps); - gst_caps_unref (outcaps); return res; } +static gboolean +read_length (GstRtpGSTDepay * rtpgstdepay, guint8 * data, guint size, + guint * length, guint * skip) +{ + guint b, len, offset; + + /* start reading the length, we need this to skip to the data later */ + len = offset = 0; + do { + if (offset >= size) + return FALSE; + b = data[offset++]; + len = (len << 7) | (b & 0x7f); + } while (b & 0x80); + + /* check remaining buffer size */ + if (size - offset < len) + return FALSE; + + *length = len; + *skip = offset; + + return TRUE; +} + +static GstCaps * +read_caps (GstRtpGSTDepay * rtpgstdepay, GstBuffer * buf, guint * skip) +{ + guint offset, length; + GstCaps *caps; + GstMapInfo map; + + gst_buffer_map (buf, &map, GST_MAP_READ); + + GST_DEBUG_OBJECT (rtpgstdepay, "buffer size %" G_GSIZE_FORMAT, map.size); + + if (!read_length (rtpgstdepay, map.data, map.size, &length, &offset)) + goto too_small; + + GST_DEBUG_OBJECT (rtpgstdepay, "parsing caps %s", &map.data[offset]); + + /* parse and store in cache */ + caps = gst_caps_from_string ((gchar *) & map.data[offset]); + gst_buffer_unmap (buf, &map); + + *skip = length + offset; + + return caps; + +too_small: + { + GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE, + ("Buffer too small."), (NULL)); + gst_buffer_unmap (buf, &map); + return NULL; + } +} + +static GstEvent * +read_event (GstRtpGSTDepay * rtpgstdepay, guint type, + GstBuffer * buf, guint * skip) +{ + guint offset, length; + GstStructure *s; + GstEvent *event; + GstEventType etype; + gchar *end; + GstMapInfo map; + + gst_buffer_map (buf, &map, GST_MAP_READ); + + GST_DEBUG_OBJECT (rtpgstdepay, "buffer size %" G_GSIZE_FORMAT, map.size); + + if (!read_length (rtpgstdepay, map.data, map.size, &length, &offset)) + goto too_small; + + GST_DEBUG_OBJECT (rtpgstdepay, "parsing event %s", &map.data[offset]); + + /* parse */ + s = gst_structure_from_string ((gchar *) & map.data[offset], &end); + gst_buffer_unmap (buf, &map); + + if (s == NULL) + goto parse_failed; + + switch (type) { + case 1: + etype = GST_EVENT_TAG; + break; + case 2: + etype = GST_EVENT_CUSTOM_DOWNSTREAM; + break; + case 3: + etype = GST_EVENT_CUSTOM_BOTH; + break; + default: + goto unknown_event; + } + event = gst_event_new_custom (etype, s); + + *skip = length + offset; + + return event; + +too_small: + { + GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE, + ("Buffer too small."), (NULL)); + gst_buffer_unmap (buf, &map); + return NULL; + } +parse_failed: + { + GST_WARNING_OBJECT (rtpgstdepay, "could not parse event"); + return NULL; + } +unknown_event: + { + GST_DEBUG_OBJECT (rtpgstdepay, "unknown event type"); + gst_structure_free (s); + return NULL; + } +} + static GstBuffer * gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) { @@ -176,7 +313,7 @@ gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) GstBuffer *subbuf, *outbuf = NULL; gint payload_len; guint8 *payload; - guint CV; + guint CV, frag_offset, avail, offset; GstRTPBuffer rtp = { NULL }; rtpgstdepay = GST_RTP_GST_DEPAY (depayload); @@ -200,19 +337,23 @@ gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) * 0 1 2 3 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * |C| CV |D|0|0|0| MBZ | + * |C| CV |D|0|0|0| ETYPE | MBZ | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * | Frag_offset | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */ - /* frag_offset = - * (payload[4] << 24) | (payload[5] << 16) | (payload[6] << 8) | payload[7]; - */ + frag_offset = + (payload[4] << 24) | (payload[5] << 16) | (payload[6] << 8) | payload[7]; + + avail = gst_adapter_available (rtpgstdepay->adapter); + if (avail != frag_offset) + goto wrong_frag; /* subbuffer skipping the 8 header bytes */ subbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, 8, -1); gst_adapter_push (rtpgstdepay->adapter, subbuf); + offset = 0; if (gst_rtp_buffer_get_marker (&rtp)) { guint avail; GstCaps *outcaps; @@ -224,74 +365,78 @@ gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) CV = (payload[0] >> 4) & 0x7; if (payload[0] & 0x80) { - guint b, csize, left, offset; - GstMapInfo map; - GstBuffer *subbuf; + guint size; /* C bit, we have inline caps */ - gst_buffer_map (outbuf, &map, GST_MAP_READ); - - /* start reading the length, we need this to skip to the data later */ - csize = offset = 0; - left = map.size; - do { - if (offset >= left) { - gst_buffer_unmap (outbuf, &map); - goto too_small; - } - b = map.data[offset++]; - csize = (csize << 7) | (b & 0x7f); - } while (b & 0x80); - - if (left < csize) { - gst_buffer_unmap (outbuf, &map); - goto too_small; - } + outcaps = read_caps (rtpgstdepay, outbuf, &size); + if (outcaps == NULL) + goto no_caps; + + GST_DEBUG_OBJECT (rtpgstdepay, + "inline caps %u, length %u, %" GST_PTR_FORMAT, CV, size, outcaps); - /* parse and store in cache */ - outcaps = gst_caps_from_string ((gchar *) & map.data[offset]); store_cache (rtpgstdepay, CV, outcaps); /* skip caps */ - offset += csize; - left -= csize; + offset += size; + avail -= size; + } + if (payload[1]) { + guint size; + GstEvent *event; + + /* we have an event */ + event = read_event (rtpgstdepay, payload[1], outbuf, &size); + if (event == NULL) + goto no_event; GST_DEBUG_OBJECT (rtpgstdepay, - "inline caps %u, length %u, %" GST_PTR_FORMAT, CV, csize, outcaps); + "inline event, length %u, %" GST_PTR_FORMAT, size, event); - /* create real data buffer when needed */ - if (map.size) - subbuf = - gst_buffer_copy_region (outbuf, GST_BUFFER_COPY_ALL, offset, left); - else - subbuf = NULL; + gst_pad_push_event (depayload->srcpad, event); - gst_buffer_unmap (outbuf, &map); - gst_buffer_unref (outbuf); - outbuf = subbuf; + /* no buffer after event */ + avail = 0; } - /* see what caps we need */ - if (CV != rtpgstdepay->current_CV) { - /* we need to switch caps, check if we have the caps */ - if ((outcaps = rtpgstdepay->CV_cache[CV]) == NULL) - goto missing_caps; + if (avail) { + if (offset != 0) { + GstBuffer *temp; - GST_DEBUG_OBJECT (rtpgstdepay, - "need caps switch from %u to %u, %" GST_PTR_FORMAT, - rtpgstdepay->current_CV, CV, outcaps); + GST_DEBUG_OBJECT (rtpgstdepay, "sub buffer: offset %u, size %u", offset, + avail); - /* and set caps */ - if (gst_pad_set_caps (depayload->srcpad, outcaps)) - rtpgstdepay->current_CV = CV; - } + temp = + gst_buffer_copy_region (outbuf, GST_BUFFER_COPY_ALL, offset, avail); + + gst_buffer_unref (outbuf); + outbuf = temp; + } + + /* see what caps we need */ + if (CV != rtpgstdepay->current_CV) { + /* we need to switch caps, check if we have the caps */ + if ((outcaps = rtpgstdepay->CV_cache[CV]) == NULL) + goto missing_caps; + + GST_DEBUG_OBJECT (rtpgstdepay, + "need caps switch from %u to %u, %" GST_PTR_FORMAT, + rtpgstdepay->current_CV, CV, outcaps); + + /* and set caps */ + if (gst_pad_set_caps (depayload->srcpad, outcaps)) + rtpgstdepay->current_CV = CV; + } - if (outbuf) { if (payload[0] & 0x8) GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT); + } else { + gst_buffer_unref (outbuf); + outbuf = NULL; } } gst_rtp_buffer_unmap (&rtp); + return outbuf; /* ERRORS */ @@ -302,12 +447,24 @@ empty_packet: gst_rtp_buffer_unmap (&rtp); return NULL; } -too_small: +wrong_frag: { - GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE, - ("Buffer too small."), (NULL)); - if (outbuf) - gst_buffer_unref (outbuf); + gst_adapter_clear (rtpgstdepay->adapter); + gst_rtp_buffer_unmap (&rtp); + GST_LOG_OBJECT (rtpgstdepay, "wrong fragment, skipping"); + return NULL; + } +no_caps: + { + GST_WARNING_OBJECT (rtpgstdepay, "failed to parse caps"); + gst_buffer_unref (outbuf); + gst_rtp_buffer_unmap (&rtp); + return NULL; + } +no_event: + { + GST_WARNING_OBJECT (rtpgstdepay, "failed to parse event"); + gst_buffer_unref (outbuf); gst_rtp_buffer_unmap (&rtp); return NULL; } @@ -315,8 +472,7 @@ missing_caps: { GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE, ("Missing caps %u.", CV), (NULL)); - if (outbuf) - gst_buffer_unref (outbuf); + gst_buffer_unref (outbuf); gst_rtp_buffer_unmap (&rtp); return NULL; } diff --git a/gst/rtp/gstrtpgstdepay.h b/gst/rtp/gstrtpgstdepay.h index aa2aa8e7b25f79c54407bd7d4a442d7b2c7c3432..5fbbde85860550cfb35af02d180ed4fb6625c952 100644 --- a/gst/rtp/gstrtpgstdepay.h +++ b/gst/rtp/gstrtpgstdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_GST_DEPAY_H__ diff --git a/gst/rtp/gstrtpgstpay.c b/gst/rtp/gstrtpgstpay.c index 86e7afa20cc04bbfb6f08e781c96f3a00c285162..9b53ab7e7934f368992ee699b261aa3455299c21 100644 --- a/gst/rtp/gstrtpgstpay.c +++ b/gst/rtp/gstrtpgstpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -27,26 +27,33 @@ #include "gstrtpgstpay.h" +GST_DEBUG_CATEGORY_STATIC (gst_rtp_pay_debug); +#define GST_CAT_DEFAULT gst_rtp_pay_debug + /* * 0 1 2 3 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * |C| CV |D|0|0|0| MBZ | + * |C| CV |D|0|0|0| ETYPE | MBZ | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * | Frag_offset | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * - * C: caps inlined flag + * C: caps inlined flag * When C set, first part of payload contains caps definition. Caps definition * starts with variable-length length prefix and then a string of that length. * the length is encoded in big endian 7 bit chunks, the top 1 bit of a byte * is the continuation marker and the 7 next bits the data. A continuation - * marker of 1 means that the next byte contains more data. + * marker of 1 means that the next byte contains more data. * * CV: caps version, 0 = caps from SDP, 1 - 7 inlined caps * D: delta unit buffer - * - * + * ETYPE: type of event. Payload contains the event, prefixed with a + * variable length field. + * 0 = NO event + * 1 = GST_EVENT_TAG + * 2 = GST_EVENT_CUSTOM_DOWNSTREAM + * 3 = GST_EVENT_CUSTOM_BOTH */ static GstStaticPadTemplate gst_rtp_gst_pay_sink_template = @@ -65,10 +72,14 @@ GST_STATIC_PAD_TEMPLATE ("src", "clock-rate = (int) 90000, " "encoding-name = (string) \"X-GST\"") ); +static void gst_rtp_gst_pay_finalize (GObject * obj); + static gboolean gst_rtp_gst_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps); static GstFlowReturn gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer); +static gboolean gst_rtp_gst_pay_sink_event (GstRTPBasePayload * payload, + GstEvent * event); #define gst_rtp_gst_pay_parent_class parent_class G_DEFINE_TYPE (GstRtpGSTPay, gst_rtp_gst_pay, GST_TYPE_RTP_BASE_PAYLOAD); @@ -76,12 +87,16 @@ G_DEFINE_TYPE (GstRtpGSTPay, gst_rtp_gst_pay, GST_TYPE_RTP_BASE_PAYLOAD); static void gst_rtp_gst_pay_class_init (GstRtpGSTPayClass * klass) { + GObjectClass *gobject_class; GstElementClass *gstelement_class; GstRTPBasePayloadClass *gstrtpbasepayload_class; + gobject_class = (GObjectClass *) klass; gstelement_class = (GstElementClass *) klass; gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass; + gobject_class->finalize = gst_rtp_gst_pay_finalize; + gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_rtp_gst_pay_src_template)); gst_element_class_add_pad_template (gstelement_class, @@ -94,81 +109,59 @@ gst_rtp_gst_pay_class_init (GstRtpGSTPayClass * klass) gstrtpbasepayload_class->set_caps = gst_rtp_gst_pay_setcaps; gstrtpbasepayload_class->handle_buffer = gst_rtp_gst_pay_handle_buffer; + gstrtpbasepayload_class->sink_event = gst_rtp_gst_pay_sink_event; + + GST_DEBUG_CATEGORY_INIT (gst_rtp_pay_debug, "rtpgstpay", 0, + "rtpgstpay element"); } static void gst_rtp_gst_pay_init (GstRtpGSTPay * rtpgstpay) { + rtpgstpay->adapter = gst_adapter_new (); + gst_rtp_base_payload_set_options (GST_RTP_BASE_PAYLOAD (rtpgstpay), + "application", TRUE, "X-GST", 90000); } -static gboolean -gst_rtp_gst_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps) +static void +gst_rtp_gst_pay_finalize (GObject * obj) { - gboolean res; - gchar *capsstr, *capsenc; + GstRtpGSTPay *rtpgstpay; - capsstr = gst_caps_to_string (caps); - capsenc = g_base64_encode ((guchar *) capsstr, strlen (capsstr)); - g_free (capsstr); + rtpgstpay = GST_RTP_GST_PAY (obj); - gst_rtp_base_payload_set_options (payload, "application", TRUE, "X-GST", - 90000); - res = - gst_rtp_base_payload_set_outcaps (payload, "caps", G_TYPE_STRING, capsenc, - NULL); - g_free (capsenc); + g_object_unref (rtpgstpay->adapter); - return res; + G_OBJECT_CLASS (parent_class)->finalize (obj); } static GstFlowReturn -gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload, - GstBuffer * buffer) +gst_rtp_gst_pay_flush (GstRtpGSTPay * rtpgstpay, GstClockTime timestamp) { - GstRtpGSTPay *rtpgstpay; - GstMapInfo map; - guint8 *ptr; - gsize left; - GstBuffer *outbuf; GstFlowReturn ret; - GstClockTime timestamp; - guint32 frag_offset; - guint flags; - - rtpgstpay = GST_RTP_GST_PAY (basepayload); + guint avail; + guint frag_offset; + GstBufferList *list; - gst_buffer_map (buffer, &map, GST_MAP_READ); - timestamp = GST_BUFFER_TIMESTAMP (buffer); - - ret = GST_FLOW_OK; - - /* caps always from SDP for now */ - flags = 0; - if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT)) - flags |= (1 << 3); - - /* - * 0 1 2 3 - * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * |C| CV |D|X|Y|Z| MBZ | - * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * | Frag_offset | - * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - */ frag_offset = 0; - ptr = map.data; - left = map.size; + avail = gst_adapter_available (rtpgstpay->adapter); + if (avail == 0) + return GST_FLOW_OK; + + list = gst_buffer_list_new (); - while (left > 0) { + while (avail) { guint towrite; guint8 *payload; guint payload_len; guint packet_len; + GstBuffer *outbuf; GstRTPBuffer rtp = { NULL }; + GstBuffer *paybuf; + /* this will be the total lenght of the packet */ - packet_len = gst_rtp_buffer_calc_packet_len (8 + left, 0, 0); + packet_len = gst_rtp_buffer_calc_packet_len (8 + avail, 0, 0); /* fill one MTU or all available bytes */ towrite = MIN (packet_len, GST_RTP_BASE_PAYLOAD_MTU (rtpgstpay)); @@ -176,14 +169,27 @@ gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload, /* this is the payload length */ payload_len = gst_rtp_buffer_calc_payload_len (towrite, 0, 0); - /* create buffer to hold the payload */ - outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0); + /* create buffer to hold the header */ + outbuf = gst_rtp_buffer_new_allocate (8, 0, 0); gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp); payload = gst_rtp_buffer_get_payload (&rtp); - payload[0] = flags; - payload[1] = payload[2] = payload[3] = 0; + GST_DEBUG_OBJECT (rtpgstpay, "new packet len %u, frag %u", packet_len, + frag_offset); + + /* + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * |C| CV |D|0|0|0| ETYPE | MBZ | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Frag_offset | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + */ + payload[0] = rtpgstpay->flags; + payload[1] = rtpgstpay->etype; + payload[2] = payload[3] = 0; payload[4] = frag_offset >> 24; payload[5] = frag_offset >> 16; payload[6] = frag_offset >> 8; @@ -192,23 +198,183 @@ gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload, payload += 8; payload_len -= 8; - memcpy (payload, ptr, payload_len); - - ptr += payload_len; - left -= payload_len; frag_offset += payload_len; + avail -= payload_len; - if (left == 0) + if (avail == 0) gst_rtp_buffer_set_marker (&rtp, TRUE); gst_rtp_buffer_unmap (&rtp); + /* create a new buf to hold the payload */ + GST_DEBUG_OBJECT (rtpgstpay, "take %u bytes from adapter", payload_len); + paybuf = gst_adapter_take_buffer (rtpgstpay->adapter, payload_len); + + /* create a new group to hold the rtp header and the payload */ + gst_buffer_append (outbuf, paybuf); + GST_BUFFER_TIMESTAMP (outbuf) = timestamp; - ret = gst_rtp_base_payload_push (basepayload, outbuf); + /* and add to list */ + gst_buffer_list_insert (list, -1, outbuf); + } + /* push the whole buffer list at once */ + ret = gst_rtp_base_payload_push_list (GST_RTP_BASE_PAYLOAD (rtpgstpay), list); + + rtpgstpay->flags &= 0x70; + rtpgstpay->etype = 0; + + return ret; +} + +static GstBuffer * +make_data_buffer (GstRtpGSTPay * rtpgstpay, gchar * data, guint size) +{ + guint plen; + guint8 *ptr; + GstBuffer *outbuf; + GstMapInfo map; + + /* calculate length */ + plen = 1; + while (size >> (7 * plen)) + plen++; + + outbuf = gst_buffer_new_allocate (NULL, plen + size, NULL); + + gst_buffer_map (outbuf, &map, GST_MAP_WRITE); + ptr = map.data; + + /* write length */ + while (plen) { + plen--; + *ptr++ = ((plen > 0) ? 0x80 : 0) | ((size >> (7 * plen)) & 0x7f); } - gst_buffer_unmap (buffer, &map); - gst_buffer_unref (buffer); + /* copy data */ + memcpy (ptr, data, size); + gst_buffer_unmap (outbuf, &map); + + return outbuf; +} + +static gboolean +gst_rtp_gst_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps) +{ + GstRtpGSTPay *rtpgstpay; + gboolean res; + gchar *capsstr, *capsenc, *capsver; + guint capslen; + GstBuffer *outbuf; + + rtpgstpay = GST_RTP_GST_PAY (payload); + + capsstr = gst_caps_to_string (caps); + capslen = strlen (capsstr); + + rtpgstpay->current_CV = rtpgstpay->next_CV; + + /* encode without 0 byte */ + capsenc = g_base64_encode ((guchar *) capsstr, capslen); + GST_DEBUG_OBJECT (payload, "caps=%s, caps(base64)=%s", capsstr, capsenc); + /* for 0 byte */ + capslen++; + + /* make a data buffer of it */ + outbuf = make_data_buffer (rtpgstpay, capsstr, capslen); + g_free (capsstr); + + /* store in adapter, we don't flush yet, buffer might follow */ + rtpgstpay->flags = (1 << 7) | (rtpgstpay->current_CV << 4); + rtpgstpay->next_CV = (rtpgstpay->next_CV + 1) & 0x7; + gst_adapter_push (rtpgstpay->adapter, outbuf); + + /* make caps for SDP */ + capsver = g_strdup_printf ("%d", rtpgstpay->current_CV); + res = + gst_rtp_base_payload_set_outcaps (payload, "caps", G_TYPE_STRING, capsenc, + "capsversion", G_TYPE_STRING, capsver, NULL); + g_free (capsenc); + g_free (capsver); + + return res; +} + +static gboolean +gst_rtp_gst_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event) +{ + gboolean ret; + GstRtpGSTPay *rtpgstpay; + guint etype; + + rtpgstpay = GST_RTP_GST_PAY (payload); + + ret = + GST_RTP_BASE_PAYLOAD_CLASS (parent_class)->sink_event (payload, + gst_event_ref (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_TAG: + etype = 1; + break; + case GST_EVENT_CUSTOM_DOWNSTREAM: + etype = 2; + break; + case GST_EVENT_CUSTOM_BOTH: + etype = 2; + break; + default: + etype = 0; + GST_LOG_OBJECT (rtpgstpay, "no event for %s", + GST_EVENT_TYPE_NAME (event)); + break; + } + if (etype) { + const GstStructure *s; + gchar *estr; + guint elen; + GstBuffer *outbuf; + + /* make sure the adapter is flushed */ + gst_rtp_gst_pay_flush (rtpgstpay, GST_CLOCK_TIME_NONE); + + GST_DEBUG_OBJECT (rtpgstpay, "make event type %d for %s", + etype, GST_EVENT_TYPE_NAME (event)); + s = gst_event_get_structure (event); + + estr = gst_structure_to_string (s); + elen = strlen (estr); + outbuf = make_data_buffer (rtpgstpay, estr, elen); + g_free (estr); + + rtpgstpay->etype = etype; + gst_adapter_push (rtpgstpay->adapter, outbuf); + /* flush the adapter immediately */ + gst_rtp_gst_pay_flush (rtpgstpay, GST_CLOCK_TIME_NONE); + } + + gst_event_unref (event); + + return ret; +} + +static GstFlowReturn +gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload, + GstBuffer * buffer) +{ + GstFlowReturn ret; + GstRtpGSTPay *rtpgstpay; + GstClockTime timestamp; + + rtpgstpay = GST_RTP_GST_PAY (basepayload); + + timestamp = GST_BUFFER_TIMESTAMP (buffer); + + /* caps always from SDP for now */ + if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT)) + rtpgstpay->flags |= (1 << 3); + + gst_adapter_push (rtpgstpay->adapter, buffer); + ret = gst_rtp_gst_pay_flush (rtpgstpay, timestamp); return ret; } diff --git a/gst/rtp/gstrtpgstpay.h b/gst/rtp/gstrtpgstpay.h index e10401fe02eaaa59a0b4166db499d719e77bc4bb..bb50085cc10e809b9a16a9077957099c227287ce 100644 --- a/gst/rtp/gstrtpgstpay.h +++ b/gst/rtp/gstrtpgstpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_GST_PAY_H__ @@ -22,6 +22,7 @@ #include <gst/gst.h> #include <gst/rtp/gstrtpbasepayload.h> +#include <gst/base/gstadapter.h> G_BEGIN_DECLS @@ -42,6 +43,13 @@ typedef struct _GstRtpGSTPayClass GstRtpGSTPayClass; struct _GstRtpGSTPay { GstRTPBasePayload payload; + + GstAdapter *adapter; + guint8 flags; + guint8 etype; + + guint8 current_CV; /* CV field of incoming caps*/ + guint8 next_CV; }; struct _GstRtpGSTPayClass diff --git a/gst/rtp/gstrtph263depay.c b/gst/rtp/gstrtph263depay.c index e05704eba5b98f3bdf40eb81130a240567fd720d..20e8ccba57a7c599338dc43e34c84450453c7ac1 100644 --- a/gst/rtp/gstrtph263depay.c +++ b/gst/rtp/gstrtph263depay.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -54,10 +54,9 @@ static GstStaticPadTemplate gst_rtp_h263_depay_sink_template = GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " "payload = (int) " GST_RTP_PAYLOAD_H263_STRING ", " - "clock-rate = (int) 90000, " "encoding-name = (string) \"H263\"; " + "clock-rate = (int) 90000; " "application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"H263\"") ); diff --git a/gst/rtp/gstrtph263depay.h b/gst/rtp/gstrtph263depay.h index 038b8815af5b948abcea2db2c553d1e383b1edb1..2d9ca55c7000ab516941ce46d43ec0ef5e548909 100644 --- a/gst/rtp/gstrtph263depay.h +++ b/gst/rtp/gstrtph263depay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_H263_DEPAY_H__ diff --git a/gst/rtp/gstrtph263pay.c b/gst/rtp/gstrtph263pay.c index 7def26e99b18efcfe6cf51313a0b744e97554855..a9672ec11b1a56c4f98b9aa1c93c9e3ae46758ea 100644 --- a/gst/rtp/gstrtph263pay.c +++ b/gst/rtp/gstrtph263pay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/gst/rtp/gstrtph263pay.h b/gst/rtp/gstrtph263pay.h index 211cecb339f1c57b6d85f38b0c439deadbbc2eb5..d41c3edafd1782a73a2e6ebdd4dffeb15dbf189c 100644 --- a/gst/rtp/gstrtph263pay.h +++ b/gst/rtp/gstrtph263pay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * Author: Dejan Sakelsak sahel@kiberpipa.org */ diff --git a/gst/rtp/gstrtph263pdepay.c b/gst/rtp/gstrtph263pdepay.c index a669a58ee319f9331052a45fffc2d2e1afb942e7..e788e2f6e851bb4de5d9f02b2573a2b123392e29 100644 --- a/gst/rtp/gstrtph263pdepay.c +++ b/gst/rtp/gstrtph263pdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -39,7 +39,6 @@ static GstStaticPadTemplate gst_rtp_h263p_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX], " "encoding-name = (string) \"H263-1998\"; " /* optional params */ @@ -65,7 +64,6 @@ static GstStaticPadTemplate gst_rtp_h263p_depay_sink_template = */ "application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX], " "encoding-name = (string) \"H263-2000\" " /* optional params */ diff --git a/gst/rtp/gstrtph263pdepay.h b/gst/rtp/gstrtph263pdepay.h index 624e8ffe16d49d3a04c68fe276ed7f5e4e58fc26..bbdb2b0a4a2f9bdc8d9b4ad3be03a709be9f5e2e 100644 --- a/gst/rtp/gstrtph263pdepay.h +++ b/gst/rtp/gstrtph263pdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_H263P_DEPAY_H__ diff --git a/gst/rtp/gstrtph263ppay.c b/gst/rtp/gstrtph263ppay.c index 3c93d912a2076600c052fdbfdaa04bd8129bf51f..073a6b59f452d2db54a478ccd588517cf4e07b97 100644 --- a/gst/rtp/gstrtph263ppay.c +++ b/gst/rtp/gstrtph263ppay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtph263ppay.h b/gst/rtp/gstrtph263ppay.h index 7e053178892a31d066ba219aeeafda945cf0f67e..23ec8b8e955e0268bba324188920090bdf22f686 100644 --- a/gst/rtp/gstrtph263ppay.h +++ b/gst/rtp/gstrtph263ppay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_H263P_PAY_H__ diff --git a/gst/rtp/gstrtph264depay.c b/gst/rtp/gstrtph264depay.c index c49aaa21c70429e7f8db6f41a6db85b517fc3a33..64f8c8e66c3c4da45aefa85ad0d7e487e365a6d6 100644 --- a/gst/rtp/gstrtph264depay.c +++ b/gst/rtp/gstrtph264depay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -55,7 +55,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"H264\"") /** optional parameters **/ /* "profile-level-id = (string) ANY, " */ diff --git a/gst/rtp/gstrtph264depay.h b/gst/rtp/gstrtph264depay.h index c1f352b4ec587e45e0b0100c8ebcbae918342fca..e178dcf6d9768694bc8e94f49a90a44bfb5976b2 100644 --- a/gst/rtp/gstrtph264depay.h +++ b/gst/rtp/gstrtph264depay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_H264_DEPAY_H__ diff --git a/gst/rtp/gstrtph264pay.c b/gst/rtp/gstrtph264pay.c index 699f6d37b421e5793737b48f9f084fdea3118c77..79727bac0ab3c639774aafaa75df05f50511e85a 100644 --- a/gst/rtp/gstrtph264pay.c +++ b/gst/rtp/gstrtph264pay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtph264pay.h b/gst/rtp/gstrtph264pay.h index d5b9dfa134cc738fc2e565d998f8181ea222eaf3..533591045d62a00b559ac3d12939a7e53d83c983 100644 --- a/gst/rtp/gstrtph264pay.h +++ b/gst/rtp/gstrtph264pay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_H264_PAY_H__ diff --git a/gst/rtp/gstrtpilbcdepay.c b/gst/rtp/gstrtpilbcdepay.c index 3029c7ffe5d47a5effa499f97497a9781eea3796..8b4285e1c7409aa65c71d5f6b47a474f07fd1acd 100644 --- a/gst/rtp/gstrtpilbcdepay.c +++ b/gst/rtp/gstrtpilbcdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -48,7 +48,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 8000, " "encoding-name = (string) \"ILBC\", " "mode = (string) { \"20\", \"30\" }") @@ -191,8 +190,8 @@ gst_rtp_ilbc_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) gst_rtp_buffer_unmap (&rtp); if (marker && outbuf) { - /* mark start of talkspurt with DISCONT */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* mark start of talkspurt with RESYNC */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } return outbuf; diff --git a/gst/rtp/gstrtpilbcdepay.h b/gst/rtp/gstrtpilbcdepay.h index 18db3275954d13c3ba959a145538e29bca83b6fe..01fd225eae2108f0747c1baf39c461011d4552fa 100644 --- a/gst/rtp/gstrtpilbcdepay.h +++ b/gst/rtp/gstrtpilbcdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_ILBC_DEPAY_H__ diff --git a/gst/rtp/gstrtpilbcpay.c b/gst/rtp/gstrtpilbcpay.c index 4c4bb59e65380753b2883eb907327216c88248b5..7d6ea280bebea1916ed5def0092863e05ad1609a 100644 --- a/gst/rtp/gstrtpilbcpay.c +++ b/gst/rtp/gstrtpilbcpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpilbcpay.h b/gst/rtp/gstrtpilbcpay.h index daa36970868df75ddc20673f9c5d4833c6ba6d83..14363c0774128d94d00da693dea918fc8fc2c566 100644 --- a/gst/rtp/gstrtpilbcpay.h +++ b/gst/rtp/gstrtpilbcpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_ILBC_PAY_H__ diff --git a/gst/rtp/gstrtpj2kdepay.c b/gst/rtp/gstrtpj2kdepay.c index 2017270880a5934c6abc5b955a4ca1f5b25623d1..9829258fcb0d7dbb9ed913647fcee4a66fb3bc2b 100644 --- a/gst/rtp/gstrtpj2kdepay.c +++ b/gst/rtp/gstrtpj2kdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -42,7 +42,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"JPEG2000\"") ); diff --git a/gst/rtp/gstrtpj2kdepay.h b/gst/rtp/gstrtpj2kdepay.h index 020688e1506d71080987a9cf3ab2e3c2e05540d3..e5b9d6bea82cd223ff0060e37f2072ef451824b7 100644 --- a/gst/rtp/gstrtpj2kdepay.h +++ b/gst/rtp/gstrtpj2kdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_J2K_DEPAY_H__ diff --git a/gst/rtp/gstrtpj2kpay.c b/gst/rtp/gstrtpj2kpay.c index ed1856adce376fd295a9d5f0bdec06a3eaecee00..6cefc31424bfd861b5d4b937b21608293eb25f8c 100644 --- a/gst/rtp/gstrtpj2kpay.c +++ b/gst/rtp/gstrtpj2kpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/rtp/gstrtpj2kpay.h b/gst/rtp/gstrtpj2kpay.h index 88737d6351481b78482e51544004f113fa10f47f..7160a62206c8ac47a77f54bfc67b5f63b8f99544 100644 --- a/gst/rtp/gstrtpj2kpay.h +++ b/gst/rtp/gstrtpj2kpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_J2K_PAY_H__ diff --git a/gst/rtp/gstrtpjpegdepay.c b/gst/rtp/gstrtpjpegdepay.c index 9b3b140641739050231854516c834c5df49e4fc8..f10bf464f7562c86ff4b6f6fb362e13083331372 100644 --- a/gst/rtp/gstrtpjpegdepay.c +++ b/gst/rtp/gstrtpjpegdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -45,12 +45,12 @@ static GstStaticPadTemplate gst_rtp_jpeg_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"JPEG\"; " /* optional SDP attributes */ /* * "a-framerate = (string) 0.00, " * "x-framerate = (string) 0.00, " + * "a-framesize = (string) 1234-1234, " * "x-dimensions = (string) \"1234,1234\", " */ "application/x-rtp, " @@ -61,6 +61,7 @@ static GstStaticPadTemplate gst_rtp_jpeg_depay_sink_template = /* * "a-framerate = (string) 0.00, " * "x-framerate = (string) 0.00, " + * "a-framesize = (string) 1234-1234, " * "x-dimensions = (string) \"1234,1234\"" */ ) @@ -457,6 +458,15 @@ gst_rtp_jpeg_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps) } } + if ((media_attr = gst_structure_get_string (structure, "a-framesize"))) { + gint w, h; + + if (sscanf (media_attr, "%d-%d", &w, &h) == 2) { + rtpjpegdepay->media_width = w; + rtpjpegdepay->media_height = h; + } + } + /* try to get a framerate */ media_attr = gst_structure_get_string (structure, "a-framerate"); if (!media_attr) diff --git a/gst/rtp/gstrtpjpegdepay.h b/gst/rtp/gstrtpjpegdepay.h index 0b9757056897a8fd21eba5443bc0c9567d2b996c..cb74f12d4ffd0e017536b9d4104a78f69759db23 100644 --- a/gst/rtp/gstrtpjpegdepay.h +++ b/gst/rtp/gstrtpjpegdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_JPEG_DEPAY_H__ diff --git a/gst/rtp/gstrtpjpegpay.c b/gst/rtp/gstrtpjpegpay.c index 7d93c115e084d861f986c9c0acc393dc01006d40..91bd54c5da27145b6faaa2e68a0317c138bb250e 100644 --- a/gst/rtp/gstrtpjpegpay.c +++ b/gst/rtp/gstrtpjpegpay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -55,7 +55,9 @@ GST_STATIC_PAD_TEMPLATE ("src", GST_STATIC_CAPS ("application/x-rtp, " " media = (string) \"video\", " " payload = (int) 26 , " - " clock-rate = (int) 90000, " " encoding-name = (string) \"JPEG\"") + " clock-rate = (int) 90000, " + " encoding-name = (string) \"JPEG\", " + " width = (int) [ 1, 65536 ], " " height = (int) [ 1, 65536 ]") ); GST_DEBUG_CATEGORY_STATIC (rtpjpegpay_debug); @@ -280,6 +282,8 @@ gst_rtp_jpeg_pay_init (GstRtpJPEGPay * pay) pay->quality = DEFAULT_JPEG_QUALITY; pay->quant = DEFAULT_JPEG_QUANT; pay->type = DEFAULT_JPEG_TYPE; + pay->width = -1; + pay->height = -1; } static gboolean @@ -288,26 +292,73 @@ gst_rtp_jpeg_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps) GstStructure *caps_structure = gst_caps_get_structure (caps, 0); GstRtpJPEGPay *pay; gboolean res; - gint width = 0, height = 0; + gint width = -1, height = -1; + gint num = 0, denom; + gchar *rate = NULL; + gchar *dim = NULL; + gchar *size; pay = GST_RTP_JPEG_PAY (basepayload); - /* these properties are not mandatory, we can get them from the SOF, if there + /* these properties are mandatory, but they might be adjusted by the SOF, if there * is one. */ - if (gst_structure_get_int (caps_structure, "height", &height)) { - if (height <= 0 || height > 2040) - goto invalid_dimension; + if (!gst_structure_get_int (caps_structure, "height", &height) || height <= 0) { + goto invalid_dimension; + } + + if (!gst_structure_get_int (caps_structure, "width", &width) || width <= 0) { + goto invalid_dimension; } - pay->height = GST_ROUND_UP_8 (height) / 8; - if (gst_structure_get_int (caps_structure, "width", &width)) { - if (width <= 0 || width > 2040) - goto invalid_dimension; + if (gst_structure_get_fraction (caps_structure, "framerate", &num, &denom) && + (num < 0 || denom <= 0)) { + goto invalid_framerate; + } + + if (height > 2040 || width > 2040) { + pay->height = 0; + pay->width = 0; + } else { + pay->height = GST_ROUND_UP_8 (height) / 8; + pay->width = GST_ROUND_UP_8 (width) / 8; } - pay->width = GST_ROUND_UP_8 (width) / 8; gst_rtp_base_payload_set_options (basepayload, "video", TRUE, "JPEG", 90000); - res = gst_rtp_base_payload_set_outcaps (basepayload, NULL); + + if (num > 0) { + gdouble framerate; + gst_util_fraction_to_double (num, denom, &framerate); + rate = g_strdup_printf ("%f", framerate); + } + + size = g_strdup_printf ("%d-%d", width, height); + + if (pay->width == 0) { + GST_DEBUG_OBJECT (pay, + "width or height are greater than 2040, adding x-dimensions to caps"); + dim = g_strdup_printf ("%d,%d", width, height); + } + + if (rate != NULL && dim != NULL) { + res = gst_rtp_base_payload_set_outcaps (basepayload, "a-framerate", + G_TYPE_STRING, rate, "a-framesize", G_TYPE_STRING, size, + "x-dimensions", G_TYPE_STRING, dim, NULL); + } else if (rate != NULL && dim == NULL) { + res = gst_rtp_base_payload_set_outcaps (basepayload, "a-framerate", + G_TYPE_STRING, rate, "a-framesize", G_TYPE_STRING, size, NULL); + } else if (rate == NULL && dim != NULL) { + res = gst_rtp_base_payload_set_outcaps (basepayload, "x-dimensions", + G_TYPE_STRING, dim, "a-framesize", G_TYPE_STRING, size, NULL); + } else { + res = gst_rtp_base_payload_set_outcaps (basepayload, "a-framesize", + G_TYPE_STRING, size, NULL); + } + + if (dim != NULL) + g_free (dim); + if (rate != NULL) + g_free (rate); + g_free (size); return res; @@ -317,6 +368,11 @@ invalid_dimension: GST_ERROR_OBJECT (pay, "Invalid width/height from caps"); return FALSE; } +invalid_framerate: + { + GST_ERROR_OBJECT (pay, "Invalid framerate from caps"); + return FALSE; + } } static guint @@ -439,13 +495,26 @@ gst_rtp_jpeg_pay_read_sof (GstRtpJPEGPay * pay, const guint8 * data, GST_LOG_OBJECT (pay, "got dimensions %ux%u", height, width); - if (height == 0 || height > 2040) + if (height == 0) { goto invalid_dimension; - if (width == 0 || width > 2040) + } + if (height > 2040) { + height = 0; + } + if (width == 0) { goto invalid_dimension; + } + if (width > 2040) { + width = 0; + } - pay->height = GST_ROUND_UP_8 (height) / 8; - pay->width = GST_ROUND_UP_8 (width) / 8; + if (height == 0 || width == 0) { + pay->height = 0; + pay->width = 0; + } else { + pay->height = GST_ROUND_UP_8 (height) / 8; + pay->width = GST_ROUND_UP_8 (width) / 8; + } /* we only support 3 components */ if (data[off++] != 3) @@ -502,37 +571,37 @@ gst_rtp_jpeg_pay_read_sof (GstRtpJPEGPay * pay, const guint8 * data, /* ERRORS */ wrong_size: { - GST_ELEMENT_ERROR (pay, STREAM, FORMAT, + GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Wrong size %u (needed %u).", size, off + 17), (NULL)); return FALSE; } wrong_length: { - GST_ELEMENT_ERROR (pay, STREAM, FORMAT, + GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Wrong SOF length %u.", sof_size), (NULL)); return FALSE; } bad_precision: { - GST_ELEMENT_ERROR (pay, STREAM, FORMAT, + GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Wrong precision, expecting 8."), (NULL)); return FALSE; } invalid_dimension: { - GST_ELEMENT_ERROR (pay, STREAM, FORMAT, + GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Wrong dimension, size %ux%u", width, height), (NULL)); return FALSE; } bad_components: { - GST_ELEMENT_ERROR (pay, STREAM, FORMAT, + GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Wrong number of components"), (NULL)); return FALSE; } invalid_comp: { - GST_ELEMENT_ERROR (pay, STREAM, FORMAT, ("Invalid component"), (NULL)); + GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Invalid component"), (NULL)); return FALSE; } } @@ -683,8 +752,9 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload, /* by now we should either have negotiated the width/height or the SOF header * should have filled us in */ - if (pay->width == 0 || pay->height == 0) + if (pay->width < 0 || pay->height < 0) { goto no_dimension; + } GST_LOG_OBJECT (pay, "header size %u", jpeg_header_size); @@ -836,31 +906,31 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload, /* ERRORS */ unsupported_jpeg: { - GST_ELEMENT_ERROR (pay, STREAM, FORMAT, ("Unsupported JPEG"), (NULL)); + GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Unsupported JPEG"), (NULL)); gst_buffer_unmap (buffer, &map); gst_buffer_unref (buffer); - return GST_FLOW_NOT_SUPPORTED; + return GST_FLOW_OK; } no_dimension: { - GST_ELEMENT_ERROR (pay, STREAM, FORMAT, ("No size given"), (NULL)); + GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("No size given"), (NULL)); gst_buffer_unmap (buffer, &map); gst_buffer_unref (buffer); - return GST_FLOW_NOT_NEGOTIATED; + return GST_FLOW_OK; } invalid_format: { /* error was posted */ gst_buffer_unmap (buffer, &map); gst_buffer_unref (buffer); - return GST_FLOW_ERROR; + return GST_FLOW_OK; } invalid_quant: { - GST_ELEMENT_ERROR (pay, STREAM, FORMAT, ("Invalid quant tables"), (NULL)); + GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Invalid quant tables"), (NULL)); gst_buffer_unmap (buffer, &map); gst_buffer_unref (buffer); - return GST_FLOW_ERROR; + return GST_FLOW_OK; } } diff --git a/gst/rtp/gstrtpjpegpay.h b/gst/rtp/gstrtpjpegpay.h index 2d3129974cd66a22a29f394d6f0b3328b3421ab0..4d65ea71efdf1258af3ed32249ec06b0d601d361 100644 --- a/gst/rtp/gstrtpjpegpay.h +++ b/gst/rtp/gstrtpjpegpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_JPEG_PAY_H__ diff --git a/gst/rtp/gstrtpmp1sdepay.c b/gst/rtp/gstrtpmp1sdepay.c index be5a9b434077603927bd4b4aa7f2d7f54e27ca51..63545e78cdc31179300a2dda8288abd0934333b2 100644 --- a/gst/rtp/gstrtpmp1sdepay.c +++ b/gst/rtp/gstrtpmp1sdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -54,11 +54,9 @@ static GstStaticPadTemplate gst_rtp_mp1s_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"other\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"MP1S\";" "application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"MP1S\"") ); diff --git a/gst/rtp/gstrtpmp1sdepay.h b/gst/rtp/gstrtpmp1sdepay.h index 5eb413759769eaaf559ccdceff1a64c60910d8cd..582933bad691688c37f23cc762c303810b7abaa5 100644 --- a/gst/rtp/gstrtpmp1sdepay.h +++ b/gst/rtp/gstrtpmp1sdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MP1S_DEPAY_H__ diff --git a/gst/rtp/gstrtpmp2tdepay.c b/gst/rtp/gstrtpmp2tdepay.c index 026e623d0c3e9a0fadb0eff3a2d1b8dced6043aa..345d90616eb09b93773eadb20095597450c261ba 100644 --- a/gst/rtp/gstrtpmp2tdepay.c +++ b/gst/rtp/gstrtpmp2tdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -55,7 +55,6 @@ static GstStaticPadTemplate gst_rtp_mp2t_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX ], " "encoding-name = (string) { MP2T, MP2T-ES } ;" /* All optional parameters diff --git a/gst/rtp/gstrtpmp2tdepay.h b/gst/rtp/gstrtpmp2tdepay.h index 87f2b338455d10d4d20a6fd0b3061321efe92ff8..aa936dca909ec39229cbfc59276d4dfec0f0f253 100644 --- a/gst/rtp/gstrtpmp2tdepay.h +++ b/gst/rtp/gstrtpmp2tdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MP2T_DEPAY_H__ diff --git a/gst/rtp/gstrtpmp2tpay.c b/gst/rtp/gstrtpmp2tpay.c index 79fff727c09a9367aec9509507b932aeb90efa04..f3851675b8454e7ebc358bd808448f027125fec8 100644 --- a/gst/rtp/gstrtpmp2tpay.c +++ b/gst/rtp/gstrtpmp2tpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpmp2tpay.h b/gst/rtp/gstrtpmp2tpay.h index bd14c1791f77cd04e105a0826ca743e94d734915..12f49599fe46720716021bc31faa116f42188260 100644 --- a/gst/rtp/gstrtpmp2tpay.h +++ b/gst/rtp/gstrtpmp2tpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/rtp/gstrtpmp4adepay.c b/gst/rtp/gstrtpmp4adepay.c index 0a5cfaa67bf85c7c30ab7d8502955f0fc98ed33e..e70d5b3358771a364bd10709ce06d75ed45e838d 100644 --- a/gst/rtp/gstrtpmp4adepay.c +++ b/gst/rtp/gstrtpmp4adepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -45,7 +45,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"MP4A-LATM\"" /* All optional parameters @@ -325,7 +324,7 @@ gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) GstClockTime timestamp; avail = gst_adapter_available (rtpmp4adepay->adapter); - timestamp = gst_adapter_prev_timestamp (rtpmp4adepay->adapter, NULL); + timestamp = gst_adapter_prev_pts (rtpmp4adepay->adapter, NULL); GST_LOG_OBJECT (rtpmp4adepay, "have marker and %u available", avail); diff --git a/gst/rtp/gstrtpmp4adepay.h b/gst/rtp/gstrtpmp4adepay.h index 82b5b264083b8f27ffe3f6e38bfcc42c7fbfc682..b44349f8d0715667340fea32a984b7244a419b41 100644 --- a/gst/rtp/gstrtpmp4adepay.h +++ b/gst/rtp/gstrtpmp4adepay.h @@ -12,8 +12,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MP4A_DEPAY_H__ diff --git a/gst/rtp/gstrtpmp4apay.c b/gst/rtp/gstrtpmp4apay.c index 6f860ba54864a453005e55dffd2b90b9dc7e5d4d..17a80a81abf47b807c1fcc8bd526e92449acd41e 100644 --- a/gst/rtp/gstrtpmp4apay.c +++ b/gst/rtp/gstrtpmp4apay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpmp4apay.h b/gst/rtp/gstrtpmp4apay.h index 86716712902c982a522ddcd6b774d3179712b422..49d9b650d8f0ebba026d308dee2fa9bb4d4b0197 100644 --- a/gst/rtp/gstrtpmp4apay.h +++ b/gst/rtp/gstrtpmp4apay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MP4A_PAY_H__ diff --git a/gst/rtp/gstrtpmp4gdepay.c b/gst/rtp/gstrtpmp4gdepay.c index d0a1ef351287544b0dec9373afd4d11fdd0bdf31..db472daa580330d8b9036c1e58a64cbb58866d76 100644 --- a/gst/rtp/gstrtpmp4gdepay.c +++ b/gst/rtp/gstrtpmp4gdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -46,7 +46,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) { \"video\", \"audio\", \"application\" }, " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"MPEG4-GENERIC\", " /* required string params */ diff --git a/gst/rtp/gstrtpmp4gdepay.h b/gst/rtp/gstrtpmp4gdepay.h index 88df29c5b4151aae6b334516a7b5929622cecff6..5d5997af31155af5afe6e6c36290a8f858086b8c 100644 --- a/gst/rtp/gstrtpmp4gdepay.h +++ b/gst/rtp/gstrtpmp4gdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MP4G_DEPAY_H__ diff --git a/gst/rtp/gstrtpmp4gpay.c b/gst/rtp/gstrtpmp4gpay.c index c1f22ad93f68351f44ffbf2b704a267802cb06ba..690e6350427db59acb632c6a71ecde2a746d81c9 100644 --- a/gst/rtp/gstrtpmp4gpay.c +++ b/gst/rtp/gstrtpmp4gpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpmp4gpay.h b/gst/rtp/gstrtpmp4gpay.h index 65efb9e65f214c87acc55f6872239aec3be656dc..fed9c930b5bcdb0ca37cdbd83275dd4d7e6815f3 100644 --- a/gst/rtp/gstrtpmp4gpay.h +++ b/gst/rtp/gstrtpmp4gpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MP4G_PAY_H__ diff --git a/gst/rtp/gstrtpmp4vdepay.c b/gst/rtp/gstrtpmp4vdepay.c index d04fe8b21738af0c86c2db06e4566ba778576288..3ff58d5149d5984e21b1bc9a8cbed6bf4c5c23ff 100644 --- a/gst/rtp/gstrtpmp4vdepay.c +++ b/gst/rtp/gstrtpmp4vdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -43,7 +43,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"MP4V-ES\"" /* All optional parameters * diff --git a/gst/rtp/gstrtpmp4vdepay.h b/gst/rtp/gstrtpmp4vdepay.h index 75013e0bfc1bb2cda12e8f8195b30abee59f27f2..436e0db317bc84f42e412779fdb52076241551cb 100644 --- a/gst/rtp/gstrtpmp4vdepay.h +++ b/gst/rtp/gstrtpmp4vdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MP4V_DEPAY_H__ diff --git a/gst/rtp/gstrtpmp4vpay.c b/gst/rtp/gstrtpmp4vpay.c index 6b91a434df60d8311260406ed5324b596f56616e..5185d036236bf336f37d159cdf4abac41f4b1694 100644 --- a/gst/rtp/gstrtpmp4vpay.c +++ b/gst/rtp/gstrtpmp4vpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpmp4vpay.h b/gst/rtp/gstrtpmp4vpay.h index 6cb552a875f6c95555d37563f7b888965aa6e037..a974a91dd440f40cab5d0dc4a8f5e55d51be9c5b 100644 --- a/gst/rtp/gstrtpmp4vpay.h +++ b/gst/rtp/gstrtpmp4vpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MP4V_PAY_H__ diff --git a/gst/rtp/gstrtpmpadepay.c b/gst/rtp/gstrtpmpadepay.c index 25d7466bfa7f856d166f067c30b552916d5aaa83..bc9ff06e036162952734a4523c82db43f3bc76ca 100644 --- a/gst/rtp/gstrtpmpadepay.c +++ b/gst/rtp/gstrtpmpadepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -42,7 +42,6 @@ static GstStaticPadTemplate gst_rtp_mpa_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"MPA\";" "application/x-rtp, " "media = (string) \"audio\", " @@ -151,8 +150,8 @@ gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) marker = gst_rtp_buffer_get_marker (&rtp); if (marker) { - /* mark start of talkspurt with discont */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* mark start of talkspurt with RESYNC */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } GST_DEBUG_OBJECT (rtpmpadepay, "gst_rtp_mpa_depay_chain: pushing buffer of size %" G_GSIZE_FORMAT "", diff --git a/gst/rtp/gstrtpmpadepay.h b/gst/rtp/gstrtpmpadepay.h index 36196f5deb69333ad59d25e2bce7eb17318c59ef..1070d779b4c7d568f555421e768c4b12638511cd 100644 --- a/gst/rtp/gstrtpmpadepay.h +++ b/gst/rtp/gstrtpmpadepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MPA_DEPAY_H__ diff --git a/gst/rtp/gstrtpmpapay.c b/gst/rtp/gstrtpmpapay.c index 075a9775e903d14ba11ccf410e939483571ab692..0c7402d35c5954615b3f45b2f7dbb13cb7ad90f4 100644 --- a/gst/rtp/gstrtpmpapay.c +++ b/gst/rtp/gstrtpmpapay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpmpapay.h b/gst/rtp/gstrtpmpapay.h index 3a5c854e2dd31930af275199a3dd61ec765c0138..db298528ec19d6830476356498012bee01155507 100644 --- a/gst/rtp/gstrtpmpapay.h +++ b/gst/rtp/gstrtpmpapay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MPA_PAY_H__ diff --git a/gst/rtp/gstrtpmparobustdepay.c b/gst/rtp/gstrtpmparobustdepay.c index 193b22eb27ef23778886e775c1e6466616c97a01..afdd2ba30079d1711e68dea5b32d4cd579932673 100644 --- a/gst/rtp/gstrtpmparobustdepay.c +++ b/gst/rtp/gstrtpmparobustdepay.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -44,13 +44,11 @@ static GstStaticPadTemplate gst_rtp_mpa_robust_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"MPA-ROBUST\" " "; " /* draft versions appear still in use out there */ "application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX], " "encoding-name = (string) { \"X-MP3-DRAFT-00\", \"X-MP3-DRAFT-01\", " " \"X-MP3-DRAFT-02\", \"X-MP3-DRAFT-03\", \"X-MP3-DRAFT-04\", " @@ -716,7 +714,7 @@ gst_rtp_mpa_robust_depay_process (GstRTPBaseDepayload * depayload, av += gst_buffer_get_size (buf); gst_adapter_push (rtpmpadepay->adapter, buf); if (av == size) { - timestamp = gst_adapter_prev_timestamp (rtpmpadepay->adapter, NULL); + timestamp = gst_adapter_prev_pts (rtpmpadepay->adapter, NULL); buf = gst_adapter_take_buffer (rtpmpadepay->adapter, size); GST_BUFFER_TIMESTAMP (buf) = timestamp; gst_rtp_mpa_robust_depay_submit_adu (rtpmpadepay, buf); diff --git a/gst/rtp/gstrtpmparobustdepay.h b/gst/rtp/gstrtpmparobustdepay.h index d8fa84e8bc29c7c84c707777b496c227e7f08496..fc9ec0b694e7076e06943de6c4e09feaccdabb86 100644 --- a/gst/rtp/gstrtpmparobustdepay.h +++ b/gst/rtp/gstrtpmparobustdepay.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MPA_ROBUST_DEPAY_H__ diff --git a/gst/rtp/gstrtpmpvdepay.c b/gst/rtp/gstrtpmpvdepay.c index a1f732804a9a381f25140b34eafae3526186e913..7d8646cd2cde2349d6d57ee291e59420ac87b7d2 100644 --- a/gst/rtp/gstrtpmpvdepay.c +++ b/gst/rtp/gstrtpmpvdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -45,7 +45,6 @@ static GstStaticPadTemplate gst_rtp_mpv_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"MPV\";" "application/x-rtp, " "media = (string) \"video\", " diff --git a/gst/rtp/gstrtpmpvdepay.h b/gst/rtp/gstrtpmpvdepay.h index 49e3e2d87f5fb0a13f787647c1410067c155f0a6..80f6c4332cd142207ddcae481d7561c1e731650e 100644 --- a/gst/rtp/gstrtpmpvdepay.h +++ b/gst/rtp/gstrtpmpvdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_MPV_DEPAY_H__ diff --git a/gst/rtp/gstrtpmpvpay.c b/gst/rtp/gstrtpmpvpay.c index bd11369456f06438349b33600f861a3d5fcabb30..9e9b65d29133ff192523a2c343c035cc0b55d2df 100644 --- a/gst/rtp/gstrtpmpvpay.c +++ b/gst/rtp/gstrtpmpvpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpmpvpay.h b/gst/rtp/gstrtpmpvpay.h index 94d0b5c4e3ea1eaf07a0f079ed5f6d2cf6d846eb..bcebad932229180fa45d96738197013f99a1c862 100644 --- a/gst/rtp/gstrtpmpvpay.h +++ b/gst/rtp/gstrtpmpvpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/rtp/gstrtppcmadepay.c b/gst/rtp/gstrtppcmadepay.c index dab6552990ddbec558fad762a3e88a6d96113f75..d4fb2afb7e14e6aee2b8dacdeec5288f1736c3e2 100644 --- a/gst/rtp/gstrtppcmadepay.c +++ b/gst/rtp/gstrtppcmadepay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -46,10 +46,9 @@ static GstStaticPadTemplate gst_rtp_pcma_depay_sink_template = GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " "payload = (int) " GST_RTP_PAYLOAD_PCMA_STRING ", " - "clock-rate = (int) 8000, encoding-name = (string) \"PCMA\";" + "clock-rate = (int) 8000;" "application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX ], encoding-name = (string) \"PCMA\"") ); @@ -149,8 +148,8 @@ gst_rtp_pcma_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) gst_util_uint64_scale_int (len, GST_SECOND, depayload->clock_rate); if (marker) { - /* mark start of talkspurt with DISCONT */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* mark start of talkspurt with RESYNC */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } } diff --git a/gst/rtp/gstrtppcmapay.c b/gst/rtp/gstrtppcmapay.c index 5401de0a935144aba11f5935a33d4c46292838a8..7ec7e592b4705a1c27d162dc06868ca8d327dd23 100644 --- a/gst/rtp/gstrtppcmapay.c +++ b/gst/rtp/gstrtppcmapay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtppcmudepay.c b/gst/rtp/gstrtppcmudepay.c index 3d667e3072e9a7d17d31420e6052f60932db7a6d..14367a10b0d8eb161625bab9e3135c943fee006b 100644 --- a/gst/rtp/gstrtppcmudepay.c +++ b/gst/rtp/gstrtppcmudepay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -46,10 +46,9 @@ static GstStaticPadTemplate gst_rtp_pcmu_depay_sink_template = GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " "payload = (int) " GST_RTP_PAYLOAD_PCMU_STRING ", " - "encoding-name = (string) \"PCMU\", clock-rate = (int) 8000; " + "clock-rate = (int) 8000; " "application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "encoding-name = (string) \"PCMU\", clock-rate = (int) [1, MAX ]") ); @@ -150,8 +149,8 @@ gst_rtp_pcmu_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) gst_util_uint64_scale_int (len, GST_SECOND, depayload->clock_rate); if (marker) { - /* mark start of talkspurt with DISCONT */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* mark start of talkspurt with RESYNC */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } } diff --git a/gst/rtp/gstrtppcmupay.c b/gst/rtp/gstrtppcmupay.c index c15b4b88a4495714dbe65075745931847725f283..3d69cb30283e2c0a5f0e1e344919b348f0ecdc13 100644 --- a/gst/rtp/gstrtppcmupay.c +++ b/gst/rtp/gstrtppcmupay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpqcelpdepay.c b/gst/rtp/gstrtpqcelpdepay.c index d11da123cd36da4fcf4f812c70c1006f64532d5c..acb65e4ca00b627cc8ed50cdf893989e080d6bc7 100644 --- a/gst/rtp/gstrtpqcelpdepay.c +++ b/gst/rtp/gstrtpqcelpdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -54,7 +54,6 @@ static GstStaticPadTemplate gst_rtp_qcelp_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 8000, " "encoding-name = (string) \"QCELP\"; " "application/x-rtp, " diff --git a/gst/rtp/gstrtpqcelpdepay.h b/gst/rtp/gstrtpqcelpdepay.h index bd01d33c7b829c2b9e9fa5b2b33562f9ccaca896..ade274de0158b394b6ddedc7cada8d609451b81f 100644 --- a/gst/rtp/gstrtpqcelpdepay.h +++ b/gst/rtp/gstrtpqcelpdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_QCELP_DEPAY_H__ diff --git a/gst/rtp/gstrtpqdmdepay.c b/gst/rtp/gstrtpqdmdepay.c index b43a50b5ce1307deb4b7b85f4374d2963a34190a..f854ab14b2449428b1756b7471fd7b24dadb0d9d 100644 --- a/gst/rtp/gstrtpqdmdepay.c +++ b/gst/rtp/gstrtpqdmdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -41,9 +41,7 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " - "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " - "encoding-name = (string)\"X-QDM\"") + "media = (string) \"audio\", " "encoding-name = (string)\"X-QDM\"") ); #define gst_rtp_qdm2_depay_parent_class parent_class diff --git a/gst/rtp/gstrtpqdmdepay.h b/gst/rtp/gstrtpqdmdepay.h index 38f8681c0561df47e4a6a847f220fd17fd9dac7f..8a6b2b20a3d402875da97b9f9576130485777999 100644 --- a/gst/rtp/gstrtpqdmdepay.h +++ b/gst/rtp/gstrtpqdmdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_QDM2_DEPAY_H__ diff --git a/gst/rtp/gstrtpsbcdepay.c b/gst/rtp/gstrtpsbcdepay.c new file mode 100644 index 0000000000000000000000000000000000000000..28c00fcfd75f94d24c3acab29de0f098b8cf3444 --- /dev/null +++ b/gst/rtp/gstrtpsbcdepay.c @@ -0,0 +1,287 @@ +/* + * GStreamer RTP SBC depayloader + * + * Copyright (C) 2012 Collabora Ltd. + * @author: Arun Raghavan <arun.raghavan@collabora.co.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <gst/rtp/gstrtpbuffer.h> +#include "gstrtpsbcdepay.h" + +GST_DEBUG_CATEGORY_STATIC (rtpsbcdepay_debug); +#define GST_CAT_DEFAULT (rtpsbcdepay_debug) + +static GstStaticPadTemplate gst_rtp_sbc_depay_src_template = +GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-sbc, " + "rate = (int) { 16000, 32000, 44100, 48000 }, " + "channels = (int) [ 1, 2 ], " + "mode = (string) { mono, dual, stereo, joint }, " + "blocks = (int) { 4, 8, 12, 16 }, " + "subbands = (int) { 4, 8 }, " + "allocation-method = (string) { snr, loudness }, " + "bitpool = (int) [ 2, 64 ]") + ); + +static GstStaticPadTemplate gst_rtp_sbc_depay_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "media = (string) audio," + "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " + "clock-rate = (int) { 16000, 32000, 44100, 48000 }," + "encoding-name = (string) SBC") + ); + +#define gst_rtp_sbc_depay_parent_class parent_class +G_DEFINE_TYPE (GstRtpSbcDepay, gst_rtp_sbc_depay, GST_TYPE_RTP_BASE_DEPAYLOAD); + +static void gst_rtp_sbc_depay_finalize (GObject * object); + +static gboolean gst_rtp_sbc_depay_setcaps (GstRTPBaseDepayload * base, + GstCaps * caps); +static GstBuffer *gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, + GstBuffer * in); + +static void +gst_rtp_sbc_depay_class_init (GstRtpSbcDepayClass * klass) +{ + GstRTPBaseDepayloadClass *gstbasertpdepayload_class = + GST_RTP_BASE_DEPAYLOAD_CLASS (klass); + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->finalize = gst_rtp_sbc_depay_finalize; + + gstbasertpdepayload_class->set_caps = gst_rtp_sbc_depay_setcaps; + gstbasertpdepayload_class->process = gst_rtp_sbc_depay_process; + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_sbc_depay_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_sbc_depay_sink_template)); + + GST_DEBUG_CATEGORY_INIT (rtpsbcdepay_debug, "rtpsbcdepay", 0, + "SBC Audio RTP Depayloader"); + + gst_element_class_set_static_metadata (element_class, + "RTP SBC audio depayloader", + "Codec/Depayloader/Network/RTP", + "Extracts SBC audio from RTP packets", + "Arun Raghavan <arun.raghavan@collabora.co.uk>"); +} + +static void +gst_rtp_sbc_depay_init (GstRtpSbcDepay * rtpsbcdepay) +{ + rtpsbcdepay->adapter = gst_adapter_new (); +} + +static void +gst_rtp_sbc_depay_finalize (GObject * object) +{ + GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (object); + + gst_object_unref (depay->adapter); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +/* FIXME: This duplicates similar functionality rtpsbcpay, but there isn't a + * simple way to consolidate the two. This is best done by moving the function + * to the codec-utils library in gst-plugins-base when these elements move to + * GStreamer. */ +static int +gst_rtp_sbc_depay_get_params (GstRtpSbcDepay * depay, const guint8 * data, + gint size, int *framelen, int *samples) +{ + int blocks, channel_mode, channels, subbands, bitpool; + int length; + + if (size < 3) { + /* Not enough data for the header */ + return -1; + } + + /* Sanity check */ + if (data[0] != 0x9c) { + GST_WARNING_OBJECT (depay, "Bad packet: couldn't find syncword"); + return -2; + } + + blocks = (data[1] >> 4) & 0x3; + blocks = (blocks + 1) * 4; + channel_mode = (data[1] >> 2) & 0x3; + channels = channel_mode ? 2 : 1; + subbands = (data[1] & 0x1); + subbands = (subbands + 1) * 4; + bitpool = data[2]; + + length = 4 + ((4 * subbands * channels) / 8); + + if (channel_mode == 0 || channel_mode == 1) { + /* Mono || Dual channel */ + length += ((blocks * channels * bitpool) + + 4 /* round up */ ) / 8; + } else { + /* Stereo || Joint stereo */ + gboolean joint = (channel_mode == 3); + + length += ((joint * subbands) + (blocks * bitpool) + + 4 /* round up */ ) / 8; + } + + *framelen = length; + *samples = blocks * subbands; + + return 0; +} + +static gboolean +gst_rtp_sbc_depay_setcaps (GstRTPBaseDepayload * base, GstCaps * caps) +{ + GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (base); + GstStructure *structure; + GstCaps *outcaps, *oldcaps; + + structure = gst_caps_get_structure (caps, 0); + + if (!gst_structure_get_int (structure, "clock-rate", &depay->rate)) + goto bad_caps; + + outcaps = gst_caps_new_simple ("audio/x-sbc", "rate", G_TYPE_INT, + depay->rate, NULL); + + gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (base), outcaps); + + oldcaps = gst_pad_get_current_caps (GST_RTP_BASE_DEPAYLOAD_SINKPAD (base)); + if (oldcaps && !gst_caps_can_intersect (oldcaps, caps)) { + /* Caps have changed, flush old data */ + gst_adapter_clear (depay->adapter); + } + + gst_caps_unref (outcaps); + + return TRUE; + +bad_caps: + GST_WARNING_OBJECT (depay, "Can't support the caps we got: %" + GST_PTR_FORMAT, caps); + return FALSE; +} + +static GstBuffer * +gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstBuffer * in) +{ + GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (base); + GstBuffer *data = NULL; + GstRTPBuffer rtp = { NULL }; + + gboolean fragment, start, last; + guint8 nframes; + guint8 *payload; + guint payload_len; + + gst_rtp_buffer_map (in, GST_MAP_READ, &rtp); + + GST_LOG_OBJECT (depay, "Got %" G_GSIZE_FORMAT " bytes", + gst_buffer_get_size (in)); + + if (gst_rtp_buffer_get_marker (&rtp)) { + /* Marker isn't supposed to be set */ + GST_WARNING_OBJECT (depay, "Marker bit was set"); + goto bad_packet; + } + + payload = gst_rtp_buffer_get_payload (&rtp); + payload_len = gst_rtp_buffer_get_payload_len (&rtp); + + fragment = payload[0] & 0x80; + start = payload[0] & 0x40; + last = payload[0] & 0x20; + nframes = payload[0] & 0x0f; + + payload += 1; + payload_len -= 1; + + data = gst_rtp_buffer_get_payload_subbuffer (&rtp, 1, -1); + + if (fragment) { + /* Got a packet with a fragment */ + GST_LOG_OBJECT (depay, "Got fragment"); + + if (start && gst_adapter_available (depay->adapter)) { + GST_WARNING_OBJECT (depay, "Missing last fragment"); + gst_adapter_clear (depay->adapter); + + } else if (!start && !gst_adapter_available (depay->adapter)) { + GST_WARNING_OBJECT (depay, "Missing start fragment"); + gst_buffer_unref (data); + data = NULL; + goto out; + } + + gst_adapter_push (depay->adapter, data); + + if (last) { + data = gst_adapter_take_buffer (depay->adapter, + gst_adapter_available (depay->adapter)); + } else + data = NULL; + + } else { + /* !fragment */ + gint framelen, samples; + + GST_LOG_OBJECT (depay, "Got %d frames", nframes); + + if (gst_rtp_sbc_depay_get_params (depay, payload, + payload_len, &framelen, &samples) < 0) { + gst_adapter_clear (depay->adapter); + goto bad_packet; + } + + GST_LOG_OBJECT (depay, "Got payload of %d", payload_len); + + if (nframes * framelen > (gint) payload_len) { + GST_WARNING_OBJECT (depay, "Short packet"); + goto bad_packet; + } else if (nframes * framelen < (gint) payload_len) { + GST_WARNING_OBJECT (depay, "Junk at end of packet"); + } + } + +out: + gst_rtp_buffer_unmap (&rtp); + return data; + +bad_packet: + GST_ELEMENT_WARNING (depay, STREAM, DECODE, + ("Received invalid RTP payload, dropping"), (NULL)); + goto out; +} + +gboolean +gst_rtp_sbc_depay_plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "rtpsbcdepay", GST_RANK_SECONDARY, + GST_TYPE_RTP_SBC_DEPAY); +} diff --git a/gst/rtp/gstrtpsbcdepay.h b/gst/rtp/gstrtpsbcdepay.h new file mode 100644 index 0000000000000000000000000000000000000000..4147a31fdeb7a56671f2da7e926859b31b79a5e2 --- /dev/null +++ b/gst/rtp/gstrtpsbcdepay.h @@ -0,0 +1,65 @@ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2012 Collabora Ltd. + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef __GST_RTP_SBC_DEPAY_H +#define __GST_RTP_SBC_DEPAY_H + +#include <gst/gst.h> +#include <gst/base/gstadapter.h> +#include <gst/rtp/gstrtpbasedepayload.h> + +G_BEGIN_DECLS +#define GST_TYPE_RTP_SBC_DEPAY \ + (gst_rtp_sbc_depay_get_type()) +#define GST_RTP_SBC_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_SBC_DEPAY,\ + GstRtpSbcDepay)) +#define GST_RTP_SBC_DEPAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_SBC_DEPAY,\ + GstRtpSbcDepayClass)) +#define GST_IS_RTP_SBC_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_SBC_DEPAY)) +#define GST_IS_RTP_SBC_DEPAY_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_SBC_DEPAY)) +typedef struct _GstRtpSbcDepay GstRtpSbcDepay; +typedef struct _GstRtpSbcDepayClass GstRtpSbcDepayClass; + +struct _GstRtpSbcDepay +{ + GstRTPBaseDepayload base; + + int rate; + GstAdapter *adapter; +}; + +struct _GstRtpSbcDepayClass +{ + GstRTPBaseDepayloadClass parent_class; +}; + +GType gst_rtp_sbc_depay_get_type (void); + +gboolean gst_rtp_sbc_depay_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif diff --git a/gst/rtp/gstrtpsbcpay.c b/gst/rtp/gstrtpsbcpay.c new file mode 100644 index 0000000000000000000000000000000000000000..8a8f5cdaf774e6b6f11cd556c5ded19407e41994 --- /dev/null +++ b/gst/rtp/gstrtpsbcpay.c @@ -0,0 +1,350 @@ +/* GStreamer RTP SBC payloader + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2004-2010 Marcel Holtmann <marcel@holtmann.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "gstrtpsbcpay.h" +#include <math.h> +#include <string.h> + +#define RTP_SBC_PAYLOAD_HEADER_SIZE 1 +#define DEFAULT_MIN_FRAMES 0 +#define RTP_SBC_HEADER_TOTAL (12 + RTP_SBC_PAYLOAD_HEADER_SIZE) + +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + +/* FIXME: this seems all a bit over the top for a single byte.. */ +struct rtp_payload +{ + guint8 frame_count:4; + guint8 rfa0:1; + guint8 is_last_fragment:1; + guint8 is_first_fragment:1; + guint8 is_fragmented:1; +} __attribute__ ((packed)); + +#elif G_BYTE_ORDER == G_BIG_ENDIAN + +struct rtp_payload +{ + guint8 is_fragmented:1; + guint8 is_first_fragment:1; + guint8 is_last_fragment:1; + guint8 rfa0:1; + guint8 frame_count:4; +} __attribute__ ((packed)); + +#else +#error "Unknown byte order" +#endif + +enum +{ + PROP_0, + PROP_MIN_FRAMES +}; + +GST_DEBUG_CATEGORY_STATIC (gst_rtp_sbc_pay_debug); +#define GST_CAT_DEFAULT gst_rtp_sbc_pay_debug + +#define parent_class gst_rtp_sbc_pay_parent_class +G_DEFINE_TYPE (GstRtpSBCPay, gst_rtp_sbc_pay, GST_TYPE_RTP_BASE_PAYLOAD); + +static GstStaticPadTemplate gst_rtp_sbc_pay_sink_factory = +GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-sbc, " + "rate = (int) { 16000, 32000, 44100, 48000 }, " + "channels = (int) [ 1, 2 ], " + "channel-mode = (string) { mono, dual, stereo, joint }, " + "blocks = (int) { 4, 8, 12, 16 }, " + "subbands = (int) { 4, 8 }, " + "allocation-method = (string) { snr, loudness }, " + "bitpool = (int) [ 2, 64 ]") + ); + +static GstStaticPadTemplate gst_rtp_sbc_pay_src_factory = +GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "media = (string) audio," + "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " + "clock-rate = (int) { 16000, 32000, 44100, 48000 }," + "encoding-name = (string) SBC") + ); + +static void gst_rtp_sbc_pay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_rtp_sbc_pay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static gint +gst_rtp_sbc_pay_get_frame_len (gint subbands, gint channels, + gint blocks, gint bitpool, const gchar * channel_mode) +{ + gint len; + gint join; + + len = 4 + (4 * subbands * channels) / 8; + + if (strcmp (channel_mode, "mono") == 0 || strcmp (channel_mode, "dual") == 0) + len += ((blocks * channels * bitpool) + 7) / 8; + else { + join = strcmp (channel_mode, "joint") == 0 ? 1 : 0; + len += ((join * subbands + blocks * bitpool) + 7) / 8; + } + + return len; +} + +static gboolean +gst_rtp_sbc_pay_set_caps (GstRTPBasePayload * payload, GstCaps * caps) +{ + GstRtpSBCPay *sbcpay; + gint rate, subbands, channels, blocks, bitpool; + gint frame_len; + const gchar *channel_mode; + GstStructure *structure; + + sbcpay = GST_RTP_SBC_PAY (payload); + + structure = gst_caps_get_structure (caps, 0); + if (!gst_structure_get_int (structure, "rate", &rate)) + return FALSE; + if (!gst_structure_get_int (structure, "channels", &channels)) + return FALSE; + if (!gst_structure_get_int (structure, "blocks", &blocks)) + return FALSE; + if (!gst_structure_get_int (structure, "bitpool", &bitpool)) + return FALSE; + if (!gst_structure_get_int (structure, "subbands", &subbands)) + return FALSE; + + channel_mode = gst_structure_get_string (structure, "channel-mode"); + if (!channel_mode) + return FALSE; + + frame_len = gst_rtp_sbc_pay_get_frame_len (subbands, channels, blocks, + bitpool, channel_mode); + + sbcpay->frame_length = frame_len; + + gst_rtp_base_payload_set_options (payload, "audio", TRUE, "SBC", rate); + + GST_DEBUG_OBJECT (payload, "calculated frame length: %d ", frame_len); + + return gst_rtp_base_payload_set_outcaps (payload, NULL); +} + +static GstFlowReturn +gst_rtp_sbc_pay_flush_buffers (GstRtpSBCPay * sbcpay) +{ + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + guint available; + guint max_payload; + GstBuffer *outbuf; + guint8 *payload_data; + guint frame_count; + guint payload_length; + struct rtp_payload *payload; + + if (sbcpay->frame_length == 0) { + GST_ERROR_OBJECT (sbcpay, "Frame length is 0"); + return GST_FLOW_ERROR; + } + + available = gst_adapter_available (sbcpay->adapter); + + max_payload = + gst_rtp_buffer_calc_payload_len (GST_RTP_BASE_PAYLOAD_MTU (sbcpay) - + RTP_SBC_PAYLOAD_HEADER_SIZE, 0, 0); + + max_payload = MIN (max_payload, available); + frame_count = max_payload / sbcpay->frame_length; + payload_length = frame_count * sbcpay->frame_length; + if (payload_length == 0) /* Nothing to send */ + return GST_FLOW_OK; + + outbuf = gst_rtp_buffer_new_allocate (payload_length + + RTP_SBC_PAYLOAD_HEADER_SIZE, 0, 0); + + /* get payload */ + gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp); + + gst_rtp_buffer_set_payload_type (&rtp, GST_RTP_BASE_PAYLOAD_PT (sbcpay)); + + /* write header and copy data into payload */ + payload_data = gst_rtp_buffer_get_payload (&rtp); + payload = (struct rtp_payload *) payload_data; + memset (payload, 0, sizeof (struct rtp_payload)); + payload->frame_count = frame_count; + + gst_adapter_copy (sbcpay->adapter, payload_data + + RTP_SBC_PAYLOAD_HEADER_SIZE, 0, payload_length); + + gst_rtp_buffer_unmap (&rtp); + + gst_adapter_flush (sbcpay->adapter, payload_length); + + /* FIXME: what about duration? */ + GST_BUFFER_TIMESTAMP (outbuf) = sbcpay->timestamp; + GST_DEBUG_OBJECT (sbcpay, "Pushing %d bytes", payload_length); + + return gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (sbcpay), outbuf); +} + +static GstFlowReturn +gst_rtp_sbc_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer) +{ + GstRtpSBCPay *sbcpay; + guint available; + + /* FIXME check for negotiation */ + + sbcpay = GST_RTP_SBC_PAY (payload); + sbcpay->timestamp = GST_BUFFER_TIMESTAMP (buffer); + + gst_adapter_push (sbcpay->adapter, buffer); + + available = gst_adapter_available (sbcpay->adapter); + if (available + RTP_SBC_HEADER_TOTAL >= + GST_RTP_BASE_PAYLOAD_MTU (sbcpay) || + (available > (sbcpay->min_frames * sbcpay->frame_length))) + return gst_rtp_sbc_pay_flush_buffers (sbcpay); + + return GST_FLOW_OK; +} + +static gboolean +gst_rtp_sbc_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event) +{ + GstRtpSBCPay *sbcpay = GST_RTP_SBC_PAY (payload); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_EOS: + gst_rtp_sbc_pay_flush_buffers (sbcpay); + break; + default: + break; + } + + return GST_RTP_BASE_PAYLOAD_CLASS (parent_class)->sink_event (payload, event); +} + +static void +gst_rtp_sbc_pay_finalize (GObject * object) +{ + GstRtpSBCPay *sbcpay = GST_RTP_SBC_PAY (object); + + g_object_unref (sbcpay->adapter); + + GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); +} + +static void +gst_rtp_sbc_pay_class_init (GstRtpSBCPayClass * klass) +{ + GstRTPBasePayloadClass *payload_class = GST_RTP_BASE_PAYLOAD_CLASS (klass); + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->finalize = gst_rtp_sbc_pay_finalize; + gobject_class->set_property = gst_rtp_sbc_pay_set_property; + gobject_class->get_property = gst_rtp_sbc_pay_get_property; + + payload_class->set_caps = GST_DEBUG_FUNCPTR (gst_rtp_sbc_pay_set_caps); + payload_class->handle_buffer = + GST_DEBUG_FUNCPTR (gst_rtp_sbc_pay_handle_buffer); + payload_class->sink_event = GST_DEBUG_FUNCPTR (gst_rtp_sbc_pay_sink_event); + + /* properties */ + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_MIN_FRAMES, + g_param_spec_int ("min-frames", "minimum frame number", + "Minimum quantity of frames to send in one packet " + "(-1 for maximum allowed by the mtu)", + -1, G_MAXINT, DEFAULT_MIN_FRAMES, G_PARAM_READWRITE)); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_sbc_pay_sink_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_sbc_pay_src_factory)); + + gst_element_class_set_static_metadata (element_class, "RTP packet payloader", + "Codec/Payloader/Network", "Payload SBC audio as RTP packets", + "Thiago Sousa Santos <thiagoss@lcc.ufcg.edu.br>"); + + GST_DEBUG_CATEGORY_INIT (gst_rtp_sbc_pay_debug, "rtpsbcpay", 0, + "RTP SBC payloader"); +} + +static void +gst_rtp_sbc_pay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstRtpSBCPay *sbcpay; + + sbcpay = GST_RTP_SBC_PAY (object); + + switch (prop_id) { + case PROP_MIN_FRAMES: + sbcpay->min_frames = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_rtp_sbc_pay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstRtpSBCPay *sbcpay; + + sbcpay = GST_RTP_SBC_PAY (object); + + switch (prop_id) { + case PROP_MIN_FRAMES: + g_value_set_int (value, sbcpay->min_frames); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_rtp_sbc_pay_init (GstRtpSBCPay * self) +{ + self->adapter = gst_adapter_new (); + self->frame_length = 0; + self->timestamp = 0; + + self->min_frames = DEFAULT_MIN_FRAMES; +} + +gboolean +gst_rtp_sbc_pay_plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "rtpsbcpay", GST_RANK_NONE, + GST_TYPE_RTP_SBC_PAY); +} diff --git a/gst/rtp/gstrtpsbcpay.h b/gst/rtp/gstrtpsbcpay.h new file mode 100644 index 0000000000000000000000000000000000000000..42cf02e2d4ef6afcc57025340d52b00669c721ef --- /dev/null +++ b/gst/rtp/gstrtpsbcpay.h @@ -0,0 +1,64 @@ +/* GStreamer RTP SBC payloader + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2004-2010 Marcel Holtmann <marcel@holtmann.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#include <gst/gst.h> +#include <gst/base/gstadapter.h> +#include <gst/rtp/gstrtpbasepayload.h> +#include <gst/rtp/gstrtpbuffer.h> + +G_BEGIN_DECLS + +#define GST_TYPE_RTP_SBC_PAY \ + (gst_rtp_sbc_pay_get_type()) +#define GST_RTP_SBC_PAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_SBC_PAY,\ + GstRtpSBCPay)) +#define GST_RTP_SBC_PAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_SBC_PAY,\ + GstRtpSBCPayClass)) +#define GST_IS_RTP_SBC_PAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_SBC_PAY)) +#define GST_IS_RTP_SBC_PAY_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_SBC_PAY)) + +typedef struct _GstRtpSBCPay GstRtpSBCPay; +typedef struct _GstRtpSBCPayClass GstRtpSBCPayClass; + +struct _GstRtpSBCPay { + GstRTPBasePayload base; + + GstAdapter *adapter; + GstClockTime timestamp; + + guint frame_length; + + guint min_frames; +}; + +struct _GstRtpSBCPayClass { + GstRTPBasePayloadClass parent_class; +}; + +GType gst_rtp_sbc_pay_get_type(void); + +gboolean gst_rtp_sbc_pay_plugin_init (GstPlugin * plugin); + +G_END_DECLS diff --git a/gst/rtp/gstrtpsirendepay.c b/gst/rtp/gstrtpsirendepay.c index e09964246fa9fabbfbcb8cc094d02172a7d8eacd..9d1e1ef62dd692349506c25e05176905c2745443 100644 --- a/gst/rtp/gstrtpsirendepay.c +++ b/gst/rtp/gstrtpsirendepay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -34,7 +34,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 16000, " "encoding-name = (string) \"SIREN\", " "dct-length = (int) 320") ); diff --git a/gst/rtp/gstrtpsirendepay.h b/gst/rtp/gstrtpsirendepay.h index 1483f1d199ce5f7b181c26de21e6c03a83ca5f82..d1ffb11e040a97811923331c9a18a8cf4ae7b024 100644 --- a/gst/rtp/gstrtpsirendepay.h +++ b/gst/rtp/gstrtpsirendepay.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_SIREN_DEPAY_H__ diff --git a/gst/rtp/gstrtpsirenpay.c b/gst/rtp/gstrtpsirenpay.c index e62f189957f50ebbe17e426726bccc0729f046be..2277fecfe84d51516ef62d78efdbda3cfdfcd40b 100644 --- a/gst/rtp/gstrtpsirenpay.c +++ b/gst/rtp/gstrtpsirenpay.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpsirenpay.h b/gst/rtp/gstrtpsirenpay.h index ee9f3d2308ac802259f96aa7ac42844e14a81afb..eaba5b5a48b5db5cd8c479a78743ea6b980ad449 100644 --- a/gst/rtp/gstrtpsirenpay.h +++ b/gst/rtp/gstrtpsirenpay.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_SIREN_PAY_H__ diff --git a/gst/rtp/gstrtpspeexdepay.c b/gst/rtp/gstrtpspeexdepay.c index 3e30f04317e1f884a449963261c6acc0a6ff3917..97250a765bbfa779e074ed1c1e70243320647f86 100644 --- a/gst/rtp/gstrtpspeexdepay.c +++ b/gst/rtp/gstrtpspeexdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -45,7 +45,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [6000, 48000], " "encoding-name = (string) \"SPEEX\", " "encoding-params = (string) \"1\"") diff --git a/gst/rtp/gstrtpspeexpay.c b/gst/rtp/gstrtpspeexpay.c index bb56412fa93353a20df69e899e9376183e93cc4a..1f838664fa5cb1bb18df004d595ba95e6007c6e1 100644 --- a/gst/rtp/gstrtpspeexpay.c +++ b/gst/rtp/gstrtpspeexpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpsv3vdepay.c b/gst/rtp/gstrtpsv3vdepay.c index 1c0f1087f15dbf7425bdfbc568594611f9a3909d..7e3bc89918d07899333b10577c862011cf9dc895 100644 --- a/gst/rtp/gstrtpsv3vdepay.c +++ b/gst/rtp/gstrtpsv3vdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -42,7 +42,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) { \"X-SV3V-ES\", \"X-SORENSON-VIDEO\" , \"X-SORENSONVIDEO\" , \"X-SorensonVideo\" }") ); diff --git a/gst/rtp/gstrtpsv3vdepay.h b/gst/rtp/gstrtpsv3vdepay.h index 86db193b60f6050358c23e3e104e7941b13288b7..428684a7d7417b6d4c6fd9b6c0edf927588b745a 100644 --- a/gst/rtp/gstrtpsv3vdepay.h +++ b/gst/rtp/gstrtpsv3vdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_SV3V_DEPAY_H__ diff --git a/gst/rtp/gstrtptheoradepay.c b/gst/rtp/gstrtptheoradepay.c index 5c6fe82742fadfdd1b6b3210ce3cc5ec3d35d504..8fa348a65a3010bfb6c83a4bcce15360811a8dfb 100644 --- a/gst/rtp/gstrtptheoradepay.c +++ b/gst/rtp/gstrtptheoradepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -36,7 +36,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"THEORA\"" /* All required parameters * @@ -550,8 +549,11 @@ gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) gst_buffer_fill (outbuf, 0, payload, length); } - if (payload_len > 0 && (payload[0] & 0xC0) == 0x0) + if (payload_len > 0 && (payload[0] & 0xC0) == 0x0) { rtptheoradepay->needs_keyframe = FALSE; + } else { + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT); + } payload += length; payload_len -= length; diff --git a/gst/rtp/gstrtptheoradepay.h b/gst/rtp/gstrtptheoradepay.h index 320e9b7ef40f821388cda7ffcd83a43e81e9798a..2b0b26016e7890339c749d2ccc3d447608ba9840 100644 --- a/gst/rtp/gstrtptheoradepay.h +++ b/gst/rtp/gstrtptheoradepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_THEORA_DEPAY_H__ diff --git a/gst/rtp/gstrtptheorapay.c b/gst/rtp/gstrtptheorapay.c index 296e1457a4fdd6076d92b75a29a951f42417ec5a..baca249c0b7916d44f314240243dcb38a79bde87 100644 --- a/gst/rtp/gstrtptheorapay.c +++ b/gst/rtp/gstrtptheorapay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -87,6 +87,10 @@ static GstFlowReturn gst_rtp_theora_pay_handle_buffer (GstRTPBasePayload * pad, static gboolean gst_rtp_theora_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event); +static gboolean gst_rtp_theora_pay_parse_id (GstRTPBasePayload * basepayload, + guint8 * data, guint size); +static gboolean gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * + basepayload); static void gst_rtp_theora_pay_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); @@ -168,12 +172,83 @@ static gboolean gst_rtp_theora_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps) { GstRtpTheoraPay *rtptheorapay; + GstStructure *s; + const GValue *array; + gint asize, i; + GstBuffer *buf; + GstMapInfo map; rtptheorapay = GST_RTP_THEORA_PAY (basepayload); + s = gst_caps_get_structure (caps, 0); + rtptheorapay->need_headers = TRUE; + if ((array = gst_structure_get_value (s, "streamheader")) == NULL) + goto done; + + if (G_VALUE_TYPE (array) != GST_TYPE_ARRAY) + goto done; + + if ((asize = gst_value_array_get_size (array)) < 3) + goto done; + + for (i = 0; i < asize; i++) { + const GValue *value; + + value = gst_value_array_get_value (array, i); + if ((buf = gst_value_get_buffer (value)) == NULL) + goto null_buffer; + + gst_buffer_map (buf, &map, GST_MAP_READ); + /* no data packets allowed */ + if (map.size < 1) + goto invalid_streamheader; + + /* we need packets with id 0x80, 0x81, 0x82 */ + if (map.data[0] != 0x80 + i) + goto invalid_streamheader; + + if (i == 0) { + /* identification, we need to parse this in order to get the clock rate. */ + if (G_UNLIKELY (!gst_rtp_theora_pay_parse_id (basepayload, map.data, + map.size))) + goto parse_id_failed; + } + GST_DEBUG_OBJECT (rtptheorapay, "collecting header %d", i); + rtptheorapay->headers = + g_list_append (rtptheorapay->headers, gst_buffer_ref (buf)); + gst_buffer_unmap (buf, &map); + } + if (!gst_rtp_theora_pay_finish_headers (basepayload)) + goto finish_failed; + +done: return TRUE; + + /* ERRORS */ +null_buffer: + { + GST_WARNING_OBJECT (rtptheorapay, "streamheader with null buffer received"); + return FALSE; + } +invalid_streamheader: + { + GST_WARNING_OBJECT (rtptheorapay, "unable to parse initial header"); + gst_buffer_unmap (buf, &map); + return FALSE; + } +parse_id_failed: + { + GST_WARNING_OBJECT (rtptheorapay, "unable to parse initial header"); + gst_buffer_unmap (buf, &map); + return FALSE; + } +finish_failed: + { + GST_WARNING_OBJECT (rtptheorapay, "unable to finish headers"); + return FALSE; + } } static void @@ -387,7 +462,6 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload) /* store length for each header */ for (walk = rtptheorapay->headers; walk; walk = g_list_next (walk)) { GstBuffer *buf = GST_BUFFER_CAST (walk->data); - guint bsize, size, temp; guint flag; @@ -412,7 +486,7 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload) size--; data[size] = (bsize & 0x7f) | flag; bsize >>= 7; - flag = 0x80; + flag = 0x80; /* Flag bit on all bytes of the length except the last */ } data += temp; } @@ -420,13 +494,14 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload) /* copy header data */ for (walk = rtptheorapay->headers; walk; walk = g_list_next (walk)) { GstBuffer *buf = GST_BUFFER_CAST (walk->data); - GstMapInfo map; - gst_buffer_map (buf, &map, GST_MAP_READ); - memcpy (data, map.data, map.size); - gst_buffer_unmap (buf, &map); - data += map.size; + gst_buffer_extract (buf, 0, data, gst_buffer_get_size (buf)); + data += gst_buffer_get_size (buf); + gst_buffer_unref (buf); } + g_list_free (rtptheorapay->headers); + rtptheorapay->headers = NULL; + rtptheorapay->need_headers = FALSE; /* serialize to base64 */ configuration = g_base64_encode (config, configlen); @@ -607,9 +682,9 @@ gst_rtp_theora_pay_payload_buffer (GstRtpTheoraPay * rtptheorapay, guint8 TDT, } } if (fragmented) { + gst_rtp_buffer_unmap (&rtp); /* fragmented packets are always flushed and have ptks of 0 */ rtptheorapay->payload_pkts = 0; - gst_rtp_buffer_unmap (&rtp); ret = gst_rtp_theora_pay_flush_packet (rtptheorapay); if (size > 0) { @@ -688,20 +763,17 @@ gst_rtp_theora_pay_handle_buffer (GstRTPBasePayload * basepayload, keyframe = ((data[0] & 0x40) == 0); } - if (rtptheorapay->need_headers) { - /* we need to collect the headers and construct a config string from them */ - if (TDT != 0) { - GST_DEBUG_OBJECT (rtptheorapay, "collecting header, buffer %p", buffer); - /* append header to the list of headers */ - gst_buffer_unmap (buffer, &map); - rtptheorapay->headers = g_list_append (rtptheorapay->headers, buffer); - ret = GST_FLOW_OK; - goto done; - } else { - if (!gst_rtp_theora_pay_finish_headers (basepayload)) - goto header_error; - rtptheorapay->need_headers = FALSE; - } + /* we need to collect the headers and construct a config string from them */ + if (TDT != 0) { + GST_DEBUG_OBJECT (rtptheorapay, "collecting header, buffer %p", buffer); + /* append header to the list of headers */ + gst_buffer_unmap (buffer, &map); + rtptheorapay->headers = g_list_append (rtptheorapay->headers, buffer); + ret = GST_FLOW_OK; + goto done; + } else if (rtptheorapay->headers) { + if (!gst_rtp_theora_pay_finish_headers (basepayload)) + goto header_error; } /* there is a config request, see if we need to insert it */ diff --git a/gst/rtp/gstrtptheorapay.h b/gst/rtp/gstrtptheorapay.h index 5d46937aa8ad7b438f8d597476c0887507f2fcf2..0a1d4725d43cf010f036c7bfe0e57ac7672115b6 100644 --- a/gst/rtp/gstrtptheorapay.h +++ b/gst/rtp/gstrtptheorapay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_THEORA_PAY_H__ diff --git a/gst/rtp/gstrtpvorbisdepay.c b/gst/rtp/gstrtpvorbisdepay.c index dea894dafff8b5e66a9d0107bb1c8cd2df8a9086..77097510d9969867b07c8876093363ef8abbe0da 100644 --- a/gst/rtp/gstrtpvorbisdepay.c +++ b/gst/rtp/gstrtpvorbisdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -40,7 +40,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"VORBIS\"" /* All required parameters * diff --git a/gst/rtp/gstrtpvorbisdepay.h b/gst/rtp/gstrtpvorbisdepay.h index fb362f7b2fbd9b415db98c9b6edfea424898c3b5..a343d04e159f910e0837a06576970e9e816f0e04 100644 --- a/gst/rtp/gstrtpvorbisdepay.h +++ b/gst/rtp/gstrtpvorbisdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_VORBIS_DEPAY_H__ diff --git a/gst/rtp/gstrtpvorbispay.c b/gst/rtp/gstrtpvorbispay.c index dc1db9b0f77078d56e92de8b8ac2870b728cfafc..b7ff2ccf2bc140044530ec95889bd65d819cf015 100644 --- a/gst/rtp/gstrtpvorbispay.c +++ b/gst/rtp/gstrtpvorbispay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -58,6 +58,14 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_CAPS ("audio/x-vorbis") ); +#define DEFAULT_CONFIG_INTERVAL 0 + +enum +{ + PROP_0, + PROP_CONFIG_INTERVAL +}; + #define gst_rtp_vorbis_pay_parent_class parent_class G_DEFINE_TYPE (GstRtpVorbisPay, gst_rtp_vorbis_pay, GST_TYPE_RTP_BASE_PAYLOAD); @@ -70,12 +78,24 @@ static GstFlowReturn gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * pad, static gboolean gst_rtp_vorbis_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event); +static gboolean gst_rtp_vorbis_pay_parse_id (GstRTPBasePayload * basepayload, + guint8 * data, guint size); +static gboolean gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * + basepayload); + +static void gst_rtp_vorbis_pay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_rtp_vorbis_pay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + static void gst_rtp_vorbis_pay_class_init (GstRtpVorbisPayClass * klass) { + GObjectClass *gobject_class; GstElementClass *gstelement_class; GstRTPBasePayloadClass *gstrtpbasepayload_class; + gobject_class = (GObjectClass *) klass; gstelement_class = (GstElementClass *) klass; gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass; @@ -85,6 +105,9 @@ gst_rtp_vorbis_pay_class_init (GstRtpVorbisPayClass * klass) gstrtpbasepayload_class->handle_buffer = gst_rtp_vorbis_pay_handle_buffer; gstrtpbasepayload_class->sink_event = gst_rtp_vorbis_pay_sink_event; + gobject_class->set_property = gst_rtp_vorbis_pay_set_property; + gobject_class->get_property = gst_rtp_vorbis_pay_get_property; + gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_rtp_vorbis_pay_src_template)); gst_element_class_add_pad_template (gstelement_class, @@ -98,11 +121,20 @@ gst_rtp_vorbis_pay_class_init (GstRtpVorbisPayClass * klass) GST_DEBUG_CATEGORY_INIT (rtpvorbispay_debug, "rtpvorbispay", 0, "Vorbis RTP Payloader"); + + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_CONFIG_INTERVAL, + g_param_spec_uint ("config-interval", "Config Send Interval", + "Send Config Insertion Interval in seconds (configuration headers " + "will be multiplexed in the data stream when detected.) (0 = disabled)", + 0, 3600, DEFAULT_CONFIG_INTERVAL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS) + ); } static void gst_rtp_vorbis_pay_init (GstRtpVorbisPay * rtpvorbispay) { + rtpvorbispay->last_config = GST_CLOCK_TIME_NONE; } static void @@ -121,18 +153,97 @@ gst_rtp_vorbis_pay_cleanup (GstRtpVorbisPay * rtpvorbispay) rtpvorbispay->headers = NULL; gst_rtp_vorbis_pay_clear_packet (rtpvorbispay); + + if (rtpvorbispay->config_data) + g_free (rtpvorbispay->config_data); + rtpvorbispay->config_data = NULL; + rtpvorbispay->last_config = GST_CLOCK_TIME_NONE; } static gboolean gst_rtp_vorbis_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps) { GstRtpVorbisPay *rtpvorbispay; + GstStructure *s; + const GValue *array; + gint asize, i; + GstBuffer *buf; + GstMapInfo map; rtpvorbispay = GST_RTP_VORBIS_PAY (basepayload); + s = gst_caps_get_structure (caps, 0); + rtpvorbispay->need_headers = TRUE; + if ((array = gst_structure_get_value (s, "streamheader")) == NULL) + goto done; + + if (G_VALUE_TYPE (array) != GST_TYPE_ARRAY) + goto done; + + if ((asize = gst_value_array_get_size (array)) < 3) + goto done; + + for (i = 0; i < asize; i++) { + const GValue *value; + + value = gst_value_array_get_value (array, i); + if ((buf = gst_value_get_buffer (value)) == NULL) + goto null_buffer; + + gst_buffer_map (buf, &map, GST_MAP_READ); + if (map.size < 1) + goto invalid_streamheader; + + /* no data packets allowed */ + if ((map.data[0] & 1) == 0) + goto invalid_streamheader; + + /* we need packets with id 1, 3, 5 */ + if (map.data[0] != (i * 2) + 1) + goto invalid_streamheader; + + if (i == 0) { + /* identification, we need to parse this in order to get the clock rate. */ + if (G_UNLIKELY (!gst_rtp_vorbis_pay_parse_id (basepayload, map.data, + map.size))) + goto parse_id_failed; + } + GST_DEBUG_OBJECT (rtpvorbispay, "collecting header %d", i); + rtpvorbispay->headers = + g_list_append (rtpvorbispay->headers, gst_buffer_ref (buf)); + gst_buffer_unmap (buf, &map); + } + if (!gst_rtp_vorbis_pay_finish_headers (basepayload)) + goto finish_failed; + +done: return TRUE; + + /* ERRORS */ +null_buffer: + { + GST_WARNING_OBJECT (rtpvorbispay, "streamheader with null buffer received"); + return FALSE; + } +invalid_streamheader: + { + GST_WARNING_OBJECT (rtpvorbispay, "unable to parse initial header"); + gst_buffer_unmap (buf, &map); + return FALSE; + } +parse_id_failed: + { + GST_WARNING_OBJECT (rtpvorbispay, "unable to parse initial header"); + gst_buffer_unmap (buf, &map); + return FALSE; + } +finish_failed: + { + GST_WARNING_OBJECT (rtpvorbispay, "unable to finish headers"); + return FALSE; + } } static void @@ -168,6 +279,7 @@ gst_rtp_vorbis_pay_init_packet (GstRtpVorbisPay * rtpvorbispay, guint8 VDT, gst_rtp_buffer_new_allocate_len (GST_RTP_BASE_PAYLOAD_MTU (rtpvorbispay), 0, 0); gst_rtp_vorbis_pay_reset_packet (rtpvorbispay, VDT); + GST_BUFFER_TIMESTAMP (rtpvorbispay->packet) = timestamp; } @@ -229,7 +341,7 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload) { GstRtpVorbisPay *rtpvorbispay = GST_RTP_VORBIS_PAY (basepayload); GList *walk; - guint length, size, n_headers, configlen; + guint length, size, n_headers, configlen, extralen; gchar *cstr, *configuration; guint8 *data, *config; guint32 ident; @@ -288,6 +400,7 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload) length = 0; n_headers = 0; ident = fnv1_hash_32_new (); + extralen = 1; for (walk = rtpvorbispay->headers; walk; walk = g_list_next (walk)) { GstBuffer *buf = GST_BUFFER_CAST (walk->data); GstMapInfo map; @@ -302,6 +415,7 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload) if (g_list_next (walk)) { do { size++; + extralen++; bsize >>= 7; } while (bsize); } @@ -376,10 +490,22 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload) gst_buffer_extract (buf, 0, data, gst_buffer_get_size (buf)); data += gst_buffer_get_size (buf); + gst_buffer_unref (buf); } + g_list_free (rtpvorbispay->headers); + rtpvorbispay->headers = NULL; + rtpvorbispay->need_headers = FALSE; /* serialize to base64 */ configuration = g_base64_encode (config, configlen); + + /* store for later re-sending */ + rtpvorbispay->config_size = configlen - 4 - 3 - 2; + rtpvorbispay->config_data = g_malloc (rtpvorbispay->config_size); + rtpvorbispay->config_extra_len = extralen; + memcpy (rtpvorbispay->config_data, config + 4 + 3 + 2, + rtpvorbispay->config_size); + g_free (config); /* configure payloader settings */ @@ -468,74 +594,20 @@ invalid_channels: } static GstFlowReturn -gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload, - GstBuffer * buffer) +gst_rtp_vorbis_pay_payload_buffer (GstRtpVorbisPay * rtpvorbispay, guint8 VDT, + guint8 * data, guint size, GstClockTime timestamp, GstClockTime duration, + guint not_in_length) { - GstRtpVorbisPay *rtpvorbispay; - GstFlowReturn ret; + GstFlowReturn ret = GST_FLOW_OK; guint newsize; - GstMapInfo map; - gsize size; - guint8 *data; guint packet_len; - GstClockTime duration, newduration, timestamp; + GstClockTime newduration; gboolean flush; - guint8 VDT; guint plen; guint8 *ppos, *payload; gboolean fragmented; GstRTPBuffer rtp = { NULL }; - rtpvorbispay = GST_RTP_VORBIS_PAY (basepayload); - - gst_buffer_map (buffer, &map, GST_MAP_READ); - data = map.data; - size = map.size; - duration = GST_BUFFER_DURATION (buffer); - timestamp = GST_BUFFER_TIMESTAMP (buffer); - - GST_LOG_OBJECT (rtpvorbispay, "size %" G_GSIZE_FORMAT - ", duration %" GST_TIME_FORMAT, size, GST_TIME_ARGS (duration)); - - if (G_UNLIKELY (size < 1 || size > 0xffff)) - goto wrong_size; - - /* find packet type */ - if (data[0] & 1) { - /* header */ - if (data[0] == 1) { - /* identification, we need to parse this in order to get the clock rate. */ - if (G_UNLIKELY (!gst_rtp_vorbis_pay_parse_id (basepayload, data, size))) - goto parse_id_failed; - VDT = 1; - } else if (data[0] == 3) { - /* comment */ - VDT = 2; - } else if (data[0] == 5) { - /* setup */ - VDT = 1; - } else - goto unknown_header; - } else - /* data */ - VDT = 0; - - if (rtpvorbispay->need_headers) { - /* we need to collect the headers and construct a config string from them */ - if (VDT != 0) { - GST_DEBUG_OBJECT (rtpvorbispay, "collecting header"); - /* append header to the list of headers */ - gst_buffer_unmap (buffer, &map); - rtpvorbispay->headers = g_list_append (rtpvorbispay->headers, buffer); - ret = GST_FLOW_OK; - goto done; - } else { - if (!gst_rtp_vorbis_pay_finish_headers (basepayload)) - goto header_error; - rtpvorbispay->need_headers = FALSE; - } - } - /* size increases with packet length and 2 bytes size eader. */ newduration = rtpvorbispay->payload_duration; if (duration != GST_CLOCK_TIME_NONE) @@ -545,14 +617,15 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload, packet_len = gst_rtp_buffer_calc_packet_len (newsize, 0, 0); /* check buffer filled against length and max latency */ - flush = gst_rtp_base_payload_is_filled (basepayload, packet_len, newduration); + flush = gst_rtp_base_payload_is_filled (GST_RTP_BASE_PAYLOAD (rtpvorbispay), + packet_len, newduration); /* we can store up to 15 vorbis packets in one RTP packet. */ flush |= (rtpvorbispay->payload_pkts == 15); /* flush if we have a new VDT */ if (rtpvorbispay->packet) flush |= (rtpvorbispay->payload_VDT != VDT); if (flush) - gst_rtp_vorbis_pay_flush_packet (rtpvorbispay); + ret = gst_rtp_vorbis_pay_flush_packet (rtpvorbispay); /* create new packet if we must */ if (!rtpvorbispay->packet) { @@ -564,19 +637,22 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload, ppos = payload + rtpvorbispay->payload_pos; fragmented = FALSE; - ret = GST_FLOW_OK; - /* put buffer in packet, it either fits completely or needs to be fragmented * over multiple RTP packets. */ - while (size) { + do { plen = MIN (rtpvorbispay->payload_left - 2, size); GST_LOG_OBJECT (rtpvorbispay, "append %u bytes", plen); /* data is copied in the payload with a 2 byte length header */ - ppos[0] = (plen >> 8) & 0xff; - ppos[1] = (plen & 0xff); - memcpy (&ppos[2], data, plen); + ppos[0] = ((plen - not_in_length) >> 8) & 0xff; + ppos[1] = ((plen - not_in_length) & 0xff); + if (plen) + memcpy (&ppos[2], data, plen); + + /* only first (only) configuration cuts length field */ + /* NOTE: spec (if any) is not clear on this ... */ + not_in_length = 0; size -= plen; data += plen; @@ -620,11 +696,122 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload, if (duration != GST_CLOCK_TIME_NONE) rtpvorbispay->payload_duration += duration; } - } + } while (size); if (rtp.buffer) gst_rtp_buffer_unmap (&rtp); + return ret; +} + +static GstFlowReturn +gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload, + GstBuffer * buffer) +{ + GstRtpVorbisPay *rtpvorbispay; + GstFlowReturn ret; + GstMapInfo map; + gsize size; + guint8 *data; + GstClockTime duration, timestamp; + guint8 VDT; + + rtpvorbispay = GST_RTP_VORBIS_PAY (basepayload); + + gst_buffer_map (buffer, &map, GST_MAP_READ); + data = map.data; + size = map.size; + duration = GST_BUFFER_DURATION (buffer); + timestamp = GST_BUFFER_TIMESTAMP (buffer); + + GST_LOG_OBJECT (rtpvorbispay, "size %" G_GSIZE_FORMAT + ", duration %" GST_TIME_FORMAT, size, GST_TIME_ARGS (duration)); + + if (G_UNLIKELY (size < 1 || size > 0xffff)) + goto wrong_size; + + /* find packet type */ + if (data[0] & 1) { + /* header */ + if (data[0] == 1) { + /* identification, we need to parse this in order to get the clock rate. */ + if (G_UNLIKELY (!gst_rtp_vorbis_pay_parse_id (basepayload, data, size))) + goto parse_id_failed; + VDT = 1; + } else if (data[0] == 3) { + /* comment */ + VDT = 2; + } else if (data[0] == 5) { + /* setup */ + VDT = 1; + } else + goto unknown_header; + } else + /* data */ + VDT = 0; + + /* we need to collect the headers and construct a config string from them */ + if (VDT != 0) { + GST_DEBUG_OBJECT (rtpvorbispay, "collecting header"); + /* append header to the list of headers */ + gst_buffer_unmap (buffer, &map); + rtpvorbispay->headers = g_list_append (rtpvorbispay->headers, buffer); + ret = GST_FLOW_OK; + goto done; + } else if (rtpvorbispay->headers) { + if (!gst_rtp_vorbis_pay_finish_headers (basepayload)) + goto header_error; + } + + /* there is a config request, see if we need to insert it */ + if (rtpvorbispay->config_interval > 0 && rtpvorbispay->config_data) { + gboolean send_config = FALSE; + + if (rtpvorbispay->last_config != -1) { + guint64 diff; + + GST_LOG_OBJECT (rtpvorbispay, + "now %" GST_TIME_FORMAT ", last config %" GST_TIME_FORMAT, + GST_TIME_ARGS (timestamp), GST_TIME_ARGS (rtpvorbispay->last_config)); + + /* calculate diff between last config in milliseconds */ + if (timestamp > rtpvorbispay->last_config) { + diff = timestamp - rtpvorbispay->last_config; + } else { + diff = 0; + } + + GST_DEBUG_OBJECT (rtpvorbispay, + "interval since last config %" GST_TIME_FORMAT, GST_TIME_ARGS (diff)); + + /* bigger than interval, queue config */ + /* FIXME should convert timestamps to running time */ + if (GST_TIME_AS_SECONDS (diff) >= rtpvorbispay->config_interval) { + GST_DEBUG_OBJECT (rtpvorbispay, "time to send config"); + send_config = TRUE; + } + } else { + /* no known previous config time, send now */ + GST_DEBUG_OBJECT (rtpvorbispay, "no previous config time, send now"); + send_config = TRUE; + } + + if (send_config) { + /* we need to send config now first */ + /* different TDT type forces flush */ + gst_rtp_vorbis_pay_payload_buffer (rtpvorbispay, 1, + rtpvorbispay->config_data, rtpvorbispay->config_size, + timestamp, GST_CLOCK_TIME_NONE, rtpvorbispay->config_extra_len); + + if (timestamp != -1) { + rtpvorbispay->last_config = timestamp; + } + } + } + + ret = gst_rtp_vorbis_pay_payload_buffer (rtpvorbispay, VDT, data, size, + timestamp, duration, 0); + gst_buffer_unmap (buffer, &map); gst_buffer_unref (buffer); @@ -707,6 +894,40 @@ gst_rtp_vorbis_pay_change_state (GstElement * element, return ret; } +static void +gst_rtp_vorbis_pay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstRtpVorbisPay *rtpvorbispay; + + rtpvorbispay = GST_RTP_VORBIS_PAY (object); + + switch (prop_id) { + case PROP_CONFIG_INTERVAL: + rtpvorbispay->config_interval = g_value_get_uint (value); + break; + default: + break; + } +} + +static void +gst_rtp_vorbis_pay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstRtpVorbisPay *rtpvorbispay; + + rtpvorbispay = GST_RTP_VORBIS_PAY (object); + + switch (prop_id) { + case PROP_CONFIG_INTERVAL: + g_value_set_uint (value, rtpvorbispay->config_interval); + break; + default: + break; + } +} + gboolean gst_rtp_vorbis_pay_plugin_init (GstPlugin * plugin) { diff --git a/gst/rtp/gstrtpvorbispay.h b/gst/rtp/gstrtpvorbispay.h index 1d14d2c1764d8a84c6c3b4ed5b623ac9460b1193..8f0974a0b3501faf0c67f4c842749c1e3833fdbe 100644 --- a/gst/rtp/gstrtpvorbispay.h +++ b/gst/rtp/gstrtpvorbispay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_VORBIS_PAY_H__ @@ -59,6 +59,13 @@ struct _GstRtpVorbisPay GstClockTime payload_timestamp; GstClockTime payload_duration; + /* config (re-sending) */ + guint8 *config_data; + guint config_size; + guint config_extra_len; + guint config_interval; + GstClockTime last_config; + gint rate; gint channels; }; diff --git a/gst/rtp/gstrtpvp8depay.c b/gst/rtp/gstrtpvp8depay.c new file mode 100644 index 0000000000000000000000000000000000000000..2d46f5e0c359a17738b48c89520e9540174c1482 --- /dev/null +++ b/gst/rtp/gstrtpvp8depay.c @@ -0,0 +1,206 @@ +/* gstrtpvp8depay.c - Source for GstRtpVP8Depay + * Copyright (C) 2011 Sjoerd Simons <sjoerd@luon.net> + * Copyright (C) 2011 Collabora Ltd. + * Contact: Youness Alaoui <youness.alaoui@collabora.co.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "gstrtpvp8depay.h" + +GST_DEBUG_CATEGORY_STATIC (gst_rtp_vp8_depay_debug); +#define GST_CAT_DEFAULT gst_rtp_vp8_depay_debug + +static void gst_rtp_vp8_depay_dispose (GObject * object); +static GstBuffer *gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depayload, + GstBuffer * buf); +static gboolean gst_rtp_vp8_depay_set_caps (GstRTPBaseDepayload * depayload, + GstCaps * caps); + +G_DEFINE_TYPE (GstRtpVP8Depay, gst_rtp_vp8_depay, GST_TYPE_RTP_BASE_DEPAYLOAD); + +static GstStaticPadTemplate gst_rtp_vp8_depay_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-vp8")); + +static GstStaticPadTemplate gst_rtp_vp8_depay_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "clock-rate = (int) 90000," + "media = (string) \"video\"," + "encoding-name = (string) \"VP8-DRAFT-IETF-01\"")); + +static void +gst_rtp_vp8_depay_init (GstRtpVP8Depay * self) +{ + self->adapter = gst_adapter_new (); + self->started = FALSE; +} + +static void +gst_rtp_vp8_depay_class_init (GstRtpVP8DepayClass * gst_rtp_vp8_depay_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (gst_rtp_vp8_depay_class); + GstElementClass *element_class = GST_ELEMENT_CLASS (gst_rtp_vp8_depay_class); + GstRTPBaseDepayloadClass *depay_class = + (GstRTPBaseDepayloadClass *) (gst_rtp_vp8_depay_class); + + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_vp8_depay_sink_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_vp8_depay_src_template)); + + gst_element_class_set_static_metadata (element_class, "RTP VP8 depayloader", + "Codec/Depayloader/Network/RTP", + "Extracts VP8 video from RTP packets)", + "Sjoerd Simons <sjoerd@luon.net>"); + + object_class->dispose = gst_rtp_vp8_depay_dispose; + + depay_class->process = gst_rtp_vp8_depay_process; + depay_class->set_caps = gst_rtp_vp8_depay_set_caps; + + GST_DEBUG_CATEGORY_INIT (gst_rtp_vp8_depay_debug, "rtpvp8depay", 0, + "VP8 Video RTP Depayloader"); +} + +static void +gst_rtp_vp8_depay_dispose (GObject * object) +{ + GstRtpVP8Depay *self = GST_RTP_VP8_DEPAY (object); + + if (self->adapter != NULL) + g_object_unref (self->adapter); + self->adapter = NULL; + + /* release any references held by the object here */ + + if (G_OBJECT_CLASS (gst_rtp_vp8_depay_parent_class)->dispose) + G_OBJECT_CLASS (gst_rtp_vp8_depay_parent_class)->dispose (object); +} + +static GstBuffer * +gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstBuffer * buf) +{ + GstRtpVP8Depay *self = GST_RTP_VP8_DEPAY (depay); + GstBuffer *payload; + guint8 *data; + guint offset; + guint size; + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + + if (G_UNLIKELY (GST_BUFFER_IS_DISCONT (buf))) { + GST_LOG_OBJECT (self, "Discontinuity, flushing adapter"); + gst_adapter_clear (self->adapter); + self->started = FALSE; + } + + gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuffer); + size = gst_rtp_buffer_get_payload_len (&rtpbuffer); + + /* At least one header and one vp8 byte */ + if (G_UNLIKELY (size < 2)) + goto too_small; + + data = gst_rtp_buffer_get_payload (&rtpbuffer); + + if (G_UNLIKELY (!self->started)) { + /* Check if this is the start of a VP8 frame, otherwise bail */ + /* S=1 and PartID= 0 */ + if ((data[0] & 0x1F) != 0x10) + goto done; + + self->started = TRUE; + } + + offset = 1; + /* Check X optional header */ + if ((data[0] & 0x80) != 0) { + offset++; + /* Check I optional header */ + if ((data[1] & 0x80) != 0) { + offset++; + if (G_UNLIKELY (offset + 2 >= size)) + goto too_small; + /* Check for 16 bits PictureID */ + if ((data[2] & 0x80) != 0) + offset++; + } + /* Check L optional header */ + if ((data[1] & 0x40) != 0) + offset++; + /* Check T or K optional headers */ + if ((data[1] & 0x20) != 0 || (data[1] & 0x10) != 0) + offset++; + } + + if (G_UNLIKELY (offset >= size)) + goto too_small; + + payload = gst_rtp_buffer_get_payload_subbuffer (&rtpbuffer, offset, -1); + gst_adapter_push (self->adapter, payload); + + /* Marker indicates that it was the last rtp packet for this frame */ + if (gst_rtp_buffer_get_marker (&rtpbuffer)) { + GstBuffer *out; + + out = gst_adapter_take_buffer (self->adapter, + gst_adapter_available (self->adapter)); + + self->started = FALSE; + gst_rtp_buffer_unmap (&rtpbuffer); + return out; + } + +done: + gst_rtp_buffer_unmap (&rtpbuffer); + return NULL; + +too_small: + GST_LOG_OBJECT (self, "Invalid rtp packet (too small), ignoring"); + gst_adapter_clear (self->adapter); + self->started = FALSE; + + goto done; +} + +static gboolean +gst_rtp_vp8_depay_set_caps (GstRTPBaseDepayload * depayload, GstCaps * caps) +{ + GstCaps *srccaps = gst_caps_new_simple ("video/x-vp8", + "framerate", GST_TYPE_FRACTION, 0, 1, + NULL); + + gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (depayload), srccaps); + gst_caps_unref (srccaps); + + return TRUE; +} + +gboolean +gst_rtp_vp8_depay_plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "rtpvp8depay", + GST_RANK_MARGINAL, GST_TYPE_RTP_VP8_DEPAY); +} diff --git a/gst/rtp/gstrtpvp8depay.h b/gst/rtp/gstrtpvp8depay.h new file mode 100644 index 0000000000000000000000000000000000000000..f10b5637f07762087aedfb407f17640a8e6a4628 --- /dev/null +++ b/gst/rtp/gstrtpvp8depay.h @@ -0,0 +1,64 @@ +/* + * gstrtpvp8depay.h - Header for GstRtpVP8Depay + * Copyright (C) 2011 Sjoerd Simons <sjoerd@luon.net> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __GST_RTP_VP8_DEPAY_H__ +#define __GST_RTP_VP8_DEPAY_H__ + +#include <gst/base/gstadapter.h> +#include <gst/rtp/gstrtpbasedepayload.h> + +G_BEGIN_DECLS + +#define GST_TYPE_RTP_VP8_DEPAY \ + (gst_rtp_vp8_depay_get_type()) +#define GST_RTP_VP8_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_RTP_VP8_DEPAY, GstRtpVP8Depay)) +#define GST_RTP_VP8_DEPAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_RTP_VP8_DEPAY, \ + GstRtpVP8DepayClass)) +#define GST_IS_RTP_VP8_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_RTP_VP8_DEPAY)) +#define GST_IS_RTP_VP8_DEPAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_RTP_VP8_DEPAY)) +#define GST_RTP_VP8_DEPAY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_VP8_DEPAY, \ + GstRtpVP8DepayClass)) + +typedef struct _GstRtpVP8Depay GstRtpVP8Depay; +typedef struct _GstRtpVP8DepayClass GstRtpVP8DepayClass; + +struct _GstRtpVP8DepayClass +{ + GstRTPBaseDepayloadClass parent_class; +}; + +struct _GstRtpVP8Depay +{ + GstRTPBaseDepayload parent; + GstAdapter *adapter; + gboolean started; +}; + +GType gst_rtp_vp8_depay_get_type (void); + +gboolean gst_rtp_vp8_depay_plugin_init (GstPlugin * plugin); + +G_END_DECLS + +#endif /* #ifndef __GST_RTP_VP8_DEPAY_H__ */ diff --git a/gst/rtp/gstrtpvp8pay.c b/gst/rtp/gstrtpvp8pay.c new file mode 100644 index 0000000000000000000000000000000000000000..988d55da3270a9a02a0e64522275f3a5a777a16c --- /dev/null +++ b/gst/rtp/gstrtpvp8pay.c @@ -0,0 +1,444 @@ +/* + * gstrtpvp8pay.c - Source for GstRtpVP8Pay + * Copyright (C) 2011 Sjoerd Simons <sjoerd@luon.net> + * Copyright (C) 2011 Collabora Ltd. + * Contact: Youness Alaoui <youness.alaoui@collabora.co.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <gst/base/gstbitreader.h> +#include <gst/rtp/gstrtppayloads.h> +#include <gst/rtp/gstrtpbuffer.h> +#include "dboolhuff.h" +#include "gstrtpvp8pay.h" + +GST_DEBUG_CATEGORY_STATIC (gst_rtp_vp8_pay_debug); +#define GST_CAT_DEFAULT gst_rtp_vp8_pay_debug + +#define DEFAULT_PICTURE_ID_MODE VP8_PAY_PICTURE_ID_7BITS + +static GstFlowReturn gst_rtp_vp8_pay_handle_buffer (GstRTPBasePayload * payload, + GstBuffer * buffer); +static gboolean gst_rtp_vp8_pay_sink_event (GstRTPBasePayload * payload, + GstEvent * event); +static gboolean gst_rtp_vp8_pay_set_caps (GstRTPBasePayload * payload, + GstCaps * caps); + +G_DEFINE_TYPE (GstRtpVP8Pay, gst_rtp_vp8_pay, GST_TYPE_RTP_BASE_PAYLOAD); + +static GstStaticPadTemplate gst_rtp_vp8_pay_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING "," + "clock-rate = (int) 90000, encoding-name = (string) \"VP8-DRAFT-IETF-01\"")); + +static GstStaticPadTemplate gst_rtp_vp8_pay_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-vp8")); + +static void +gst_rtp_vp8_pay_init (GstRtpVP8Pay * obj) +{ + /* TODO: Make it configurable */ + obj->picture_id_mode = DEFAULT_PICTURE_ID_MODE; + if (obj->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS) + obj->picture_id = g_random_int_range (0, G_MAXUINT8) & 0x7F; + else if (obj->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS) + obj->picture_id = g_random_int_range (0, G_MAXUINT16) & 0x7FFF; +} + +static void +gst_rtp_vp8_pay_class_init (GstRtpVP8PayClass * gst_rtp_vp8_pay_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (gst_rtp_vp8_pay_class); + GstRTPBasePayloadClass *pay_class = + GST_RTP_BASE_PAYLOAD_CLASS (gst_rtp_vp8_pay_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_vp8_pay_sink_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_vp8_pay_src_template)); + + gst_element_class_set_static_metadata (element_class, "RTP VP8 payloader", + "Codec/Payloader/Network/RTP", + "Puts VP8 video in RTP packets)", "Sjoerd Simons <sjoerd@luon.net>"); + + pay_class->handle_buffer = gst_rtp_vp8_pay_handle_buffer; + pay_class->sink_event = gst_rtp_vp8_pay_sink_event; + pay_class->set_caps = gst_rtp_vp8_pay_set_caps; + + GST_DEBUG_CATEGORY_INIT (gst_rtp_vp8_pay_debug, "rtpvp8pay", 0, + "VP8 Video RTP Payloader"); +} + +static gboolean +gst_rtp_vp8_pay_parse_frame (GstRtpVP8Pay * self, GstBuffer * buffer) +{ + GstBitReader *reader = NULL; + guint8 *data; + gsize size; + GstMapInfo map; + int i; + gboolean keyframe; + guint32 partition0_size; + guint8 version; + guint8 tmp8 = 0; + guint8 partitions; + guint offset; + BOOL_DECODER bc; + guint8 *pdata; + + if (G_UNLIKELY (gst_buffer_get_size (buffer) < 3)) + goto error; + + if (!gst_buffer_map (buffer, &map, GST_MAP_READ) || !map.data) + goto error; + + data = map.data; + size = map.size; + reader = gst_bit_reader_new (data, size); + + self->is_keyframe = keyframe = ((data[0] & 0x1) == 0); + version = (data[0] >> 1) & 0x7; + + if (G_UNLIKELY (version > 3)) { + GST_ERROR_OBJECT (self, "Unknown VP8 version %u", version); + goto error; + } + + /* keyframe, version and show_frame use 5 bits */ + partition0_size = data[2] << 11 | data[1] << 3 | (data[0] >> 5); + + /* Include the uncompressed data blob in the first partition */ + offset = keyframe ? 10 : 3; + partition0_size += offset; + + if (!gst_bit_reader_skip (reader, 24)) + goto error; + + if (keyframe) { + /* check start tag: 0x9d 0x01 0x2a */ + if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 8) || tmp8 != 0x9d) + goto error; + + if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 8) || tmp8 != 0x01) + goto error; + + if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 8) || tmp8 != 0x2a) + goto error; + + /* Skip horizontal size code (16 bits) vertical size code (16 bits) */ + if (!gst_bit_reader_skip (reader, 32)) + goto error; + } + + offset = keyframe ? 10 : 3; + vp8dx_start_decode (&bc, data + offset, size - offset); + + if (keyframe) { + /* color space (1 bit) and clamping type (1 bit) */ + vp8dx_decode_bool (&bc, 0x80); + vp8dx_decode_bool (&bc, 0x80); + } + + /* segmentation_enabled */ + if (vp8dx_decode_bool (&bc, 0x80)) { + guint8 update_mb_segmentation_map = vp8dx_decode_bool (&bc, 0x80); + guint8 update_segment_feature_data = vp8dx_decode_bool (&bc, 0x80); + + if (update_segment_feature_data) { + /* skip segment feature mode */ + vp8dx_decode_bool (&bc, 0x80); + + /* quantizer update */ + for (i = 0; i < 4; i++) { + /* skip flagged quantizer value (7 bits) and sign (1 bit) */ + if (vp8dx_decode_bool (&bc, 0x80)) + vp8_decode_value (&bc, 8); + } + + /* loop filter update */ + for (i = 0; i < 4; i++) { + /* skip flagged lf update value (6 bits) and sign (1 bit) */ + if (vp8dx_decode_bool (&bc, 0x80)) + vp8_decode_value (&bc, 7); + } + } + + if (update_mb_segmentation_map) { + /* segment prob update */ + for (i = 0; i < 3; i++) { + /* skip flagged segment prob */ + if (vp8dx_decode_bool (&bc, 0x80)) + vp8_decode_value (&bc, 8); + } + } + } + + /* skip filter type (1 bit), loop filter level (6 bits) and + * sharpness level (3 bits) */ + vp8_decode_value (&bc, 1); + vp8_decode_value (&bc, 6); + vp8_decode_value (&bc, 3); + + /* loop_filter_adj_enabled */ + if (vp8dx_decode_bool (&bc, 0x80)) { + + /* delta update */ + if (vp8dx_decode_bool (&bc, 0x80)) { + + for (i = 0; i < 8; i++) { + /* 8 updates, 1 bit indicate whether there is one and if follow by a + * 7 bit update */ + if (vp8dx_decode_bool (&bc, 0x80)) + vp8_decode_value (&bc, 7); + } + } + } + + if (vp8dx_bool_error (&bc)) + goto error; + + tmp8 = vp8_decode_value (&bc, 2); + + partitions = 1 << tmp8; + + /* Check if things are still sensible */ + if (partition0_size + (partitions - 1) * 3 >= size) + goto error; + + /* partition data is right after the mode partition */ + pdata = data + partition0_size; + + /* Set up mapping */ + self->n_partitions = partitions + 1; + self->partition_offset[0] = 0; + self->partition_size[0] = partition0_size + (partitions - 1) * 3; + + self->partition_offset[1] = self->partition_size[0]; + for (i = 1; i < partitions; i++) { + guint psize = (pdata[2] << 16 | pdata[1] << 8 | pdata[0]); + + pdata += 3; + self->partition_size[i] = psize; + self->partition_offset[i + 1] = self->partition_offset[i] + psize; + } + + /* Check that our partition offsets and sizes don't go outsize the buffer + * size. */ + if (self->partition_offset[i] >= size) + goto error; + + self->partition_size[i] = size - self->partition_offset[i]; + + self->partition_offset[i + 1] = size; + + gst_bit_reader_free (reader); + gst_buffer_unmap (buffer, &map); + return TRUE; + +error: + GST_DEBUG ("Failed to parse frame"); + if (reader) { + gst_bit_reader_free (reader); + gst_buffer_unmap (buffer, &map); + } + return FALSE; +} + +static guint +gst_rtp_vp8_offset_to_partition (GstRtpVP8Pay * self, guint offset) +{ + int i; + + for (i = 0; i < self->n_partitions; i++) { + if (offset >= self->partition_offset[i] && + offset < self->partition_offset[i + 1]) + return i; + } + + return i; +} + +static gsize +gst_rtp_vp8_calc_header_len (GstRtpVP8Pay * self) +{ + switch (self->picture_id_mode) { + case VP8_PAY_PICTURE_ID_7BITS: + return 3; + case VP8_PAY_PICTURE_ID_15BITS: + return 4; + case VP8_PAY_NO_PICTURE_ID: + default: + return 1; + } +} + +static gsize +gst_rtp_vp8_calc_payload_len (GstRtpVP8Pay * self) +{ + GstRTPBasePayload *payload = GST_RTP_BASE_PAYLOAD (self); + + return gst_rtp_buffer_calc_payload_len (GST_RTP_BASE_PAYLOAD_MTU (payload) - + gst_rtp_vp8_calc_header_len (self), 0, 0); +} + +/* When growing the vp8 header keep gst_rtp_vp8_calc_payload_len in sync */ +static GstBuffer * +gst_rtp_vp8_create_header_buffer (GstRtpVP8Pay * self, guint8 partid, + gboolean start, gboolean mark, GstBuffer * in) +{ + GstBuffer *out; + guint8 *p; + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + + out = gst_rtp_buffer_new_allocate (gst_rtp_vp8_calc_header_len (self), 0, 0); + gst_rtp_buffer_map (out, GST_MAP_READWRITE, &rtpbuffer); + p = gst_rtp_buffer_get_payload (&rtpbuffer); + /* X=0,R=0,N=0,S=start,PartID=partid */ + p[0] = (start << 4) | partid; + if (self->picture_id_mode != VP8_PAY_NO_PICTURE_ID) { + /* Enable X=1 */ + p[0] |= 0x80; + /* X: I=1,L=0,T=0,K=0,RSV=0 */ + p[1] = 0x80; + if (self->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS) { + /* I: 7 bit picture_id */ + p[2] = self->picture_id & 0x7F; + } else { + /* I: 15 bit picture_id */ + p[2] = 0x80 | ((self->picture_id & 0x7FFF) >> 8); + p[3] = self->picture_id & 0xFF; + } + } + + gst_rtp_buffer_set_marker (&rtpbuffer, mark); + + gst_rtp_buffer_unmap (&rtpbuffer); + + GST_BUFFER_DURATION (out) = GST_BUFFER_DURATION (in); + GST_BUFFER_PTS (out) = GST_BUFFER_PTS (in); + + return out; +} + + +static guint +gst_rtp_vp8_payload_next (GstRtpVP8Pay * self, + GstBufferList * list, guint offset, GstBuffer * buffer) +{ + guint partition; + GstBuffer *header; + GstBuffer *sub; + GstBuffer *out; + gboolean mark; + gsize remaining; + gsize available; + + remaining = gst_buffer_get_size (buffer) - offset; + available = gst_rtp_vp8_calc_payload_len (self); + if (available > remaining) + available = remaining; + + partition = gst_rtp_vp8_offset_to_partition (self, offset); + g_assert (partition < self->n_partitions); + + mark = (remaining == available); + /* whole set of partitions, payload them and done */ + header = gst_rtp_vp8_create_header_buffer (self, partition, + offset == self->partition_offset[partition], mark, buffer); + sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, available); + + out = gst_buffer_append (header, sub); + + gst_buffer_list_insert (list, -1, out); + + return available; +} + + +static GstFlowReturn +gst_rtp_vp8_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer) +{ + GstRtpVP8Pay *self = GST_RTP_VP8_PAY (payload); + GstFlowReturn ret; + GstBufferList *list; + guint offset; + + if (G_UNLIKELY (!gst_rtp_vp8_pay_parse_frame (self, buffer))) { + g_message ("Failed to parse frame"); + return GST_FLOW_ERROR; + } + + list = gst_buffer_list_new (); + + for (offset = 0; offset < gst_buffer_get_size (buffer);) + offset += gst_rtp_vp8_payload_next (self, list, offset, buffer); + + ret = gst_rtp_base_payload_push_list (payload, list); + + /* Incremenent and wrap the picture id if it overflows */ + if ((self->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS && + ++self->picture_id >= 0x80) || + (self->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS && + ++self->picture_id >= 0x8000)) + self->picture_id = 0; + + return ret; +} + +static gboolean +gst_rtp_vp8_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event) +{ + GstRtpVP8Pay *self = GST_RTP_VP8_PAY (payload); + + if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_START) { + if (self->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS) + self->picture_id = g_random_int_range (0, G_MAXUINT8) & 0x7F; + else if (self->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS) + self->picture_id = g_random_int_range (0, G_MAXUINT16) & 0x7FFF; + } + + return GST_RTP_BASE_PAYLOAD_CLASS (gst_rtp_vp8_pay_parent_class)->sink_event + (payload, event); +} + +static gboolean +gst_rtp_vp8_pay_set_caps (GstRTPBasePayload * payload, GstCaps * caps) +{ + gst_rtp_base_payload_set_options (payload, "video", TRUE, + "VP8-DRAFT-IETF-01", 90000); + return gst_rtp_base_payload_set_outcaps (payload, NULL); +} + +gboolean +gst_rtp_vp8_pay_plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "rtpvp8pay", + GST_RANK_MARGINAL, GST_TYPE_RTP_VP8_PAY); +} diff --git a/gst/rtp/gstrtpvp8pay.h b/gst/rtp/gstrtpvp8pay.h new file mode 100644 index 0000000000000000000000000000000000000000..2472060671f2519c7b5e8fd87d1427c81cf1d743 --- /dev/null +++ b/gst/rtp/gstrtpvp8pay.h @@ -0,0 +1,74 @@ +/* + * gstrtpvp8pay.h - Header for GstRtpVP8Pay + * Copyright (C) 2011 Sjoerd Simons <sjoerd@luon.net> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __GST_RTP_VP8_PAY_H__ +#define __GST_RTP_VP8_PAY_H__ + +#include <gst/rtp/gstrtpbasepayload.h> + +G_BEGIN_DECLS + +#define GST_TYPE_RTP_VP8_PAY \ + (gst_rtp_vp8_pay_get_type()) +#define GST_RTP_VP8_PAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_RTP_VP8_PAY, GstRtpVP8Pay)) +#define GST_RTP_VP8_PAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_RTP_VP8_PAY, GstRtpVP8PayClass)) +#define GST_IS_RTP_VP8_PAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_RTP_VP8_PAY)) +#define GST_IS_RTP_VP8_PAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_RTP_VP8_PAY)) +#define GST_RTP_VP8_PAY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_VP8_PAY, GstRtpVP8PayClass)) + +typedef struct _GstRtpVP8Pay GstRtpVP8Pay; +typedef struct _GstRtpVP8PayClass GstRtpVP8PayClass; +typedef enum _PictureIDMode PictureIDMode; + +enum _PictureIDMode { + VP8_PAY_NO_PICTURE_ID, + VP8_PAY_PICTURE_ID_7BITS, + VP8_PAY_PICTURE_ID_15BITS, +}; + +struct _GstRtpVP8PayClass +{ + GstRTPBasePayloadClass parent_class; +}; + +struct _GstRtpVP8Pay +{ + GstRTPBasePayload parent; + gboolean is_keyframe; + gint n_partitions; + /* Treat frame header & tag & partition size block as the first partition, + * folowed by max. 8 data partitions. last offset is the end of the buffer */ + guint partition_offset[10]; + guint partition_size[9]; + PictureIDMode picture_id_mode; + guint16 picture_id; +}; + +GType gst_rtp_vp8_pay_get_type (void); + +gboolean gst_rtp_vp8_pay_plugin_init (GstPlugin * plugin); + +G_END_DECLS + +#endif /* #ifndef __GST_RTP_VP8_PAY_H__ */ diff --git a/gst/rtp/gstrtpvrawdepay.c b/gst/rtp/gstrtpvrawdepay.c index 5011efe80edec406f75e1d76eaba3ed535b28f0b..c2fca1b069cfa1eb8a9d2fe200f1bac7e0392842 100644 --- a/gst/rtp/gstrtpvrawdepay.c +++ b/gst/rtp/gstrtpvrawdepay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -43,7 +43,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " "clock-rate = (int) 90000, " "encoding-name = (string) \"RAW\"") ); diff --git a/gst/rtp/gstrtpvrawdepay.h b/gst/rtp/gstrtpvrawdepay.h index d51e486717933a8abaf9cf32fdaa65e239848691..bf63d5c3f8c06e395edcd7af49e3ba59b86737c9 100644 --- a/gst/rtp/gstrtpvrawdepay.h +++ b/gst/rtp/gstrtpvrawdepay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_VRAW_DEPAY_H__ diff --git a/gst/rtp/gstrtpvrawpay.c b/gst/rtp/gstrtpvrawpay.c index 2ac0fcd97a65d2e44affee77d1187434253b01fa..d95a62ebbd5748856e75a459aa0fbee35c49c64b 100644 --- a/gst/rtp/gstrtpvrawpay.c +++ b/gst/rtp/gstrtpvrawpay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpvrawpay.h b/gst/rtp/gstrtpvrawpay.h index f2032eb65e74a1b91ba2b01754e0481a6cec87ee..7cd86b8b59c8d8f577bea20b61a8de9affca2557 100644 --- a/gst/rtp/gstrtpvrawpay.h +++ b/gst/rtp/gstrtpvrawpay.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_VRAW_PAY_H__ diff --git a/gst/rtpmanager/Makefile.am b/gst/rtpmanager/Makefile.am index e7420db8a9fcbad4e53ca2a7d50f35e66909983e..d65f6767657022612fc5767e5c9628c880cbfbee 100644 --- a/gst/rtpmanager/Makefile.am +++ b/gst/rtpmanager/Makefile.am @@ -16,7 +16,9 @@ BUILT_SOURCES = $(built_sources) $(built_headers) libgstrtpmanager_la_SOURCES = gstrtpmanager.c \ gstrtpbin.c \ + gstrtpdtmfmux.c \ gstrtpjitterbuffer.c \ + gstrtpmux.c \ gstrtpptdemux.c \ gstrtpssrcdemux.c \ rtpjitterbuffer.c \ @@ -29,7 +31,9 @@ nodist_libgstrtpmanager_la_SOURCES = \ $(built_sources) noinst_HEADERS = gstrtpbin.h \ + gstrtpdtmfmux.h \ gstrtpjitterbuffer.h \ + gstrtpmux.h \ gstrtpptdemux.h \ gstrtpssrcdemux.h \ rtpjitterbuffer.h \ diff --git a/gst/rtpmanager/Makefile.in b/gst/rtpmanager/Makefile.in index 64adcbb6fda57d5d8ae940e882b8bc42fd500db8..dc3375fcb969a41b72bdeaa87d2cb11a7fb7955f 100644 --- a/gst/rtpmanager/Makefile.in +++ b/gst/rtpmanager/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -25,23 +24,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -61,8 +88,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(top_srcdir)/common/gst-glib-gen.mak +DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \ + $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) subdir = gst/rtpmanager ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -70,7 +98,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -140,7 +167,9 @@ libgstrtpmanager_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstrtpmanager_la_OBJECTS = libgstrtpmanager_la-gstrtpmanager.lo \ libgstrtpmanager_la-gstrtpbin.lo \ + libgstrtpmanager_la-gstrtpdtmfmux.lo \ libgstrtpmanager_la-gstrtpjitterbuffer.lo \ + libgstrtpmanager_la-gstrtpmux.lo \ libgstrtpmanager_la-gstrtpptdemux.lo \ libgstrtpmanager_la-gstrtpssrcdemux.lo \ libgstrtpmanager_la-rtpjitterbuffer.lo \ @@ -155,10 +184,23 @@ libgstrtpmanager_la_OBJECTS = $(am_libgstrtpmanager_la_OBJECTS) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstrtpmanager_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) \ $(libgstrtpmanager_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -171,20 +213,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstrtpmanager_la_SOURCES) \ $(nodist_libgstrtpmanager_la_SOURCES) DIST_SOURCES = $(libgstrtpmanager_la_SOURCES) @@ -194,6 +232,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -364,6 +419,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -534,7 +590,9 @@ built_headers = gstrtpbin-marshal.h BUILT_SOURCES = $(built_sources) $(built_headers) libgstrtpmanager_la_SOURCES = gstrtpmanager.c \ gstrtpbin.c \ + gstrtpdtmfmux.c \ gstrtpjitterbuffer.c \ + gstrtpmux.c \ gstrtpptdemux.c \ gstrtpssrcdemux.c \ rtpjitterbuffer.c \ @@ -547,7 +605,9 @@ nodist_libgstrtpmanager_la_SOURCES = \ $(built_sources) noinst_HEADERS = gstrtpbin.h \ + gstrtpdtmfmux.h \ gstrtpjitterbuffer.h \ + gstrtpmux.h \ gstrtpptdemux.h \ gstrtpssrcdemux.h \ rtpjitterbuffer.h \ @@ -603,6 +663,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -629,12 +690,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstrtpmanager.la: $(libgstrtpmanager_la_OBJECTS) $(libgstrtpmanager_la_DEPENDENCIES) $(EXTRA_libgstrtpmanager_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrtpmanager_la_LINK) -rpath $(plugindir) $(libgstrtpmanager_la_OBJECTS) $(libgstrtpmanager_la_LIBADD) $(LIBS) @@ -646,8 +710,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpbin-marshal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpbin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpdtmfmux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpmanager.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpmux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Plo@am__quote@ @@ -691,6 +757,13 @@ libgstrtpmanager_la-gstrtpbin.lo: gstrtpbin.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpbin.lo `test -f 'gstrtpbin.c' || echo '$(srcdir)/'`gstrtpbin.c +libgstrtpmanager_la-gstrtpdtmfmux.lo: gstrtpdtmfmux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpdtmfmux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpdtmfmux.Tpo -c -o libgstrtpmanager_la-gstrtpdtmfmux.lo `test -f 'gstrtpdtmfmux.c' || echo '$(srcdir)/'`gstrtpdtmfmux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpdtmfmux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpdtmfmux.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdtmfmux.c' object='libgstrtpmanager_la-gstrtpdtmfmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpdtmfmux.lo `test -f 'gstrtpdtmfmux.c' || echo '$(srcdir)/'`gstrtpdtmfmux.c + libgstrtpmanager_la-gstrtpjitterbuffer.lo: gstrtpjitterbuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpjitterbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Tpo -c -o libgstrtpmanager_la-gstrtpjitterbuffer.lo `test -f 'gstrtpjitterbuffer.c' || echo '$(srcdir)/'`gstrtpjitterbuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Plo @@ -698,6 +771,13 @@ libgstrtpmanager_la-gstrtpjitterbuffer.lo: gstrtpjitterbuffer.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpjitterbuffer.lo `test -f 'gstrtpjitterbuffer.c' || echo '$(srcdir)/'`gstrtpjitterbuffer.c +libgstrtpmanager_la-gstrtpmux.lo: gstrtpmux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpmux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpmux.Tpo -c -o libgstrtpmanager_la-gstrtpmux.lo `test -f 'gstrtpmux.c' || echo '$(srcdir)/'`gstrtpmux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpmux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpmux.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmux.c' object='libgstrtpmanager_la-gstrtpmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpmux.lo `test -f 'gstrtpmux.c' || echo '$(srcdir)/'`gstrtpmux.c + libgstrtpmanager_la-gstrtpptdemux.lo: gstrtpptdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpptdemux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Tpo -c -o libgstrtpmanager_la-gstrtpptdemux.lo `test -f 'gstrtpptdemux.c' || echo '$(srcdir)/'`gstrtpptdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Plo @@ -760,26 +840,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -791,15 +860,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -808,6 +873,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -956,19 +1036,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # these are all the rules generating the relevant files diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c index 4d8e54e3b300ebd4280677bd18641e02c0f83dfe..0364880b43d5a9753a0a23c6b38090790bc4c961 100644 --- a/gst/rtpmanager/gstrtpbin.c +++ b/gst/rtpmanager/gstrtpbin.c @@ -13,13 +13,13 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** - * SECTION:element-gstrtpbin - * @see_also: gstrtpjitterbuffer, gstrtpsession, gstrtpptdemux, gstrtpssrcdemux + * SECTION:element-rtpbin + * @see_also: rtpjitterbuffer, rtpsession, rtpptdemux, rtpssrcdemux * * RTP bin combines the functions of #GstRtpSession, #GstRtpSsrcDemux, * #GstRtpJitterBuffer and #GstRtpPtDemux in one element. It allows for multiple @@ -36,7 +36,7 @@ * the packets are released from the jitterbuffer, they will be forwarded to a * #GstRtpPtDemux element. The #GstRtpPtDemux element will demux the packets based * on the payload type and will create a unique pad recv_rtp_src_\%u_\%u_\%u on - * gstrtpbin with the session number, SSRC and payload type respectively as the pad + * rtpbin with the session number, SSRC and payload type respectively as the pad * name. * * To also use #GstRtpBin as an RTCP receiver, request a recv_rtcp_sink_\%u pad. The @@ -58,7 +58,7 @@ * mapping. One can clear the cached values with the #GstRtpSession::clear-pt-map * signal. * - * Access to the internal statistics of gstrtpbin is provided with the + * Access to the internal statistics of rtpbin is provided with the * get-internal-session property. This action signal gives access to the * RTPSession object which further provides action signals to retrieve the * internal source and other sources. @@ -67,10 +67,10 @@ * <title>Example pipelines</title> * |[ * gst-launch-1.0 udpsrc port=5000 caps="application/x-rtp, ..." ! .recv_rtp_sink_0 \ - * gstrtpbin ! rtptheoradepay ! theoradec ! xvimagesink - * ]| Receive RTP data from port 5000 and send to the session 0 in gstrtpbin. + * rtpbin ! rtptheoradepay ! theoradec ! xvimagesink + * ]| Receive RTP data from port 5000 and send to the session 0 in rtpbin. * |[ - * gst-launch-1.0 gstrtpbin name=rtpbin \ + * gst-launch-1.0 rtpbin name=rtpbin \ * v4l2src ! videoconvert ! ffenc_h263 ! rtph263ppay ! rtpbin.send_rtp_sink_0 \ * rtpbin.send_rtp_src_0 ! udpsink port=5000 \ * rtpbin.send_rtcp_src_0 ! udpsink port=5001 sync=false async=false \ @@ -89,7 +89,7 @@ * as soon as possible and do not participate in preroll, sync=false and * async=false is configured on udpsink * |[ - * gst-launch-1.0 -v gstrtpbin name=rtpbin \ + * gst-launch-1.0 -v rtpbin name=rtpbin \ * udpsrc caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998" \ * port=5000 ! rtpbin.recv_rtp_sink_0 \ * rtpbin. ! rtph263pdepay ! ffdec_h263 ! xvimagesink \ @@ -312,7 +312,7 @@ static void remove_recv_rtcp (GstRtpBin * rtpbin, GstRtpBinSession * session); static void remove_send_rtp (GstRtpBin * rtpbin, GstRtpBinSession * session); static void remove_rtcp (GstRtpBin * rtpbin, GstRtpBinSession * session); static void free_client (GstRtpBinClient * client, GstRtpBin * bin); -static void free_stream (GstRtpBinStream * stream); +static void free_stream (GstRtpBinStream * stream, GstRtpBin * bin); /* Manages the RTP stream for one SSRC. * @@ -545,6 +545,11 @@ ssrc_demux_pad_removed (GstElement * element, guint ssrc, GstPad * pad, GstRtpBinSession * session) { GstRtpBinStream *stream = NULL; + GstRtpBin *rtpbin; + + rtpbin = session->bin; + + GST_RTP_BIN_LOCK (rtpbin); GST_RTP_SESSION_LOCK (session); if ((stream = find_stream_by_ssrc (session, ssrc))) @@ -552,7 +557,9 @@ ssrc_demux_pad_removed (GstElement * element, guint ssrc, GstPad * pad, GST_RTP_SESSION_UNLOCK (session); if (stream) - free_stream (stream); + free_stream (stream, rtpbin); + + GST_RTP_BIN_UNLOCK (rtpbin); } /* create a session with the given id. Must be called with RTP_BIN_LOCK */ @@ -638,8 +645,6 @@ no_demux: static void free_session (GstRtpBinSession * sess, GstRtpBin * bin) { - GSList *client_walk; - GST_DEBUG_OBJECT (bin, "freeing session %p", sess); gst_element_set_locked_state (sess->demux, TRUE); @@ -656,40 +661,7 @@ free_session (GstRtpBinSession * sess, GstRtpBin * bin) gst_bin_remove (GST_BIN_CAST (bin), sess->session); gst_bin_remove (GST_BIN_CAST (bin), sess->demux); - /* remove any references in bin->clients to the streams in sess->streams */ - client_walk = bin->clients; - while (client_walk) { - GSList *client_node = client_walk; - GstRtpBinClient *client = (GstRtpBinClient *) client_node->data; - GSList *stream_walk = client->streams; - - while (stream_walk) { - GSList *stream_node = stream_walk; - GstRtpBinStream *stream = (GstRtpBinStream *) stream_node->data; - GSList *inner_walk; - - stream_walk = g_slist_next (stream_walk); - - for (inner_walk = sess->streams; inner_walk; - inner_walk = g_slist_next (inner_walk)) { - if ((GstRtpBinStream *) inner_walk->data == stream) { - client->streams = g_slist_delete_link (client->streams, stream_node); - --client->nstreams; - break; - } - } - } - client_walk = g_slist_next (client_walk); - - g_assert ((client->streams && client->nstreams > 0) || (!client->streams - && client->streams == 0)); - if (client->nstreams == 0) { - free_client (client, bin); - bin->clients = g_slist_delete_link (bin->clients, client_node); - } - } - - g_slist_foreach (sess->streams, (GFunc) free_stream, NULL); + g_slist_foreach (sess->streams, (GFunc) free_stream, bin); g_slist_free (sess->streams); g_mutex_clear (&sess->lock); @@ -1479,12 +1451,13 @@ no_demux: } } +/* called with RTP_BIN_LOCK */ static void -free_stream (GstRtpBinStream * stream) +free_stream (GstRtpBinStream * stream, GstRtpBin * bin) { - GstRtpBinSession *session; + GSList *clients, *next_client; - session = stream->session; + GST_DEBUG_OBJECT (bin, "freeing stream %p", stream); if (stream->demux) { g_signal_handler_disconnect (stream->demux, stream->demux_newpad_sig); @@ -1508,10 +1481,33 @@ free_stream (GstRtpBinStream * stream) if (stream->demux) g_signal_handler_disconnect (stream->demux, stream->demux_padremoved_sig); - gst_bin_remove (GST_BIN_CAST (session->bin), stream->buffer); + gst_bin_remove (GST_BIN_CAST (bin), stream->buffer); if (stream->demux) - gst_bin_remove (GST_BIN_CAST (session->bin), stream->demux); + gst_bin_remove (GST_BIN_CAST (bin), stream->demux); + + for (clients = bin->clients; clients; clients = next_client) { + GstRtpBinClient *client = (GstRtpBinClient *) clients->data; + GSList *streams, *next_stream; + + next_client = g_slist_next (clients); + for (streams = client->streams; streams; streams = next_stream) { + GstRtpBinStream *ostream = (GstRtpBinStream *) streams->data; + + next_stream = g_slist_next (streams); + + if (ostream == stream) { + client->streams = g_slist_delete_link (client->streams, streams); + /* If this was the last stream belonging to this client, + * clean up the client. */ + if (--client->nstreams == 0) { + bin->clients = g_slist_delete_link (bin->clients, clients); + free_client (client, bin); + break; + } + } + } + } g_free (stream); } @@ -1920,10 +1916,6 @@ gst_rtp_bin_dispose (GObject * object) g_slist_foreach (rtpbin->sessions, (GFunc) free_session, rtpbin); g_slist_free (rtpbin->sessions); rtpbin->sessions = NULL; - GST_DEBUG_OBJECT (object, "freeing clients"); - g_slist_foreach (rtpbin->clients, (GFunc) free_client, rtpbin); - g_slist_free (rtpbin->clients); - rtpbin->clients = NULL; GST_RTP_BIN_UNLOCK (rtpbin); G_OBJECT_CLASS (parent_class)->dispose (object); diff --git a/gst/rtpmanager/gstrtpbin.h b/gst/rtpmanager/gstrtpbin.h index 1734560016f1a55fb9dd36e375be161e90aa8a59..fd0a7cc9fae3bc2ab7c004c9fab0a1dec9164126 100644 --- a/gst/rtpmanager/gstrtpbin.h +++ b/gst/rtpmanager/gstrtpbin.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_BIN_H__ diff --git a/gst/rtpmanager/gstrtpdtmfmux.c b/gst/rtpmanager/gstrtpdtmfmux.c new file mode 100644 index 0000000000000000000000000000000000000000..e0f6bf4d23242c8da36ce1e53c336c9e30ecab0b --- /dev/null +++ b/gst/rtpmanager/gstrtpdtmfmux.c @@ -0,0 +1,233 @@ +/* RTP DTMF muxer element for GStreamer + * + * gstrtpdtmfmux.c: + * + * Copyright (C) <2007-2010> Nokia Corporation. + * Contact: Zeeshan Ali <zeeshan.ali@nokia.com> + * Copyright (C) <2007-2010> Collabora Ltd + * Contact: Olivier Crete <olivier.crete@collabora.co.uk> + * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> + * 2000,2005 Wim Taymans <wim@fluendo.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-rtpdtmfmux + * @see_also: rtpdtmfsrc, dtmfsrc, rtpmux + * + * The RTP "DTMF" Muxer muxes multiple RTP streams into a valid RTP + * stream. It does exactly what its parent (#rtpmux) does, except + * that it prevent buffers coming over a regular sink_%%u pad from going through + * for the duration of buffers that came in a priority_sink_%%u pad. + * + * This is especially useful if a discontinuous source like dtmfsrc or + * rtpdtmfsrc are connected to the priority sink pads. This way, the generated + * DTMF signal can replace the recorded audio while the tone is being sent. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/gst.h> +#include <string.h> + +#include "gstrtpdtmfmux.h" + +GST_DEBUG_CATEGORY_STATIC (gst_rtp_dtmf_mux_debug); +#define GST_CAT_DEFAULT gst_rtp_dtmf_mux_debug + +static GstStaticPadTemplate priority_sink_factory = +GST_STATIC_PAD_TEMPLATE ("priority_sink_%u", + GST_PAD_SINK, + GST_PAD_REQUEST, + GST_STATIC_CAPS ("application/x-rtp")); + +static GstPad *gst_rtp_dtmf_mux_request_new_pad (GstElement * element, + GstPadTemplate * templ, const gchar * name, const GstCaps * caps); +static GstStateChangeReturn gst_rtp_dtmf_mux_change_state (GstElement * element, + GstStateChange transition); + +static gboolean gst_rtp_dtmf_mux_accept_buffer_locked (GstRTPMux * rtp_mux, + GstRTPMuxPadPrivate * padpriv, GstRTPBuffer * rtpbuffer); +static gboolean gst_rtp_dtmf_mux_src_event (GstRTPMux * rtp_mux, + GstEvent * event); + +G_DEFINE_TYPE (GstRTPDTMFMux, gst_rtp_dtmf_mux, GST_TYPE_RTP_MUX); + +static void +gst_rtp_dtmf_mux_init (GstRTPDTMFMux * mux) +{ +} + + +static void +gst_rtp_dtmf_mux_class_init (GstRTPDTMFMuxClass * klass) +{ + GstElementClass *gstelement_class; + GstRTPMuxClass *gstrtpmux_class; + + gstelement_class = (GstElementClass *) klass; + gstrtpmux_class = (GstRTPMuxClass *) klass; + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&priority_sink_factory)); + + gst_element_class_set_static_metadata (gstelement_class, "RTP muxer", + "Codec/Muxer", + "mixes RTP DTMF streams into other RTP streams", + "Zeeshan Ali <first.last@nokia.com>"); + + gstelement_class->request_new_pad = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_mux_request_new_pad); + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_rtp_dtmf_mux_change_state); + gstrtpmux_class->accept_buffer_locked = gst_rtp_dtmf_mux_accept_buffer_locked; + gstrtpmux_class->src_event = gst_rtp_dtmf_mux_src_event; +} + +static gboolean +gst_rtp_dtmf_mux_accept_buffer_locked (GstRTPMux * rtp_mux, + GstRTPMuxPadPrivate * padpriv, GstRTPBuffer * rtpbuffer) +{ + GstRTPDTMFMux *mux = GST_RTP_DTMF_MUX (rtp_mux); + GstClockTime running_ts; + + running_ts = GST_BUFFER_PTS (rtpbuffer->buffer); + + if (GST_CLOCK_TIME_IS_VALID (running_ts)) { + if (padpriv && padpriv->segment.format == GST_FORMAT_TIME) + running_ts = gst_segment_to_running_time (&padpriv->segment, + GST_FORMAT_TIME, GST_BUFFER_PTS (rtpbuffer->buffer)); + + if (padpriv && padpriv->priority) { + if (GST_BUFFER_PTS_IS_VALID (rtpbuffer->buffer)) { + if (GST_CLOCK_TIME_IS_VALID (mux->last_priority_end)) + mux->last_priority_end = + MAX (running_ts + GST_BUFFER_DURATION (rtpbuffer->buffer), + mux->last_priority_end); + else + mux->last_priority_end = running_ts + + GST_BUFFER_DURATION (rtpbuffer->buffer); + GST_LOG_OBJECT (mux, "Got buffer %p on priority pad, " + " blocking regular pads until %" GST_TIME_FORMAT, rtpbuffer->buffer, + GST_TIME_ARGS (mux->last_priority_end)); + } else { + GST_WARNING_OBJECT (mux, "Buffer %p has an invalid duration," + " not blocking other pad", rtpbuffer->buffer); + } + } else { + if (GST_CLOCK_TIME_IS_VALID (mux->last_priority_end) && + running_ts < mux->last_priority_end) { + GST_LOG_OBJECT (mux, "Dropping buffer %p because running time" + " %" GST_TIME_FORMAT " < %" GST_TIME_FORMAT, rtpbuffer->buffer, + GST_TIME_ARGS (running_ts), GST_TIME_ARGS (mux->last_priority_end)); + return FALSE; + } + } + } else { + GST_LOG_OBJECT (mux, "Buffer %p has an invalid timestamp," + " letting through", rtpbuffer->buffer); + } + + return TRUE; +} + + +static GstPad * +gst_rtp_dtmf_mux_request_new_pad (GstElement * element, GstPadTemplate * templ, + const gchar * name, const GstCaps * caps) +{ + GstPad *pad; + + pad = + GST_ELEMENT_CLASS (gst_rtp_dtmf_mux_parent_class)->request_new_pad + (element, templ, name, caps); + + if (pad) { + GstRTPMuxPadPrivate *padpriv; + + GST_OBJECT_LOCK (element); + padpriv = gst_pad_get_element_private (pad); + + if (gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (element), + "priority_sink_%u") == gst_pad_get_pad_template (pad)) + padpriv->priority = TRUE; + GST_OBJECT_UNLOCK (element); + } + + return pad; +} + +static gboolean +gst_rtp_dtmf_mux_src_event (GstRTPMux * rtp_mux, GstEvent * event) +{ + if (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_UPSTREAM) { + const GstStructure *s = gst_event_get_structure (event); + + if (s && gst_structure_has_name (s, "dtmf-event")) { + GST_OBJECT_LOCK (rtp_mux); + if (GST_CLOCK_TIME_IS_VALID (rtp_mux->last_stop)) { + event = (GstEvent *) + gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (event)); + s = gst_event_get_structure (event); + gst_structure_set ((GstStructure *) s, + "last-stop", G_TYPE_UINT64, rtp_mux->last_stop, NULL); + } + GST_OBJECT_UNLOCK (rtp_mux); + } + } + + return GST_RTP_MUX_CLASS (gst_rtp_dtmf_mux_parent_class)->src_event (rtp_mux, + event); +} + + +static GstStateChangeReturn +gst_rtp_dtmf_mux_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret; + GstRTPDTMFMux *mux = GST_RTP_DTMF_MUX (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + { + GST_OBJECT_LOCK (mux); + mux->last_priority_end = GST_CLOCK_TIME_NONE; + GST_OBJECT_UNLOCK (mux); + break; + } + default: + break; + } + + ret = + GST_ELEMENT_CLASS (gst_rtp_dtmf_mux_parent_class)->change_state (element, + transition); + + return ret; +} + +gboolean +gst_rtp_dtmf_mux_plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_mux_debug, "rtpdtmfmux", 0, + "rtp dtmf muxer"); + + return gst_element_register (plugin, "rtpdtmfmux", GST_RANK_NONE, + GST_TYPE_RTP_DTMF_MUX); +} diff --git a/gst/rtpmanager/gstrtpdtmfmux.h b/gst/rtpmanager/gstrtpdtmfmux.h new file mode 100644 index 0000000000000000000000000000000000000000..651e9ece7e0969753f838b907a1acbcddd7706a0 --- /dev/null +++ b/gst/rtpmanager/gstrtpdtmfmux.h @@ -0,0 +1,67 @@ +/* RTP muxer element for GStreamer + * + * gstrtpdtmfmux.h: + * + * Copyright (C) <2007> Nokia Corporation. + * Contact: Zeeshan Ali <zeeshan.ali@nokia.com> + * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> + * 2000,2005 Wim Taymans <wim@fluendo.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_RTP_DTMF_MUX_H__ +#define __GST_RTP_DTMF_MUX_H__ + +#include <gst/gst.h> +#include "gstrtpmux.h" + +G_BEGIN_DECLS +#define GST_TYPE_RTP_DTMF_MUX (gst_rtp_dtmf_mux_get_type()) +#define GST_RTP_DTMF_MUX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_DTMF_MUX, GstRTPDTMFMux)) +#define GST_RTP_DTMF_MUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_DTMF_MUX, GstRTPDTMFMux)) +#define GST_IS_RTP_DTMF_MUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_DTMF_MUX)) +#define GST_IS_RTP_DTMF_MUX_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_DTMF_MUX)) +typedef struct _GstRTPDTMFMux GstRTPDTMFMux; +typedef struct _GstRTPDTMFMuxClass GstRTPDTMFMuxClass; + +/** + * GstRTPDTMFMux: + * + * The opaque #GstRTPDTMFMux structure. + */ +struct _GstRTPDTMFMux +{ + GstRTPMux mux; + + /* Protected by object lock */ + GstClockTime last_priority_end; +}; + +struct _GstRTPDTMFMuxClass +{ + GstRTPMuxClass parent_class; + + /* signals */ + void (*locking) (GstElement * element, GstPad * pad); + void (*unlocked) (GstElement * element, GstPad * pad); +}; + +GType gst_rtp_dtmf_mux_get_type (void); +gboolean gst_rtp_dtmf_mux_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_RTP_DTMF_MUX_H__ */ diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index 2cdcf4040065d7d92944ceece21b8a7a7989b9a1..fd8814f5b4c4319bb252ff67cb3c77c768461c4c 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ @@ -131,6 +131,7 @@ struct _GstRtpJitterBufferPrivate GCond jbuf_cond; gboolean waiting; gboolean discont; + gboolean ts_discont; gboolean active; guint64 out_offset; @@ -179,6 +180,8 @@ struct _GstRtpJitterBufferPrivate /* the latency of the upstream peer, we have to take this into account when * synchronizing the buffers. */ GstClockTime peer_latency; + guint64 ext_rtptime; + GstBuffer *last_sr; /* some accounting */ guint64 num_late; @@ -272,6 +275,7 @@ gst_rtp_jitter_buffer_clear_pt_map (GstRtpJitterBuffer * jitterbuffer); static GstClockTime gst_rtp_jitter_buffer_set_active (GstRtpJitterBuffer * jitterbuffer, gboolean active, guint64 base_time); +static void do_handle_sync (GstRtpJitterBuffer * jitterbuffer); static void gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) @@ -976,6 +980,7 @@ gst_rtp_jitter_buffer_change_state (GstElement * element, ret = GST_STATE_CHANGE_NO_PREROLL; break; case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_buffer_replace (&priv->last_sr, NULL); break; case GST_STATE_CHANGE_READY_TO_NULL: break; @@ -1388,8 +1393,12 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, priv->clock_rate, &tail, &percent))) goto duplicate; + /* we had an unhandled SR, handle it now */ + if (priv->last_sr) + do_handle_sync (jitterbuffer); + /* signal addition of new buffer when the _loop is waiting. */ - if (priv->waiting) + if (priv->waiting && priv->active) JBUF_SIGNAL (priv); /* let's unschedule and unblock any waiting buffers. We only want to do this @@ -1718,6 +1727,9 @@ again: if (G_UNLIKELY (gap != 0 && out_time != -1)) { GstClockReturn ret; GstClockTime duration = GST_CLOCK_TIME_NONE; + GstClockTimeDiff clock_jitter; + guint32 lost_packets = 1; + gboolean lost_packets_late = FALSE; if (gap > 0) { /* we have a gap */ @@ -1759,12 +1771,13 @@ again: goto push_buffer; } - GST_DEBUG_OBJECT (jitterbuffer, "sync to timestamp %" GST_TIME_FORMAT, - GST_TIME_ARGS (out_time)); - /* prepare for sync against clock */ sync_time = get_sync_time (jitterbuffer, out_time); + GST_DEBUG_OBJECT (jitterbuffer, "sync to timestamp %" GST_TIME_FORMAT + " with sync time %" GST_TIME_FORMAT, + GST_TIME_ARGS (out_time), GST_TIME_ARGS (sync_time)); + /* create an entry for the clock */ id = priv->clock_id = gst_clock_new_single_shot_id (clock, sync_time); priv->unscheduled = FALSE; @@ -1773,7 +1786,31 @@ again: /* release the lock so that the other end can push stuff or unlock */ JBUF_UNLOCK (priv); - ret = gst_clock_id_wait (id, NULL); + ret = gst_clock_id_wait (id, &clock_jitter); + + if (ret == GST_CLOCK_EARLY && gap > 0 + && clock_jitter > (priv->latency_ns + priv->peer_latency)) { + GstClockTimeDiff total_duration; + GstClockTime out_time_diff; + + out_time_diff = apply_offset (jitterbuffer, timestamp) - out_time; + total_duration = MIN (out_time_diff, clock_jitter); + + if (duration > 0) + lost_packets = total_duration / duration; + else + lost_packets = gap; + total_duration = lost_packets * duration; + + GST_DEBUG_OBJECT (jitterbuffer, + "Current sync_time has expired a long time ago (+%" GST_TIME_FORMAT + ") Cover up %d lost packets with duration %" GST_TIME_FORMAT, + GST_TIME_ARGS (clock_jitter), + lost_packets, GST_TIME_ARGS (total_duration)); + + duration = total_duration; + lost_packets_late = TRUE; + } JBUF_LOCK (priv); /* and free the entry */ @@ -1802,15 +1839,20 @@ again: if (gap > 0) { GstEvent *event; - /* we had a gap and thus we lost a packet. Create an event for this. */ - GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", next_seqnum); - priv->num_late++; + /* we had a gap and thus we lost some packets. Create an event for this. */ + if (lost_packets > 1) + GST_DEBUG_OBJECT (jitterbuffer, "Packets #%d -> #%d lost", next_seqnum, + next_seqnum + lost_packets - 1); + else + GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", next_seqnum); + + priv->num_late += lost_packets; discont = TRUE; /* update our expected next packet */ priv->last_popped_seqnum = next_seqnum; - priv->last_out_time = out_time; - priv->next_seqnum = (next_seqnum + 1) & 0xffff; + priv->last_out_time += duration; + priv->next_seqnum = (next_seqnum + lost_packets) & 0xffff; if (priv->do_lost) { /* create paket lost event */ @@ -1818,8 +1860,8 @@ again: gst_structure_new ("GstRTPPacketLost", "seqnum", G_TYPE_UINT, (guint) next_seqnum, "timestamp", G_TYPE_UINT64, out_time, - "duration", G_TYPE_UINT64, duration, NULL)); - + "duration", G_TYPE_UINT64, duration, + "late", G_TYPE_BOOLEAN, lost_packets_late, NULL)); JBUF_UNLOCK (priv); gst_pad_push_event (priv->srcpad, event); JBUF_LOCK_CHECK (priv, flushing); @@ -1847,6 +1889,10 @@ push_buffer: GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); priv->discont = FALSE; } + if (G_UNLIKELY (priv->ts_discont)) { + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); + priv->ts_discont = FALSE; + } /* apply timestamp with offset to buffer now */ GST_BUFFER_PTS (outbuf) = out_time; @@ -1950,65 +1996,33 @@ pause: } } -static GstFlowReturn -gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstObject * parent, - GstBuffer * buffer) +/* collect the info form the lastest RTCP packet and the jittebuffer sync, do + * some sanity checks and then emit the handle-sync signal with the parameters. + * This function must be called with the LOCK */ +static void +do_handle_sync (GstRtpJitterBuffer * jitterbuffer) { - GstRtpJitterBuffer *jitterbuffer; GstRtpJitterBufferPrivate *priv; - GstFlowReturn ret = GST_FLOW_OK; guint64 base_rtptime, base_time; guint32 clock_rate; guint64 last_rtptime; - guint32 ssrc; - GstRTCPPacket packet; + guint64 clock_base; guint64 ext_rtptime, diff; - guint32 rtptime; gboolean drop = FALSE; - GstRTCPBuffer rtcp = { NULL, }; - guint64 clock_base; - - jitterbuffer = GST_RTP_JITTER_BUFFER (parent); - - if (G_UNLIKELY (!gst_rtcp_buffer_validate (buffer))) - goto invalid_buffer; priv = jitterbuffer->priv; - gst_rtcp_buffer_map (buffer, GST_MAP_READ, &rtcp); - - if (!gst_rtcp_buffer_get_first_packet (&rtcp, &packet)) - goto empty_buffer; - - /* first packet must be SR or RR or else the validate would have failed */ - switch (gst_rtcp_packet_get_type (&packet)) { - case GST_RTCP_TYPE_SR: - gst_rtcp_packet_sr_get_sender_info (&packet, &ssrc, NULL, &rtptime, - NULL, NULL); - break; - default: - goto ignore_buffer; - } - gst_rtcp_buffer_unmap (&rtcp); - - GST_DEBUG_OBJECT (jitterbuffer, "received RTCP of SSRC %08x", ssrc); - - JBUF_LOCK (priv); - /* convert the RTP timestamp to our extended timestamp, using the same offset - * we used in the jitterbuffer */ - ext_rtptime = priv->jbuf->ext_rtptime; - ext_rtptime = gst_rtp_buffer_ext_timestamp (&ext_rtptime, rtptime); - /* get the last values from the jitterbuffer */ rtp_jitter_buffer_get_sync (priv->jbuf, &base_rtptime, &base_time, &clock_rate, &last_rtptime); clock_base = priv->clock_base; + ext_rtptime = priv->ext_rtptime; GST_DEBUG_OBJECT (jitterbuffer, "ext SR %" G_GUINT64_FORMAT ", base %" G_GUINT64_FORMAT ", clock-rate %" G_GUINT32_FORMAT - ", clock-base %" G_GUINT64_FORMAT, - ext_rtptime, base_rtptime, clock_rate, clock_base); + ", clock-base %" G_GUINT64_FORMAT ", last-rtptime %" G_GUINT64_FORMAT, + ext_rtptime, base_rtptime, clock_rate, clock_base, last_rtptime); if (base_rtptime == -1 || clock_rate == -1 || base_time == -1) { GST_DEBUG_OBJECT (jitterbuffer, "dropping, no RTP values"); @@ -2038,7 +2052,6 @@ gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstObject * parent, } } } - JBUF_UNLOCK (priv); if (!drop) { GstStructure *s; @@ -2049,16 +2062,69 @@ gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstObject * parent, "clock-rate", G_TYPE_UINT, clock_rate, "clock-base", G_TYPE_UINT64, clock_base, "sr-ext-rtptime", G_TYPE_UINT64, ext_rtptime, - "sr-buffer", GST_TYPE_BUFFER, buffer, NULL); + "sr-buffer", GST_TYPE_BUFFER, priv->last_sr, NULL); GST_DEBUG_OBJECT (jitterbuffer, "signaling sync"); + gst_buffer_replace (&priv->last_sr, NULL); + JBUF_UNLOCK (priv); g_signal_emit (jitterbuffer, gst_rtp_jitter_buffer_signals[SIGNAL_HANDLE_SYNC], 0, s); + JBUF_LOCK (priv); gst_structure_free (s); } else { GST_DEBUG_OBJECT (jitterbuffer, "dropping RTCP packet"); - ret = GST_FLOW_OK; } +} + +static GstFlowReturn +gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstObject * parent, + GstBuffer * buffer) +{ + GstRtpJitterBuffer *jitterbuffer; + GstRtpJitterBufferPrivate *priv; + GstFlowReturn ret = GST_FLOW_OK; + guint32 ssrc; + GstRTCPPacket packet; + guint64 ext_rtptime; + guint32 rtptime; + GstRTCPBuffer rtcp = { NULL, }; + + jitterbuffer = GST_RTP_JITTER_BUFFER (parent); + + if (G_UNLIKELY (!gst_rtcp_buffer_validate (buffer))) + goto invalid_buffer; + + priv = jitterbuffer->priv; + + gst_rtcp_buffer_map (buffer, GST_MAP_READ, &rtcp); + + if (!gst_rtcp_buffer_get_first_packet (&rtcp, &packet)) + goto empty_buffer; + + /* first packet must be SR or RR or else the validate would have failed */ + switch (gst_rtcp_packet_get_type (&packet)) { + case GST_RTCP_TYPE_SR: + gst_rtcp_packet_sr_get_sender_info (&packet, &ssrc, NULL, &rtptime, + NULL, NULL); + break; + default: + goto ignore_buffer; + } + gst_rtcp_buffer_unmap (&rtcp); + + GST_DEBUG_OBJECT (jitterbuffer, "received RTCP of SSRC %08x", ssrc); + + JBUF_LOCK (priv); + /* convert the RTP timestamp to our extended timestamp, using the same offset + * we used in the jitterbuffer */ + ext_rtptime = priv->jbuf->ext_rtptime; + ext_rtptime = gst_rtp_buffer_ext_timestamp (&ext_rtptime, rtptime); + + priv->ext_rtptime = ext_rtptime; + gst_buffer_replace (&priv->last_sr, buffer); + + do_handle_sync (jitterbuffer); + JBUF_UNLOCK (priv); done: gst_buffer_unref (buffer); @@ -2260,9 +2326,7 @@ gst_rtp_jitter_buffer_set_property (GObject * object, case PROP_TS_OFFSET: JBUF_LOCK (priv); priv->ts_offset = g_value_get_int64 (value); - /* FIXME, we don't really have a method for signaling a timestamp - * DISCONT without also making this a data discont. */ - /* priv->discont = TRUE; */ + priv->ts_discont = TRUE; JBUF_UNLOCK (priv); break; case PROP_DO_LOST: diff --git a/gst/rtpmanager/gstrtpjitterbuffer.h b/gst/rtpmanager/gstrtpjitterbuffer.h index 37ef7b3156cfb4185168e6258afca7b5eec6e369..c8522798e3ba48f2ae8e9d4f5e3ff9877fd3f908 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.h +++ b/gst/rtpmanager/gstrtpjitterbuffer.h @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/gst/rtpmanager/gstrtpmanager.c b/gst/rtpmanager/gstrtpmanager.c index f04ef3c3060f778d4554aa624074605f9a5ba1e4..4e891e9fb7d670f8506d15fc06655fc53f157083 100644 --- a/gst/rtpmanager/gstrtpmanager.c +++ b/gst/rtpmanager/gstrtpmanager.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -26,6 +26,8 @@ #include "gstrtpptdemux.h" #include "gstrtpsession.h" #include "gstrtpssrcdemux.h" +#include "gstrtpdtmfmux.h" +#include "gstrtpmux.h" static gboolean plugin_init (GstPlugin * plugin) @@ -49,6 +51,12 @@ plugin_init (GstPlugin * plugin) GST_TYPE_RTP_SSRC_DEMUX)) return FALSE; + if (!gst_rtp_mux_plugin_init (plugin)) + return FALSE; + + if (!gst_rtp_dtmf_mux_plugin_init (plugin)) + return FALSE; + return TRUE; } diff --git a/gst/rtpmanager/gstrtpmux.c b/gst/rtpmanager/gstrtpmux.c new file mode 100644 index 0000000000000000000000000000000000000000..db3bb7016800266a20024e56a99b2b34c03f70b0 --- /dev/null +++ b/gst/rtpmanager/gstrtpmux.c @@ -0,0 +1,886 @@ +/* RTP muxer element for GStreamer + * + * gstrtpmux.c: + * + * Copyright (C) <2007-2010> Nokia Corporation. + * Contact: Zeeshan Ali <zeeshan.ali@nokia.com> + * Copyright (C) <2007-2010> Collabora Ltd + * Contact: Olivier Crete <olivier.crete@collabora.co.uk> + * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> + * 2000,2005 Wim Taymans <wim@fluendo.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/** + * SECTION:element-rtpmux + * @see_also: rtpdtmfmux + * + * The rtp muxer takes multiple RTP streams having the same clock-rate and + * muxes into a single stream with a single SSRC. + * + * <refsect2> + * <title>Example pipelines</title> + * |[ + * gst-launch rtpmux name=mux ! udpsink host=127.0.0.1 port=8888 \ + * alsasrc ! alawenc ! rtppcmapay ! \ + * application/x-rtp, payload=8, rate=8000 ! mux.sink_0 \ + * audiotestsrc is-live=1 ! \ + * mulawenc ! rtppcmupay ! \ + * application/x-rtp, payload=0, rate=8000 ! mux.sink_1 + * ]| + * In this example, an audio stream is captured from ALSA and another is + * generated, both are encoded into different payload types and muxed together + * so they can be sent on the same port. + * </refsect2> + * + * Last reviewed on 2010-09-30 (0.10.21) + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/gst.h> +#include <gst/rtp/gstrtpbuffer.h> +#include <string.h> + +#include "gstrtpmux.h" + +GST_DEBUG_CATEGORY_STATIC (gst_rtp_mux_debug); +#define GST_CAT_DEFAULT gst_rtp_mux_debug + +enum +{ + ARG_0, + PROP_TIMESTAMP_OFFSET, + PROP_SEQNUM_OFFSET, + PROP_SEQNUM, + PROP_SSRC +}; + +#define DEFAULT_TIMESTAMP_OFFSET -1 +#define DEFAULT_SEQNUM_OFFSET -1 +#define DEFAULT_SSRC -1 + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp") + ); + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink_%u", + GST_PAD_SINK, + GST_PAD_REQUEST, + GST_STATIC_CAPS ("application/x-rtp") + ); + +static GstPad *gst_rtp_mux_request_new_pad (GstElement * element, + GstPadTemplate * templ, const gchar * name, const GstCaps * caps); +static void gst_rtp_mux_release_pad (GstElement * element, GstPad * pad); +static GstFlowReturn gst_rtp_mux_chain (GstPad * pad, GstObject * parent, + GstBuffer * buffer); +static GstFlowReturn gst_rtp_mux_chain_list (GstPad * pad, GstObject * parent, + GstBufferList * bufferlist); +static gboolean gst_rtp_mux_setcaps (GstPad * pad, GstRTPMux * rtp_mux, + GstCaps * caps); +static gboolean gst_rtp_mux_sink_event (GstPad * pad, GstObject * parent, + GstEvent * event); +static gboolean gst_rtp_mux_sink_query (GstPad * pad, GstObject * parent, + GstQuery * query); + +static GstStateChangeReturn gst_rtp_mux_change_state (GstElement * + element, GstStateChange transition); + +static void gst_rtp_mux_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_rtp_mux_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_rtp_mux_dispose (GObject * object); + +static gboolean gst_rtp_mux_src_event_real (GstRTPMux * rtp_mux, + GstEvent * event); + +G_DEFINE_TYPE (GstRTPMux, gst_rtp_mux, GST_TYPE_ELEMENT); + + +static void +gst_rtp_mux_class_init (GstRTPMuxClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&sink_factory)); + + gst_element_class_set_static_metadata (gstelement_class, "RTP muxer", + "Codec/Muxer", + "multiplex N rtp streams into one", "Zeeshan Ali <first.last@nokia.com>"); + + gobject_class->get_property = gst_rtp_mux_get_property; + gobject_class->set_property = gst_rtp_mux_set_property; + gobject_class->dispose = gst_rtp_mux_dispose; + + klass->src_event = gst_rtp_mux_src_event_real; + + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_TIMESTAMP_OFFSET, g_param_spec_int ("timestamp-offset", + "Timestamp Offset", + "Offset to add to all outgoing timestamps (-1 = random)", -1, + G_MAXINT, DEFAULT_TIMESTAMP_OFFSET, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEQNUM_OFFSET, + g_param_spec_int ("seqnum-offset", "Sequence number Offset", + "Offset to add to all outgoing seqnum (-1 = random)", -1, G_MAXINT, + DEFAULT_SEQNUM_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEQNUM, + g_param_spec_uint ("seqnum", "Sequence number", + "The RTP sequence number of the last processed packet", + 0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SSRC, + g_param_spec_uint ("ssrc", "SSRC", + "The SSRC of the packets (-1 == random)", + 0, G_MAXUINT, DEFAULT_SSRC, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->request_new_pad = + GST_DEBUG_FUNCPTR (gst_rtp_mux_request_new_pad); + gstelement_class->release_pad = GST_DEBUG_FUNCPTR (gst_rtp_mux_release_pad); + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_mux_change_state); +} + +static void +gst_rtp_mux_dispose (GObject * object) +{ + GstRTPMux *rtp_mux = GST_RTP_MUX (object); + GList *item; + + g_clear_object (&rtp_mux->last_pad); + +restart: + for (item = GST_ELEMENT_PADS (object); item; item = g_list_next (item)) { + GstPad *pad = GST_PAD (item->data); + if (GST_PAD_IS_SINK (pad)) { + gst_element_release_request_pad (GST_ELEMENT (object), pad); + goto restart; + } + } + + G_OBJECT_CLASS (gst_rtp_mux_parent_class)->dispose (object); +} + +static gboolean +gst_rtp_mux_src_event (GstPad * pad, GstObject * parent, GstEvent * event) +{ + GstRTPMux *rtp_mux = GST_RTP_MUX (parent); + GstRTPMuxClass *klass; + gboolean ret = FALSE; + + klass = GST_RTP_MUX_GET_CLASS (rtp_mux); + + ret = klass->src_event (rtp_mux, event); + + return ret; +} + +static gboolean +gst_rtp_mux_src_event_real (GstRTPMux * rtp_mux, GstEvent * event) +{ + GstIterator *iter; + gboolean result = FALSE; + gboolean done = FALSE; + + iter = gst_element_iterate_sink_pads (GST_ELEMENT (rtp_mux)); + + while (!done) { + GValue item = { 0, }; + + switch (gst_iterator_next (iter, &item)) { + case GST_ITERATOR_OK: + gst_event_ref (event); + result |= gst_pad_push_event (g_value_get_object (&item), event); + g_value_reset (&item); + break; + case GST_ITERATOR_RESYNC: + gst_iterator_resync (iter); + result = FALSE; + break; + case GST_ITERATOR_ERROR: + GST_WARNING_OBJECT (rtp_mux, "Error iterating sinkpads"); + case GST_ITERATOR_DONE: + done = TRUE; + break; + } + } + gst_iterator_free (iter); + gst_event_unref (event); + + return result; +} + +static void +gst_rtp_mux_init (GstRTPMux * rtp_mux) +{ + GstElementClass *klass = GST_ELEMENT_GET_CLASS (rtp_mux); + + rtp_mux->srcpad = + gst_pad_new_from_template (gst_element_class_get_pad_template (klass, + "src"), "src"); + gst_pad_set_event_function (rtp_mux->srcpad, + GST_DEBUG_FUNCPTR (gst_rtp_mux_src_event)); + gst_element_add_pad (GST_ELEMENT (rtp_mux), rtp_mux->srcpad); + + rtp_mux->ssrc = DEFAULT_SSRC; + rtp_mux->ts_offset = DEFAULT_TIMESTAMP_OFFSET; + rtp_mux->seqnum_offset = DEFAULT_SEQNUM_OFFSET; + + rtp_mux->last_stop = GST_CLOCK_TIME_NONE; +} + +static void +gst_rtp_mux_setup_sinkpad (GstRTPMux * rtp_mux, GstPad * sinkpad) +{ + GstRTPMuxPadPrivate *padpriv = g_slice_new0 (GstRTPMuxPadPrivate); + + /* setup some pad functions */ + gst_pad_set_chain_function (sinkpad, GST_DEBUG_FUNCPTR (gst_rtp_mux_chain)); + gst_pad_set_chain_list_function (sinkpad, + GST_DEBUG_FUNCPTR (gst_rtp_mux_chain_list)); + gst_pad_set_event_function (sinkpad, + GST_DEBUG_FUNCPTR (gst_rtp_mux_sink_event)); + gst_pad_set_query_function (sinkpad, + GST_DEBUG_FUNCPTR (gst_rtp_mux_sink_query)); + + + gst_segment_init (&padpriv->segment, GST_FORMAT_UNDEFINED); + + gst_pad_set_element_private (sinkpad, padpriv); + + gst_pad_set_active (sinkpad, TRUE); + gst_element_add_pad (GST_ELEMENT (rtp_mux), sinkpad); +} + +static GstPad * +gst_rtp_mux_request_new_pad (GstElement * element, + GstPadTemplate * templ, const gchar * req_name, const GstCaps * caps) +{ + GstRTPMux *rtp_mux; + GstPad *newpad; + + g_return_val_if_fail (templ != NULL, NULL); + g_return_val_if_fail (GST_IS_RTP_MUX (element), NULL); + + rtp_mux = GST_RTP_MUX (element); + + if (templ->direction != GST_PAD_SINK) { + GST_WARNING_OBJECT (rtp_mux, "request pad that is not a SINK pad"); + return NULL; + } + + newpad = gst_pad_new_from_template (templ, req_name); + if (newpad) + gst_rtp_mux_setup_sinkpad (rtp_mux, newpad); + else + GST_WARNING_OBJECT (rtp_mux, "failed to create request pad"); + + return newpad; +} + +static void +gst_rtp_mux_release_pad (GstElement * element, GstPad * pad) +{ + GstRTPMuxPadPrivate *padpriv; + + GST_OBJECT_LOCK (element); + padpriv = gst_pad_get_element_private (pad); + gst_pad_set_element_private (pad, NULL); + GST_OBJECT_UNLOCK (element); + + gst_element_remove_pad (element, pad); + + if (padpriv) { + g_slice_free (GstRTPMuxPadPrivate, padpriv); + } +} + +/* Put our own clock-base on the buffer */ +static void +gst_rtp_mux_readjust_rtp_timestamp_locked (GstRTPMux * rtp_mux, + GstRTPMuxPadPrivate * padpriv, GstRTPBuffer * rtpbuffer) +{ + guint32 ts; + guint32 sink_ts_base = 0; + + if (padpriv && padpriv->have_clock_base) + sink_ts_base = padpriv->clock_base; + + ts = gst_rtp_buffer_get_timestamp (rtpbuffer) - sink_ts_base + + rtp_mux->ts_base; + GST_LOG_OBJECT (rtp_mux, "Re-adjusting RTP ts %u to %u", + gst_rtp_buffer_get_timestamp (rtpbuffer), ts); + gst_rtp_buffer_set_timestamp (rtpbuffer, ts); +} + +static gboolean +process_buffer_locked (GstRTPMux * rtp_mux, GstRTPMuxPadPrivate * padpriv, + GstRTPBuffer * rtpbuffer) +{ + GstRTPMuxClass *klass = GST_RTP_MUX_GET_CLASS (rtp_mux); + + if (klass->accept_buffer_locked) + if (!klass->accept_buffer_locked (rtp_mux, padpriv, rtpbuffer)) + return FALSE; + + rtp_mux->seqnum++; + gst_rtp_buffer_set_seq (rtpbuffer, rtp_mux->seqnum); + + gst_rtp_buffer_set_ssrc (rtpbuffer, rtp_mux->current_ssrc); + gst_rtp_mux_readjust_rtp_timestamp_locked (rtp_mux, padpriv, rtpbuffer); + GST_LOG_OBJECT (rtp_mux, + "Pushing packet size %" G_GSIZE_FORMAT ", seq=%d, ts=%u", + rtpbuffer->map[0].size, rtp_mux->seqnum, + gst_rtp_buffer_get_timestamp (rtpbuffer)); + + if (padpriv) { + if (padpriv->segment.format == GST_FORMAT_TIME) + GST_BUFFER_PTS (rtpbuffer->buffer) = + gst_segment_to_running_time (&padpriv->segment, GST_FORMAT_TIME, + GST_BUFFER_PTS (rtpbuffer->buffer)); + } + + return TRUE; +} + +struct BufferListData +{ + GstRTPMux *rtp_mux; + GstRTPMuxPadPrivate *padpriv; + gboolean drop; +}; + +static gboolean +process_list_item (GstBuffer ** buffer, guint idx, gpointer user_data) +{ + struct BufferListData *bd = user_data; + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + + *buffer = gst_buffer_make_writable (*buffer); + + gst_rtp_buffer_map (*buffer, GST_MAP_READWRITE, &rtpbuffer); + + bd->drop = !process_buffer_locked (bd->rtp_mux, bd->padpriv, &rtpbuffer); + + gst_rtp_buffer_unmap (&rtpbuffer); + + if (bd->drop) + return FALSE; + + if (GST_BUFFER_DURATION_IS_VALID (*buffer) && + GST_BUFFER_TIMESTAMP_IS_VALID (*buffer)) + bd->rtp_mux->last_stop = GST_BUFFER_TIMESTAMP (*buffer) + + GST_BUFFER_DURATION (*buffer); + else + bd->rtp_mux->last_stop = GST_CLOCK_TIME_NONE; + + return TRUE; +} + +static GstFlowReturn +gst_rtp_mux_chain_list (GstPad * pad, GstObject * parent, + GstBufferList * bufferlist) +{ + GstRTPMux *rtp_mux; + GstFlowReturn ret; + GstRTPMuxPadPrivate *padpriv; + gboolean drop = TRUE; + struct BufferListData bd; + + rtp_mux = GST_RTP_MUX (parent); + + GST_OBJECT_LOCK (rtp_mux); + + padpriv = gst_pad_get_element_private (pad); + if (!padpriv) { + GST_OBJECT_UNLOCK (rtp_mux); + ret = GST_FLOW_NOT_LINKED; + gst_buffer_list_unref (bufferlist); + goto out; + } + + bd.rtp_mux = rtp_mux; + bd.padpriv = padpriv; + bd.drop = FALSE; + + bufferlist = gst_buffer_list_make_writable (bufferlist); + gst_buffer_list_foreach (bufferlist, process_list_item, &bd); + + GST_OBJECT_UNLOCK (rtp_mux); + + if (drop) { + gst_buffer_list_unref (bufferlist); + ret = GST_FLOW_OK; + } else { + ret = gst_pad_push_list (rtp_mux->srcpad, bufferlist); + } + +out: + + return ret; +} + +static gboolean +resend_events (GstPad * pad, GstEvent ** event, gpointer user_data) +{ + GstRTPMux *rtp_mux = user_data; + + if (GST_EVENT_TYPE (*event) == GST_EVENT_CAPS) { + GstCaps *caps; + + gst_event_parse_caps (*event, &caps); + gst_rtp_mux_setcaps (pad, rtp_mux, caps); + } else { + gst_pad_push_event (rtp_mux->srcpad, gst_event_ref (*event)); + } + + return TRUE; +} + +static GstFlowReturn +gst_rtp_mux_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) +{ + GstRTPMux *rtp_mux; + GstFlowReturn ret; + GstRTPMuxPadPrivate *padpriv; + gboolean drop; + gboolean changed = FALSE; + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + + rtp_mux = GST_RTP_MUX (GST_OBJECT_PARENT (pad)); + + GST_OBJECT_LOCK (rtp_mux); + padpriv = gst_pad_get_element_private (pad); + + if (!padpriv) { + GST_OBJECT_UNLOCK (rtp_mux); + gst_buffer_unref (buffer); + return GST_FLOW_NOT_LINKED; + } + + buffer = gst_buffer_make_writable (buffer); + + if (!gst_rtp_buffer_map (buffer, GST_MAP_READWRITE, &rtpbuffer)) { + GST_OBJECT_UNLOCK (rtp_mux); + gst_buffer_unref (buffer); + GST_ERROR_OBJECT (rtp_mux, "Invalid RTP buffer"); + return GST_FLOW_ERROR; + } + + drop = !process_buffer_locked (rtp_mux, padpriv, &rtpbuffer); + + gst_rtp_buffer_unmap (&rtpbuffer); + + if (!drop) { + if (pad != rtp_mux->last_pad) { + changed = TRUE; + g_clear_object (&rtp_mux->last_pad); + rtp_mux->last_pad = g_object_ref (pad); + } + + if (GST_BUFFER_DURATION_IS_VALID (buffer) && + GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) + rtp_mux->last_stop = GST_BUFFER_TIMESTAMP (buffer) + + GST_BUFFER_DURATION (buffer); + else + rtp_mux->last_stop = GST_CLOCK_TIME_NONE; + } + + GST_OBJECT_UNLOCK (rtp_mux); + + if (changed) + gst_pad_sticky_events_foreach (pad, resend_events, rtp_mux); + + if (drop) { + gst_buffer_unref (buffer); + ret = GST_FLOW_OK; + } else { + ret = gst_pad_push (rtp_mux->srcpad, buffer); + } + + return ret; +} + +static gboolean +gst_rtp_mux_setcaps (GstPad * pad, GstRTPMux * rtp_mux, GstCaps * caps) +{ + GstStructure *structure; + gboolean ret = FALSE; + GstRTPMuxPadPrivate *padpriv; + + structure = gst_caps_get_structure (caps, 0); + + if (!structure) + return FALSE; + + GST_OBJECT_LOCK (rtp_mux); + padpriv = gst_pad_get_element_private (pad); + if (padpriv && + gst_structure_get_uint (structure, "clock-base", &padpriv->clock_base)) { + padpriv->have_clock_base = TRUE; + } + GST_OBJECT_UNLOCK (rtp_mux); + + caps = gst_caps_copy (caps); + + gst_caps_set_simple (caps, + "clock-base", G_TYPE_UINT, rtp_mux->ts_base, + "seqnum-base", G_TYPE_UINT, rtp_mux->seqnum_base, NULL); + + if (rtp_mux->send_stream_start) { + gchar s_id[32]; + + /* stream-start (FIXME: create id based on input ids) */ + g_snprintf (s_id, sizeof (s_id), "interleave-%08x", g_random_int ()); + gst_pad_push_event (rtp_mux->srcpad, gst_event_new_stream_start (s_id)); + + rtp_mux->send_stream_start = FALSE; + } + + GST_DEBUG_OBJECT (rtp_mux, + "setting caps %" GST_PTR_FORMAT " on src pad..", caps); + ret = gst_pad_set_caps (rtp_mux->srcpad, caps); + + if (rtp_mux->ssrc == -1) { + if (gst_structure_has_field_typed (structure, "ssrc", G_TYPE_UINT)) { + rtp_mux->current_ssrc = g_value_get_uint + (gst_structure_get_value (structure, "ssrc")); + } + } + + gst_caps_unref (caps); + + return ret; +} + +static void +clear_caps (GstCaps * caps, gboolean only_clock_rate) +{ + gint i, j; + + /* Lets only match on the clock-rate */ + for (i = 0; i < gst_caps_get_size (caps); i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + + for (j = 0; j < gst_structure_n_fields (s); j++) { + const gchar *name = gst_structure_nth_field_name (s, j); + + if (strcmp (name, "clock-rate") && (only_clock_rate || + (strcmp (name, "ssrc")))) { + gst_structure_remove_field (s, name); + j--; + } + } + } +} + +static gboolean +same_clock_rate_fold (const GValue * item, GValue * ret, gpointer user_data) +{ + GstPad *mypad = user_data; + GstPad *pad = g_value_get_object (item); + GstCaps *peercaps; + GstCaps *accumcaps; + GstCaps *intersect; + + if (pad == mypad) + return TRUE; + + accumcaps = g_value_get_boxed (ret); + peercaps = gst_pad_peer_query_caps (pad, accumcaps); + if (!peercaps) { + g_warning ("no peercaps"); + return TRUE; + } + peercaps = gst_caps_make_writable (peercaps); + clear_caps (peercaps, TRUE); + + intersect = gst_caps_intersect (accumcaps, peercaps); + + g_value_take_boxed (ret, intersect); + gst_caps_unref (peercaps); + + return !gst_caps_is_empty (intersect); +} + +static GstCaps * +gst_rtp_mux_getcaps (GstPad * pad, GstRTPMux * mux, GstCaps * filter) +{ + GstCaps *caps = NULL; + GstIterator *iter = NULL; + GValue v = { 0 }; + GstIteratorResult res; + GstCaps *peercaps; + GstCaps *othercaps; + + peercaps = gst_pad_peer_query_caps (mux->srcpad, filter); + + if (peercaps) { + othercaps = gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (pad), GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + if (filter) + othercaps = gst_caps_intersect_full (filter, + gst_pad_get_pad_template_caps (mux->srcpad), + GST_CAPS_INTERSECT_FIRST); + else + othercaps = gst_caps_copy (gst_pad_get_pad_template_caps (mux->srcpad)); + } + + clear_caps (othercaps, FALSE); + + g_value_init (&v, GST_TYPE_CAPS); + + iter = gst_element_iterate_sink_pads (GST_ELEMENT (mux)); + do { + gst_value_set_caps (&v, othercaps); + res = gst_iterator_fold (iter, same_clock_rate_fold, &v, pad); + gst_iterator_resync (iter); + } while (res == GST_ITERATOR_RESYNC); + gst_iterator_free (iter); + + caps = (GstCaps *) gst_value_get_caps (&v); + + if (res == GST_ITERATOR_ERROR) { + gst_caps_unref (caps); + caps = gst_caps_new_empty (); + } + + gst_caps_unref (othercaps); + + return caps; +} + +static gboolean +gst_rtp_mux_sink_query (GstPad * pad, GstObject * parent, GstQuery * query) +{ + GstRTPMux *mux = GST_RTP_MUX (parent); + gboolean res = FALSE; + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CAPS: + { + GstCaps *filter, *caps; + + gst_query_parse_caps (query, &filter); + caps = gst_rtp_mux_getcaps (pad, mux, filter); + gst_query_set_caps_result (query, caps); + gst_caps_unref (caps); + res = TRUE; + break; + } + default: + res = gst_pad_query_default (pad, parent, query); + break; + } + + return res; + + +} + + +static void +gst_rtp_mux_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstRTPMux *rtp_mux; + + rtp_mux = GST_RTP_MUX (object); + + switch (prop_id) { + case PROP_TIMESTAMP_OFFSET: + g_value_set_int (value, rtp_mux->ts_offset); + break; + case PROP_SEQNUM_OFFSET: + g_value_set_int (value, rtp_mux->seqnum_offset); + break; + case PROP_SEQNUM: + GST_OBJECT_LOCK (rtp_mux); + g_value_set_uint (value, rtp_mux->seqnum); + GST_OBJECT_UNLOCK (rtp_mux); + break; + case PROP_SSRC: + g_value_set_uint (value, rtp_mux->ssrc); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_rtp_mux_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstRTPMux *rtp_mux; + + rtp_mux = GST_RTP_MUX (object); + + switch (prop_id) { + case PROP_TIMESTAMP_OFFSET: + rtp_mux->ts_offset = g_value_get_int (value); + break; + case PROP_SEQNUM_OFFSET: + rtp_mux->seqnum_offset = g_value_get_int (value); + break; + case PROP_SSRC: + rtp_mux->ssrc = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +gst_rtp_mux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) +{ + GstRTPMux *mux = GST_RTP_MUX (parent); + gboolean is_pad; + gboolean ret; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CAPS: + { + GstCaps *caps; + + gst_event_parse_caps (event, &caps); + ret = gst_rtp_mux_setcaps (pad, mux, caps); + gst_event_unref (event); + return ret; + } + case GST_EVENT_FLUSH_STOP: + { + GST_OBJECT_LOCK (mux); + mux->last_stop = GST_CLOCK_TIME_NONE; + GST_OBJECT_UNLOCK (mux); + break; + } + case GST_EVENT_SEGMENT: + { + GstRTPMuxPadPrivate *padpriv; + + GST_OBJECT_LOCK (mux); + padpriv = gst_pad_get_element_private (pad); + + if (padpriv) { + gst_event_copy_segment (event, &padpriv->segment); + } + GST_OBJECT_UNLOCK (mux); + break; + } + default: + break; + } + + GST_OBJECT_LOCK (mux); + is_pad = (pad == mux->last_pad); + GST_OBJECT_UNLOCK (mux); + + if (is_pad) { + return gst_pad_push_event (mux->srcpad, event); + } else { + gst_event_unref (event); + return TRUE; + } +} + +static void +gst_rtp_mux_ready_to_paused (GstRTPMux * rtp_mux) +{ + + GST_OBJECT_LOCK (rtp_mux); + + g_clear_object (&rtp_mux->last_pad); + rtp_mux->send_stream_start = TRUE; + + if (rtp_mux->ssrc == -1) + rtp_mux->current_ssrc = g_random_int (); + else + rtp_mux->current_ssrc = rtp_mux->ssrc; + + if (rtp_mux->seqnum_offset == -1) + rtp_mux->seqnum_base = g_random_int_range (0, G_MAXUINT16); + else + rtp_mux->seqnum_base = rtp_mux->seqnum_offset; + rtp_mux->seqnum = rtp_mux->seqnum_base; + + if (rtp_mux->ts_offset == -1) + rtp_mux->ts_base = g_random_int (); + else + rtp_mux->ts_base = rtp_mux->ts_offset; + + rtp_mux->last_stop = GST_CLOCK_TIME_NONE; + + GST_DEBUG_OBJECT (rtp_mux, "set clock-base to %u", rtp_mux->ts_base); + + GST_OBJECT_UNLOCK (rtp_mux); +} + +static GstStateChangeReturn +gst_rtp_mux_change_state (GstElement * element, GstStateChange transition) +{ + GstRTPMux *rtp_mux; + GstStateChangeReturn ret; + + rtp_mux = GST_RTP_MUX (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + gst_rtp_mux_ready_to_paused (rtp_mux); + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (gst_rtp_mux_parent_class)->change_state (element, + transition); + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + g_clear_object (&rtp_mux->last_pad); + break; + default: + break; + } + + return ret; +} + +gboolean +gst_rtp_mux_plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (gst_rtp_mux_debug, "rtpmux", 0, "rtp muxer"); + + return gst_element_register (plugin, "rtpmux", GST_RANK_NONE, + GST_TYPE_RTP_MUX); +} diff --git a/gst/rtpmanager/gstrtpmux.h b/gst/rtpmanager/gstrtpmux.h new file mode 100644 index 0000000000000000000000000000000000000000..3582a75a5683089875a3acd2f94904a85bef0587 --- /dev/null +++ b/gst/rtpmanager/gstrtpmux.h @@ -0,0 +1,96 @@ +/* RTP muxer element for GStreamer + * + * gstrtpmux.h: + * + * Copyright (C) <2007> Nokia Corporation. + * Contact: Zeeshan Ali <zeeshan.ali@nokia.com> + * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> + * 2000,2005 Wim Taymans <wim@fluendo.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_RTP_MUX_H__ +#define __GST_RTP_MUX_H__ + +#include <gst/gst.h> +#include <gst/rtp/gstrtpbuffer.h> + +G_BEGIN_DECLS +#define GST_TYPE_RTP_MUX (gst_rtp_mux_get_type()) +#define GST_RTP_MUX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_MUX, GstRTPMux)) +#define GST_RTP_MUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_MUX, GstRTPMuxClass)) +#define GST_RTP_MUX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_MUX, GstRTPMuxClass)) +#define GST_IS_RTP_MUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_MUX)) +#define GST_IS_RTP_MUX_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_MUX)) +typedef struct _GstRTPMux GstRTPMux; +typedef struct _GstRTPMuxClass GstRTPMuxClass; + + +typedef struct +{ + gboolean have_clock_base; + guint clock_base; + + GstSegment segment; + + gboolean priority; +} GstRTPMuxPadPrivate; + + +/** + * GstRTPMux: + * + * The opaque #GstRTPMux structure. + */ +struct _GstRTPMux +{ + GstElement element; + + /* pad */ + GstPad *srcpad; + + guint32 ts_base; + guint16 seqnum_base; + + gint32 ts_offset; + gint16 seqnum_offset; + guint16 seqnum; /* protected by object lock */ + guint ssrc; + guint current_ssrc; + + GstPad *last_pad; /* protected by object lock */ + + GstClockTime last_stop; + gboolean send_stream_start; +}; + +struct _GstRTPMuxClass +{ + GstElementClass parent_class; + + gboolean (*accept_buffer_locked) (GstRTPMux *rtp_mux, + GstRTPMuxPadPrivate * padpriv, GstRTPBuffer * buffer); + + gboolean (*src_event) (GstRTPMux *rtp_mux, GstEvent *event); +}; + + +GType gst_rtp_mux_get_type (void); +gboolean gst_rtp_mux_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_RTP_MUX_H__ */ diff --git a/gst/rtpmanager/gstrtpptdemux.c b/gst/rtpmanager/gstrtpptdemux.c index b4d60aaba54e140d2a8fd72c41b7d6dccb864f64..fb3559a0592af95bd1e63be83df9069223853a58 100644 --- a/gst/rtpmanager/gstrtpptdemux.c +++ b/gst/rtpmanager/gstrtpptdemux.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -337,7 +337,9 @@ forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data) { GstPad *srcpad = GST_PAD_CAST (user_data); - gst_pad_push_event (srcpad, gst_event_ref (*event)); + /* Stream start and caps have already been pushed */ + if (GST_EVENT_TYPE (*event) >= GST_EVENT_SEGMENT) + gst_pad_push_event (srcpad, gst_event_ref (*event)); return TRUE; } @@ -394,9 +396,10 @@ gst_rtp_pt_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) gst_pad_set_active (srcpad, TRUE); - /* First sticky events on sink pad are forwarded to the new src pad */ - gst_pad_sticky_events_foreach (rtpdemux->sink, forward_sticky_events, - srcpad); + + /* First push the stream-start event, it must always come first */ + gst_pad_push_event (srcpad, + gst_pad_get_sticky_event (rtpdemux->sink, GST_EVENT_STREAM_START, 0)); /* Then caps event is sent */ caps = gst_caps_make_writable (caps); @@ -404,6 +407,10 @@ gst_rtp_pt_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) gst_pad_set_caps (srcpad, caps); gst_caps_unref (caps); + /* First sticky events on sink pad are forwarded to the new src pad */ + gst_pad_sticky_events_foreach (rtpdemux->sink, forward_sticky_events, + srcpad); + gst_element_add_pad (GST_ELEMENT_CAST (rtpdemux), srcpad); GST_DEBUG ("emitting new-payload-type for pt %d", pt); diff --git a/gst/rtpmanager/gstrtpptdemux.h b/gst/rtpmanager/gstrtpptdemux.h index 028c97d4a479cc7c1443b9df918a6ea1d854d000..aa1bb7f202726eaa4464225260990ffaee1df1e6 100644 --- a/gst/rtpmanager/gstrtpptdemux.h +++ b/gst/rtpmanager/gstrtpptdemux.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_PT_DEMUX_H__ diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index 271e9519a9fe1b8eb1d001d1f17c70571e0e99be..1bc2b52885430cee2d8f014fe3f681c9db45222c 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -226,9 +226,13 @@ enum #define GST_RTP_SESSION_LOCK(sess) g_mutex_lock (&(sess)->priv->lock) #define GST_RTP_SESSION_UNLOCK(sess) g_mutex_unlock (&(sess)->priv->lock) +#define GST_RTP_SESSION_WAIT(sess) g_cond_wait (&(sess)->priv->cond, &(sess)->priv->lock) +#define GST_RTP_SESSION_SIGNAL(sess) g_cond_signal (&(sess)->priv->cond) + struct _GstRtpSessionPrivate { GMutex lock; + GCond cond; GstClock *sysclock; RTPSession *session; @@ -238,10 +242,13 @@ struct _GstRtpSessionPrivate gboolean stop_thread; GThread *thread; gboolean thread_stopped; + gboolean wait_send; /* caps mapping */ GHashTable *ptmap; + GstClockTime send_latency; + gboolean use_pipeline_clock; }; @@ -620,6 +627,7 @@ gst_rtp_session_init (GstRtpSession * rtpsession) { rtpsession->priv = GST_RTP_SESSION_GET_PRIVATE (rtpsession); g_mutex_init (&rtpsession->priv->lock); + g_cond_init (&rtpsession->priv->cond); rtpsession->priv->sysclock = gst_system_clock_obtain (); rtpsession->priv->session = rtp_session_new (); rtpsession->priv->use_pipeline_clock = DEFAULT_USE_PIPELINE_CLOCK; @@ -663,6 +671,7 @@ gst_rtp_session_finalize (GObject * object) g_hash_table_destroy (rtpsession->priv->ptmap); g_mutex_clear (&rtpsession->priv->lock); + g_cond_clear (&rtpsession->priv->cond); g_object_unref (rtpsession->priv->sysclock); g_object_unref (rtpsession->priv->session); @@ -781,10 +790,12 @@ get_current_times (GstRtpSession * rtpsession, GstClockTime * running_time, gst_object_ref (clock); GST_OBJECT_UNLOCK (rtpsession); + /* get current clock time and convert to running time */ clock_time = gst_clock_get_time (clock); + rt = clock_time - base_time; if (rtpsession->priv->use_pipeline_clock) { - ntpns = clock_time - base_time; + ntpns = rt; } else { GTimeVal current; @@ -796,9 +807,6 @@ get_current_times (GstRtpSession * rtpsession, GstClockTime * running_time, /* add constant to convert from 1970 based time to 1900 based time */ ntpns += (2208988800LL * GST_SECOND); - /* get current clock time and convert to running time */ - rt = clock_time - base_time; - gst_object_unref (clock); } else { GST_OBJECT_UNLOCK (rtpsession); @@ -826,6 +834,12 @@ rtcp_thread (GstRtpSession * rtpsession) GST_RTP_SESSION_LOCK (rtpsession); + while (rtpsession->priv->wait_send) { + GST_LOG_OBJECT (rtpsession, "waiting for RTP thread"); + GST_RTP_SESSION_WAIT (rtpsession); + GST_LOG_OBJECT (rtpsession, "signaled..."); + } + sysclock = rtpsession->priv->sysclock; current_time = gst_clock_get_time (sysclock); @@ -925,6 +939,8 @@ stop_rtcp_thread (GstRtpSession * rtpsession) GST_RTP_SESSION_LOCK (rtpsession); rtpsession->priv->stop_thread = TRUE; + rtpsession->priv->wait_send = FALSE; + GST_RTP_SESSION_SIGNAL (rtpsession); if (rtpsession->priv->id) gst_clock_id_unschedule (rtpsession->priv->id); GST_RTP_SESSION_UNLOCK (rtpsession); @@ -961,6 +977,10 @@ gst_rtp_session_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_NULL_TO_READY: break; case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_RTP_SESSION_LOCK (rtpsession); + if (rtpsession->send_rtp_src) + rtpsession->priv->wait_send = TRUE; + GST_RTP_SESSION_UNLOCK (rtpsession); break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: break; @@ -1058,6 +1078,11 @@ gst_rtp_session_send_rtp (RTPSession * sess, RTPSource * src, GST_RTP_SESSION_LOCK (rtpsession); if ((rtp_src = rtpsession->send_rtp_src)) gst_object_ref (rtp_src); + if (rtpsession->priv->wait_send) { + GST_LOG_OBJECT (rtpsession, "signal RTCP thread"); + rtpsession->priv->wait_send = FALSE; + GST_RTP_SESSION_SIGNAL (rtpsession); + } GST_RTP_SESSION_UNLOCK (rtpsession); if (rtp_src) { @@ -1076,6 +1101,31 @@ gst_rtp_session_send_rtp (RTPSession * sess, RTPSource * src, return result; } +static void +do_rtcp_events (GstRtpSession * rtpsession, GstPad * srcpad) +{ + GstCaps *caps; + GstSegment seg; + GstEvent *event; + gchar *stream_id; + + stream_id = + g_strdup_printf ("%08x%08x%08x%08x", g_random_int (), g_random_int (), + g_random_int (), g_random_int ()); + + event = gst_event_new_stream_start (stream_id); + gst_pad_push_event (srcpad, event); + g_free (stream_id); + + caps = gst_caps_new_empty_simple ("application/x-rtcp"); + gst_pad_set_caps (srcpad, caps); + gst_caps_unref (caps); + + gst_segment_init (&seg, GST_FORMAT_TIME); + event = gst_event_new_segment (&seg); + gst_pad_push_event (srcpad, event); +} + /* called when the session manager has an RTCP packet ready for further * sending. The eos flag is set when an EOS event should be sent downstream as * well. */ @@ -1094,17 +1144,12 @@ gst_rtp_session_send_rtcp (RTPSession * sess, RTPSource * src, goto stopping; if ((rtcp_src = rtpsession->send_rtcp_src)) { - GstCaps *caps; - gst_object_ref (rtcp_src); GST_RTP_SESSION_UNLOCK (rtpsession); /* set rtcp caps on output pad */ - if (!(caps = gst_pad_get_current_caps (rtcp_src))) { - caps = gst_caps_new_empty_simple ("application/x-rtcp"); - gst_pad_set_caps (rtcp_src, caps); - } - gst_caps_unref (caps); + if (!gst_pad_has_current_caps (rtcp_src)) + do_rtcp_events (rtpsession, rtcp_src); GST_LOG_OBJECT (rtpsession, "sending RTCP"); result = gst_pad_push (rtcp_src, buffer); @@ -1151,18 +1196,9 @@ gst_rtp_session_sync_rtcp (RTPSession * sess, RTPSource * src, goto stopping; if ((sync_src = rtpsession->sync_src)) { - GstCaps *caps; - gst_object_ref (sync_src); GST_RTP_SESSION_UNLOCK (rtpsession); - /* set rtcp caps on output pad */ - if (!(caps = gst_pad_get_current_caps (sync_src))) { - caps = gst_caps_new_empty_simple ("application/x-rtcp"); - gst_pad_set_caps (sync_src, caps); - } - gst_caps_unref (caps); - GST_LOG_OBJECT (rtpsession, "sending Sync RTCP"); result = gst_pad_push (sync_src, buffer); gst_object_unref (sync_src); @@ -1434,8 +1470,22 @@ gst_rtp_session_event_recv_rtp_src (GstPad * pad, GstObject * parent, break; } - if (forward) - ret = gst_pad_push_event (rtpsession->recv_rtp_sink, event); + if (forward) { + GstPad *recv_rtp_sink; + + GST_RTP_SESSION_LOCK (rtpsession); + if ((recv_rtp_sink = rtpsession->recv_rtp_sink)) + gst_object_ref (recv_rtp_sink); + GST_RTP_SESSION_UNLOCK (rtpsession); + + if (recv_rtp_sink) { + ret = gst_pad_push_event (recv_rtp_sink, event); + gst_object_unref (recv_rtp_sink); + } else + gst_event_unref (event); + } else { + gst_event_unref (event); + } return ret; } @@ -1589,7 +1639,8 @@ gst_rtp_session_query_send_rtcp_src (GstPad * pad, GstObject * parent, rtpsession = GST_RTP_SESSION (parent); - GST_DEBUG_OBJECT (rtpsession, "received QUERY"); + GST_DEBUG_OBJECT (rtpsession, "received QUERY %s", + GST_QUERY_TYPE_NAME (query)); switch (GST_QUERY_TYPE (query)) { case GST_QUERY_LATENCY: @@ -1613,7 +1664,8 @@ gst_rtp_session_event_send_rtcp_src (GstPad * pad, GstObject * parent, gboolean ret = TRUE; rtpsession = GST_RTP_SESSION (parent); - GST_DEBUG_OBJECT (rtpsession, "received EVENT"); + GST_DEBUG_OBJECT (rtpsession, "received EVENT %s", + GST_EVENT_TYPE_NAME (event)); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_SEEK: @@ -1641,7 +1693,8 @@ gst_rtp_session_event_send_rtp_sink (GstPad * pad, GstObject * parent, rtpsession = GST_RTP_SESSION (parent); - GST_DEBUG_OBJECT (rtpsession, "received event"); + GST_DEBUG_OBJECT (rtpsession, "received EVENT %s", + GST_EVENT_TYPE_NAME (event)); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_CAPS: @@ -1690,10 +1743,11 @@ gst_rtp_session_event_send_rtp_sink (GstPad * pad, GstObject * parent, break; } default:{ - GstPad *send_rtp_src = NULL; + GstPad *send_rtp_src; + GST_RTP_SESSION_LOCK (rtpsession); - if (rtpsession->send_rtp_src) - send_rtp_src = gst_object_ref (rtpsession->send_rtp_src); + if ((send_rtp_src = rtpsession->send_rtp_src)) + gst_object_ref (send_rtp_src); GST_RTP_SESSION_UNLOCK (rtpsession); if (send_rtp_src) { @@ -1709,6 +1763,33 @@ gst_rtp_session_event_send_rtp_sink (GstPad * pad, GstObject * parent, return ret; } +static gboolean +gst_rtp_session_event_send_rtp_src (GstPad * pad, GstObject * parent, + GstEvent * event) +{ + GstRtpSession *rtpsession; + gboolean ret = FALSE; + + rtpsession = GST_RTP_SESSION (parent); + + GST_DEBUG_OBJECT (rtpsession, "received EVENT %s", + GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_LATENCY: + /* save the latency, we need this to know when an RTP packet will be + * rendered by the sink */ + gst_event_parse_latency (event, &rtpsession->priv->send_latency); + + ret = gst_pad_event_default (pad, parent, event); + break; + default: + ret = gst_pad_event_default (pad, parent, event); + break; + } + return ret; +} + static GstCaps * gst_rtp_session_getcaps_send_rtp (GstPad * pad, GstRtpSession * rtpsession, GstCaps * filter) @@ -1826,6 +1907,7 @@ gst_rtp_session_chain_send_rtp_common (GstRtpSession * rtpsession, running_time = gst_segment_to_running_time (&rtpsession->send_rtp_seg, GST_FORMAT_TIME, timestamp); + running_time += priv->send_latency; } else { /* no timestamp. */ running_time = -1; @@ -1882,7 +1964,7 @@ create_recv_rtp_sink (GstRtpSession * rtpsession) gst_pad_set_chain_function (rtpsession->recv_rtp_sink, gst_rtp_session_chain_recv_rtp); gst_pad_set_event_function (rtpsession->recv_rtp_sink, - (GstPadEventFunction) gst_rtp_session_event_recv_rtp_sink); + gst_rtp_session_event_recv_rtp_sink); gst_pad_set_iterate_internal_links_function (rtpsession->recv_rtp_sink, gst_rtp_session_iterate_internal_links); gst_pad_set_active (rtpsession->recv_rtp_sink, TRUE); @@ -1894,7 +1976,7 @@ create_recv_rtp_sink (GstRtpSession * rtpsession) gst_pad_new_from_static_template (&rtpsession_recv_rtp_src_template, "recv_rtp_src"); gst_pad_set_event_function (rtpsession->recv_rtp_src, - (GstPadEventFunction) gst_rtp_session_event_recv_rtp_src); + gst_rtp_session_event_recv_rtp_src); gst_pad_set_iterate_internal_links_function (rtpsession->recv_rtp_src, gst_rtp_session_iterate_internal_links); gst_pad_use_fixed_caps (rtpsession->recv_rtp_src); @@ -1941,7 +2023,7 @@ create_recv_rtcp_sink (GstRtpSession * rtpsession) gst_pad_set_chain_function (rtpsession->recv_rtcp_sink, gst_rtp_session_chain_recv_rtcp); gst_pad_set_event_function (rtpsession->recv_rtcp_sink, - (GstPadEventFunction) gst_rtp_session_event_recv_rtcp_sink); + gst_rtp_session_event_recv_rtcp_sink); gst_pad_set_iterate_internal_links_function (rtpsession->recv_rtcp_sink, gst_rtp_session_iterate_internal_links); gst_pad_set_active (rtpsession->recv_rtcp_sink, TRUE); @@ -1996,7 +2078,7 @@ create_send_rtp_sink (GstRtpSession * rtpsession) gst_pad_set_query_function (rtpsession->send_rtp_sink, gst_rtp_session_query_send_rtp); gst_pad_set_event_function (rtpsession->send_rtp_sink, - (GstPadEventFunction) gst_rtp_session_event_send_rtp_sink); + gst_rtp_session_event_send_rtp_sink); gst_pad_set_iterate_internal_links_function (rtpsession->send_rtp_sink, gst_rtp_session_iterate_internal_links); gst_pad_set_active (rtpsession->send_rtp_sink, TRUE); @@ -2008,6 +2090,8 @@ create_send_rtp_sink (GstRtpSession * rtpsession) "send_rtp_src"); gst_pad_set_iterate_internal_links_function (rtpsession->send_rtp_src, gst_rtp_session_iterate_internal_links); + gst_pad_set_event_function (rtpsession->send_rtp_src, + gst_rtp_session_event_send_rtp_src); gst_pad_set_active (rtpsession->send_rtp_src, TRUE); gst_element_add_pad (GST_ELEMENT_CAST (rtpsession), rtpsession->send_rtp_src); @@ -2177,11 +2261,20 @@ gst_rtp_session_request_key_unit (RTPSession * sess, { GstRtpSession *rtpsession = GST_RTP_SESSION (user_data); GstEvent *event; + GstPad *send_rtp_sink; - event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, - gst_structure_new ("GstForceKeyUnit", - "all-headers", G_TYPE_BOOLEAN, all_headers, NULL)); - gst_pad_push_event (rtpsession->send_rtp_sink, event); + GST_RTP_SESSION_LOCK (rtpsession); + if ((send_rtp_sink = rtpsession->send_rtp_sink)) + gst_object_ref (send_rtp_sink); + GST_RTP_SESSION_UNLOCK (rtpsession); + + if (send_rtp_sink) { + event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_new ("GstForceKeyUnit", + "all-headers", G_TYPE_BOOLEAN, all_headers, NULL)); + gst_pad_push_event (send_rtp_sink, event); + gst_object_unref (send_rtp_sink); + } } static GstClockTime diff --git a/gst/rtpmanager/gstrtpsession.h b/gst/rtpmanager/gstrtpsession.h index bc3feb834d4eaa5758b3a87f2b5d4d73464c5bd1..bbaafa6163a94feb05a0dcd08e9319ede2b57fb1 100644 --- a/gst/rtpmanager/gstrtpsession.h +++ b/gst/rtpmanager/gstrtpsession.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_SESSION_H__ diff --git a/gst/rtpmanager/gstrtpssrcdemux.c b/gst/rtpmanager/gstrtpssrcdemux.c index 74d6aae50593f1026e9f96d8b24739eb2f184f76..142f4ca1fdf37194d638da826b7645f23111aff2 100644 --- a/gst/rtpmanager/gstrtpssrcdemux.c +++ b/gst/rtpmanager/gstrtpssrcdemux.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -123,8 +123,6 @@ static gboolean gst_rtp_ssrc_demux_sink_event (GstPad * pad, GstObject * parent, static GstFlowReturn gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad, GstObject * parent, GstBuffer * buf); -static gboolean gst_rtp_ssrc_demux_rtcp_sink_event (GstPad * pad, - GstObject * parent, GstEvent * event); static GstIterator *gst_rtp_ssrc_demux_iterate_internal_links_sink (GstPad * pad, GstObject * parent); @@ -147,6 +145,9 @@ struct _GstRtpSsrcDemuxPad GstPad *rtp_pad; GstCaps *caps; GstPad *rtcp_pad; + + gboolean pushed_initial_rtp_events; + gboolean pushed_initial_rtcp_events; }; /* find a src pad for a given SSRC, returns NULL if the SSRC was not found @@ -193,7 +194,7 @@ add_ssrc_and_ref (GstEvent * event, guint32 ssrc) return event; } -struct ForwardEventData +struct ForwardStickyEventData { GstPad *pad; guint32 ssrc; @@ -202,7 +203,7 @@ struct ForwardEventData static gboolean forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data) { - struct ForwardEventData *data = user_data; + struct ForwardStickyEventData *data = user_data; GstEvent *newevent; newevent = add_ssrc_and_ref (*event, data->ssrc); @@ -212,6 +213,25 @@ forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data) return TRUE; } +static void +forward_initial_events (GstRtpSsrcDemux * demux, guint32 ssrc, GstPad * pad, + PadType padtype) +{ + struct ForwardStickyEventData fdata; + GstPad *sinkpad; + + if (padtype == RTP_PAD) + sinkpad = demux->rtp_sink; + else if (padtype == RTCP_PAD) + sinkpad = demux->rtcp_sink; + else + g_assert_not_reached (); + + fdata.ssrc = ssrc; + fdata.pad = pad; + + gst_pad_sticky_events_foreach (sinkpad, forward_sticky_events, &fdata); +} static GstPad * find_or_create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc, @@ -222,32 +242,44 @@ find_or_create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc, GstPadTemplate *templ; gchar *padname; GstRtpSsrcDemuxPad *demuxpad; - GstCaps *caps; - struct ForwardEventData fdata; GstPad *retpad; gulong rtp_block, rtcp_block; - GST_DEBUG_OBJECT (demux, "creating pad for SSRC %08x", ssrc); - GST_PAD_LOCK (demux); demuxpad = find_demux_pad_for_ssrc (demux, ssrc); if (demuxpad != NULL) { + gboolean forward = FALSE; + switch (padtype) { case RTP_PAD: retpad = gst_object_ref (demuxpad->rtp_pad); + if (!demuxpad->pushed_initial_rtp_events) { + forward = TRUE; + demuxpad->pushed_initial_rtp_events = TRUE; + } break; case RTCP_PAD: retpad = gst_object_ref (demuxpad->rtcp_pad); + if (!demuxpad->pushed_initial_rtcp_events) { + forward = TRUE; + demuxpad->pushed_initial_rtcp_events = TRUE; + } break; default: retpad = NULL; g_assert_not_reached (); } + GST_PAD_UNLOCK (demux); + + if (forward) + forward_initial_events (demux, ssrc, retpad, padtype); return retpad; } + GST_DEBUG_OBJECT (demux, "creating new pad for SSRC %08x", ssrc); + klass = GST_ELEMENT_GET_CLASS (demux); templ = gst_element_class_get_pad_template (klass, "src_%u"); padname = g_strdup_printf ("src_%u", ssrc); @@ -265,8 +297,6 @@ find_or_create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc, demuxpad->rtp_pad = rtp_pad; demuxpad->rtcp_pad = rtcp_pad; - fdata.ssrc = ssrc; - gst_pad_set_element_private (rtp_pad, demuxpad); gst_pad_set_element_private (rtcp_pad, demuxpad); @@ -278,28 +308,23 @@ find_or_create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc, gst_pad_set_event_function (rtp_pad, gst_rtp_ssrc_demux_src_event); gst_pad_use_fixed_caps (rtp_pad); gst_pad_set_active (rtp_pad, TRUE); - fdata.pad = rtp_pad; - gst_pad_sticky_events_foreach (demux->rtp_sink, forward_sticky_events, - &fdata); gst_pad_set_event_function (rtcp_pad, gst_rtp_ssrc_demux_src_event); gst_pad_set_iterate_internal_links_function (rtcp_pad, gst_rtp_ssrc_demux_iterate_internal_links_src); gst_pad_use_fixed_caps (rtcp_pad); gst_pad_set_active (rtcp_pad, TRUE); - fdata.pad = rtcp_pad; - gst_pad_sticky_events_foreach (demux->rtcp_sink, forward_sticky_events, - &fdata); - - /* copy caps from input */ - if ((caps = gst_pad_get_current_caps (demux->rtp_sink))) { - gst_pad_set_caps (rtp_pad, caps); - gst_caps_unref (caps); - } - if ((caps = gst_pad_get_current_caps (demux->rtcp_sink))) { - gst_pad_set_caps (rtcp_pad, caps); - gst_caps_unref (caps); + + if (padtype == RTP_PAD) { + demuxpad->pushed_initial_rtp_events = TRUE; + forward_initial_events (demux, ssrc, rtp_pad, padtype); + } else if (padtype == RTCP_PAD) { + demuxpad->pushed_initial_rtcp_events = TRUE; + forward_initial_events (demux, ssrc, rtcp_pad, padtype); + } else { + g_assert_not_reached (); } + gst_element_add_pad (GST_ELEMENT_CAST (demux), rtp_pad); gst_element_add_pad (GST_ELEMENT_CAST (demux), rtcp_pad); @@ -435,15 +460,12 @@ gst_rtp_ssrc_demux_init (GstRtpSsrcDemux * demux) gst_pad_new_from_template (gst_element_class_get_pad_template (klass, "rtcp_sink"), "rtcp_sink"); gst_pad_set_chain_function (demux->rtcp_sink, gst_rtp_ssrc_demux_rtcp_chain); - gst_pad_set_event_function (demux->rtcp_sink, - gst_rtp_ssrc_demux_rtcp_sink_event); + gst_pad_set_event_function (demux->rtcp_sink, gst_rtp_ssrc_demux_sink_event); gst_pad_set_iterate_internal_links_function (demux->rtcp_sink, gst_rtp_ssrc_demux_iterate_internal_links_sink); gst_element_add_pad (GST_ELEMENT_CAST (demux), demux->rtcp_sink); g_rec_mutex_init (&demux->padlock); - - gst_segment_init (&demux->segment, GST_FORMAT_UNDEFINED); } static void @@ -527,95 +549,62 @@ unknown_pad: } } -static gboolean -gst_rtp_ssrc_demux_sink_event (GstPad * pad, GstObject * parent, - GstEvent * event) +struct ForwardEventData { GstRtpSsrcDemux *demux; - gboolean res = FALSE; - - demux = GST_RTP_SSRC_DEMUX (parent); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_FLUSH_STOP: - gst_segment_init (&demux->segment, GST_FORMAT_UNDEFINED); - /* fallthrough */ - default: - { - GSList *walk; - GSList *pads = NULL; - - res = TRUE; - /* need local snapshot of pads; - * should not push downstream while holding lock as that might deadlock - * with stuff traveling upstream tyring to get this lock while holding - * other (stream)lock */ - GST_PAD_LOCK (demux); - for (walk = demux->srcpads; walk; walk = g_slist_next (walk)) { - GstRtpSsrcDemuxPad *pad = (GstRtpSsrcDemuxPad *) walk->data; - - pad = g_slice_dup (GstRtpSsrcDemuxPad, pad); - gst_object_ref (pad->rtp_pad); - - pads = g_slist_prepend (pads, pad); - } - GST_PAD_UNLOCK (demux); + GstEvent *event; + gboolean res; + GstPad *pad; +}; - for (walk = pads; walk; walk = g_slist_next (walk)) { - GstRtpSsrcDemuxPad *dpad = walk->data; - GstEvent *newevent; +static gboolean +forward_event (GstPad * pad, gpointer user_data) +{ + struct ForwardEventData *fdata = user_data; + GSList *walk = NULL; + GstEvent *newevent = NULL; - newevent = add_ssrc_and_ref (event, dpad->ssrc); + GST_PAD_LOCK (fdata->demux); + for (walk = fdata->demux->srcpads; walk; walk = walk->next) { + GstRtpSsrcDemuxPad *dpad = (GstRtpSsrcDemuxPad *) walk->data; - res &= gst_pad_push_event (dpad->rtp_pad, newevent); - gst_object_unref (dpad->rtp_pad); - g_slice_free (GstRtpSsrcDemuxPad, dpad); - } - g_slist_free (pads); - gst_event_unref (event); + /* Only forward the event if the initial events have been through first, + * the initial events should be forwarded before any other event + * or buffer is pushed */ + if ((pad == dpad->rtp_pad && dpad->pushed_initial_rtp_events) || + (pad == dpad->rtcp_pad && dpad->pushed_initial_rtcp_events)) { + newevent = add_ssrc_and_ref (fdata->event, dpad->ssrc); break; } } + GST_PAD_UNLOCK (fdata->demux); - return res; + if (newevent) + fdata->res &= gst_pad_push_event (pad, newevent); + + return TRUE; } + static gboolean -gst_rtp_ssrc_demux_rtcp_sink_event (GstPad * pad, GstObject * parent, +gst_rtp_ssrc_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) { GstRtpSsrcDemux *demux; - gboolean res = TRUE; - GSList *walk; - GSList *pads = NULL; + struct ForwardEventData fdata; demux = GST_RTP_SSRC_DEMUX (parent); - GST_PAD_LOCK (demux); - for (walk = demux->srcpads; walk; walk = g_slist_next (walk)) { - GstRtpSsrcDemuxPad *pad = (GstRtpSsrcDemuxPad *) walk->data; - - pad = g_slice_dup (GstRtpSsrcDemuxPad, pad); - gst_object_ref (pad->rtcp_pad); - - pads = g_slist_prepend (pads, pad); - } - GST_PAD_UNLOCK (demux); + fdata.demux = demux; + fdata.pad = pad; + fdata.event = event; + fdata.res = TRUE; - for (walk = pads; walk; walk = g_slist_next (walk)) { - GstRtpSsrcDemuxPad *dpad = walk->data; - GstEvent *newevent; + gst_pad_forward (pad, forward_event, &fdata); - newevent = add_ssrc_and_ref (event, dpad->ssrc); - - res &= gst_pad_push_event (dpad->rtcp_pad, newevent); - gst_object_unref (dpad->rtcp_pad); - g_slice_free (GstRtpSsrcDemuxPad, dpad); - } - g_slist_free (pads); gst_event_unref (event); - return res; + return fdata.res; } static GstFlowReturn @@ -626,6 +615,7 @@ gst_rtp_ssrc_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) guint32 ssrc; GstRTPBuffer rtp = { NULL }; GstPad *srcpad; + GstRtpSsrcDemuxPad *dpad; demux = GST_RTP_SSRC_DEMUX (parent); @@ -644,6 +634,17 @@ gst_rtp_ssrc_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) /* push to srcpad */ ret = gst_pad_push (srcpad, buf); + if (ret != GST_FLOW_OK) { + /* check if the ssrc still there, may have been removed */ + GST_PAD_LOCK (demux); + dpad = find_demux_pad_for_ssrc (demux, ssrc); + if (dpad == NULL || dpad->rtp_pad != srcpad) { + /* SSRC was removed during the push ... ignore the error */ + ret = GST_FLOW_OK; + } + GST_PAD_UNLOCK (demux); + } + gst_object_unref (srcpad); return ret; @@ -676,6 +677,7 @@ gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad, GstObject * parent, GstRTCPPacket packet; GstRTCPBuffer rtcp = { NULL, }; GstPad *srcpad; + GstRtpSsrcDemuxPad *dpad; demux = GST_RTP_SSRC_DEMUX (parent); @@ -709,6 +711,17 @@ gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad, GstObject * parent, /* push to srcpad */ ret = gst_pad_push (srcpad, buf); + if (ret != GST_FLOW_OK) { + /* check if the ssrc still there, may have been removed */ + GST_PAD_LOCK (demux); + dpad = find_demux_pad_for_ssrc (demux, ssrc); + if (dpad == NULL || dpad->rtcp_pad != srcpad) { + /* SSRC was removed during the push ... ignore the error */ + ret = GST_FLOW_OK; + } + GST_PAD_UNLOCK (demux); + } + gst_object_unref (srcpad); return ret; @@ -828,10 +841,12 @@ src_pad_compare_func (gconstpointer a, gconstpointer b) { GstPad *pad = GST_PAD (g_value_get_object (a)); const gchar *prefix = g_value_get_string (b); - gint res = 1; + gint res; + /* 0 means equal means we accept the pad, accepted if there is a name + * and it starts with the prefix */ GST_OBJECT_LOCK (pad); - res = !GST_PAD_NAME (pad) || g_str_has_prefix (GST_PAD_NAME (pad), prefix); + res = !GST_PAD_NAME (pad) || !g_str_has_prefix (GST_PAD_NAME (pad), prefix); GST_OBJECT_UNLOCK (pad); return res; diff --git a/gst/rtpmanager/gstrtpssrcdemux.h b/gst/rtpmanager/gstrtpssrcdemux.h index 9233bc0e468ecf025c711ced870cb286e6066629..82df4449e872404ae4ca91bc181b693c1fa08e5a 100644 --- a/gst/rtpmanager/gstrtpssrcdemux.h +++ b/gst/rtpmanager/gstrtpssrcdemux.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_RTP_SSRC_DEMUX_H__ @@ -36,8 +36,6 @@ struct _GstRtpSsrcDemux { GstElement parent; - GstSegment segment; - GstPad *rtp_sink; GstPad *rtcp_sink; diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c index 569930140adbe5851ed3e540558d09ec726122d6..3a2423e94fd3aaf5f8babbbbd1a406e46ee1d270 100644 --- a/gst/rtpmanager/rtpjitterbuffer.c +++ b/gst/rtpmanager/rtpjitterbuffer.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> #include <stdlib.h> @@ -373,6 +373,9 @@ calculate_skew (RTPJitterBuffer * jbuf, guint32 rtptime, GstClockTime time, ext_rtptime = gst_rtp_buffer_ext_timestamp (&jbuf->ext_rtptime, rtptime); + if (jbuf->last_rtptime != -1 && ext_rtptime == jbuf->last_rtptime) + return jbuf->prev_out_time; + gstrtptime = gst_util_uint64_scale_int (ext_rtptime, GST_SECOND, clock_rate); /* keep track of the last extended rtptime */ diff --git a/gst/rtpmanager/rtpjitterbuffer.h b/gst/rtpmanager/rtpjitterbuffer.h index 85bf9775de5563647ee7c7dac403207763a79e95..6a0f3d0ce904fb5b876e11b4886810a89a118158 100644 --- a/gst/rtpmanager/rtpjitterbuffer.h +++ b/gst/rtpmanager/rtpjitterbuffer.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __RTP_JITTER_BUFFER_H__ diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index f46362725e7e7d4fa04649f01ae41da5a5c8cd77..9f45c668ad3cded48e7871cd600f85f04ce5e522 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray @@ -471,7 +471,6 @@ rtp_session_init (RTPSession * sess) g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) g_object_unref); } - sess->cnames = g_hash_table_new_full (NULL, NULL, g_free, NULL); rtp_stats_init_defaults (&sess->stats); @@ -540,7 +539,6 @@ rtp_session_finalize (GObject * object) g_free (sess->bye_reason); - g_hash_table_destroy (sess->cnames); g_object_unref (sess->source); G_OBJECT_CLASS (rtp_session_parent_class)->finalize (object); @@ -1225,9 +1223,7 @@ check_collision (RTPSession * sess, RTPSource * source, GSocketAddress *from; /* This is not our local source, but lets check if two remote - * source collide - */ - + * source collide */ if (rtp) { from = source->rtp_from; } else { @@ -1296,25 +1292,6 @@ check_collision (RTPSession * sess, RTPSource * source, * Maybe should be done in upper layer, only the SDES can tell us * if its a collision or a loop */ - - /* If the source has been inactive for some time, we assume that it has - * simply changed its transport source address. Hence, there is no true - * third-party collision - only a simulated one. */ - if (arrival->current_time > source->last_activity) { - GstClockTime inactivity_period = - arrival->current_time - source->last_activity; - if (inactivity_period > 1 * GST_SECOND) { - /* Use new network address */ - if (rtp) { - g_assert (source->rtp_from); - rtp_source_set_rtp_from (source, arrival->address); - } else { - g_assert (source->rtcp_from); - rtp_source_set_rtcp_from (source, arrival->address); - } - return FALSE; - } - } } else { /* This is sending with our ssrc, is it an address we already know */ @@ -1581,33 +1558,6 @@ rtp_session_get_source_by_ssrc (RTPSession * sess, guint32 ssrc) return result; } -/** - * rtp_session_get_source_by_cname: - * @sess: a #RTPSession - * @cname: an CNAME - * - * Find the source with @cname in @sess. - * - * Returns: a #RTPSource with CNAME @cname or NULL if the source was not found. - * g_object_unref() after usage. - */ -RTPSource * -rtp_session_get_source_by_cname (RTPSession * sess, const gchar * cname) -{ - RTPSource *result; - - g_return_val_if_fail (RTP_IS_SESSION (sess), NULL); - g_return_val_if_fail (cname != NULL, NULL); - - RTP_SESSION_LOCK (sess); - result = g_hash_table_lookup (sess->cnames, cname); - if (result) - g_object_ref (result); - RTP_SESSION_UNLOCK (sess); - - return result; -} - /* should be called with the SESSION lock */ static guint32 rtp_session_create_new_ssrc (RTPSession * sess) @@ -2544,7 +2494,8 @@ calculate_rtcp_interval (RTPSession * sess, gboolean deterministic, /* If it is <= 0, then try to estimate the actual bandwidth */ bandwidth = sess->source->bitrate; - g_hash_table_foreach (sess->cnames, (GHFunc) add_bitrates, &bandwidth); + g_hash_table_foreach (sess->ssrcs[sess->mask_idx], + (GHFunc) add_bitrates, &bandwidth); bandwidth /= 8.0; } if (bandwidth < 8000) @@ -2673,7 +2624,8 @@ rtp_session_next_timeout (RTPSession * sess, GstClockTime current_time) result = sess->next_rtcp_check_time; - GST_DEBUG ("current time: %" GST_TIME_FORMAT ", next :%" GST_TIME_FORMAT, + GST_DEBUG ("current time: %" GST_TIME_FORMAT + ", next time: %" GST_TIME_FORMAT, GST_TIME_ARGS (current_time), GST_TIME_ARGS (result)); if (result < current_time) { @@ -3114,8 +3066,9 @@ rtp_session_on_timeout (RTPSession * sess, GstClockTime current_time, g_return_val_if_fail (RTP_IS_SESSION (sess), GST_FLOW_ERROR); - GST_DEBUG ("reporting at %" GST_TIME_FORMAT ", NTP time %" GST_TIME_FORMAT, - GST_TIME_ARGS (current_time), GST_TIME_ARGS (ntpnstime)); + GST_DEBUG ("reporting at %" GST_TIME_FORMAT ", NTP time %" GST_TIME_FORMAT + ", running-time %" GST_TIME_FORMAT, GST_TIME_ARGS (current_time), + GST_TIME_ARGS (ntpnstime), GST_TIME_ARGS (running_time)); data.sess = sess; data.rtcp = NULL; diff --git a/gst/rtpmanager/rtpsession.h b/gst/rtpmanager/rtpsession.h index 46a2349d50e7c4fc76294b1a67cf1fc0aee3d0da..16e73b6e0b7ed2b688a3df899c0bd583f42a0edf 100644 --- a/gst/rtpmanager/rtpsession.h +++ b/gst/rtpmanager/rtpsession.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __RTP_SESSION_H__ @@ -172,7 +172,6 @@ typedef struct { * @lock: lock to protect the session * @source: the source of this session * @ssrcs: Hashtable of sources indexed by SSRC - * @cnames: Hashtable of sources indexed by CNAME * @num_sources: the number of sources * @activecount: the number of active sources * @callbacks: callbacks @@ -205,7 +204,6 @@ struct _RTPSession { guint32 mask_idx; guint32 mask; GHashTable *ssrcs[32]; - GHashTable *cnames; guint total_sources; GstClockTime next_rtcp_check_time; @@ -321,7 +319,6 @@ gboolean rtp_session_add_source (RTPSession *sess, RTPSource guint rtp_session_get_num_sources (RTPSession *sess); guint rtp_session_get_num_active_sources (RTPSession *sess); RTPSource* rtp_session_get_source_by_ssrc (RTPSession *sess, guint32 ssrc); -RTPSource* rtp_session_get_source_by_cname (RTPSession *sess, const gchar *cname); RTPSource* rtp_session_create_source (RTPSession *sess); /* processing packets from receivers */ diff --git a/gst/rtpmanager/rtpsource.c b/gst/rtpmanager/rtpsource.c index d76d209512a2829a259b844d552b366ef811d1f8..425399284e601cbf15e3b478a41d9d186a4ad58e 100644 --- a/gst/rtpmanager/rtpsource.c +++ b/gst/rtpmanager/rtpsource.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> diff --git a/gst/rtpmanager/rtpsource.h b/gst/rtpmanager/rtpsource.h index 7414f94e55de20f4816d5921dbe30afd0ffb85a1..7f1210f104fb21b90601cf88c0285bdda5882aa6 100644 --- a/gst/rtpmanager/rtpsource.h +++ b/gst/rtpmanager/rtpsource.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __RTP_SOURCE_H__ diff --git a/gst/rtpmanager/rtpstats.c b/gst/rtpmanager/rtpstats.c index 734f4c046e5425070374d667d9211a110effb59a..a73e1c6b5dbce8777c82d2a3b1adaf66fb916268 100644 --- a/gst/rtpmanager/rtpstats.c +++ b/gst/rtpmanager/rtpstats.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include "rtpstats.h" diff --git a/gst/rtpmanager/rtpstats.h b/gst/rtpmanager/rtpstats.h index 147ab1ec755b8d084e6798121873ade65bd5f4cc..77cbc7173346339bfdbbffac91f9cd835d1e3fcc 100644 --- a/gst/rtpmanager/rtpstats.h +++ b/gst/rtpmanager/rtpstats.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __RTP_STATS_H__ diff --git a/gst/rtsp/Makefile.am b/gst/rtsp/Makefile.am index 9cc3cdf0fba6fda68811dfa01b326b6e2cb0c078..1f0213b37e818fd29dfa2ed0e3012e00a0eaf536 100644 --- a/gst/rtsp/Makefile.am +++ b/gst/rtsp/Makefile.am @@ -4,9 +4,9 @@ libgstrtsp_la_SOURCES = gstrtsp.c gstrtspsrc.c \ gstrtpdec.c gstrtspext.c libgstrtsp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) -libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) \ +libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) \ -lgstrtp-@GST_API_VERSION@ -lgstrtsp-@GST_API_VERSION@ \ - -lgstsdp-@GST_API_VERSION@ $(GST_LIBS) + -lgstsdp-@GST_API_VERSION@ -lgstnet-@GST_API_VERSION@ $(GST_LIBS) libgstrtsp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstrtsp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) diff --git a/gst/rtsp/Makefile.in b/gst/rtsp/Makefile.in index b142083289895976630b3c664dc7d8e8547aa88d..b46e563d69cec7cb4dde292a7f5c4bddb0420aad 100644 --- a/gst/rtsp/Makefile.in +++ b/gst/rtsp/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/rtsp -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -129,7 +155,8 @@ am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstrtsp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_libgstrtsp_la_OBJECTS = libgstrtsp_la-gstrtsp.lo \ libgstrtsp_la-gstrtspsrc.lo libgstrtsp_la-gstrtpdec.lo \ libgstrtsp_la-gstrtspext.lo @@ -137,10 +164,23 @@ libgstrtsp_la_OBJECTS = $(am_libgstrtsp_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstrtsp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstrtsp_la_CFLAGS) $(CFLAGS) \ $(libgstrtsp_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstrtsp_la_SOURCES) DIST_SOURCES = $(libgstrtsp_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +211,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +396,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -508,9 +562,9 @@ libgstrtsp_la_SOURCES = gstrtsp.c gstrtspsrc.c \ gstrtpdec.c gstrtspext.c libgstrtsp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) -libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) \ +libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) \ -lgstrtp-@GST_API_VERSION@ -lgstrtsp-@GST_API_VERSION@ \ - -lgstsdp-@GST_API_VERSION@ $(GST_LIBS) + -lgstsdp-@GST_API_VERSION@ -lgstnet-@GST_API_VERSION@ $(GST_LIBS) libgstrtsp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstrtsp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) @@ -553,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -579,12 +634,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstrtsp.la: $(libgstrtsp_la_OBJECTS) $(libgstrtsp_la_DEPENDENCIES) $(EXTRA_libgstrtsp_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrtsp_la_LINK) -rpath $(plugindir) $(libgstrtsp_la_OBJECTS) $(libgstrtsp_la_LIBADD) $(LIBS) @@ -654,26 +712,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -685,15 +732,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -702,6 +745,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -846,19 +904,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/rtsp/gstrtpdec.c b/gst/rtsp/gstrtpdec.c index a639b8c70392e33487704177987a0b3ea8ed3fa4..87bca266c126b19f01a5af1f6d715dfb64f6fb9d 100644 --- a/gst/rtsp/gstrtpdec.c +++ b/gst/rtsp/gstrtpdec.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/rtsp/gstrtpdec.h b/gst/rtsp/gstrtpdec.h index 08128f48232d2685f234ec00df7c19a511df2349..5e83e2365aae32c46abc32f4be60f3a27524528e 100644 --- a/gst/rtsp/gstrtpdec.h +++ b/gst/rtsp/gstrtpdec.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/rtsp/gstrtsp.c b/gst/rtsp/gstrtsp.c index e0f24de82f28af631f65c033cea02390f889cb3b..7f1265307a363ca4485d5ff76f3bba160563832b 100644 --- a/gst/rtsp/gstrtsp.c +++ b/gst/rtsp/gstrtsp.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/rtsp/gstrtsp.h b/gst/rtsp/gstrtsp.h index f29c35994ac9593f72897b678bbcac572cdc9a2f..e0f5ef8e0218e5ab1a00b97a328454ba6dbc4ea6 100644 --- a/gst/rtsp/gstrtsp.h +++ b/gst/rtsp/gstrtsp.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/rtsp/gstrtspext.c b/gst/rtsp/gstrtspext.c index b4cc8f9714fd1b1195dd7aebfe4266a2e5a26f5d..07b5a97d71586bf1d402cb45deb7b01679afdf65 100644 --- a/gst/rtsp/gstrtspext.c +++ b/gst/rtsp/gstrtspext.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/rtsp/gstrtspext.h b/gst/rtsp/gstrtspext.h index f30b302ff48ee9b5265eb77fc881b2341fb3620a..2e877968eb1dd324c44570b93fb600a927406433 100644 --- a/gst/rtsp/gstrtspext.h +++ b/gst/rtsp/gstrtspext.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 98577b86aa8957a03164db6d84a4107e19ce1694..c0c05a2c1c0d3220c39ef93d658a844e6b9cc2f0 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. @@ -89,6 +89,7 @@ #include <stdio.h> #include <stdarg.h> +#include <gst/net/gstnet.h> #include <gst/sdp/gstsdpmessage.h> #include <gst/rtp/gstrtppayloads.h> @@ -119,7 +120,9 @@ GST_STATIC_PAD_TEMPLATE ("internalsink_%u", enum { - /* FILL ME */ + SIGNAL_HANDLE_REQUEST, + SIGNAL_ON_SDP, + SIGNAL_SELECT_STREAM, LAST_SIGNAL }; @@ -179,6 +182,10 @@ gst_rtsp_src_buffer_mode_get_type (void) #define DEFAULT_PORT_RANGE NULL #define DEFAULT_SHORT_HEADER FALSE #define DEFAULT_PROBATION 2 +#define DEFAULT_UDP_RECONNECT TRUE +#define DEFAULT_MULTICAST_IFACE NULL +#define DEFAULT_NTP_SYNC FALSE +#define DEFAULT_USE_PIPELINE_CLOCK FALSE enum { @@ -196,6 +203,8 @@ enum PROP_DO_RTCP, PROP_DO_RTSP_KEEP_ALIVE, PROP_PROXY, + PROP_PROXY_ID, + PROP_PROXY_PW, PROP_RTP_BLOCKSIZE, PROP_USER_ID, PROP_USER_PW, @@ -204,6 +213,10 @@ enum PROP_UDP_BUFFER_SIZE, PROP_SHORT_HEADER, PROP_PROBATION, + PROP_UDP_RECONNECT, + PROP_MULTICAST_IFACE, + PROP_NTP_SYNC, + PROP_USE_PIPELINE_CLOCK, PROP_LAST }; @@ -232,6 +245,8 @@ static void gst_rtspsrc_set_property (GObject * object, guint prop_id, static void gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); +static GstClock *gst_rtspsrc_provide_clock (GstElement * element); + static void gst_rtspsrc_uri_handler_init (gpointer g_iface, gpointer iface_data); @@ -293,11 +308,33 @@ G_STMT_START { \ g_free (__txt); \ } G_STMT_END -/*static guint gst_rtspsrc_signals[LAST_SIGNAL] = { 0 }; */ +static guint gst_rtspsrc_signals[LAST_SIGNAL] = { 0 }; + #define gst_rtspsrc_parent_class parent_class G_DEFINE_TYPE_WITH_CODE (GstRTSPSrc, gst_rtspsrc, GST_TYPE_BIN, G_IMPLEMENT_INTERFACE (GST_TYPE_URI_HANDLER, gst_rtspsrc_uri_handler_init)); +static gboolean +default_select_stream (GstRTSPSrc * src, guint id, GstCaps * caps) +{ + GST_DEBUG_OBJECT (src, "default handler"); + return TRUE; +} + +static gboolean +select_stream_accum (GSignalInvocationHint * ihint, + GValue * return_accu, const GValue * handler_return, gpointer data) +{ + gboolean myboolean; + + myboolean = g_value_get_boolean (handler_return); + GST_DEBUG ("accum %d", myboolean); + g_value_set_boolean (return_accu, myboolean); + + /* stop emission if FALSE */ + return myboolean; +} + static void gst_rtspsrc_class_init (GstRTSPSrcClass * klass) { @@ -411,6 +448,30 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) g_param_spec_string ("proxy", "Proxy", "Proxy settings for HTTP tunneling. Format: [http://][user:passwd@]host[:port]", DEFAULT_PROXY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstRTSPSrc::proxy-id + * + * Sets the proxy URI user id for authentication. If the URI set via the + * "proxy" property contains a user-id already, that will take precedence. + * + * Since: 1.2 + */ + g_object_class_install_property (gobject_class, PROP_PROXY_ID, + g_param_spec_string ("proxy-id", "proxy-id", + "HTTP proxy URI user id for authentication", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstRTSPSrc::proxy-pw + * + * Sets the proxy URI password for authentication. If the URI set via the + * "proxy" property contains a password already, that will take precedence. + * + * Since: 1.2 + */ + g_object_class_install_property (gobject_class, PROP_PROXY_PW, + g_param_spec_string ("proxy-pw", "proxy-pw", + "HTTP proxy URI user password for authentication", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GstRTSPSrc::rtp_blocksize @@ -493,7 +554,92 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) 0, G_MAXUINT, DEFAULT_PROBATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_UDP_RECONNECT, + g_param_spec_boolean ("udp-reconnect", "Reconnect to the server", + "Reconnect to the server if RTSP connection is closed when doing UDP", + DEFAULT_UDP_RECONNECT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_MULTICAST_IFACE, + g_param_spec_string ("multicast-iface", "Multicast Interface", + "The network interface on which to join the multicast group", + DEFAULT_MULTICAST_IFACE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_NTP_SYNC, + g_param_spec_boolean ("ntp-sync", "Sync on NTP clock", + "Synchronize received streams to the NTP clock", DEFAULT_NTP_SYNC, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_USE_PIPELINE_CLOCK, + g_param_spec_boolean ("use-pipeline-clock", "Use pipeline clock", + "Use the pipeline running-time to set the NTP time in the RTCP SR messages", + DEFAULT_USE_PIPELINE_CLOCK, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstRTSPSrc::handle-request: + * @rtspsrc: a #GstRTSPSrc + * @request: a #GstRTSPMessage + * @response: a #GstRTSPMessage + * + * Handle a server request in @request and prepare @response. + * + * This signal is called from the streaming thread, you should therefore not + * do any state changes on @rtspsrc because this might deadlock. If you want + * to modify the state as a result of this signal, post a + * #GST_MESSAGE_REQUEST_STATE message on the bus or signal the main thread + * in some other way. + * + * Since: 1.2 + */ + gst_rtspsrc_signals[SIGNAL_HANDLE_REQUEST] = + g_signal_new ("handle-request", G_TYPE_FROM_CLASS (klass), 0, + 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, + G_TYPE_POINTER, G_TYPE_POINTER); + + /** + * GstRTSPSrc::on-sdp: + * @rtspsrc: a #GstRTSPSrc + * @sdp: a #GstSDPMessage + * + * Emited when the client has retrieved the SDP and before it configures the + * streams in the SDP. @sdp can be inspected and modified. + * + * This signal is called from the streaming thread, you should therefore not + * do any state changes on @rtspsrc because this might deadlock. If you want + * to modify the state as a result of this signal, post a + * #GST_MESSAGE_REQUEST_STATE message on the bus or signal the main thread + * in some other way. + * + * Since: 1.2 + */ + gst_rtspsrc_signals[SIGNAL_ON_SDP] = + g_signal_new ("on-sdp", G_TYPE_FROM_CLASS (klass), 0, + 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, + GST_TYPE_SDP_MESSAGE | G_SIGNAL_TYPE_STATIC_SCOPE); + + /** + * GstRTSPSrc::select-stream: + * @rtspsrc: a #GstRTSPSrc + * @num: the stream number + * @caps: the stream caps + * + * Emited before the client decides to configure the stream @num with + * @caps. + * + * Returns: %TRUE when the stream should be selected, %FALSE when the stream + * is to be ignored. + * + * Since: 1.2 + */ + gst_rtspsrc_signals[SIGNAL_SELECT_STREAM] = + g_signal_new_class_handler ("select-stream", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_FIRST | G_SIGNAL_RUN_CLEANUP, + (GCallback) default_select_stream, select_stream_accum, NULL, + g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_UINT, + GST_TYPE_CAPS); + gstelement_class->send_event = gst_rtspsrc_send_event; + gstelement_class->provide_clock = gst_rtspsrc_provide_clock; gstelement_class->change_state = gst_rtspsrc_change_state; gst_element_class_add_pad_template (gstelement_class, @@ -511,7 +657,6 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) gst_rtsp_ext_list_init (); } - static void gst_rtspsrc_init (GstRTSPSrc * src) { @@ -537,6 +682,10 @@ gst_rtspsrc_init (GstRTSPSrc * src) src->udp_buffer_size = DEFAULT_UDP_BUFFER_SIZE; src->short_header = DEFAULT_SHORT_HEADER; src->probation = DEFAULT_PROBATION; + src->udp_reconnect = DEFAULT_UDP_RECONNECT; + src->multi_iface = g_strdup (DEFAULT_MULTICAST_IFACE); + src->ntp_sync = DEFAULT_NTP_SYNC; + src->use_pipeline_clock = DEFAULT_USE_PIPELINE_CLOCK; /* get a list of all extensions */ src->extensions = gst_rtsp_ext_list_get (); @@ -570,11 +719,14 @@ gst_rtspsrc_finalize (GObject * object) g_free (rtspsrc->conninfo.url_str); g_free (rtspsrc->user_id); g_free (rtspsrc->user_pw); + g_free (rtspsrc->multi_iface); if (rtspsrc->sdp) { gst_sdp_message_free (rtspsrc->sdp); rtspsrc->sdp = NULL; } + if (rtspsrc->provided_clock) + gst_object_unref (rtspsrc->provided_clock); /* free locks */ g_rec_mutex_clear (&rtspsrc->stream_rec_lock); @@ -583,6 +735,18 @@ gst_rtspsrc_finalize (GObject * object) G_OBJECT_CLASS (parent_class)->finalize (object); } +static GstClock * +gst_rtspsrc_provide_clock (GstElement * element) +{ + GstRTSPSrc *src = GST_RTSPSRC (element); + GstClock *clock; + + if ((clock = src->provided_clock) != NULL) + gst_object_ref (clock); + + return clock; +} + /* a proxy string of the format [user:passwd@]host[:port] */ static gboolean gst_rtspsrc_set_proxy (GstRTSPSrc * rtsp, const gchar * proxy) @@ -619,6 +783,15 @@ gst_rtspsrc_set_proxy (GstRTSPSrc * rtsp, const gchar * proxy) /* move to host */ p = at + 1; + } else { + if (rtsp->prop_proxy_id != NULL && *rtsp->prop_proxy_id != '\0') + rtsp->proxy_user = g_strdup (rtsp->prop_proxy_id); + if (rtsp->prop_proxy_pw != NULL && *rtsp->prop_proxy_pw != '\0') + rtsp->proxy_passwd = g_strdup (rtsp->prop_proxy_pw); + if (rtsp->proxy_user != NULL || rtsp->proxy_passwd != NULL) { + GST_LOG_OBJECT (rtsp, "set proxy user/pw from properties: %s:%s", + GST_STR_NULL (rtsp->proxy_user), GST_STR_NULL (rtsp->proxy_passwd)); + } } col = strchr (p, ':'); @@ -695,6 +868,16 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value, case PROP_PROXY: gst_rtspsrc_set_proxy (rtspsrc, g_value_get_string (value)); break; + case PROP_PROXY_ID: + if (rtspsrc->prop_proxy_id) + g_free (rtspsrc->prop_proxy_id); + rtspsrc->prop_proxy_id = g_value_dup_string (value); + break; + case PROP_PROXY_PW: + if (rtspsrc->prop_proxy_pw) + g_free (rtspsrc->prop_proxy_pw); + rtspsrc->prop_proxy_pw = g_value_dup_string (value); + break; case PROP_RTP_BLOCKSIZE: rtspsrc->rtp_blocksize = g_value_get_uint (value); break; @@ -734,6 +917,23 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value, case PROP_PROBATION: rtspsrc->probation = g_value_get_uint (value); break; + case PROP_UDP_RECONNECT: + rtspsrc->udp_reconnect = g_value_get_boolean (value); + break; + case PROP_MULTICAST_IFACE: + g_free (rtspsrc->multi_iface); + + if (g_value_get_string (value) == NULL) + rtspsrc->multi_iface = g_strdup (DEFAULT_MULTICAST_IFACE); + else + rtspsrc->multi_iface = g_value_dup_string (value); + break; + case PROP_NTP_SYNC: + rtspsrc->ntp_sync = g_value_get_boolean (value); + break; + case PROP_USE_PIPELINE_CLOCK: + rtspsrc->use_pipeline_clock = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -804,6 +1004,12 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value, g_value_take_string (value, str); break; } + case PROP_PROXY_ID: + g_value_set_string (value, rtspsrc->prop_proxy_id); + break; + case PROP_PROXY_PW: + g_value_set_string (value, rtspsrc->prop_proxy_pw); + break; case PROP_RTP_BLOCKSIZE: g_value_set_uint (value, rtspsrc->rtp_blocksize); break; @@ -838,6 +1044,18 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value, case PROP_PROBATION: g_value_set_uint (value, rtspsrc->probation); break; + case PROP_UDP_RECONNECT: + g_value_set_boolean (value, rtspsrc->udp_reconnect); + break; + case PROP_MULTICAST_IFACE: + g_value_set_string (value, rtspsrc->multi_iface); + break; + case PROP_NTP_SYNC: + g_value_set_boolean (value, rtspsrc->ntp_sync); + break; + case PROP_USE_PIPELINE_CLOCK: + g_value_set_boolean (value, rtspsrc->use_pipeline_clock); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1240,6 +1458,10 @@ gst_rtspsrc_cleanup (GstRTSPSrc * src) gst_event_unref (src->start_segment); src->start_segment = NULL; } + if (src->provided_clock) { + gst_object_unref (src->provided_clock); + src->provided_clock = NULL; + } } #define PARSE_INT(p, del, res) \ @@ -1652,6 +1874,8 @@ again: * server told us to really use the UDP ports. */ stream->udpsrc[0] = gst_object_ref_sink (udpsrc0); stream->udpsrc[1] = gst_object_ref_sink (udpsrc1); + gst_element_set_locked_state (stream->udpsrc[0], TRUE); + gst_element_set_locked_state (stream->udpsrc[1], TRUE); /* keep track of next available port number when we have a range * configured */ @@ -1697,13 +1921,31 @@ cleanup: } } +static void +gst_rtspsrc_set_state (GstRTSPSrc * src, GstState state) +{ + GList *walk; + + if (src->manager) + gst_element_set_state (GST_ELEMENT_CAST (src->manager), state); + + for (walk = src->streams; walk; walk = g_list_next (walk)) { + GstRTSPStream *stream = (GstRTSPStream *) walk->data; + gint i; + + for (i = 0; i < 2; i++) { + if (stream->udpsrc[i]) + gst_element_set_state (stream->udpsrc[i], state); + } + } +} + static void gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush, gboolean playing) { GstEvent *event; - gint cmd, i; + gint cmd; GstState state; - GList *walk; if (flush) { event = gst_event_new_flush_start (); @@ -1721,22 +1963,7 @@ gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush, gboolean playing) } gst_rtspsrc_push_event (src, event); gst_rtspsrc_loop_send_cmd (src, cmd, CMD_LOOP); - - /* to manage jitterbuffer buffer mode */ - if (src->manager) - gst_element_set_state (GST_ELEMENT_CAST (src->manager), state); - - /* make running time start start at 0 again */ - for (walk = src->streams; walk; walk = g_list_next (walk)) { - GstRTSPStream *stream = (GstRTSPStream *) walk->data; - - for (i = 0; i < 2; i++) { - /* for udp case */ - if (stream->udpsrc[i]) { - gst_element_set_state (stream->udpsrc[i], state); - } - } - } + gst_rtspsrc_set_state (src, state); } static GstRTSPResult @@ -2404,9 +2631,8 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream, /* configure the manager */ if (src->manager == NULL) { GObjectClass *klass; - GstState target; - if (!(src->manager = gst_element_factory_make (manager, NULL))) { + if (!(src->manager = gst_element_factory_make (manager, "manager"))) { /* fallback */ if (gst_rtsp_transport_get_manager (transport->trans, &manager, 1) < 0) goto no_manager; @@ -2414,24 +2640,31 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream, if (!manager) goto use_no_manager; - if (!(src->manager = gst_element_factory_make (manager, NULL))) + if (!(src->manager = gst_element_factory_make (manager, "manager"))) goto manager_failed; } /* we manage this element */ + gst_element_set_locked_state (src->manager, TRUE); gst_bin_add (GST_BIN_CAST (src), src->manager); - GST_OBJECT_LOCK (src); - target = GST_STATE_TARGET (src); - GST_OBJECT_UNLOCK (src); - - ret = gst_element_set_state (src->manager, target); + ret = gst_element_set_state (src->manager, GST_STATE_PAUSED); if (ret == GST_STATE_CHANGE_FAILURE) goto start_manager_failure; g_object_set (src->manager, "latency", src->latency, NULL); klass = G_OBJECT_GET_CLASS (G_OBJECT (src->manager)); + + if (g_object_class_find_property (klass, "ntp-sync")) { + g_object_set (src->manager, "ntp-sync", src->ntp_sync, NULL); + } + + if (g_object_class_find_property (klass, "use-pipeline-clock")) { + g_object_set (src->manager, "use-pipeline-clock", + src->use_pipeline_clock, NULL); + } + if (g_object_class_find_property (klass, "drop-on-latency")) { g_object_set (src->manager, "drop-on-latency", src->drop_on_latency, NULL); @@ -2759,12 +2992,19 @@ gst_rtspsrc_stream_configure_mcast (GstRTSPSrc * src, GstRTSPStream * stream, g_object_set (G_OBJECT (stream->udpsrc[0]), "buffer-size", src->udp_buffer_size, NULL); + if (src->multi_iface != NULL) + g_object_set (G_OBJECT (stream->udpsrc[0]), "multicast-iface", + src->multi_iface, NULL); + /* change state */ + gst_element_set_locked_state (stream->udpsrc[0], TRUE); gst_element_set_state (stream->udpsrc[0], GST_STATE_PAUSED); } /* creating another UDP source for RTCP */ if (max != -1) { + GstCaps *caps; + uri = g_strdup_printf ("udp://%s:%d", destination, max); stream->udpsrc[1] = gst_element_make_from_uri (GST_URI_SRC, uri, NULL, NULL); @@ -2772,9 +3012,17 @@ gst_rtspsrc_stream_configure_mcast (GstRTSPSrc * src, GstRTSPStream * stream, if (stream->udpsrc[1] == NULL) goto no_element; + caps = gst_caps_new_empty_simple ("application/x-rtcp"); + g_object_set (stream->udpsrc[1], "caps", caps, NULL); + gst_caps_unref (caps); + /* take ownership */ gst_object_ref_sink (stream->udpsrc[1]); + if (src->multi_iface != NULL) + g_object_set (G_OBJECT (stream->udpsrc[0]), "multicast-iface", + src->multi_iface, NULL); + gst_element_set_state (stream->udpsrc[1], GST_STATE_PAUSED); } return TRUE; @@ -2805,6 +3053,7 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream, /* we manage the UDP elements now. For unicast, the UDP sources where * allocated in the stream when we suggested a transport. */ if (stream->udpsrc[0]) { + gst_element_set_locked_state (stream->udpsrc[0], TRUE); gst_bin_add (GST_BIN_CAST (src), stream->udpsrc[0]); GST_DEBUG_OBJECT (src, "setting up UDP source"); @@ -2812,8 +3061,8 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream, /* configure a timeout on the UDP port. When the timeout message is * posted, we assume UDP transport is not possible. We reconnect using TCP * if we can. */ - g_object_set (G_OBJECT (stream->udpsrc[0]), "timeout", src->udp_timeout, - NULL); + g_object_set (G_OBJECT (stream->udpsrc[0]), "timeout", + src->udp_timeout * 1000, NULL); /* get output pad of the UDP source. */ *outpad = gst_element_get_static_pad (stream->udpsrc[0], "src"); @@ -2843,8 +3092,15 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream, /* RTCP port */ if (stream->udpsrc[1]) { + GstCaps *caps; + + gst_element_set_locked_state (stream->udpsrc[1], TRUE); gst_bin_add (GST_BIN_CAST (src), stream->udpsrc[1]); + caps = gst_caps_new_empty_simple ("application/x-rtcp"); + g_object_set (stream->udpsrc[1], "caps", caps, NULL); + gst_caps_unref (caps); + if (stream->channelpad[1]) { GstPad *pad; @@ -3439,15 +3695,18 @@ gst_rtspsrc_connection_flush (GstRTSPSrc * src, gboolean flush) GST_DEBUG_OBJECT (src, "set flushing %d", flush); GST_RTSP_STATE_LOCK (src); - if (src->conninfo.connection) { + if (src->conninfo.connection && src->conninfo.flushing != flush) { GST_DEBUG_OBJECT (src, "connection flush"); gst_rtsp_connection_flush (src->conninfo.connection, flush); + src->conninfo.flushing = flush; } for (walk = src->streams; walk; walk = g_list_next (walk)) { GstRTSPStream *stream = (GstRTSPStream *) walk->data; - GST_DEBUG_OBJECT (src, "stream %p flush", stream); - if (stream->conninfo.connection) + if (stream->conninfo.connection && stream->conninfo.flushing != flush) { + GST_DEBUG_OBJECT (src, "stream %p flush", stream); gst_rtsp_connection_flush (stream->conninfo.connection, flush); + stream->conninfo.flushing = flush; + } } GST_RTSP_STATE_UNLOCK (src); } @@ -3469,13 +3728,16 @@ gst_rtspsrc_handle_request (GstRTSPSrc * src, GstRTSPConnection * conn, if (res == GST_RTSP_ENOTIMPL) { /* default implementation, send OK */ + GST_DEBUG_OBJECT (src, "prepare OK reply"); res = gst_rtsp_message_init_response (&response, GST_RTSP_STS_OK, "OK", request); if (res < 0) goto send_error; - GST_DEBUG_OBJECT (src, "replying with OK"); + /* let app parse and reply */ + g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_HANDLE_REQUEST], + 0, request, response); if (src->debug) gst_rtsp_message_dump (&response); @@ -3566,98 +3828,19 @@ send_error: } static GstFlowReturn -gst_rtspsrc_loop_interleaved (GstRTSPSrc * src) +gst_rtspsrc_handle_data (GstRTSPSrc * src, GstRTSPMessage * message) { - GstRTSPMessage message = { 0 }; - GstRTSPResult res; + GstFlowReturn ret = GST_FLOW_OK; gint channel; GstRTSPStream *stream; GstPad *outpad = NULL; guint8 *data; guint size; - GstFlowReturn ret = GST_FLOW_OK; GstBuffer *buf; - gboolean is_rtcp, have_data; + gboolean is_rtcp; GstEvent *event; - /* here we are only interested in data messages */ - have_data = FALSE; - do { - GTimeVal tv_timeout; - - /* get the next timeout interval */ - gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout); - - /* see if the timeout period expired */ - if ((tv_timeout.tv_sec | tv_timeout.tv_usec) == 0) { - GST_DEBUG_OBJECT (src, "timout, sending keep-alive"); - /* send keep-alive, only act on interrupt, a warning will be posted for - * other errors. */ - if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR) - goto interrupt; - /* get new timeout */ - gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout); - } - - GST_DEBUG_OBJECT (src, "doing receive with timeout %ld seconds, %ld usec", - tv_timeout.tv_sec, tv_timeout.tv_usec); - - /* protect the connection with the connection lock so that we can see when - * we are finished doing server communication */ - res = - gst_rtspsrc_connection_receive (src, src->conninfo.connection, - &message, src->ptcp_timeout); - - switch (res) { - case GST_RTSP_OK: - GST_DEBUG_OBJECT (src, "we received a server message"); - break; - case GST_RTSP_EINTR: - /* we got interrupted this means we need to stop */ - goto interrupt; - case GST_RTSP_ETIMEOUT: - /* no reply, send keep alive */ - GST_DEBUG_OBJECT (src, "timeout, sending keep-alive"); - if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR) - goto interrupt; - continue; - case GST_RTSP_EEOF: - /* go EOS when the server closed the connection */ - goto server_eof; - default: - goto receive_error; - } - - switch (message.type) { - case GST_RTSP_MESSAGE_REQUEST: - /* server sends us a request message, handle it */ - res = - gst_rtspsrc_handle_request (src, src->conninfo.connection, - &message); - if (res == GST_RTSP_EEOF) - goto server_eof; - else if (res < 0) - goto handle_request_failed; - break; - case GST_RTSP_MESSAGE_RESPONSE: - /* we ignore response messages */ - GST_DEBUG_OBJECT (src, "ignoring response message"); - if (src->debug) - gst_rtsp_message_dump (&message); - break; - case GST_RTSP_MESSAGE_DATA: - GST_DEBUG_OBJECT (src, "got data message"); - have_data = TRUE; - break; - default: - GST_WARNING_OBJECT (src, "ignoring unknown message type %d", - message.type); - break; - } - } - while (!have_data); - - channel = message.type_data.data.channel; + channel = message->type_data.data.channel; stream = find_stream (src, &channel, (gpointer) find_stream_by_channel); if (!stream) @@ -3674,7 +3857,7 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src) } /* take a look at the body to figure out what we have */ - gst_rtsp_message_get_body (&message, &data, &size); + gst_rtsp_message_get_body (message, &data, &size); if (size < 2) goto invalid_length; @@ -3690,7 +3873,7 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src) goto unknown_stream; /* take the message body for further processing */ - gst_rtsp_message_steal_body (&message, &data, &size); + gst_rtsp_message_steal_body (message, &data, &size); /* strip the trailing \0 */ size -= 1; @@ -3700,12 +3883,28 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src) gst_memory_new_wrapped (0, data, size, 0, size, data, g_free)); /* don't need message anymore */ - gst_rtsp_message_unset (&message); + gst_rtsp_message_unset (message); GST_DEBUG_OBJECT (src, "pushing data of size %d on channel %d", size, channel); if (src->need_activate) { + gchar *stream_id; + GstEvent *event; + GChecksum *cs; + gchar *uri; + + /* generate an SHA256 sum of the URI */ + cs = g_checksum_new (G_CHECKSUM_SHA256); + uri = src->conninfo.location; + g_checksum_update (cs, (const guchar *) uri, strlen (uri)); + stream_id = + g_strdup_printf ("%s/%d", g_checksum_get_string (cs), stream->id); + g_checksum_free (cs); + event = gst_event_new_stream_start (stream_id); + g_free (stream_id); + gst_rtspsrc_push_event (src, event); + gst_rtspsrc_activate_streams (src); src->need_activate = FALSE; } @@ -3766,9 +3965,102 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src) unknown_stream: { GST_DEBUG_OBJECT (src, "unknown stream on channel %d, ignored", channel); - gst_rtsp_message_unset (&message); + gst_rtsp_message_unset (message); return GST_FLOW_OK; } +invalid_length: + { + GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), + ("Short message received, ignoring.")); + gst_rtsp_message_unset (message); + return GST_FLOW_OK; + } +} + +static GstFlowReturn +gst_rtspsrc_loop_interleaved (GstRTSPSrc * src) +{ + GstRTSPMessage message = { 0 }; + GstRTSPResult res; + GstFlowReturn ret = GST_FLOW_OK; + GTimeVal tv_timeout; + + while (TRUE) { + /* get the next timeout interval */ + gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout); + + /* see if the timeout period expired */ + if ((tv_timeout.tv_sec | tv_timeout.tv_usec) == 0) { + GST_DEBUG_OBJECT (src, "timout, sending keep-alive"); + /* send keep-alive, only act on interrupt, a warning will be posted for + * other errors. */ + if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR) + goto interrupt; + /* get new timeout */ + gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout); + } + + GST_DEBUG_OBJECT (src, "doing receive with timeout %ld seconds, %ld usec", + tv_timeout.tv_sec, tv_timeout.tv_usec); + + /* protect the connection with the connection lock so that we can see when + * we are finished doing server communication */ + res = + gst_rtspsrc_connection_receive (src, src->conninfo.connection, + &message, src->ptcp_timeout); + + switch (res) { + case GST_RTSP_OK: + GST_DEBUG_OBJECT (src, "we received a server message"); + break; + case GST_RTSP_EINTR: + /* we got interrupted this means we need to stop */ + goto interrupt; + case GST_RTSP_ETIMEOUT: + /* no reply, send keep alive */ + GST_DEBUG_OBJECT (src, "timeout, sending keep-alive"); + if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR) + goto interrupt; + continue; + case GST_RTSP_EEOF: + /* go EOS when the server closed the connection */ + goto server_eof; + default: + goto receive_error; + } + + switch (message.type) { + case GST_RTSP_MESSAGE_REQUEST: + /* server sends us a request message, handle it */ + res = + gst_rtspsrc_handle_request (src, src->conninfo.connection, + &message); + if (res == GST_RTSP_EEOF) + goto server_eof; + else if (res < 0) + goto handle_request_failed; + break; + case GST_RTSP_MESSAGE_RESPONSE: + /* we ignore response messages */ + GST_DEBUG_OBJECT (src, "ignoring response message"); + if (src->debug) + gst_rtsp_message_dump (&message); + break; + case GST_RTSP_MESSAGE_DATA: + GST_DEBUG_OBJECT (src, "got data message"); + ret = gst_rtspsrc_handle_data (src, &message); + if (ret != GST_FLOW_OK) + goto handle_data_failed; + break; + default: + GST_WARNING_OBJECT (src, "ignoring unknown message type %d", + message.type); + break; + } + } + g_assert_not_reached (); + + /* ERRORS */ server_eof: { GST_DEBUG_OBJECT (src, "we got an eof from the server"); @@ -3781,8 +4073,7 @@ server_eof: interrupt: { gst_rtsp_message_unset (&message); - GST_DEBUG_OBJECT (src, "got interrupted: stop connection flush"); - gst_rtspsrc_connection_flush (src, FALSE); + GST_DEBUG_OBJECT (src, "got interrupted"); return GST_FLOW_FLUSHING; } receive_error: @@ -3806,12 +4097,10 @@ handle_request_failed: gst_rtsp_message_unset (&message); return GST_FLOW_ERROR; } -invalid_length: +handle_data_failed: { - GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), - ("Short message received, ignoring.")); - gst_rtsp_message_unset (&message); - return GST_FLOW_OK; + GST_DEBUG_OBJECT (src, "could no handle data message"); + return ret; } } @@ -3857,10 +4146,13 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src) * see what happens. */ GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), ("The server closed the connection.")); - if ((res = - gst_rtsp_conninfo_reconnect (src, &src->conninfo, FALSE)) < 0) - goto connect_error; - + if (src->udp_reconnect) { + if ((res = + gst_rtsp_conninfo_reconnect (src, &src->conninfo, FALSE)) < 0) + goto connect_error; + } else { + goto server_eof; + } continue; case GST_RTSP_ENET: GST_DEBUG_OBJECT (src, "An ethernet problem occured."); @@ -3907,13 +4199,13 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src) break; } } + g_assert_not_reached (); /* we get here when the connection got interrupted */ interrupt: { gst_rtsp_message_unset (&message); - GST_DEBUG_OBJECT (src, "got interrupted: stop connection flush"); - gst_rtspsrc_connection_flush (src, FALSE); + GST_DEBUG_OBJECT (src, "got interrupted"); return GST_FLOW_FLUSHING; } connect_error: @@ -4560,7 +4852,8 @@ next: break; case GST_RTSP_MESSAGE_DATA: /* get next response */ - GST_DEBUG_OBJECT (src, "ignoring data response message"); + GST_DEBUG_OBJECT (src, "handle data response message"); + gst_rtspsrc_handle_data (src, response); goto next; default: GST_WARNING_OBJECT (src, "ignoring unknown message type %d", @@ -4609,8 +4902,8 @@ receive_error: { switch (res) { case GST_RTSP_EEOF: - GST_WARNING_OBJECT (src, "server closed connection, doing reconnect"); - if (try == 0) { + GST_WARNING_OBJECT (src, "server closed connection"); + if ((try == 0) && !src->interleaved && src->udp_reconnect) { try++; /* if reconnect succeeds, try again */ if ((res = @@ -4811,9 +5104,7 @@ gst_rtspsrc_parse_methods (GstRTSPSrc * src, GstRTSPMessage * response) { GstRTSPHeaderField field; gchar *respoptions; - gchar **options; gint indx = 0; - gint i; /* reset supported methods */ src->methods = 0; @@ -4831,25 +5122,7 @@ gst_rtspsrc_parse_methods (GstRTSPSrc * src, GstRTSPMessage * response) if (!respoptions) break; - /* If we get here, the server gave a list of supported methods, parse - * them here. The string is like: - * - * OPTIONS, DESCRIBE, ANNOUNCE, PLAY, SETUP, ... - */ - options = g_strsplit (respoptions, ",", 0); - - for (i = 0; options[i]; i++) { - gchar *stripped; - gint method; - - stripped = g_strstrip (options[i]); - method = gst_rtsp_find_method (stripped); - - /* keep bitfield of supported methods */ - if (method != GST_RTSP_INVALID) - src->methods |= method; - } - g_strfreev (options); + src->methods |= gst_rtsp_options_from_text (respoptions); indx++; } @@ -5128,6 +5401,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async) gchar *transports; gint retry = 0; guint mask = 0; + gboolean selected; stream = (GstRTSPStream *) walk->data; @@ -5139,6 +5413,15 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async) continue; } + g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_SELECT_STREAM], 0, + stream->id, stream->caps, &selected); + if (!selected) { + GST_DEBUG_OBJECT (src, "skipping stream %p, disabled by signal", stream); + stream->disabled = TRUE; + continue; + } + stream->disabled = FALSE; + /* merge/overwrite global caps */ if (stream->caps) { guint j, num; @@ -5227,16 +5510,14 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async) goto create_request_failed; } - /* select transport, copy is made when adding to header so we can free it. */ - gst_rtsp_message_add_header (&request, GST_RTSP_HDR_TRANSPORT, transports); - g_free (transports); + /* select transport */ + gst_rtsp_message_take_header (&request, GST_RTSP_HDR_TRANSPORT, transports); /* if the user wants a non default RTP packet size we add the blocksize * parameter */ if (src->rtp_blocksize > 0) { hval = g_strdup_printf ("%d", src->rtp_blocksize); - gst_rtsp_message_add_header (&request, GST_RTSP_HDR_BLOCKSIZE, hval); - g_free (hval); + gst_rtsp_message_take_header (&request, GST_RTSP_HDR_BLOCKSIZE, hval); } if (async) @@ -5524,6 +5805,70 @@ gst_rtspsrc_parse_range (GstRTSPSrc * src, const gchar * range, return TRUE; } +/* Parse clock profived by the server with following syntax: + * + * "GstNetTimeProvider <wrapped-clock> <server-IP:port> <clock-time>" + */ +static gboolean +gst_rtspsrc_parse_gst_clock (GstRTSPSrc * src, const gchar * gstclock) +{ + gboolean res = FALSE; + + if (g_str_has_prefix (gstclock, "GstNetTimeProvider ")) { + gchar **fields = NULL, **parts = NULL; + gchar *remote_ip, *str; + gint port; + GstClockTime base_time; + GstClock *netclock; + + fields = g_strsplit (gstclock, " ", 0); + + /* wrapped clock, not very interesting for now */ + if (fields[1] == NULL) + goto cleanup; + + /* remote IP address and port */ + if ((str = fields[2]) == NULL) + goto cleanup; + + parts = g_strsplit (str, ":", 0); + + if ((remote_ip = parts[0]) == NULL) + goto cleanup; + + if ((str = parts[1]) == NULL) + goto cleanup; + + port = atoi (str); + if (port == 0) + goto cleanup; + + /* base-time */ + if ((str = fields[3]) == NULL) + goto cleanup; + + base_time = g_ascii_strtoull (str, NULL, 10); + + netclock = + gst_net_client_clock_new ((gchar *) "GstRTSPClock", remote_ip, port, + base_time); + + if (src->provided_clock) + gst_object_unref (src->provided_clock); + src->provided_clock = netclock; + + gst_element_post_message (GST_ELEMENT_CAST (src), + gst_message_new_clock_provide (GST_OBJECT_CAST (src), + src->provided_clock, TRUE)); + + res = TRUE; + cleanup: + g_strfreev (fields); + g_strfreev (parts); + } + return res; +} + /* must be called with the RTSP state lock */ static GstRTSPResult gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp, @@ -5543,6 +5888,9 @@ gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp, gst_rtsp_ext_list_parse_sdp (src->extensions, sdp, src->props); + /* let the app inspect and change the SDP */ + g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_ON_SDP], 0, sdp); + gst_segment_init (&src->segment, GST_FORMAT_TIME); /* parse range for duration reporting. */ @@ -5559,6 +5907,22 @@ gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp, break; } } + /* parse clock information. This is GStreamer specific, a server can tell the + * client what clock it is using and wrap that in a network clock. The + * advantage of that is that we can slave to it. */ + { + const gchar *gstclock; + + for (i = 0;; i++) { + gstclock = gst_sdp_message_get_attribute_val_n (sdp, "x-gst-clock", i); + if (gstclock == NULL) + break; + + /* parse the clock and expose it in the provide_clock method */ + if (gst_rtspsrc_parse_gst_clock (src, gstclock)) + break; + } + } /* try to find a global control attribute. Note that a '*' means that we should * do aggregate control with the current url (so we don't do anything and * leave the current connection as is) */ @@ -5845,6 +6209,8 @@ gst_rtspsrc_close (GstRTSPSrc * src, gboolean async, gboolean only_close) GST_DEBUG_OBJECT (src, "TEARDOWN..."); + gst_rtspsrc_set_state (src, GST_STATE_READY); + if (src->state < GST_RTSP_STATE_READY) { GST_DEBUG_OBJECT (src, "not ready, doing cleanup"); goto close; @@ -6164,27 +6530,11 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment, gboolean async) * udp sources */ gst_rtspsrc_send_dummy_packets (src); - /* activate receive elements; - * only in async case, since receive elements may not have been affected - * by overall state change (e.g. not around yet), - * do not mess with state in sync case (e.g. seeking) */ - if (async) { - /* state change might be happening in the application thread. A - * specific case is when chaging state to NULL where we will wait - * for this task to finish (gst_rtspsrc_stop). However this task - * will try to change the state to PLAYING causing a deadlock. */ - - /* make sure we are not in the middle of a state change. The - * state lock is a recursive lock so it's safe to lock twice from - * the same thread */ - if (GST_STATE_TRYLOCK (src)) { - gst_element_set_state (GST_ELEMENT_CAST (src), GST_STATE_PLAYING); - GST_STATE_UNLOCK (src); - } else { - res = GST_RTSP_ERROR; - goto changing_state; - } - } + /* require new SR packets */ + if (src->manager) + g_signal_emit_by_name (src->manager, "reset-sync", NULL); + + gst_rtspsrc_set_state (src, GST_STATE_PLAYING); /* construct a control url */ if (src->control) @@ -6219,8 +6569,7 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment, gboolean async) if (src->need_range) { hval = gen_range_header (src, segment); - gst_rtsp_message_add_header (&request, GST_RTSP_HDR_RANGE, hval); - g_free (hval); + gst_rtsp_message_take_header (&request, GST_RTSP_HDR_RANGE, hval); /* store the newsegment event so it can be sent from the streaming thread. */ if (src->start_segment) @@ -6347,11 +6696,6 @@ was_playing: GST_DEBUG_OBJECT (src, "we were already PLAYING"); goto done; } -changing_state: - { - GST_DEBUG_OBJECT (src, "failed going to PLAYING, already changing state"); - goto done; - } create_request_failed: { gchar *str = gst_rtsp_strresult (res); @@ -6447,6 +6791,9 @@ gst_rtspsrc_pause (GstRTSPSrc * src, gboolean async) break; } + /* change element states now */ + gst_rtspsrc_set_state (src, GST_STATE_PAUSED); + no_connection: src->state = GST_RTSP_STATE_READY; @@ -6585,7 +6932,8 @@ gst_rtspsrc_thread (GstRTSPSrc * src) GST_OBJECT_LOCK (src); cmd = src->pending_cmd; - if (cmd == CMD_RECONNECT || cmd == CMD_PLAY || cmd == CMD_LOOP) + if (cmd == CMD_RECONNECT || cmd == CMD_PLAY || cmd == CMD_PAUSE + || cmd == CMD_LOOP) src->pending_cmd = CMD_LOOP; else src->pending_cmd = CMD_WAIT; @@ -6736,22 +7084,28 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition) goto done; switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + ret = GST_STATE_CHANGE_SUCCESS; + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + ret = GST_STATE_CHANGE_NO_PREROLL; + break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_PLAY, 0); + ret = GST_STATE_CHANGE_SUCCESS; break; case GST_STATE_CHANGE_PLAYING_TO_PAUSED: /* send pause request and keep the idle task around */ gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_PAUSE, CMD_LOOP); ret = GST_STATE_CHANGE_NO_PREROLL; break; - case GST_STATE_CHANGE_READY_TO_PAUSED: - ret = GST_STATE_CHANGE_NO_PREROLL; - break; case GST_STATE_CHANGE_PAUSED_TO_READY: gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_CLOSE, CMD_PAUSE); + ret = GST_STATE_CHANGE_SUCCESS; break; case GST_STATE_CHANGE_READY_TO_NULL: gst_rtspsrc_stop (rtspsrc); + ret = GST_STATE_CHANGE_SUCCESS; break; default: break; @@ -6797,7 +7151,9 @@ static const gchar *const * gst_rtspsrc_uri_get_protocols (GType type) { static const gchar *protocols[] = - { "rtsp", "rtspu", "rtspt", "rtsph", "rtsp-sdp", NULL }; + { "rtsp", "rtspu", "rtspt", "rtsph", "rtsp-sdp", + "rtsps", "rtspsu", "rtspst", "rtspsh", NULL + }; return protocols; } diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h index 1f8ee222105eefec1d8fb1d7859cbf99bfe022de..751c699649f53e35b5d9f6ccae3f07298137eb98 100644 --- a/gst/rtsp/gstrtspsrc.h +++ b/gst/rtsp/gstrtspsrc.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* * Unless otherwise indicated, Source Code is licensed under MIT license. @@ -87,6 +87,7 @@ struct _GstRTSPConnInfo { gchar *url_str; GstRTSPConnection *connection; gboolean connected; + gboolean flushing; }; typedef struct _GstRTSPStream GstRTSPStream; @@ -208,8 +209,10 @@ struct _GstRTSPSrc { gboolean do_rtsp_keep_alive; gchar *proxy_host; guint proxy_port; - gchar *proxy_user; - gchar *proxy_passwd; + gchar *proxy_user; /* from url or property */ + gchar *proxy_passwd; /* from url or property */ + gchar *prop_proxy_id; /* set via property */ + gchar *prop_proxy_pw; /* set via property */ guint rtp_blocksize; gchar *user_id; gchar *user_pw; @@ -218,6 +221,10 @@ struct _GstRTSPSrc { gint udp_buffer_size; gboolean short_header; guint probation; + gboolean udp_reconnect; + gchar *multi_iface; + gboolean ntp_sync; + gboolean use_pipeline_clock; /* state */ GstRTSPState state; @@ -229,6 +236,7 @@ struct _GstRTSPSrc { GstRTSPTimeRange *range; gchar *control; guint next_port_num; + GstClock *provided_clock; /* supported methods */ gint methods; diff --git a/gst/shapewipe/Makefile.in b/gst/shapewipe/Makefile.in index 0c030c0d3f0fa5aa5e8b54457a30b09cf93b1b50..103d3c0c3db58898b0a7eef38e07d2f622359583 100644 --- a/gst/shapewipe/Makefile.in +++ b/gst/shapewipe/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/shapewipe -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -135,10 +161,23 @@ libgstshapewipe_la_OBJECTS = $(am_libgstshapewipe_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstshapewipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstshapewipe_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstshapewipe_la_CFLAGS) $(CFLAGS) \ $(libgstshapewipe_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstshapewipe_la_SOURCES) DIST_SOURCES = $(libgstshapewipe_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstshapewipe.la: $(libgstshapewipe_la_OBJECTS) $(libgstshapewipe_la_DEPENDENCIES) $(EXTRA_libgstshapewipe_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstshapewipe_la_LINK) -rpath $(plugindir) $(libgstshapewipe_la_OBJECTS) $(libgstshapewipe_la_LIBADD) $(LIBS) @@ -619,26 +676,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -650,15 +696,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -667,6 +709,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/shapewipe/gstshapewipe.c b/gst/shapewipe/gstshapewipe.c index 41bc34e8303ca769c4dc78ee45b8f0ba554d06ad..024ef6842524fbbf27309d7b0a29cdad6320d6ba 100644 --- a/gst/shapewipe/gstshapewipe.c +++ b/gst/shapewipe/gstshapewipe.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -32,7 +32,7 @@ * <refsect2> * <title>Example launch line</title> * |[ - * gst-launch-1.0 -v videotestsrc ! video/x-raw,format=(string)AYUV,width=640,height=480 ! shapewipe position=0.5 name=shape ! videomixer name=mixer ! videoconvert ! autovideosink filesrc location=mask.png ! typefind ! decodebin2 ! videoconvert ! videoscale ! queue ! shape.mask_sink videotestsrc pattern=snow ! video/x-raw,format=(string)AYUV,width=640,height=480 ! queue ! mixer. + * gst-launch-1.0 -v videotestsrc ! video/x-raw,format=AYUV,width=640,height=480 ! shapewipe position=0.5 name=shape ! videomixer name=mixer ! videoconvert ! autovideosink filesrc location=mask.png ! typefind ! decodebin ! videoconvert ! videoscale ! queue ! shape.mask_sink videotestsrc pattern=snow ! video/x-raw,format=AYUV,width=640,height=480 ! queue ! mixer. * ]| This pipeline adds the transition from mask.png with position 0.5 to an SMPTE test screen and snow. * </refsect2> */ @@ -486,6 +486,7 @@ gst_shape_wipe_mask_sink_getcaps (GstShapeWipe * self, GstPad * pad, if (gst_caps_is_empty (ret)) goto done; + ret = gst_caps_make_writable (ret); n = gst_caps_get_size (ret); tmp = gst_caps_new_empty (); for (i = 0; i < n; i++) { @@ -831,7 +832,6 @@ gst_shape_wipe_video_sink_chain (GstPad * pad, GstObject * parent, GstFlowReturn ret = GST_FLOW_OK; GstBuffer *mask = NULL, *outbuf = NULL; GstClockTime timestamp; - gboolean new_outbuf = FALSE; GstVideoFrame inframe, outframe, maskframe; if (G_UNLIKELY (GST_VIDEO_INFO_FORMAT (&self->vinfo) == @@ -866,20 +866,10 @@ gst_shape_wipe_video_sink_chain (GstPad * pad, GstObject * parent, if (!gst_shape_wipe_do_qos (self, GST_BUFFER_TIMESTAMP (buffer))) goto qos; - /* Try to blend inplace, if it's not possible - * get a new buffer from downstream. */ - if (!gst_buffer_is_writable (buffer)) { - outbuf = gst_buffer_new_allocate (NULL, gst_buffer_get_size (buffer), NULL); - gst_buffer_copy_into (outbuf, buffer, GST_BUFFER_COPY_METADATA, 0, -1); - new_outbuf = TRUE; - } else { - outbuf = buffer; - } - - gst_video_frame_map (&inframe, &self->vinfo, buffer, - new_outbuf ? GST_MAP_READ : GST_MAP_READWRITE); - gst_video_frame_map (&outframe, &self->vinfo, outbuf, - new_outbuf ? GST_MAP_WRITE : GST_MAP_READWRITE); + /* Will blend inplace if buffer is writable */ + outbuf = gst_buffer_make_writable (buffer); + gst_video_frame_map (&outframe, &self->vinfo, outbuf, GST_MAP_READWRITE); + gst_video_frame_map (&inframe, &self->vinfo, outbuf, GST_MAP_READ); gst_video_frame_map (&maskframe, &self->minfo, mask, GST_MAP_READ); @@ -910,8 +900,6 @@ gst_shape_wipe_video_sink_chain (GstPad * pad, GstObject * parent, gst_video_frame_unmap (&maskframe); gst_buffer_unref (mask); - if (new_outbuf) - gst_buffer_unref (buffer); ret = gst_pad_push (self->srcpad, outbuf); if (G_UNLIKELY (ret != GST_FLOW_OK)) @@ -941,8 +929,9 @@ qos: } push_failed: { - GST_ERROR_OBJECT (self, "Pushing buffer downstream failed: %s", - gst_flow_get_name (ret)); + if (ret != GST_FLOW_FLUSHING) + GST_ERROR_OBJECT (self, "Pushing buffer downstream failed: %s", + gst_flow_get_name (ret)); return ret; } } diff --git a/gst/shapewipe/gstshapewipe.h b/gst/shapewipe/gstshapewipe.h index 1df8c5e10f14167effb3d5e89fdac8748d536f87..66731ce72df3bcd8b0e5dc28c398ae9aa5146af2 100644 --- a/gst/shapewipe/gstshapewipe.h +++ b/gst/shapewipe/gstshapewipe.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_SHAPE_WIPE_H__ diff --git a/gst/smpte/Makefile.in b/gst/smpte/Makefile.in index 5e5b9dfed21dc923e9b533dd7118887cf2a1d753..e6a5d6e9edbdd89db10542107e0543380fad6c5b 100644 --- a/gst/smpte/Makefile.in +++ b/gst/smpte/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/smpte -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -138,10 +164,23 @@ libgstsmpte_la_OBJECTS = $(am_libgstsmpte_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstsmpte_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstsmpte_la_CFLAGS) $(CFLAGS) \ $(libgstsmpte_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstsmpte_la_SOURCES) DIST_SOURCES = $(libgstsmpte_la_SOURCES) am__can_run_installinfo = \ @@ -176,6 +211,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -344,6 +396,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -547,6 +600,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -573,12 +627,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstsmpte.la: $(libgstsmpte_la_OBJECTS) $(libgstsmpte_la_DEPENDENCIES) $(EXTRA_libgstsmpte_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsmpte_la_LINK) -rpath $(plugindir) $(libgstsmpte_la_OBJECTS) $(libgstsmpte_la_LIBADD) $(LIBS) @@ -664,26 +721,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -695,15 +741,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -712,6 +754,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -856,19 +913,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/smpte/barboxwipes.c b/gst/smpte/barboxwipes.c index b8f00f7fc42cb809bde91b2c4c1ed9a4552b1f70..7855eaabbc2388ec919c4529ad3a9d877cb276bd 100644 --- a/gst/smpte/barboxwipes.c +++ b/gst/smpte/barboxwipes.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/smpte/gstmask.c b/gst/smpte/gstmask.c index 940bf8285a82c6a65d7d18bbbcc4f5f902514138..92b591936c71b78874e48f983b7dca4505f78312 100644 --- a/gst/smpte/gstmask.c +++ b/gst/smpte/gstmask.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/smpte/gstmask.h b/gst/smpte/gstmask.h index 576475cd14713acdce6831a5cc473fa25fb5f028..53a5082a124e671926f4dd64bcaebe8ec83e0d9e 100644 --- a/gst/smpte/gstmask.h +++ b/gst/smpte/gstmask.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/smpte/gstsmpte.c b/gst/smpte/gstsmpte.c index f82f6123bbbc23edc9ff0c424f7718e050e8895a..37a383dcb1f8848e8b790d7bc1f248082015d564 100644 --- a/gst/smpte/gstsmpte.c +++ b/gst/smpte/gstsmpte.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/smpte/gstsmpte.h b/gst/smpte/gstsmpte.h index a91f6a2ffcd64a6e16c70fd36db5bea730318de9..59a48305c7b7cb0f2f95708e42a0bcbb680b0f9e 100644 --- a/gst/smpte/gstsmpte.h +++ b/gst/smpte/gstsmpte.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/smpte/gstsmptealpha.c b/gst/smpte/gstsmptealpha.c index 00d25c38b3f2aa4ee65f4b5f3fc9987b42c7c77d..25f5e38066a27e13df6fa6f91f536e21afbad508 100644 --- a/gst/smpte/gstsmptealpha.c +++ b/gst/smpte/gstsmptealpha.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/gst/smpte/gstsmptealpha.h b/gst/smpte/gstsmptealpha.h index e8ce957e8258aec8ec7f3480d5665a9594b223da..f8d2b3549a789c180c6bd5b3ae337aed61b6fb04 100644 --- a/gst/smpte/gstsmptealpha.h +++ b/gst/smpte/gstsmptealpha.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/smpte/paint.c b/gst/smpte/paint.c index 7c2ba0dc86195348f456924aa00903306b117229..cd97323cba40e6a0c9d6e64228a7ce643658ada4 100644 --- a/gst/smpte/paint.c +++ b/gst/smpte/paint.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/smpte/paint.h b/gst/smpte/paint.h index 3de748148cbb6ab1d5f09aead109531d3cbc3c82..c815e0bee2dbe96cbcbc46be08df82425e0d99ae 100644 --- a/gst/smpte/paint.h +++ b/gst/smpte/paint.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_SMPTE_PAINT_H__ diff --git a/gst/smpte/plugin.c b/gst/smpte/plugin.c index 5c00570def32e15c2b4f941be969af90ba8796ad..43eba8a7e7b20b48cc5d84979051e361c6f6a3ea 100644 --- a/gst/smpte/plugin.c +++ b/gst/smpte/plugin.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/spectrum/Makefile.in b/gst/spectrum/Makefile.in index 5a047604d3a6e932fc519dd0c15adcdbced98dbf..64c15863ef658ce7c846cd49c637c3feb07ec929 100644 --- a/gst/spectrum/Makefile.in +++ b/gst/spectrum/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/spectrum -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgstspectrum_la_OBJECTS = $(am_libgstspectrum_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstspectrum_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstspectrum_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstspectrum_la_CFLAGS) $(CFLAGS) \ $(libgstspectrum_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstspectrum_la_SOURCES) DIST_SOURCES = $(libgstspectrum_la_SOURCES) am__can_run_installinfo = \ @@ -174,6 +209,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -342,6 +394,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -548,6 +601,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -574,12 +628,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstspectrum.la: $(libgstspectrum_la_OBJECTS) $(libgstspectrum_la_DEPENDENCIES) $(EXTRA_libgstspectrum_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstspectrum_la_LINK) -rpath $(plugindir) $(libgstspectrum_la_OBJECTS) $(libgstspectrum_la_LIBADD) $(LIBS) @@ -625,26 +682,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -656,15 +702,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -673,6 +715,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -817,19 +874,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/spectrum/README b/gst/spectrum/README deleted file mode 100644 index 87555712fa7bee2dd66686e20079a82afee85d2c..0000000000000000000000000000000000000000 --- a/gst/spectrum/README +++ /dev/null @@ -1,5 +0,0 @@ -This is a simple, rather lame spectrum analyzer made from the fix_fft.c -code, as found I think in xmms-0.9.1 (the 75-wide output sounds like xmms -to me), which is actually written by other people (see fix_fft.c for -credits). It worked last time I had GiST working, which was a while ago. -Yes, GiST is not included here yet, it will be in 0.1.0. diff --git a/gst/spectrum/gstspectrum.c b/gst/spectrum/gstspectrum.c index f6a2caa99ccf063ab9fb92a2878424b5f7fc2d59..75a9152b8226ef45fa0aca0fbd48695a8ccb0c66 100644 --- a/gst/spectrum/gstspectrum.c +++ b/gst/spectrum/gstspectrum.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-spectrum @@ -176,13 +176,6 @@ gst_spectrum_class_init (GstSpectrumClass * klass) filter_class->setup = GST_DEBUG_FUNCPTR (gst_spectrum_setup); - /** - * GstSpectrum:post-messages - * - * Post messages on the bus with spectrum information. - * - * Since: 0.10.17 - */ g_object_class_install_property (gobject_class, PROP_POST_MESSAGES, g_param_spec_boolean ("post-messages", "Post Messages", "Whether to post a 'spectrum' element message on the bus for each " @@ -219,13 +212,6 @@ gst_spectrum_class_init (GstSpectrumClass * klass) G_MININT, 0, DEFAULT_THRESHOLD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - /** - * GstSpectrum:multi-channel - * - * Send separate results for each channel - * - * Since: 0.10.29 - */ g_object_class_install_property (gobject_class, PROP_MULTI_CHANNEL, g_param_spec_boolean ("multi-channel", "Multichannel results", "Send separate results for each channel", diff --git a/gst/spectrum/gstspectrum.h b/gst/spectrum/gstspectrum.h index e8f0f89525be44efe7e45270fe59db1694227239..c6e7e8a92a04220315b1544c51864994fa7cb74b 100644 --- a/gst/spectrum/gstspectrum.h +++ b/gst/spectrum/gstspectrum.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/udp/Makefile.am b/gst/udp/Makefile.am index 53e4c06fff53bb7f8e5a4ececef91bb6e7cae112..7c109d5bd2c4f1bfb92eda548f2f3be2bd272d5b 100644 --- a/gst/udp/Makefile.am +++ b/gst/udp/Makefile.am @@ -1,18 +1,5 @@ plugin_LTLIBRARIES = libgstudp.la -# variables used for enum/marshal generation -glib_enum_headers = gstudp.h -glib_enum_define = GST_UDP -glib_gen_prefix = gst_udp -glib_gen_basename = gstudp - -include $(top_srcdir)/common/gst-glib-gen.mak - -built_sources = gstudp-enumtypes.c gstudp-marshal.c -built_headers = gstudp-enumtypes.h gstudp-marshal.h - -BUILT_SOURCES = $(built_sources) $(built_headers) - libgstudp_la_SOURCES = gstudp.c gstudpsrc.c gstudpsink.c gstmultiudpsink.c gstdynudpsink.c gstudpnetutils.c libgstudp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_NET_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS) @@ -20,12 +7,9 @@ libgstudp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_NET_LIBS) libgstudp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstudp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) -nodist_libgstudp_la_SOURCES = \ - $(built_sources) - -noinst_HEADERS = gstudpsink.h gstudpsrc.h gstudp.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h +noinst_HEADERS = gstudpsink.h gstudpsrc.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h -EXTRA_DIST = README gstudp-marshal.list +EXTRA_DIST = README CLEANFILES = $(BUILT_SOURCES) diff --git a/gst/udp/Makefile.in b/gst/udp/Makefile.in index 59dea8e3e51c6c9ac720ddcbeeff7f0238249ee7..ea5c35307c28fd3ad3386a31ccf7a932c819d600 100644 --- a/gst/udp/Makefile.in +++ b/gst/udp/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,33 +14,53 @@ @SET_MAKE@ -# these are the variables your Makefile.am should set -# the example is based on the colorbalance interface - -#glib_enum_headers=$(colorbalance_headers) -#glib_enum_define=GST_COLOR_BALANCE -#glib_gen_prefix=gst_color_balance -#glib_gen_basename=colorbalance - VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -61,16 +80,15 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(top_srcdir)/common/gst-glib-gen.mak subdir = gst/udp +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -143,18 +161,27 @@ am_libgstudp_la_OBJECTS = libgstudp_la-gstudp.lo \ libgstudp_la-gstudpsrc.lo libgstudp_la-gstudpsink.lo \ libgstudp_la-gstmultiudpsink.lo libgstudp_la-gstdynudpsink.lo \ libgstudp_la-gstudpnetutils.lo -am__objects_1 = libgstudp_la-gstudp-enumtypes.lo \ - libgstudp_la-gstudp-marshal.lo -nodist_libgstudp_la_OBJECTS = $(am__objects_1) -libgstudp_la_OBJECTS = $(am_libgstudp_la_OBJECTS) \ - $(nodist_libgstudp_la_OBJECTS) +libgstudp_la_OBJECTS = $(am_libgstudp_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstudp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstudp_la_CFLAGS) $(CFLAGS) \ $(libgstudp_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -167,21 +194,17 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libgstudp_la_SOURCES) $(nodist_libgstudp_la_SOURCES) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgstudp_la_SOURCES) DIST_SOURCES = $(libgstudp_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ @@ -189,6 +212,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -357,6 +397,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -518,33 +559,19 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstudp.la - -# variables used for enum/marshal generation -glib_enum_headers = gstudp.h -glib_enum_define = GST_UDP -glib_gen_prefix = gst_udp -glib_gen_basename = gstudp -enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\") -built_sources = gstudp-enumtypes.c gstudp-marshal.c -built_headers = gstudp-enumtypes.h gstudp-marshal.h -BUILT_SOURCES = $(built_sources) $(built_headers) libgstudp_la_SOURCES = gstudp.c gstudpsrc.c gstudpsink.c gstmultiudpsink.c gstdynudpsink.c gstudpnetutils.c libgstudp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_NET_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS) libgstudp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_NET_LIBS) $(GIO_LIBS) libgstudp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstudp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) -nodist_libgstudp_la_SOURCES = \ - $(built_sources) - -noinst_HEADERS = gstudpsink.h gstudpsrc.h gstudp.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h -EXTRA_DIST = README gstudp-marshal.list +noinst_HEADERS = gstudpsink.h gstudpsrc.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h +EXTRA_DIST = README CLEANFILES = $(BUILT_SOURCES) -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-am +all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/gst-glib-gen.mak $(am__configure_deps) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -565,7 +592,6 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; -$(top_srcdir)/common/gst-glib-gen.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -575,6 +601,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -601,12 +628,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstudp.la: $(libgstudp_la_OBJECTS) $(libgstudp_la_DEPENDENCIES) $(EXTRA_libgstudp_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstudp_la_LINK) -rpath $(plugindir) $(libgstudp_la_OBJECTS) $(libgstudp_la_LIBADD) $(LIBS) @@ -618,8 +648,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstdynudpsink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstmultiudpsink.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudp-enumtypes.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudp-marshal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudpnetutils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudpsink.Plo@am__quote@ @@ -688,46 +716,21 @@ libgstudp_la-gstudpnetutils.lo: gstudpnetutils.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpnetutils.lo `test -f 'gstudpnetutils.c' || echo '$(srcdir)/'`gstudpnetutils.c -libgstudp_la-gstudp-enumtypes.lo: gstudp-enumtypes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudp-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudp-enumtypes.Tpo -c -o libgstudp_la-gstudp-enumtypes.lo `test -f 'gstudp-enumtypes.c' || echo '$(srcdir)/'`gstudp-enumtypes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudp-enumtypes.Tpo $(DEPDIR)/libgstudp_la-gstudp-enumtypes.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstudp-enumtypes.c' object='libgstudp_la-gstudp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp-enumtypes.lo `test -f 'gstudp-enumtypes.c' || echo '$(srcdir)/'`gstudp-enumtypes.c - -libgstudp_la-gstudp-marshal.lo: gstudp-marshal.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudp-marshal.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudp-marshal.Tpo -c -o libgstudp_la-gstudp-marshal.lo `test -f 'gstudp-marshal.c' || echo '$(srcdir)/'`gstudp-marshal.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudp-marshal.Tpo $(DEPDIR)/libgstudp_la-gstudp-marshal.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstudp-marshal.c' object='libgstudp_la-gstudp-marshal.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp-marshal.lo `test -f 'gstudp-marshal.c' || echo '$(srcdir)/'`gstudp-marshal.c - mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -739,15 +742,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -756,6 +755,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -791,15 +805,13 @@ distdir: $(DISTFILES) fi; \ done check-am: all-am -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-am +check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-am +install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am @@ -830,7 +842,6 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ @@ -902,58 +913,23 @@ ps-am: uninstall-am: uninstall-pluginLTLIBRARIES -.MAKE: all check install install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES - - -# these are all the rules generating the relevant files -$(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list - $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=$(glib_gen_prefix)_marshal $^ > $(glib_gen_basename)-marshal.h.tmp && \ - mv $(glib_gen_basename)-marshal.h.tmp $(glib_gen_basename)-marshal.h - -$(glib_gen_basename)-marshal.c: $(glib_gen_basename)-marshal.list - $(AM_V_GEN)echo "#include \"$(glib_gen_basename)-marshal.h\"" >> $(glib_gen_basename)-marshal.c.tmp && \ - $(GLIB_GENMARSHAL) --body --prefix=$(glib_gen_prefix)_marshal $^ >> $(glib_gen_basename)-marshal.c.tmp && \ - mv $(glib_gen_basename)-marshal.c.tmp $(glib_gen_basename)-marshal.c - -$(glib_gen_basename)-enumtypes.h: $(glib_enum_headers) - $(AM_V_GEN)$(GLIB_MKENUMS) \ - --fhead "#ifndef __$(glib_enum_define)_ENUM_TYPES_H__\n#define __$(glib_enum_define)_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \ - --fprod "\n/* enumerations from \"@filename@\" */\n" \ - --vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ - --ftail "G_END_DECLS\n\n#endif /* __$(glib_enum_define)_ENUM_TYPES_H__ */" \ - $^ > $@ - -$(glib_gen_basename)-enumtypes.c: $(glib_enum_headers) - @if test "x$(glib_enum_headers)" = "x"; then echo "ERROR: glib_enum_headers is empty, please fix Makefile"; exit 1; fi - $(AM_V_GEN)$(GLIB_MKENUMS) \ - --fhead "#include \"$(glib_gen_basename)-enumtypes.h\"\n$(enum_headers)" \ - --fprod "\n/* enumerations from \"@filename@\" */" \ - --vhead "GType\n@enum_name@_get_type (void)\n{\n static volatile gsize g_define_type_id__volatile = 0;\n if (g_once_init_enter (&g_define_type_id__volatile)) {\n static const G@Type@Value values[] = {" \ - --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ - --vtail " { 0, NULL, NULL }\n };\n GType g_define_type_id = g_@type@_register_static (\"@EnumName@\", values);\n g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);\n }\n return g_define_type_id__volatile;\n}\n" \ - $^ > $@ - -# a hack rule to make sure .Plo files exist because they get include'd -# from Makefile's -.deps/%-marshal.Plo: - @touch $@ - -.deps/%-enumtypes.Plo: - @touch $@ +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES + Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ diff --git a/gst/udp/gstdynudpsink.c b/gst/udp/gstdynudpsink.c index 4690bde4459128dcd4824b02a145c88d46b3c241..328e9020a3d02693de6d2dd9b0b5fd5e5202b99c 100644 --- a/gst/udp/gstdynudpsink.c +++ b/gst/udp/gstdynudpsink.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray @@ -28,7 +28,6 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#include "gstudp-marshal.h" #include "gstdynudpsink.h" #include <gst/net/gstnetaddressmeta.h> @@ -55,12 +54,17 @@ enum #define UDP_DEFAULT_SOCKET NULL #define UDP_DEFAULT_CLOSE_SOCKET TRUE +#define UDP_DEFAULT_BIND_ADDRESS NULL +#define UDP_DEFAULT_BIND_PORT 0 enum { PROP_0, PROP_SOCKET, - PROP_CLOSE_SOCKET + PROP_SOCKET_V6, + PROP_CLOSE_SOCKET, + PROP_BIND_ADDRESS, + PROP_BIND_PORT }; static void gst_dynudpsink_finalize (GObject * object); @@ -105,18 +109,30 @@ gst_dynudpsink_class_init (GstDynUDPSinkClass * klass) g_signal_new ("get-stats", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstDynUDPSinkClass, get_stats), - NULL, NULL, gst_udp_marshal_BOXED__STRING_INT, GST_TYPE_STRUCTURE, 2, + NULL, NULL, g_cclosure_marshal_generic, GST_TYPE_STRUCTURE, 2, G_TYPE_STRING, G_TYPE_INT); g_object_class_install_property (gobject_class, PROP_SOCKET, g_param_spec_object ("socket", "Socket", "Socket to use for UDP sending. (NULL == allocate)", G_TYPE_SOCKET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_SOCKET_V6, + g_param_spec_object ("socket-v6", "Socket IPv6", + "Socket to use for UDPv6 sending. (NULL == allocate)", + G_TYPE_SOCKET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_CLOSE_SOCKET, g_param_spec_boolean ("close-socket", "Close socket", "Close socket if passed as property on state change", UDP_DEFAULT_CLOSE_SOCKET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_BIND_ADDRESS, + g_param_spec_string ("bind-address", "Bind Address", + "Address to bind the socket to", UDP_DEFAULT_BIND_ADDRESS, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_BIND_PORT, + g_param_spec_int ("bind-port", "Bind Port", + "Port to bind the socket to", 0, G_MAXUINT16, + UDP_DEFAULT_BIND_PORT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&sink_template)); @@ -141,12 +157,15 @@ static void gst_dynudpsink_init (GstDynUDPSink * sink) { sink->socket = UDP_DEFAULT_SOCKET; + sink->socket_v6 = UDP_DEFAULT_SOCKET; sink->close_socket = UDP_DEFAULT_CLOSE_SOCKET; sink->external_socket = FALSE; + sink->bind_address = UDP_DEFAULT_BIND_ADDRESS; + sink->bind_port = UDP_DEFAULT_BIND_PORT; sink->used_socket = NULL; + sink->used_socket_v6 = NULL; sink->cancellable = g_cancellable_new (); - sink->family = G_SOCKET_FAMILY_IPV6; } static void @@ -164,10 +183,21 @@ gst_dynudpsink_finalize (GObject * object) g_object_unref (sink->socket); sink->socket = NULL; + if (sink->socket_v6) + g_object_unref (sink->socket_v6); + sink->socket_v6 = NULL; + if (sink->used_socket) g_object_unref (sink->used_socket); sink->used_socket = NULL; + if (sink->used_socket_v6) + g_object_unref (sink->used_socket_v6); + sink->used_socket_v6 = NULL; + + g_free (sink->bind_address); + sink->bind_address = NULL; + G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -181,11 +211,12 @@ gst_dynudpsink_render (GstBaseSink * bsink, GstBuffer * buffer) GSocketAddress *addr; GError *err = NULL; GSocketFamily family; + GSocket *socket; meta = gst_buffer_get_net_address_meta (buffer); if (meta == NULL) { - GST_DEBUG ("Received buffer is not a GstNetBuffer, skipping"); + GST_DEBUG ("Received buffer without GstNetAddressMeta, skipping"); return GST_FLOW_OK; } @@ -195,7 +226,7 @@ gst_dynudpsink_render (GstBaseSink * bsink, GstBuffer * buffer) addr = meta->addr; family = g_socket_address_get_family (addr); - if (sink->family != family && family != G_SOCKET_FAMILY_IPV4) + if (family == G_SOCKET_FAMILY_IPV6 && !sink->used_socket_v6) goto invalid_family; gst_buffer_map (buffer, &map, GST_MAP_READ); @@ -216,8 +247,14 @@ gst_dynudpsink_render (GstBaseSink * bsink, GstBuffer * buffer) } #endif + /* Select socket to send from for this address */ + if (family == G_SOCKET_FAMILY_IPV6 || !sink->used_socket) + socket = sink->used_socket_v6; + else + socket = sink->used_socket; + ret = - g_socket_send_to (sink->used_socket, addr, (gchar *) map.data, map.size, + g_socket_send_to (socket, addr, (gchar *) map.data, map.size, sink->cancellable, &err); gst_buffer_unmap (buffer, &map); @@ -236,8 +273,7 @@ send_error: } invalid_family: { - GST_DEBUG ("invalid family (got %d, expected %d)", - g_socket_address_get_family (addr), sink->family); + GST_DEBUG ("invalid address family (got %d)", family); return GST_FLOW_ERROR; } } @@ -267,9 +303,33 @@ gst_dynudpsink_set_property (GObject * object, guint prop_id, udpsink->socket = g_value_dup_object (value); GST_DEBUG ("setting socket to %p", udpsink->socket); break; + case PROP_SOCKET_V6: + if (udpsink->socket_v6 != NULL + && udpsink->socket_v6 != udpsink->used_socket_v6 + && udpsink->close_socket) { + GError *err = NULL; + + if (!g_socket_close (udpsink->socket_v6, &err)) { + GST_ERROR ("failed to close socket %p: %s", udpsink->socket_v6, + err->message); + g_clear_error (&err); + } + } + if (udpsink->socket_v6) + g_object_unref (udpsink->socket_v6); + udpsink->socket_v6 = g_value_dup_object (value); + GST_DEBUG ("setting socket v6 to %p", udpsink->socket_v6); + break; case PROP_CLOSE_SOCKET: udpsink->close_socket = g_value_get_boolean (value); break; + case PROP_BIND_ADDRESS: + g_free (udpsink->bind_address); + udpsink->bind_address = g_value_dup_string (value); + break; + case PROP_BIND_PORT: + udpsink->bind_port = g_value_get_int (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -288,9 +348,18 @@ gst_dynudpsink_get_property (GObject * object, guint prop_id, GValue * value, case PROP_SOCKET: g_value_set_object (value, udpsink->socket); break; + case PROP_SOCKET_V6: + g_value_set_object (value, udpsink->socket_v6); + break; case PROP_CLOSE_SOCKET: g_value_set_boolean (value, udpsink->close_socket); break; + case PROP_BIND_ADDRESS: + g_value_set_string (value, udpsink->bind_address); + break; + case PROP_BIND_PORT: + g_value_set_int (value, udpsink->bind_port); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -306,45 +375,116 @@ gst_dynudpsink_start (GstBaseSink * bsink) udpsink = GST_DYNUDPSINK (bsink); - if (udpsink->socket == NULL) { + udpsink->external_socket = FALSE; + + if (udpsink->socket) { + if (g_socket_get_family (udpsink->socket) == G_SOCKET_FAMILY_IPV6) { + udpsink->used_socket_v6 = G_SOCKET (g_object_ref (udpsink->socket)); + udpsink->external_socket = TRUE; + } else { + udpsink->used_socket = G_SOCKET (g_object_ref (udpsink->socket)); + udpsink->external_socket = TRUE; + } + } + + if (udpsink->socket_v6) { + g_return_val_if_fail (g_socket_get_family (udpsink->socket) != + G_SOCKET_FAMILY_IPV6, FALSE); + + if (udpsink->used_socket_v6 + && udpsink->used_socket_v6 != udpsink->socket_v6) { + GST_ERROR_OBJECT (udpsink, + "Provided different IPv6 sockets in socket and socket-v6 properties"); + return FALSE; + } + + udpsink->used_socket_v6 = G_SOCKET (g_object_ref (udpsink->socket_v6)); + udpsink->external_socket = TRUE; + } + + if (!udpsink->used_socket && !udpsink->used_socket_v6) { GSocketAddress *bind_addr; GInetAddress *bind_iaddr; - /* create sender socket if none available, first try IPv6, then - * fall-back to IPv4 */ - udpsink->family = G_SOCKET_FAMILY_IPV6; - if ((udpsink->used_socket = - g_socket_new (G_SOCKET_FAMILY_IPV6, - G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL) { - udpsink->family = G_SOCKET_FAMILY_IPV4; + if (udpsink->bind_address) { + GSocketFamily family; + + bind_iaddr = g_inet_address_new_from_string (udpsink->bind_address); + if (!bind_iaddr) { + GList *results; + GResolver *resolver; + + resolver = g_resolver_get_default (); + results = + g_resolver_lookup_by_name (resolver, udpsink->bind_address, + udpsink->cancellable, &err); + if (!results) { + g_object_unref (resolver); + goto name_resolve; + } + bind_iaddr = G_INET_ADDRESS (g_object_ref (results->data)); + g_resolver_free_addresses (results); + g_object_unref (resolver); + } + + bind_addr = g_inet_socket_address_new (bind_iaddr, udpsink->bind_port); + g_object_unref (bind_iaddr); + family = g_socket_address_get_family (G_SOCKET_ADDRESS (bind_addr)); + + if ((udpsink->used_socket = + g_socket_new (family, G_SOCKET_TYPE_DATAGRAM, + G_SOCKET_PROTOCOL_UDP, &err)) == NULL) { + g_object_unref (bind_addr); + goto no_socket; + } + + g_socket_bind (udpsink->used_socket, bind_addr, TRUE, &err); + if (err != NULL) + goto bind_error; + } else { + /* create sender sockets if none available */ if ((udpsink->used_socket = g_socket_new (G_SOCKET_FAMILY_IPV4, G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL) goto no_socket; - } - bind_iaddr = g_inet_address_new_any (udpsink->family); - bind_addr = g_inet_socket_address_new (bind_iaddr, 0); - g_socket_bind (udpsink->used_socket, bind_addr, TRUE, &err); - g_object_unref (bind_addr); - g_object_unref (bind_iaddr); - if (err != NULL) - goto bind_error; - - udpsink->external_socket = FALSE; - } else { - udpsink->used_socket = G_SOCKET (g_object_ref (udpsink->socket)); - udpsink->external_socket = TRUE; - udpsink->family = g_socket_get_family (udpsink->used_socket); + bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV4); + bind_addr = g_inet_socket_address_new (bind_iaddr, 0); + g_socket_bind (udpsink->used_socket, bind_addr, TRUE, &err); + g_object_unref (bind_addr); + g_object_unref (bind_iaddr); + if (err != NULL) + goto bind_error; + + if ((udpsink->used_socket_v6 = g_socket_new (G_SOCKET_FAMILY_IPV6, + G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, + &err)) == NULL) { + GST_INFO_OBJECT (udpsink, "Failed to create IPv6 socket: %s", + err->message); + g_clear_error (&err); + } else { + bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV6); + bind_addr = g_inet_socket_address_new (bind_iaddr, 0); + g_socket_bind (udpsink->used_socket_v6, bind_addr, TRUE, &err); + g_object_unref (bind_addr); + g_object_unref (bind_iaddr); + if (err != NULL) + goto bind_error; + } + } } - g_socket_set_broadcast (udpsink->used_socket, TRUE); + if (udpsink->used_socket) + g_socket_set_broadcast (udpsink->used_socket, TRUE); + if (udpsink->used_socket_v6) + g_socket_set_broadcast (udpsink->used_socket_v6, TRUE); return TRUE; /* ERRORS */ no_socket: { - GST_ERROR_OBJECT (udpsink, "Failed to create socket: %s", err->message); + GST_ERROR_OBJECT (udpsink, "Failed to create IPv4 socket: %s", + err->message); g_clear_error (&err); return FALSE; } @@ -355,6 +495,14 @@ bind_error: g_clear_error (&err); return FALSE; } +name_resolve: + { + GST_ELEMENT_ERROR (udpsink, RESOURCE, FAILED, (NULL), + ("Failed to resolve bind address %s: %s", udpsink->bind_address, + err->message)); + g_clear_error (&err); + return FALSE; + } } static GstStructure * @@ -384,6 +532,20 @@ gst_dynudpsink_stop (GstBaseSink * bsink) udpsink->used_socket = NULL; } + if (udpsink->used_socket_v6) { + if (udpsink->close_socket || !udpsink->external_socket) { + GError *err = NULL; + + if (!g_socket_close (udpsink->used_socket_v6, &err)) { + GST_ERROR_OBJECT (udpsink, "Failed to close socket: %s", err->message); + g_clear_error (&err); + } + } + + g_object_unref (udpsink->used_socket_v6); + udpsink->used_socket_v6 = NULL; + } + return TRUE; } diff --git a/gst/udp/gstdynudpsink.h b/gst/udp/gstdynudpsink.h index 38013288aae01fff7107bfde5965fae1ba0e9ceb..9b82eec8ec8851ac339342895933051f6a1c00f6 100644 --- a/gst/udp/gstdynudpsink.h +++ b/gst/udp/gstdynudpsink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_DYNUDPSINK_H__ @@ -27,7 +27,6 @@ G_BEGIN_DECLS #include "gstudpnetutils.h" -#include "gstudp.h" #define GST_TYPE_DYNUDPSINK (gst_dynudpsink_get_type()) #define GST_DYNUDPSINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DYNUDPSINK,GstDynUDPSink)) @@ -45,14 +44,15 @@ struct _GstDynUDPSink { GstBaseSink parent; /* properties */ - GSocket *socket; + GSocket *socket, *socket_v6; gboolean close_socket; + gchar *bind_address; + gint bind_port; /* the socket in use */ - GSocket *used_socket; + GSocket *used_socket, *used_socket_v6; gboolean external_socket; GCancellable *cancellable; - GSocketFamily family; }; struct _GstDynUDPSinkClass { diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c index 92d1bac9d3950a27737cbfc8c00287e97ed4e46e..cb2674ba6de5886486cfe2ffa5cf472cde45d54a 100644 --- a/gst/udp/gstmultiudpsink.c +++ b/gst/udp/gstmultiudpsink.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -36,7 +36,6 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#include "gstudp-marshal.h" #include "gstmultiudpsink.h" #include <string.h> @@ -93,6 +92,8 @@ enum #define DEFAULT_QOS_DSCP -1 #define DEFAULT_SEND_DUPLICATES TRUE #define DEFAULT_BUFFER_SIZE 0 +#define DEFAULT_BIND_ADDRESS NULL +#define DEFAULT_BIND_PORT 0 enum { @@ -100,8 +101,10 @@ enum PROP_BYTES_TO_SERVE, PROP_BYTES_SERVED, PROP_SOCKET, + PROP_SOCKET_V6, PROP_CLOSE_SOCKET, PROP_USED_SOCKET, + PROP_USED_SOCKET_V6, PROP_CLIENTS, PROP_AUTO_MULTICAST, PROP_MULTICAST_IFACE, @@ -112,6 +115,8 @@ enum PROP_QOS_DSCP, PROP_SEND_DUPLICATES, PROP_BUFFER_SIZE, + PROP_BIND_ADDRESS, + PROP_BIND_PORT, PROP_LAST }; @@ -174,7 +179,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) g_signal_new ("add", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstMultiUDPSinkClass, add), - NULL, NULL, gst_udp_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, + NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); /** * GstMultiUDPSink::remove: @@ -189,7 +194,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) g_signal_new ("remove", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstMultiUDPSinkClass, remove), - NULL, NULL, gst_udp_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, + NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); /** * GstMultiUDPSink::clear: @@ -201,7 +206,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) g_signal_new ("clear", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstMultiUDPSinkClass, clear), - NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 0); /** * GstMultiUDPSink::get-stats: * @gstmultiudpsink: the sink on which the signal is emitted @@ -217,7 +222,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) g_signal_new ("get-stats", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstMultiUDPSinkClass, get_stats), - NULL, NULL, gst_udp_marshal_BOXED__STRING_INT, GST_TYPE_STRUCTURE, 2, + NULL, NULL, g_cclosure_marshal_generic, GST_TYPE_STRUCTURE, 2, G_TYPE_STRING, G_TYPE_INT); /** * GstMultiUDPSink::client-added: @@ -231,7 +236,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) gst_multiudpsink_signals[SIGNAL_CLIENT_ADDED] = g_signal_new ("client-added", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstMultiUDPSinkClass, client_added), - NULL, NULL, gst_udp_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, + NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); /** * GstMultiUDPSink::client-removed: @@ -245,7 +250,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) gst_multiudpsink_signals[SIGNAL_CLIENT_REMOVED] = g_signal_new ("client-removed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstMultiUDPSinkClass, - client_removed), NULL, NULL, gst_udp_marshal_VOID__STRING_INT, + client_removed), NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BYTES_TO_SERVE, @@ -260,6 +265,10 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) g_param_spec_object ("socket", "Socket Handle", "Socket to use for UDP sending. (NULL == allocate)", G_TYPE_SOCKET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_SOCKET_V6, + g_param_spec_object ("socket-v6", "Socket Handle IPv6", + "Socket to use for UDPv6 sending. (NULL == allocate)", + G_TYPE_SOCKET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_CLOSE_SOCKET, g_param_spec_boolean ("close-socket", "Close socket", "Close socket if passed as property on state change", @@ -268,6 +277,10 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) g_param_spec_object ("used-socket", "Used Socket Handle", "Socket currently in use for UDP sending. (NULL == no socket)", G_TYPE_SOCKET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_USED_SOCKET_V6, + g_param_spec_object ("used-socket-v6", "Used Socket Handle IPv6", + "Socket currently in use for UDPv6 sending. (NULL == no socket)", + G_TYPE_SOCKET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_CLIENTS, g_param_spec_string ("clients", "Clients", "A comma separated list of host:port pairs with destinations", @@ -304,8 +317,8 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) */ g_object_class_install_property (gobject_class, PROP_FORCE_IPV4, g_param_spec_boolean ("force-ipv4", "Force IPv4", - "Forcing the use of an IPv4 socket", DEFAULT_FORCE_IPV4, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + "Forcing the use of an IPv4 socket (DEPRECATED, has no effect anymore)", + DEFAULT_FORCE_IPV4, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_QOS_DSCP, g_param_spec_int ("qos-dscp", "QoS diff srv code point", @@ -331,6 +344,15 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) "Size of the kernel send buffer in bytes, 0=default", 0, G_MAXINT, DEFAULT_BUFFER_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_BIND_ADDRESS, + g_param_spec_string ("bind-address", "Bind Address", + "Address to bind the socket to", DEFAULT_BIND_ADDRESS, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_BIND_PORT, + g_param_spec_int ("bind-port", "Bind Port", + "Port to bind the socket to", 0, G_MAXUINT16, + DEFAULT_BIND_PORT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&sink_template)); @@ -356,9 +378,13 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) static void gst_multiudpsink_init (GstMultiUDPSink * sink) { + guint max_mem; + g_mutex_init (&sink->client_lock); sink->socket = DEFAULT_SOCKET; + sink->socket_v6 = DEFAULT_SOCKET; sink->used_socket = DEFAULT_USED_SOCKET; + sink->used_socket_v6 = DEFAULT_USED_SOCKET; sink->close_socket = DEFAULT_CLOSE_SOCKET; sink->external_socket = (sink->socket != NULL); sink->auto_multicast = DEFAULT_AUTO_MULTICAST; @@ -371,6 +397,14 @@ gst_multiudpsink_init (GstMultiUDPSink * sink) sink->multi_iface = g_strdup (DEFAULT_MULTICAST_IFACE); sink->cancellable = g_cancellable_new (); + + /* allocate OutputVector and MapInfo for use in the render function, buffers can + * hold up to a maximum amount of memory so we can create a maximally sized + * array for them. */ + max_mem = gst_buffer_get_max_memory (); + + sink->vec = g_new (GOutputVector, max_mem); + sink->map = g_new (GstMapInfo, max_mem); } static GstUDPClient * @@ -452,10 +486,18 @@ gst_multiudpsink_finalize (GObject * object) g_object_unref (sink->socket); sink->socket = NULL; + if (sink->socket_v6) + g_object_unref (sink->socket_v6); + sink->socket_v6 = NULL; + if (sink->used_socket) g_object_unref (sink->used_socket); sink->used_socket = NULL; + if (sink->used_socket_v6) + g_object_unref (sink->used_socket_v6); + sink->used_socket_v6 = NULL; + if (sink->cancellable) g_object_unref (sink->cancellable); sink->cancellable = NULL; @@ -463,6 +505,14 @@ gst_multiudpsink_finalize (GObject * object) g_free (sink->multi_iface); sink->multi_iface = NULL; + g_free (sink->vec); + sink->vec = NULL; + g_free (sink->map); + sink->map = NULL; + + g_free (sink->bind_address); + sink->bind_address = NULL; + g_mutex_clear (&sink->client_lock); G_OBJECT_CLASS (parent_class)->finalize (object); @@ -487,8 +537,10 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer) if (n_mem == 0) goto no_data; - vec = g_new (GOutputVector, n_mem); - map = g_new (GstMapInfo, n_mem); + /* allocated on the stack, the max number of memory blocks is limited so this + * should not cause stack overflows */ + vec = sink->vec; + map = sink->map; size = 0; for (i = 0; i < n_mem; i++) { @@ -506,12 +558,15 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer) /* grab lock while iterating and sending to clients, this should be * fast as UDP never blocks */ g_mutex_lock (&sink->client_lock); - GST_LOG_OBJECT (bsink, "about to send %" G_GSIZE_FORMAT " bytes", size); + GST_LOG_OBJECT (bsink, "about to send %" G_GSIZE_FORMAT " bytes in %u blocks", + size, n_mem); no_clients = 0; num = 0; for (clients = sink->clients; clients; clients = g_list_next (clients)) { GstUDPClient *client; + GSocket *socket; + GSocketFamily family; gint count; client = (GstUDPClient *) clients->data; @@ -519,13 +574,20 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer) GST_LOG_OBJECT (sink, "sending %" G_GSIZE_FORMAT " bytes to client %p", size, client); + family = g_socket_address_get_family (G_SOCKET_ADDRESS (client->addr)); + /* Select socket to send from for this address */ + if (family == G_SOCKET_FAMILY_IPV6 || !sink->used_socket) + socket = sink->used_socket_v6; + else + socket = sink->used_socket; + count = sink->send_duplicates ? client->refcount : 1; while (count--) { gssize ret; ret = - g_socket_send_message (sink->used_socket, client->addr, vec, n_mem, + g_socket_send_message (socket, client->addr, vec, n_mem, NULL, 0, 0, sink->cancellable, &err); if (G_UNLIKELY (ret < 0)) { @@ -561,9 +623,6 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer) gst_memory_unref (map[i].memory); } - g_free (vec); - g_free (map); - GST_LOG_OBJECT (sink, "sent %" G_GSIZE_FORMAT " bytes to %d (of %d) clients", size, num, no_clients); @@ -643,13 +702,13 @@ gst_multiudpsink_get_clients_string (GstMultiUDPSink * sink) } static void -gst_multiudpsink_setup_qos_dscp (GstMultiUDPSink * sink) +gst_multiudpsink_setup_qos_dscp (GstMultiUDPSink * sink, GSocket * socket) { /* don't touch on -1 */ if (sink->qos_dscp < 0) return; - if (sink->used_socket == NULL) + if (socket == NULL) return; #ifdef IP_TOS @@ -657,7 +716,7 @@ gst_multiudpsink_setup_qos_dscp (GstMultiUDPSink * sink) gint tos; gint fd; - fd = g_socket_get_fd (sink->used_socket); + fd = g_socket_get_fd (socket); GST_DEBUG_OBJECT (sink, "setting TOS to %d", sink->qos_dscp); @@ -701,6 +760,23 @@ gst_multiudpsink_set_property (GObject * object, guint prop_id, udpsink->socket = g_value_dup_object (value); GST_DEBUG_OBJECT (udpsink, "setting socket to %p", udpsink->socket); break; + case PROP_SOCKET_V6: + if (udpsink->socket_v6 != NULL + && udpsink->socket_v6 != udpsink->used_socket_v6 + && udpsink->close_socket) { + GError *err = NULL; + + if (!g_socket_close (udpsink->socket_v6, &err)) { + GST_ERROR ("failed to close socket %p: %s", udpsink->socket_v6, + err->message); + g_clear_error (&err); + } + } + if (udpsink->socket_v6) + g_object_unref (udpsink->socket_v6); + udpsink->socket_v6 = g_value_dup_object (value); + GST_DEBUG_OBJECT (udpsink, "setting socket to %p", udpsink->socket_v6); + break; case PROP_CLOSE_SOCKET: udpsink->close_socket = g_value_get_boolean (value); break; @@ -732,7 +808,8 @@ gst_multiudpsink_set_property (GObject * object, guint prop_id, break; case PROP_QOS_DSCP: udpsink->qos_dscp = g_value_get_int (value); - gst_multiudpsink_setup_qos_dscp (udpsink); + gst_multiudpsink_setup_qos_dscp (udpsink, udpsink->used_socket); + gst_multiudpsink_setup_qos_dscp (udpsink, udpsink->used_socket_v6); break; case PROP_SEND_DUPLICATES: udpsink->send_duplicates = g_value_get_boolean (value); @@ -740,6 +817,13 @@ gst_multiudpsink_set_property (GObject * object, guint prop_id, case PROP_BUFFER_SIZE: udpsink->buffer_size = g_value_get_int (value); break; + case PROP_BIND_ADDRESS: + g_free (udpsink->bind_address); + udpsink->bind_address = g_value_dup_string (value); + break; + case PROP_BIND_PORT: + udpsink->bind_port = g_value_get_int (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -764,12 +848,18 @@ gst_multiudpsink_get_property (GObject * object, guint prop_id, GValue * value, case PROP_SOCKET: g_value_set_object (value, udpsink->socket); break; + case PROP_SOCKET_V6: + g_value_set_object (value, udpsink->socket_v6); + break; case PROP_CLOSE_SOCKET: g_value_set_boolean (value, udpsink->close_socket); break; case PROP_USED_SOCKET: g_value_set_object (value, udpsink->used_socket); break; + case PROP_USED_SOCKET_V6: + g_value_set_object (value, udpsink->used_socket_v6); + break; case PROP_CLIENTS: g_value_take_string (value, gst_multiudpsink_get_clients_string (udpsink)); @@ -801,6 +891,12 @@ gst_multiudpsink_get_property (GObject * object, guint prop_id, GValue * value, case PROP_BUFFER_SIZE: g_value_set_int (value, udpsink->buffer_size); break; + case PROP_BIND_ADDRESS: + g_value_set_string (value, udpsink->bind_address); + break; + case PROP_BIND_PORT: + g_value_set_int (value, udpsink->bind_port); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -813,25 +909,36 @@ gst_multiudpsink_configure_client (GstMultiUDPSink * sink, { GInetSocketAddress *saddr = G_INET_SOCKET_ADDRESS (client->addr); GInetAddress *addr = g_inet_socket_address_get_address (saddr); + GSocketFamily family = g_socket_address_get_family (G_SOCKET_ADDRESS (saddr)); + GSocket *socket; GError *err = NULL; GST_DEBUG_OBJECT (sink, "configuring client %p", client); + if (family == G_SOCKET_FAMILY_IPV6 && !sink->used_socket_v6) + goto invalid_family; + + /* Select socket to send from for this address */ + if (family == G_SOCKET_FAMILY_IPV6 || !sink->used_socket) + socket = sink->used_socket_v6; + else + socket = sink->used_socket; + if (g_inet_address_get_is_multicast (addr)) { GST_DEBUG_OBJECT (sink, "we have a multicast client %p", client); if (sink->auto_multicast) { GST_DEBUG_OBJECT (sink, "autojoining group"); - if (!g_socket_join_multicast_group (sink->used_socket, addr, FALSE, + if (!g_socket_join_multicast_group (socket, addr, FALSE, sink->multi_iface, &err)) goto join_group_failed; } GST_DEBUG_OBJECT (sink, "setting loop to %d", sink->loop); - g_socket_set_multicast_loopback (sink->used_socket, sink->loop); + g_socket_set_multicast_loopback (socket, sink->loop); GST_DEBUG_OBJECT (sink, "setting ttl to %d", sink->ttl_mc); - g_socket_set_multicast_ttl (sink->used_socket, sink->ttl_mc); + g_socket_set_multicast_ttl (socket, sink->ttl_mc); } else { GST_DEBUG_OBJECT (sink, "setting unicast ttl to %d", sink->ttl); - g_socket_set_ttl (sink->used_socket, sink->ttl); + g_socket_set_ttl (socket, sink->ttl); } return TRUE; @@ -845,6 +952,13 @@ join_group_failed: g_clear_error (&err); return FALSE; } +invalid_family: + { + gst_multiudpsink_stop (GST_BASE_SINK (sink)); + GST_ELEMENT_ERROR (sink, RESOURCE, SETTINGS, (NULL), + ("Invalid address family (got %d)", family)); + return FALSE; + } } /* create a socket for sending to remote machine */ @@ -858,40 +972,104 @@ gst_multiudpsink_start (GstBaseSink * bsink) sink = GST_MULTIUDPSINK (bsink); - if (sink->socket == NULL) { + sink->external_socket = FALSE; + + if (sink->socket) { + GST_DEBUG_OBJECT (sink, "using configured socket"); + if (g_socket_get_family (sink->socket) == G_SOCKET_FAMILY_IPV6) { + sink->used_socket_v6 = G_SOCKET (g_object_ref (sink->socket)); + sink->external_socket = TRUE; + } else { + sink->used_socket = G_SOCKET (g_object_ref (sink->socket)); + sink->external_socket = TRUE; + } + } + + if (sink->socket_v6) { + GST_DEBUG_OBJECT (sink, "using configured IPv6 socket"); + g_return_val_if_fail (g_socket_get_family (sink->socket) != + G_SOCKET_FAMILY_IPV6, FALSE); + + if (sink->used_socket_v6 && sink->used_socket_v6 != sink->socket_v6) { + GST_ERROR_OBJECT (sink, + "Provided different IPv6 sockets in socket and socket-v6 properties"); + return FALSE; + } + + sink->used_socket_v6 = G_SOCKET (g_object_ref (sink->socket_v6)); + sink->external_socket = TRUE; + } + + if (!sink->used_socket && !sink->used_socket_v6) { GSocketAddress *bind_addr; GInetAddress *bind_iaddr; - GSocketFamily family = G_SOCKET_FAMILY_IPV6; - GST_DEBUG_OBJECT (sink, "creating sockets"); - /* create sender socket try IP6, fall back to IP4 */ - if (sink->force_ipv4 || (sink->used_socket = - g_socket_new (G_SOCKET_FAMILY_IPV6, - G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL) { + if (sink->bind_address) { + GSocketFamily family; + + bind_iaddr = g_inet_address_new_from_string (sink->bind_address); + if (!bind_iaddr) { + GList *results; + GResolver *resolver; + + resolver = g_resolver_get_default (); + results = + g_resolver_lookup_by_name (resolver, sink->bind_address, + sink->cancellable, &err); + if (!results) { + g_object_unref (resolver); + goto name_resolve; + } + bind_iaddr = G_INET_ADDRESS (g_object_ref (results->data)); + g_resolver_free_addresses (results); + g_object_unref (resolver); + } + + bind_addr = g_inet_socket_address_new (bind_iaddr, sink->bind_port); + g_object_unref (bind_iaddr); + family = g_socket_address_get_family (G_SOCKET_ADDRESS (bind_addr)); + + if ((sink->used_socket = + g_socket_new (family, G_SOCKET_TYPE_DATAGRAM, + G_SOCKET_PROTOCOL_UDP, &err)) == NULL) { + g_object_unref (bind_addr); + goto no_socket; + } + + g_socket_bind (sink->used_socket, bind_addr, TRUE, &err); + if (err != NULL) + goto bind_error; + } else { + /* create sender sockets if none available */ if ((sink->used_socket = g_socket_new (G_SOCKET_FAMILY_IPV4, G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL) goto no_socket; - else - family = G_SOCKET_FAMILY_IPV4; - } - bind_iaddr = g_inet_address_new_any (family); - bind_addr = g_inet_socket_address_new (bind_iaddr, 0); - g_socket_bind (sink->used_socket, bind_addr, TRUE, &err); - g_object_unref (bind_addr); - g_object_unref (bind_iaddr); - if (err != NULL) - goto bind_error; - - GST_DEBUG_OBJECT (sink, "have socket"); - sink->external_socket = FALSE; - } else { - GST_DEBUG_OBJECT (sink, "using configured socket"); - /* we use the configured socket */ - sink->used_socket = G_SOCKET (g_object_ref (sink->socket)); - sink->external_socket = TRUE; + bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV4); + bind_addr = g_inet_socket_address_new (bind_iaddr, 0); + g_socket_bind (sink->used_socket, bind_addr, TRUE, &err); + g_object_unref (bind_addr); + g_object_unref (bind_iaddr); + if (err != NULL) + goto bind_error; + + if ((sink->used_socket_v6 = g_socket_new (G_SOCKET_FAMILY_IPV6, + G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, + &err)) == NULL) { + GST_INFO_OBJECT (sink, "Failed to create IPv6 socket: %s", + err->message); + g_clear_error (&err); + } else { + bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV6); + bind_addr = g_inet_socket_address_new (bind_iaddr, 0); + g_socket_bind (sink->used_socket_v6, bind_addr, TRUE, &err); + g_object_unref (bind_addr); + g_object_unref (bind_iaddr); + if (err != NULL) + goto bind_error; + } + } } - #ifdef SO_SNDBUF { socklen_t len; @@ -905,35 +1083,78 @@ gst_multiudpsink_start (GstBaseSink * bsink) /* set buffer size, Note that on Linux this is typically limited to a * maximum of around 100K. Also a minimum of 128 bytes is required on * Linux. */ - ret = - setsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET, - SO_SNDBUF, (void *) &sndsize, len); - if (ret != 0) { - GST_ELEMENT_WARNING (sink, RESOURCE, SETTINGS, (NULL), - ("Could not create a buffer of requested %d bytes, %d: %s", - sndsize, ret, g_strerror (errno))); + + if (sink->used_socket) { + ret = + setsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET, + SO_SNDBUF, (void *) &sndsize, len); + if (ret != 0) { + GST_ELEMENT_WARNING (sink, RESOURCE, SETTINGS, (NULL), + ("Could not create a buffer of requested %d bytes, %d: %s", + sndsize, ret, g_strerror (errno))); + } + } + + if (sink->used_socket_v6) { + ret = + setsockopt (g_socket_get_fd (sink->used_socket_v6), SOL_SOCKET, + SO_SNDBUF, (void *) &sndsize, len); + if (ret != 0) { + GST_ELEMENT_WARNING (sink, RESOURCE, SETTINGS, (NULL), + ("Could not create a buffer of requested %d bytes, %d: %s", + sndsize, ret, g_strerror (errno))); + } } } /* read the value of the receive buffer. Note that on linux this returns 2x the * value we set because the kernel allocates extra memory for metadata. * The default on Linux is about 100K (which is about 50K without metadata) */ - ret = - getsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET, SO_SNDBUF, - (void *) &sndsize, &len); - if (ret == 0) - GST_DEBUG_OBJECT (sink, "have udp buffer of %d bytes", sndsize); - else - GST_DEBUG_OBJECT (sink, "could not get udp buffer size"); + if (sink->used_socket) { + ret = + getsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET, + SO_SNDBUF, (void *) &sndsize, &len); + if (ret == 0) + GST_DEBUG_OBJECT (sink, "have UDP buffer of %d bytes", sndsize); + else + GST_DEBUG_OBJECT (sink, "could not get UDP buffer size"); + } + + if (sink->used_socket_v6) { + ret = + getsockopt (g_socket_get_fd (sink->used_socket_v6), SOL_SOCKET, + SO_SNDBUF, (void *) &sndsize, &len); + if (ret == 0) + GST_DEBUG_OBJECT (sink, "have UDPv6 buffer of %d bytes", sndsize); + else + GST_DEBUG_OBJECT (sink, "could not get UDPv6 buffer size"); + } } #endif - g_socket_set_broadcast (sink->used_socket, TRUE); +#ifdef SO_BINDTODEVICE + if (sink->multi_iface) { + if (sink->used_socket) { + setsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET, + SO_BINDTODEVICE, sink->multi_iface, strlen (sink->multi_iface)); + } + if (sink->used_socket_v6) { + setsockopt (g_socket_get_fd (sink->used_socket_v6), SOL_SOCKET, + SO_BINDTODEVICE, sink->multi_iface, strlen (sink->multi_iface)); + } + } +#endif + + if (sink->used_socket) + g_socket_set_broadcast (sink->used_socket, TRUE); + if (sink->used_socket_v6) + g_socket_set_broadcast (sink->used_socket_v6, TRUE); sink->bytes_to_serve = 0; sink->bytes_served = 0; - gst_multiudpsink_setup_qos_dscp (sink); + gst_multiudpsink_setup_qos_dscp (sink, sink->used_socket); + gst_multiudpsink_setup_qos_dscp (sink, sink->used_socket_v6); /* look for multicast clients and join multicast groups appropriately set also ttl and multicast loopback delivery appropriately */ @@ -960,6 +1181,14 @@ bind_error: g_clear_error (&err); return FALSE; } +name_resolve: + { + GST_ELEMENT_ERROR (sink, RESOURCE, FAILED, (NULL), + ("Failed to resolve bind address %s: %s", sink->bind_address, + err->message)); + g_clear_error (&err); + return FALSE; + } } static gboolean @@ -983,6 +1212,20 @@ gst_multiudpsink_stop (GstBaseSink * bsink) udpsink->used_socket = NULL; } + if (udpsink->used_socket_v6) { + if (udpsink->close_socket || !udpsink->external_socket) { + GError *err = NULL; + + if (!g_socket_close (udpsink->used_socket_v6, &err)) { + GST_ERROR_OBJECT (udpsink, "Failed to close socket: %s", err->message); + g_clear_error (&err); + } + } + + g_object_unref (udpsink->used_socket_v6); + udpsink->used_socket_v6 = NULL; + } + return TRUE; } @@ -1078,17 +1321,26 @@ gst_multiudpsink_remove (GstMultiUDPSink * sink, const gchar * host, gint port) if (client->refcount == 0) { GInetSocketAddress *saddr = G_INET_SOCKET_ADDRESS (client->addr); GInetAddress *addr = g_inet_socket_address_get_address (saddr); + GSocketFamily family = + g_socket_address_get_family (G_SOCKET_ADDRESS (saddr)); + GSocket *socket; + + /* Select socket to send from for this address */ + if (family == G_SOCKET_FAMILY_IPV6 || !sink->used_socket) + socket = sink->used_socket_v6; + else + socket = sink->used_socket; GST_DEBUG_OBJECT (sink, "remove client with host %s, port %d", host, port); g_get_current_time (&now); client->disconnect_time = GST_TIMEVAL_TO_TIME (now); - if (sink->used_socket && sink->auto_multicast + if (socket && sink->auto_multicast && g_inet_address_get_is_multicast (addr)) { GError *err = NULL; - if (!g_socket_leave_multicast_group (sink->used_socket, addr, FALSE, + if (!g_socket_leave_multicast_group (socket, addr, FALSE, sink->multi_iface, &err)) { GST_DEBUG_OBJECT (sink, "Failed to leave multicast group: %s", err->message); diff --git a/gst/udp/gstmultiudpsink.h b/gst/udp/gstmultiudpsink.h index a3e96c644e5b35a3828d0b37185164b8f30ab307..a1be566b65e0364fbb0ae6a15ad8a332b15d58fe 100644 --- a/gst/udp/gstmultiudpsink.h +++ b/gst/udp/gstmultiudpsink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_MULTIUDPSINK_H__ @@ -27,7 +27,6 @@ G_BEGIN_DECLS #include "gstudpnetutils.h" -#include "gstudp.h" #define GST_TYPE_MULTIUDPSINK (gst_multiudpsink_get_type()) #define GST_MULTIUDPSINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MULTIUDPSINK,GstMultiUDPSink)) @@ -57,16 +56,19 @@ typedef struct { struct _GstMultiUDPSink { GstBaseSink parent; - GSocket *used_socket; + GSocket *used_socket, *used_socket_v6; GCancellable *cancellable; GMutex client_lock; GList *clients; + GOutputVector *vec; + GstMapInfo *map; + /* properties */ guint64 bytes_to_serve; guint64 bytes_served; - GSocket *socket; + GSocket *socket, *socket_v6; gboolean close_socket; gboolean external_socket; @@ -81,6 +83,8 @@ struct _GstMultiUDPSink { gboolean send_duplicates; gint buffer_size; + gchar *bind_address; + gint bind_port; }; struct _GstMultiUDPSinkClass { diff --git a/gst/udp/gstudp-marshal.list b/gst/udp/gstudp-marshal.list deleted file mode 100644 index b53e79c15eb29ddd48e9dd2bda74fa05b7c4617c..0000000000000000000000000000000000000000 --- a/gst/udp/gstudp-marshal.list +++ /dev/null @@ -1,2 +0,0 @@ -VOID:STRING,INT -BOXED:STRING,INT diff --git a/gst/udp/gstudp.c b/gst/udp/gstudp.c index b9c9fe70ecf3fe24cfc8ca06a9313d7d2fd97b3e..eb021122e9204565318c70cc7826a441ae13800e 100644 --- a/gst/udp/gstudp.c +++ b/gst/udp/gstudp.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -31,6 +31,12 @@ static gboolean plugin_init (GstPlugin * plugin) { + /* not using GLIB_CHECK_VERSION on purpose, run-time version matters */ + if (glib_check_version (2, 36, 0) != NULL) { + GST_WARNING ("Your GLib version is < 2.36, UDP multicasting support may " + "be broken, see https://bugzilla.gnome.org/show_bug.cgi?id=688378"); + } + /* register info of the netaddress metadata so that we can use it from * multiple threads right away. Note that the plugin loading is always * serialized */ diff --git a/gst/udp/gstudp.h b/gst/udp/gstudp.h deleted file mode 100644 index f6879377ce3aafc32f599248f0a5a82745f6b873..0000000000000000000000000000000000000000 --- a/gst/udp/gstudp.h +++ /dev/null @@ -1,39 +0,0 @@ -/* GStreamer - * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "gstudp-enumtypes.h" -#include <glib.h> - -#ifndef __GST_UDP_H__ -#define __GST_UDP_H__ - -G_BEGIN_DECLS - -typedef enum -{ - CONTROL_ZERO, - CONTROL_NONE, - CONTROL_UDP, - CONTROL_TCP -} GstUDPControl; - -G_END_DECLS - -#endif /* __GST_UDP_H__ */ - diff --git a/gst/udp/gstudpnetutils.c b/gst/udp/gstudpnetutils.c index 217c70849b7720b4edbdc430e59d5a9b3ba14a91..b4dc5ef0186894e17ff694086c97278d1a2a37c4 100644 --- a/gst/udp/gstudpnetutils.c +++ b/gst/udp/gstudpnetutils.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/udp/gstudpnetutils.h b/gst/udp/gstudpnetutils.h index 8e8665cced27b5f965db692acf983c17b7fbbc4c..a62be562cb8ec8da5feb6afcaac9e0b95ffad1be 100644 --- a/gst/udp/gstudpnetutils.h +++ b/gst/udp/gstudpnetutils.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/gst.h> diff --git a/gst/udp/gstudpsink.c b/gst/udp/gstudpsink.c index b59917f633ad3c97a46c75153497cba909641567..224d57818db3ef2e7b3b90988f2fcce501a051b8 100644 --- a/gst/udp/gstudpsink.c +++ b/gst/udp/gstudpsink.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-udpsink diff --git a/gst/udp/gstudpsink.h b/gst/udp/gstudpsink.h index b04fdda92cedf7013b2ea96b06e224e5cd03bd37..a7b5b343b18f6ce0623ffcbf46e2c3b08dbbc11f 100644 --- a/gst/udp/gstudpsink.h +++ b/gst/udp/gstudpsink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ @@ -26,7 +26,6 @@ G_BEGIN_DECLS -#include "gstudp.h" #include "gstudpnetutils.h" #define GST_TYPE_UDPSINK (gst_udpsink_get_type()) diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c index bdad5b30a597ed390b31de1312fb44308a1a6756..85179103eb6140b07cd49b8db9e7e30b1baf2bb8 100644 --- a/gst/udp/gstudpsrc.c +++ b/gst/udp/gstudpsrc.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -131,6 +131,9 @@ #endif #endif +/* not 100% correct, but a good upper bound for memory allocation purposes */ +#define MAX_IPV4_UDP_PACKET_SIZE (65536 - 8) + GST_DEBUG_CATEGORY_STATIC (udpsrc_debug); #define GST_CAT_DEFAULT (udpsrc_debug) @@ -170,6 +173,7 @@ enum PROP_USED_SOCKET, PROP_AUTO_MULTICAST, PROP_REUSE, + PROP_BIND_ADDRESS, PROP_LAST }; @@ -275,6 +279,17 @@ gst_udpsrc_class_init (GstUDPSrcClass * klass) g_param_spec_boolean ("reuse", "Reuse", "Enable reuse of the port", UDP_DEFAULT_REUSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /* FIXME 2.0: multicast-group and bind-address should + * be separated, the former only being the multicast group and + * the latter always being the address the socket is bound too, + * even if a multicast group is given. + */ + g_object_class_install_property (gobject_class, PROP_BIND_ADDRESS, + g_param_spec_string ("bind-address", "Bind Address", + "Address to bind the socket to. This is equivalent to the " + "multicast-group property", UDP_DEFAULT_MULTICAST_GROUP, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&src_template)); @@ -300,7 +315,7 @@ gst_udpsrc_init (GstUDPSrc * udpsrc) g_strdup_printf ("udp://%s:%u", UDP_DEFAULT_MULTICAST_GROUP, UDP_DEFAULT_PORT); - udpsrc->host = g_strdup (UDP_DEFAULT_MULTICAST_GROUP); + udpsrc->multi_group = g_strdup (UDP_DEFAULT_MULTICAST_GROUP); udpsrc->port = UDP_DEFAULT_PORT; udpsrc->socket = UDP_DEFAULT_SOCKET; udpsrc->multi_iface = g_strdup (UDP_DEFAULT_MULTICAST_IFACE); @@ -341,8 +356,8 @@ gst_udpsrc_finalize (GObject * object) g_free (udpsrc->uri); udpsrc->uri = NULL; - g_free (udpsrc->host); - udpsrc->host = NULL; + g_free (udpsrc->multi_group); + udpsrc->multi_group = NULL; if (udpsrc->socket) g_object_unref (udpsrc->socket); @@ -397,13 +412,20 @@ retry: goto no_select; do { + gint64 timeout; + try_again = FALSE; + if (udpsrc->timeout) + timeout = udpsrc->timeout / 1000; + else + timeout = -1; + GST_LOG_OBJECT (udpsrc, "doing select, timeout %" G_GUINT64_FORMAT, - udpsrc->timeout); + timeout); - if (!g_socket_condition_wait (udpsrc->used_socket, G_IO_IN | G_IO_PRI, - udpsrc->cancellable, &err)) { + if (!g_socket_condition_timed_wait (udpsrc->used_socket, G_IO_IN | G_IO_PRI, + timeout, udpsrc->cancellable, &err)) { if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_BUSY) || g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { goto stopped; @@ -450,6 +472,11 @@ retry: no_select: GST_LOG_OBJECT (udpsrc, "ioctl says %d bytes available", (int) readsize); + /* sanity check value from _get_available_bytes(), which might be as + * large as the kernel-side buffer on some operating systems */ + if (g_socket_get_family (udpsrc->used_socket) == G_SOCKET_FAMILY_IPV4) + readsize = MIN (MAX_IPV4_UDP_PACKET_SIZE, readsize); + ret = GST_BASE_SRC_CLASS (parent_class)->alloc (GST_BASE_SRC_CAST (udpsrc), -1, readsize, &outbuf); if (ret != GST_FLOW_OK) @@ -560,17 +587,17 @@ skip_error: static gboolean gst_udpsrc_set_uri (GstUDPSrc * src, const gchar * uri, GError ** error) { - gchar *host; + gchar *multi_group; guint16 port; - if (!gst_udp_parse_uri (uri, &host, &port)) + if (!gst_udp_parse_uri (uri, &multi_group, &port)) goto wrong_uri; if (port == (guint16) - 1) port = UDP_DEFAULT_PORT; - g_free (src->host); - src->host = host; + g_free (src->multi_group); + src->multi_group = multi_group; src->port = port; g_free (src->uri); @@ -602,20 +629,23 @@ gst_udpsrc_set_property (GObject * object, guint prop_id, const GValue * value, case PROP_PORT: udpsrc->port = g_value_get_int (value); g_free (udpsrc->uri); - udpsrc->uri = g_strdup_printf ("udp://%s:%u", udpsrc->host, udpsrc->port); + udpsrc->uri = + g_strdup_printf ("udp://%s:%u", udpsrc->multi_group, udpsrc->port); break; case PROP_MULTICAST_GROUP: + case PROP_BIND_ADDRESS: { const gchar *group; - g_free (udpsrc->host); + g_free (udpsrc->multi_group); if ((group = g_value_get_string (value))) - udpsrc->host = g_strdup (group); + udpsrc->multi_group = g_strdup (group); else - udpsrc->host = g_strdup (UDP_DEFAULT_MULTICAST_GROUP); + udpsrc->multi_group = g_strdup (UDP_DEFAULT_MULTICAST_GROUP); g_free (udpsrc->uri); - udpsrc->uri = g_strdup_printf ("udp://%s:%u", udpsrc->host, udpsrc->port); + udpsrc->uri = + g_strdup_printf ("udp://%s:%u", udpsrc->multi_group, udpsrc->port); break; } case PROP_MULTICAST_IFACE: @@ -700,7 +730,8 @@ gst_udpsrc_get_property (GObject * object, guint prop_id, GValue * value, g_value_set_int (value, udpsrc->port); break; case PROP_MULTICAST_GROUP: - g_value_set_string (value, udpsrc->host); + case PROP_BIND_ADDRESS: + g_value_set_string (value, udpsrc->multi_group); break; case PROP_MULTICAST_IFACE: g_value_set_string (value, udpsrc->multi_iface); @@ -752,17 +783,19 @@ gst_udpsrc_start (GstBaseSrc * bsrc) if (src->socket == NULL) { /* need to allocate a socket */ - GST_DEBUG_OBJECT (src, "allocating socket for %s:%d", src->host, src->port); + GST_DEBUG_OBJECT (src, "allocating socket for %s:%d", src->multi_group, + src->port); - addr = g_inet_address_new_from_string (src->host); + addr = g_inet_address_new_from_string (src->multi_group); if (!addr) { GList *results; - GST_DEBUG_OBJECT (src, "resolving IP address for host %s", src->host); + GST_DEBUG_OBJECT (src, "resolving IP address for host %s", + src->multi_group); resolver = g_resolver_get_default (); results = - g_resolver_lookup_by_name (resolver, src->host, src->cancellable, - &err); + g_resolver_lookup_by_name (resolver, src->multi_group, + src->cancellable, &err); if (!results) goto name_resolve; addr = G_INET_ADDRESS (g_object_ref (results->data)); @@ -774,7 +807,8 @@ gst_udpsrc_start (GstBaseSrc * bsrc) { gchar *ip = g_inet_address_to_string (addr); - GST_DEBUG_OBJECT (src, "IP address for host %s is %s", src->host, ip); + GST_DEBUG_OBJECT (src, "IP address for host %s is %s", src->multi_group, + ip); g_free (ip); } #endif @@ -823,9 +857,6 @@ gst_udpsrc_start (GstBaseSrc * bsrc) goto getsockname_error; } - if (src->timeout) - g_socket_set_timeout (src->used_socket, src->timeout / GST_SECOND); - #if GLIB_CHECK_VERSION (2, 35, 7) { gint val = 0; @@ -906,7 +937,7 @@ gst_udpsrc_start (GstBaseSrc * bsrc) && g_inet_address_get_is_multicast (g_inet_socket_address_get_address (src->addr))) { - GST_DEBUG_OBJECT (src, "joining multicast group %s", src->host); + GST_DEBUG_OBJECT (src, "joining multicast group %s", src->multi_group); if (!g_socket_join_multicast_group (src->used_socket, g_inet_socket_address_get_address (src->addr), FALSE, src->multi_iface, &err)) @@ -1023,7 +1054,7 @@ gst_udpsrc_stop (GstBaseSrc * bsrc) (src->addr))) { GError *err = NULL; - GST_DEBUG_OBJECT (src, "leaving multicast group %s", src->host); + GST_DEBUG_OBJECT (src, "leaving multicast group %s", src->multi_group); if (!g_socket_leave_multicast_group (src->used_socket, g_inet_socket_address_get_address (src->addr), FALSE, diff --git a/gst/udp/gstudpsrc.h b/gst/udp/gstudpsrc.h index dc5ea33c1c74e675f42bba2636c06d038f7e59d0..b7c3f14afc6398913c501b20091bdc638ff53a78 100644 --- a/gst/udp/gstudpsrc.h +++ b/gst/udp/gstudpsrc.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ @@ -28,7 +28,6 @@ G_BEGIN_DECLS #include "gstudpnetutils.h" -#include "gstudp.h" #define GST_TYPE_UDPSRC \ (gst_udpsrc_get_type()) @@ -49,7 +48,7 @@ struct _GstUDPSrc { GstPushSrc parent; /* properties */ - gchar *host; + gchar *multi_group; gint port; gchar *multi_iface; gint ttl; diff --git a/gst/videobox/Makefile.in b/gst/videobox/Makefile.in index 0b150d336acca4a2869f3b6ca1b233e3462d9cd2..c65e8c53b594b0152e9bcfb1600d99accb72c774 100644 --- a/gst/videobox/Makefile.in +++ b/gst/videobox/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -39,23 +38,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -75,8 +102,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak +DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \ + README subdir = gst/videobox ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -84,7 +112,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -161,10 +188,23 @@ libgstvideobox_la_OBJECTS = $(am_libgstvideobox_la_OBJECTS) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstvideobox_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstvideobox_la_CFLAGS) $(CFLAGS) \ $(libgstvideobox_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -177,20 +217,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstvideobox_la_SOURCES) \ $(nodist_libgstvideobox_la_SOURCES) DIST_SOURCES = $(libgstvideobox_la_SOURCES) @@ -200,6 +236,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -368,6 +421,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -591,6 +645,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -617,12 +672,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstvideobox.la: $(libgstvideobox_la_OBJECTS) $(libgstvideobox_la_DEPENDENCIES) $(EXTRA_libgstvideobox_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideobox_la_LINK) -rpath $(plugindir) $(libgstvideobox_la_OBJECTS) $(libgstvideobox_la_LIBADD) $(LIBS) @@ -676,26 +734,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -707,15 +754,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -724,6 +767,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -874,19 +932,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-local clean-pluginLTLIBRARIES ctags \ - dist-hook distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-pluginLTLIBRARIES install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-local clean-pluginLTLIBRARIES \ + cscopelist-am ctags ctags-am dist-hook distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ uninstall-pluginLTLIBRARIES diff --git a/gst/videobox/gstvideobox.c b/gst/videobox/gstvideobox.c index d0216cd32f7bfc8a39a320bbef689edb9f59b68f..de70b1b16639b80e7a29292b9b44648f47f801fc 100644 --- a/gst/videobox/gstvideobox.c +++ b/gst/videobox/gstvideobox.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-videobox diff --git a/gst/videobox/gstvideobox.h b/gst/videobox/gstvideobox.h index 2dec46d6f97b5bc5f60be08d2876e9b0b54f86b2..cbb98ac397a5749b1c9dc933be8a7e46ea668f88 100644 --- a/gst/videobox/gstvideobox.h +++ b/gst/videobox/gstvideobox.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/gst.h> diff --git a/gst/videobox/gstvideoboxorc-dist.c b/gst/videobox/gstvideoboxorc-dist.c index 8b2dcd38bee58e3d05537abe0b43302e15c3630d..15bbf1defe64ba4bdc078180d9fbbb3f29948ecf 100644 --- a/gst/videobox/gstvideoboxorc-dist.c +++ b/gst/videobox/gstvideoboxorc-dist.c @@ -203,6 +203,15 @@ video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 23, 118, 105, 100, 101, 111, 95, 98, 111, 120, 95, 111, 114, 99, + 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16, 4, 112, + 0, 24, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_video_box_orc_splat_u32); +#else p = orc_program_new (); orc_program_set_name (p, "video_box_orc_splat_u32"); orc_program_set_backup_function (p, _backup_video_box_orc_splat_u32); @@ -211,6 +220,7 @@ video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); diff --git a/gst/videocrop/Makefile.in b/gst/videocrop/Makefile.in index bf8414e4b9fc150562524f790b3c2681cfa0c8bf..b762007c5fd277548e8f2faf8800fc2b5ceff46b 100644 --- a/gst/videocrop/Makefile.in +++ b/gst/videocrop/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/videocrop -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgstvideocrop_la_OBJECTS = $(am_libgstvideocrop_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstvideocrop_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) \ $(libgstvideocrop_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstvideocrop_la_SOURCES) DIST_SOURCES = $(libgstvideocrop_la_SOURCES) am__can_run_installinfo = \ @@ -174,6 +209,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -342,6 +394,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -548,6 +601,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -574,12 +628,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstvideocrop.la: $(libgstvideocrop_la_OBJECTS) $(libgstvideocrop_la_DEPENDENCIES) $(EXTRA_libgstvideocrop_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideocrop_la_LINK) -rpath $(plugindir) $(libgstvideocrop_la_OBJECTS) $(libgstvideocrop_la_LIBADD) $(LIBS) @@ -633,26 +690,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -664,15 +710,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -681,6 +723,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -825,19 +882,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/videocrop/gstaspectratiocrop.c b/gst/videocrop/gstaspectratiocrop.c index 1e0f3d232f08e128a97bbc2d1924ae7aa880df67..a4a65537e279298c3e3f1d554ad42d3add2b8bf1 100644 --- a/gst/videocrop/gstaspectratiocrop.c +++ b/gst/videocrop/gstaspectratiocrop.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -54,11 +54,12 @@ enum ARG_ASPECT_RATIO_CROP, }; -/* we support the same caps as videocrop */ +/* we support the same caps as videocrop (sync changes) */ #define ASPECT_RATIO_CROP_CAPS \ GST_VIDEO_CAPS_MAKE ("{ RGBx, xRGB, BGRx, xBGR, " \ "RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, " \ - "YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }") + "YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, " \ + "NV12, NV21, GRAY16_LE, GRAY16_BE }") static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, diff --git a/gst/videocrop/gstaspectratiocrop.h b/gst/videocrop/gstaspectratiocrop.h index e6ceae6ca89be37a38320f48d254fda15ccd8cf5..5e108402bf2ab329c69b2efc5be17ef5bbad6fcd 100644 --- a/gst/videocrop/gstaspectratiocrop.h +++ b/gst/videocrop/gstaspectratiocrop.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_ASPECT_RATIO_CROP_H__ diff --git a/gst/videocrop/gstvideocrop.c b/gst/videocrop/gstvideocrop.c index 21738c570c98983f1ddaa8f81f325651dd50a074..a6c736f5c8ecb17094177905fc42d5dcbfbb862d 100644 --- a/gst/videocrop/gstvideocrop.c +++ b/gst/videocrop/gstvideocrop.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -77,10 +77,12 @@ enum ARG_BOTTOM }; +/* we support the same caps as aspectratiocrop (sync changes) */ #define VIDEO_CROP_CAPS \ GST_VIDEO_CAPS_MAKE ("{ RGBx, xRGB, BGRx, xBGR, " \ "RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, " \ - "YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }") + "YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, " \ + "NV12, NV21, GRAY16_LE, GRAY16_BE }") static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, @@ -179,17 +181,21 @@ gst_video_crop_class_init (GstVideoCropClass * klass) gobject_class->get_property = gst_video_crop_get_property; g_object_class_install_property (gobject_class, ARG_LEFT, - g_param_spec_int ("left", "Left", "Pixels to crop at left", - 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_param_spec_int ("left", "Left", + "Pixels to crop at left (-1 to auto-crop)", -1, G_MAXINT, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_RIGHT, - g_param_spec_int ("right", "Right", "Pixels to crop at right", - 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_param_spec_int ("right", "Right", + "Pixels to crop at right (-1 to auto-crop)", -1, G_MAXINT, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_TOP, - g_param_spec_int ("top", "Top", "Pixels to crop at top", - 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_param_spec_int ("top", "Top", + "Pixels to crop at top (-1 to auto-crop)", -1, G_MAXINT, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_BOTTOM, - g_param_spec_int ("bottom", "Bottom", "Pixels to crop at bottom", - 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_param_spec_int ("bottom", "Bottom", + "Pixels to crop at bottom (-1 to auto-crop)", -1, G_MAXINT, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sink_template)); @@ -369,6 +375,47 @@ gst_video_crop_transform_planar (GstVideoCrop * vcrop, } } +static void +gst_video_crop_transform_semi_planar (GstVideoCrop * vcrop, + GstVideoFrame * in_frame, GstVideoFrame * out_frame) +{ + gint width, height; + guint8 *y_out, *uv_out; + guint8 *y_in, *uv_in; + guint i, dx; + + width = GST_VIDEO_FRAME_WIDTH (out_frame); + height = GST_VIDEO_FRAME_HEIGHT (out_frame); + + /* Y plane */ + y_in = GST_VIDEO_FRAME_PLANE_DATA (in_frame, 0); + y_out = GST_VIDEO_FRAME_PLANE_DATA (out_frame, 0); + + /* UV plane */ + uv_in = GST_VIDEO_FRAME_PLANE_DATA (in_frame, 1); + uv_out = GST_VIDEO_FRAME_PLANE_DATA (out_frame, 1); + + y_in += vcrop->crop_top * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 0) + + vcrop->crop_left; + dx = width; + + for (i = 0; i < height; ++i) { + memcpy (y_out, y_in, dx); + y_in += GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 0); + y_out += GST_VIDEO_FRAME_PLANE_STRIDE (out_frame, 0); + } + + uv_in += (vcrop->crop_top / 2) * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 1); + uv_in += GST_ROUND_DOWN_2 (vcrop->crop_left); + dx = GST_ROUND_UP_2 (width); + + for (i = 0; i < GST_ROUND_UP_2 (height) / 2; i++) { + memcpy (uv_out, uv_in, dx); + uv_in += GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 1); + uv_out += GST_VIDEO_FRAME_PLANE_STRIDE (out_frame, 1); + } +} + static GstFlowReturn gst_video_crop_transform_frame (GstVideoFilter * vfilter, GstVideoFrame * in_frame, GstVideoFrame * out_frame) @@ -386,6 +433,9 @@ gst_video_crop_transform_frame (GstVideoFilter * vfilter, case VIDEO_CROP_PIXEL_FORMAT_PLANAR: gst_video_crop_transform_planar (vcrop, in_frame, out_frame); break; + case VIDEO_CROP_PIXEL_FORMAT_SEMI_PLANAR: + gst_video_crop_transform_semi_planar (vcrop, in_frame, out_frame); + break; default: g_assert_not_reached (); } @@ -406,33 +456,69 @@ gst_video_crop_transform_dimension (gint val, gint delta) static gboolean gst_video_crop_transform_dimension_value (const GValue * src_val, - gint delta, GValue * dest_val) + gint delta, GValue * dest_val, GstPadDirection direction, gboolean dynamic) { gboolean ret = TRUE; - g_value_init (dest_val, G_VALUE_TYPE (src_val)); - if (G_VALUE_HOLDS_INT (src_val)) { gint ival = g_value_get_int (src_val); - ival = gst_video_crop_transform_dimension (ival, delta); - g_value_set_int (dest_val, ival); + + if (dynamic) { + if (direction == GST_PAD_SRC) { + if (ival == G_MAXINT) { + g_value_init (dest_val, G_TYPE_INT); + g_value_set_int (dest_val, ival); + } else { + g_value_init (dest_val, GST_TYPE_INT_RANGE); + gst_value_set_int_range (dest_val, ival, G_MAXINT); + } + } else { + if (ival == 1) { + g_value_init (dest_val, G_TYPE_INT); + g_value_set_int (dest_val, ival); + } else { + g_value_init (dest_val, GST_TYPE_INT_RANGE); + gst_value_set_int_range (dest_val, 1, ival); + } + } + } else { + g_value_init (dest_val, G_TYPE_INT); + g_value_set_int (dest_val, ival); + } } else if (GST_VALUE_HOLDS_INT_RANGE (src_val)) { gint min = gst_value_get_int_range_min (src_val); gint max = gst_value_get_int_range_max (src_val); min = gst_video_crop_transform_dimension (min, delta); max = gst_video_crop_transform_dimension (max, delta); - gst_value_set_int_range (dest_val, min, max); + + if (dynamic) { + if (direction == GST_PAD_SRC) + max = G_MAXINT; + else + min = 1; + } + + if (min == max) { + g_value_init (dest_val, G_TYPE_INT); + g_value_set_int (dest_val, min); + } else { + g_value_init (dest_val, GST_TYPE_INT_RANGE); + gst_value_set_int_range (dest_val, min, max); + } } else if (GST_VALUE_HOLDS_LIST (src_val)) { gint i; + g_value_init (dest_val, GST_TYPE_LIST); + for (i = 0; i < gst_value_list_get_size (src_val); ++i) { const GValue *list_val; GValue newval = { 0, }; list_val = gst_value_list_get_value (src_val, i); - if (gst_video_crop_transform_dimension_value (list_val, delta, &newval)) + if (gst_video_crop_transform_dimension_value (list_val, delta, &newval, + direction, dynamic)) gst_value_list_append_value (dest_val, &newval); g_value_unset (&newval); } @@ -442,7 +528,6 @@ gst_video_crop_transform_dimension_value (const GValue * src_val, ret = FALSE; } } else { - g_value_unset (dest_val); ret = FALSE; } @@ -456,21 +541,30 @@ gst_video_crop_transform_caps (GstBaseTransform * trans, { GstVideoCrop *vcrop; GstCaps *other_caps; - gint dy, dx, i; + gint dy, dx, i, left, right, bottom, top; + gboolean w_dynamic, h_dynamic; vcrop = GST_VIDEO_CROP (trans); GST_OBJECT_LOCK (vcrop); GST_LOG_OBJECT (vcrop, "l=%d,r=%d,b=%d,t=%d", - vcrop->crop_left, vcrop->crop_right, vcrop->crop_bottom, vcrop->crop_top); + vcrop->prop_left, vcrop->prop_right, vcrop->prop_bottom, vcrop->prop_top); + + w_dynamic = (vcrop->prop_left == -1 || vcrop->prop_right == -1); + h_dynamic = (vcrop->prop_top == -1 || vcrop->prop_bottom == -1); + + left = (vcrop->prop_left == -1) ? 0 : vcrop->prop_left; + right = (vcrop->prop_right == -1) ? 0 : vcrop->prop_right; + bottom = (vcrop->prop_bottom == -1) ? 0 : vcrop->prop_bottom; + top = (vcrop->prop_top == -1) ? 0 : vcrop->prop_top; if (direction == GST_PAD_SRC) { - dx = vcrop->crop_left + vcrop->crop_right; - dy = vcrop->crop_top + vcrop->crop_bottom; + dx = left + right; + dy = top + bottom; } else { - dx = 0 - (vcrop->crop_left + vcrop->crop_right); - dy = 0 - (vcrop->crop_top + vcrop->crop_bottom); + dx = 0 - (left + right); + dy = 0 - (top + bottom); } GST_OBJECT_UNLOCK (vcrop); @@ -487,14 +581,16 @@ gst_video_crop_transform_caps (GstBaseTransform * trans, structure = gst_caps_get_structure (caps, i); v = gst_structure_get_value (structure, "width"); - if (!gst_video_crop_transform_dimension_value (v, dx, &w_val)) { + if (!gst_video_crop_transform_dimension_value (v, dx, &w_val, direction, + w_dynamic)) { GST_WARNING_OBJECT (vcrop, "could not tranform width value with dx=%d" ", caps structure=%" GST_PTR_FORMAT, dx, structure); continue; } v = gst_structure_get_value (structure, "height"); - if (!gst_video_crop_transform_dimension_value (v, dy, &h_val)) { + if (!gst_video_crop_transform_dimension_value (v, dy, &h_val, direction, + h_dynamic)) { g_value_unset (&w_val); GST_WARNING_OBJECT (vcrop, "could not tranform height value with dy=%d" ", caps structure=%" GST_PTR_FORMAT, dy, structure); @@ -526,6 +622,41 @@ gst_video_crop_set_info (GstVideoFilter * vfilter, GstCaps * in, GstVideoInfo * in_info, GstCaps * out, GstVideoInfo * out_info) { GstVideoCrop *crop = GST_VIDEO_CROP (vfilter); + int dx, dy; + + crop->crop_left = crop->prop_left; + crop->crop_right = crop->prop_right; + crop->crop_top = crop->prop_top; + crop->crop_bottom = crop->prop_bottom; + + dx = GST_VIDEO_INFO_WIDTH (in_info) - GST_VIDEO_INFO_WIDTH (out_info); + dy = GST_VIDEO_INFO_HEIGHT (in_info) - GST_VIDEO_INFO_HEIGHT (out_info); + + if (crop->prop_left == -1 && crop->prop_right == -1) { + crop->crop_left = dx / 2; + crop->crop_right = dx / 2 + (dx & 1); + } else if (crop->prop_left == -1) { + if (G_UNLIKELY (crop->prop_right > dx)) + goto cropping_too_much; + crop->crop_left = dx - crop->prop_right; + } else if (crop->prop_right == -1) { + if (G_UNLIKELY (crop->prop_left > dx)) + goto cropping_too_much; + crop->crop_right = dx - crop->prop_left; + } + + if (crop->prop_top == -1 && crop->prop_bottom == -1) { + crop->crop_top = dy / 2; + crop->crop_bottom = dy / 2 + (dy & 1); + } else if (crop->prop_top == -1) { + if (G_UNLIKELY (crop->prop_bottom > dy)) + goto cropping_too_much; + crop->crop_top = dy - crop->prop_bottom; + } else if (crop->prop_bottom == -1) { + if (G_UNLIKELY (crop->prop_top > dy)) + goto cropping_too_much; + crop->crop_bottom = dy - crop->prop_top; + } if (G_UNLIKELY ((crop->crop_left + crop->crop_right) >= GST_VIDEO_INFO_WIDTH (in_info) @@ -565,13 +696,14 @@ gst_video_crop_set_info (GstVideoFilter * vfilter, GstCaps * in, crop->macro_y_off = 0; } break; - case GST_VIDEO_FORMAT_GRAY8: - crop->packing = VIDEO_CROP_PIXEL_FORMAT_PACKED_SIMPLE; - break; case GST_VIDEO_FORMAT_I420: case GST_VIDEO_FORMAT_YV12: crop->packing = VIDEO_CROP_PIXEL_FORMAT_PLANAR; break; + case GST_VIDEO_FORMAT_NV12: + case GST_VIDEO_FORMAT_NV21: + crop->packing = VIDEO_CROP_PIXEL_FORMAT_SEMI_PLANAR; + break; default: goto unknown_format; } @@ -582,12 +714,12 @@ gst_video_crop_set_info (GstVideoFilter * vfilter, GstCaps * in, /* ERROR */ cropping_too_much: { - GST_DEBUG_OBJECT (crop, "we are cropping too much"); + GST_WARNING_OBJECT (crop, "we are cropping too much"); return FALSE; } unknown_format: { - GST_DEBUG_OBJECT (crop, "Unsupported format"); + GST_WARNING_OBJECT (crop, "Unsupported format"); return FALSE; } } @@ -607,16 +739,16 @@ gst_video_crop_set_property (GObject * object, guint prop_id, GST_OBJECT_LOCK (video_crop); switch (prop_id) { case ARG_LEFT: - video_crop->crop_left = g_value_get_int (value); + video_crop->prop_left = g_value_get_int (value); break; case ARG_RIGHT: - video_crop->crop_right = g_value_get_int (value); + video_crop->prop_right = g_value_get_int (value); break; case ARG_TOP: - video_crop->crop_top = g_value_get_int (value); + video_crop->prop_top = g_value_get_int (value); break; case ARG_BOTTOM: - video_crop->crop_bottom = g_value_get_int (value); + video_crop->prop_bottom = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -642,16 +774,16 @@ gst_video_crop_get_property (GObject * object, guint prop_id, GValue * value, GST_OBJECT_LOCK (video_crop); switch (prop_id) { case ARG_LEFT: - g_value_set_int (value, video_crop->crop_left); + g_value_set_int (value, video_crop->prop_left); break; case ARG_RIGHT: - g_value_set_int (value, video_crop->crop_right); + g_value_set_int (value, video_crop->prop_right); break; case ARG_TOP: - g_value_set_int (value, video_crop->crop_top); + g_value_set_int (value, video_crop->prop_top); break; case ARG_BOTTOM: - g_value_set_int (value, video_crop->crop_bottom); + g_value_set_int (value, video_crop->prop_bottom); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); diff --git a/gst/videocrop/gstvideocrop.h b/gst/videocrop/gstvideocrop.h index 92969b7319aafa82460bbe462b63da6ddbb8578e..cd8ad06c56911cef375849cbf3d7745477023265 100644 --- a/gst/videocrop/gstvideocrop.h +++ b/gst/videocrop/gstvideocrop.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_VIDEO_CROP_H__ @@ -38,7 +38,8 @@ G_BEGIN_DECLS typedef enum { VIDEO_CROP_PIXEL_FORMAT_PACKED_SIMPLE = 0, /* RGBx, AYUV */ VIDEO_CROP_PIXEL_FORMAT_PACKED_COMPLEX, /* UYVY, YVYU */ - VIDEO_CROP_PIXEL_FORMAT_PLANAR /* I420, YV12 */ + VIDEO_CROP_PIXEL_FORMAT_PLANAR, /* I420, YV12 */ + VIDEO_CROP_PIXEL_FORMAT_SEMI_PLANAR /* NV12, NV21 */ } VideoCropPixelFormat; typedef struct _GstVideoCropImageDetails GstVideoCropImageDetails; @@ -51,6 +52,11 @@ struct _GstVideoCrop GstVideoFilter parent; /*< private >*/ + gint prop_left; + gint prop_right; + gint prop_top; + gint prop_bottom; + gint crop_left; gint crop_right; gint crop_top; diff --git a/gst/videofilter/Makefile.in b/gst/videofilter/Makefile.in index d89a0a40e60f7c0ee5a17f43b09a7212de86c83f..5193655462e69bbad37b5709043fd5767de33a7b 100644 --- a/gst/videofilter/Makefile.in +++ b/gst/videofilter/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/videofilter -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -139,10 +165,23 @@ libgstvideofilter_la_OBJECTS = $(am_libgstvideofilter_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstvideofilter_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) \ $(libgstvideofilter_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -155,20 +194,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstvideofilter_la_SOURCES) DIST_SOURCES = $(libgstvideofilter_la_SOURCES) am__can_run_installinfo = \ @@ -177,6 +212,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -345,6 +397,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -559,6 +612,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -585,12 +639,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstvideofilter.la: $(libgstvideofilter_la_OBJECTS) $(libgstvideofilter_la_DEPENDENCIES) $(EXTRA_libgstvideofilter_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideofilter_la_LINK) -rpath $(plugindir) $(libgstvideofilter_la_OBJECTS) $(libgstvideofilter_la_LIBADD) $(LIBS) @@ -668,26 +725,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -699,15 +745,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -716,6 +758,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -861,19 +918,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES gstvideoexample.c: $(srcdir)/make_filter $(srcdir)/gstvideotemplate.c diff --git a/gst/videofilter/gstgamma.c b/gst/videofilter/gstgamma.c index 28c419a59b4dd07cbba80cdee4420fe2450ee216..17acd7cb1e4071b924f4f7de16ca8fd892c9268d 100644 --- a/gst/videofilter/gstgamma.c +++ b/gst/videofilter/gstgamma.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/videofilter/gstgamma.h b/gst/videofilter/gstgamma.h index 6a1b886d29d463e6047fcfd2024b1f685736971e..13f967b73d18f713c28d0d3493e29a2713345c7c 100644 --- a/gst/videofilter/gstgamma.h +++ b/gst/videofilter/gstgamma.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/videofilter/gstvideobalance.c b/gst/videofilter/gstvideobalance.c index c371224bb434f9a2b12ec2f86e630993c2d7cc99..5922e4f7b35cc08dcc32edf38582c9f9b1ee48d1 100644 --- a/gst/videofilter/gstvideobalance.c +++ b/gst/videofilter/gstvideobalance.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/videofilter/gstvideobalance.h b/gst/videofilter/gstvideobalance.h index 194144bb31f10e2d5590fbe87d640a0dbf6c86de..8b9f921f4a528d339748a8e86ef582393c996a84 100644 --- a/gst/videofilter/gstvideobalance.h +++ b/gst/videofilter/gstvideobalance.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/videofilter/gstvideoflip.c b/gst/videofilter/gstvideoflip.c index 6d38453ec3eed3e8328c7a78d56dfc07d8bf33f6..165643b3ca4dedf6c702dbad7b45ad7b8a48f17e 100644 --- a/gst/videofilter/gstvideoflip.c +++ b/gst/videofilter/gstvideoflip.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* @@ -68,8 +68,9 @@ GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ AYUV, " - "ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx,xBGR, BGRx, " - "RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }")) + "ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, " + "RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, " + "GRAY8, GRAY16_BE, GRAY16_LE }")) ); static GstStaticPadTemplate gst_video_flip_sink_template = @@ -77,8 +78,9 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ AYUV, " - "ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx,xBGR, BGRx, " - "RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }")) + "ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, " + "RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, " + "GRAY8, GRAY16_BE, GRAY16_LE }")) ); #define GST_TYPE_VIDEO_FLIP_METHOD (gst_video_flip_method_get_type()) @@ -428,6 +430,204 @@ gst_video_flip_planar_yuv (GstVideoFlip * videoflip, GstVideoFrame * dest, } } +static void +gst_video_flip_semi_planar_yuv (GstVideoFlip * videoflip, GstVideoFrame * dest, + const GstVideoFrame * src) +{ + gint x, y; + guint8 const *s; + guint8 *d; + gint s_off, d_off; + gint src_y_stride, src_uv_stride; + gint src_y_height, src_uv_height; + gint src_y_width, src_uv_width; + gint dest_y_stride, dest_uv_stride; + gint dest_y_height, dest_uv_height; + gint dest_y_width, dest_uv_width; + + + src_y_stride = GST_VIDEO_FRAME_PLANE_STRIDE (src, 0); + src_uv_stride = GST_VIDEO_FRAME_PLANE_STRIDE (src, 1); + + dest_y_stride = GST_VIDEO_FRAME_PLANE_STRIDE (dest, 0); + dest_uv_stride = GST_VIDEO_FRAME_PLANE_STRIDE (dest, 1); + + src_y_width = GST_VIDEO_FRAME_COMP_WIDTH (src, 0); + src_uv_width = GST_VIDEO_FRAME_COMP_WIDTH (src, 1); + + dest_y_width = GST_VIDEO_FRAME_COMP_WIDTH (dest, 0); + dest_uv_width = GST_VIDEO_FRAME_COMP_WIDTH (dest, 1); + + src_y_height = GST_VIDEO_FRAME_COMP_HEIGHT (src, 0); + src_uv_height = GST_VIDEO_FRAME_COMP_HEIGHT (src, 1); + + dest_y_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 0); + dest_uv_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 1); + + switch (videoflip->method) { + case GST_VIDEO_FLIP_METHOD_90R: + /* Flip Y */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0); + for (y = 0; y < dest_y_height; y++) { + for (x = 0; x < dest_y_width; x++) { + d[y * dest_y_stride + x] = + s[(src_y_height - 1 - x) * src_y_stride + y]; + } + } + /* Flip UV */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 1); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1); + for (y = 0; y < dest_uv_height; y++) { + for (x = 0; x < dest_uv_width; x++) { + d_off = y * dest_uv_stride + x * 2; + s_off = (src_uv_height - 1 - x) * src_uv_stride + y * 2; + d[d_off] = s[s_off]; + d[d_off + 1] = s[s_off + 1]; + } + } + break; + case GST_VIDEO_FLIP_METHOD_90L: + /* Flip Y */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0); + for (y = 0; y < dest_y_height; y++) { + for (x = 0; x < dest_y_width; x++) { + d[y * dest_y_stride + x] = + s[x * src_y_stride + (src_y_width - 1 - y)]; + } + } + /* Flip UV */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 1); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1); + for (y = 0; y < dest_uv_height; y++) { + for (x = 0; x < dest_uv_width; x++) { + d_off = y * dest_uv_stride + x * 2; + s_off = x * src_uv_stride + (src_uv_width - 1 - y) * 2; + d[d_off] = s[s_off]; + d[d_off + 1] = s[s_off + 1]; + } + } + break; + case GST_VIDEO_FLIP_METHOD_180: + /* Flip Y */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0); + for (y = 0; y < dest_y_height; y++) { + for (x = 0; x < dest_y_width; x++) { + d[y * dest_y_stride + x] = + s[(src_y_height - 1 - y) * src_y_stride + (src_y_width - 1 - x)]; + } + } + /* Flip UV */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 1); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1); + for (y = 0; y < dest_uv_height; y++) { + for (x = 0; x < dest_uv_width; x++) { + d_off = y * dest_uv_stride + x * 2; + s_off = (src_uv_height - 1 - y) * src_uv_stride + (src_uv_width - 1 - + x) * 2; + d[d_off] = s[s_off]; + d[d_off + 1] = s[s_off + 1]; + } + } + break; + case GST_VIDEO_FLIP_METHOD_HORIZ: + /* Flip Y */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0); + for (y = 0; y < dest_y_height; y++) { + for (x = 0; x < dest_y_width; x++) { + d[y * dest_y_stride + x] = + s[y * src_y_stride + (src_y_width - 1 - x)]; + } + } + /* Flip UV */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 1); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1); + for (y = 0; y < dest_uv_height; y++) { + for (x = 0; x < dest_uv_width; x++) { + d_off = y * dest_uv_stride + x * 2; + s_off = y * src_uv_stride + (src_uv_width - 1 - x) * 2; + d[d_off] = s[s_off]; + d[d_off + 1] = s[s_off + 1]; + } + } + break; + case GST_VIDEO_FLIP_METHOD_VERT: + /* Flip Y */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0); + for (y = 0; y < dest_y_height; y++) { + for (x = 0; x < dest_y_width; x++) { + d[y * dest_y_stride + x] = + s[(src_y_height - 1 - y) * src_y_stride + x]; + } + } + /* Flip UV */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 1); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1); + for (y = 0; y < dest_uv_height; y++) { + for (x = 0; x < dest_uv_width; x++) { + d_off = y * dest_uv_stride + x * 2; + s_off = (src_uv_height - 1 - y) * src_uv_stride + x * 2; + d[d_off] = s[s_off]; + d[d_off + 1] = s[s_off + 1]; + } + } + break; + case GST_VIDEO_FLIP_METHOD_TRANS: + /* Flip Y */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0); + for (y = 0; y < dest_y_height; y++) { + for (x = 0; x < dest_y_width; x++) { + d[y * dest_y_stride + x] = s[x * src_y_stride + y]; + } + } + /* Flip UV */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 1); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1); + for (y = 0; y < dest_uv_height; y++) { + for (x = 0; x < dest_uv_width; x++) { + d_off = y * dest_uv_stride + x * 2; + s_off = x * src_uv_stride + y * 2; + d[d_off] = s[s_off]; + d[d_off + 1] = s[s_off + 1]; + } + } + case GST_VIDEO_FLIP_METHOD_OTHER: + /* Flip Y */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0); + for (y = 0; y < dest_y_height; y++) { + for (x = 0; x < dest_y_width; x++) { + d[y * dest_y_stride + x] = + s[(src_y_height - 1 - x) * src_y_stride + (src_y_width - 1 - y)]; + } + } + /* Flip UV */ + s = GST_VIDEO_FRAME_PLANE_DATA (src, 1); + d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1); + for (y = 0; y < dest_uv_height; y++) { + for (x = 0; x < dest_uv_width; x++) { + d_off = y * dest_uv_stride + x * 2; + s_off = (src_uv_height - 1 - x) * src_uv_stride + (src_uv_width - 1 - + y) * 2; + d[d_off] = s[s_off]; + d[d_off + 1] = s[s_off + 1]; + } + } + break; + case GST_VIDEO_FLIP_METHOD_IDENTITY: + g_assert_not_reached (); + break; + default: + g_assert_not_reached (); + break; + } +} + static void gst_video_flip_packed_simple (GstVideoFlip * videoflip, GstVideoFrame * dest, const GstVideoFrame * src) @@ -815,8 +1015,15 @@ gst_video_flip_set_info (GstVideoFilter * vfilter, GstCaps * incaps, case GST_VIDEO_FORMAT_BGRx: case GST_VIDEO_FORMAT_RGB: case GST_VIDEO_FORMAT_BGR: + case GST_VIDEO_FORMAT_GRAY8: + case GST_VIDEO_FORMAT_GRAY16_BE: + case GST_VIDEO_FORMAT_GRAY16_LE: vf->process = gst_video_flip_packed_simple; break; + case GST_VIDEO_FORMAT_NV12: + case GST_VIDEO_FORMAT_NV21: + vf->process = gst_video_flip_semi_planar_yuv; + break; default: break; } diff --git a/gst/videofilter/gstvideoflip.h b/gst/videofilter/gstvideoflip.h index dac4bdb5cf45177ea5dab287309477cd65e63b7b..e868b03219514cd16a7bc2870003ee730915af5a 100644 --- a/gst/videofilter/gstvideoflip.h +++ b/gst/videofilter/gstvideoflip.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_VIDEO_FLIP_H__ diff --git a/gst/videofilter/gstvideomedian.c b/gst/videofilter/gstvideomedian.c index aaf765eaac416ffa2fc7f093262ce2d2f2fbc6a4..a78939a9dc946ae1257307ba16723e7383c5069a 100644 --- a/gst/videofilter/gstvideomedian.c +++ b/gst/videofilter/gstvideomedian.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/videofilter/gstvideomedian.h b/gst/videofilter/gstvideomedian.h index a9eee531abbc09ea0014c1bfa7d31bd6135c5c2e..0877672008792fcc70c425c522c504cfd214f628 100644 --- a/gst/videofilter/gstvideomedian.h +++ b/gst/videofilter/gstvideomedian.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/gst/videofilter/gstvideotemplate.c b/gst/videofilter/gstvideotemplate.c index 4e15dccb9a205fe2890fe4a7a750bed2fb5ebd42..6cd70441da77b3a0410f3c73ff4fdcbfb48bb3e0 100644 --- a/gst/videofilter/gstvideotemplate.c +++ b/gst/videofilter/gstvideotemplate.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/gst/videofilter/plugin.c b/gst/videofilter/plugin.c index 306c3a3257ad44ca95020452f2639040043ab9a2..da736dc85bca9ce6b8c4aaca23d8d89e303fa2b2 100644 --- a/gst/videofilter/plugin.c +++ b/gst/videofilter/plugin.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/videomixer/Makefile.in b/gst/videomixer/Makefile.in index 8cf225b173640968fa0f73eac534a829b49b9ff3..86965c7ed4ed88c8b05e65f2d2c5514976587d04 100644 --- a/gst/videomixer/Makefile.in +++ b/gst/videomixer/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -39,23 +38,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -75,8 +102,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak +DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \ + README subdir = gst/videomixer ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -84,7 +112,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -162,10 +189,23 @@ libgstvideomixer_la_OBJECTS = $(am_libgstvideomixer_la_OBJECTS) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstvideomixer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) \ $(libgstvideomixer_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -178,20 +218,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstvideomixer_la_SOURCES) \ $(nodist_libgstvideomixer_la_SOURCES) DIST_SOURCES = $(libgstvideomixer_la_SOURCES) @@ -201,6 +237,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -369,6 +422,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -597,6 +651,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -623,12 +678,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstvideomixer.la: $(libgstvideomixer_la_OBJECTS) $(libgstvideomixer_la_DEPENDENCIES) $(EXTRA_libgstvideomixer_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideomixer_la_LINK) -rpath $(plugindir) $(libgstvideomixer_la_OBJECTS) $(libgstvideomixer_la_LIBADD) $(LIBS) @@ -690,26 +748,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -721,15 +768,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -738,6 +781,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -888,19 +946,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-local clean-pluginLTLIBRARIES ctags \ - dist-hook distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-pluginLTLIBRARIES install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-local clean-pluginLTLIBRARIES \ + cscopelist-am ctags ctags-am dist-hook distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ uninstall-pluginLTLIBRARIES diff --git a/gst/videomixer/blend.c b/gst/videomixer/blend.c index 66461f22320ef36e3f4d2cf741191d8c58b54e6d..aa5aa516cfd2738753480430be272357810dd114 100644 --- a/gst/videomixer/blend.c +++ b/gst/videomixer/blend.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/gst/videomixer/blend.h b/gst/videomixer/blend.h index ba7033558438e8a195a8fdb1d4708f40d83c92af..7d16c56209d22cd547dcc2438c84595d837de94e 100644 --- a/gst/videomixer/blend.h +++ b/gst/videomixer/blend.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __BLEND_H__ diff --git a/gst/videomixer/blendorc-dist.c b/gst/videomixer/blendorc-dist.c index 42712510ff3493338eeefc2be222c14c3e73e2ce..d6def591cc9f4cfe8aecbc585ffc9270fae85b64 100644 --- a/gst/videomixer/blendorc-dist.c +++ b/gst/videomixer/blendorc-dist.c @@ -215,6 +215,15 @@ video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 25, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 111, + 114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16, + 4, 112, 0, 24, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_video_mixer_orc_splat_u32); +#else p = orc_program_new (); orc_program_set_name (p, "video_mixer_orc_splat_u32"); orc_program_set_backup_function (p, _backup_video_mixer_orc_splat_u32); @@ -223,6 +232,7 @@ video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); @@ -311,6 +321,15 @@ video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 111, + 114, 99, 95, 109, 101, 109, 99, 112, 121, 95, 117, 51, 50, 11, 4, 4, + 12, 4, 4, 112, 0, 4, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_video_mixer_orc_memcpy_u32); +#else p = orc_program_new (); orc_program_set_name (p, "video_mixer_orc_memcpy_u32"); orc_program_set_backup_function (p, _backup_video_mixer_orc_memcpy_u32); @@ -319,6 +338,7 @@ video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1, orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); @@ -468,6 +488,17 @@ video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 7, 9, 24, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, + 111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 56, 11, 1, 1, 12, + 1, 1, 14, 1, 8, 0, 0, 0, 16, 2, 20, 2, 20, 2, 150, 32, + 0, 150, 33, 4, 98, 33, 33, 32, 89, 33, 33, 24, 93, 32, 32, 16, + 70, 33, 32, 33, 95, 33, 33, 16, 160, 0, 33, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_u8); +#else p = orc_program_new (); orc_program_set_2d (p); orc_program_set_name (p, "video_mixer_orc_blend_u8"); @@ -495,6 +526,7 @@ video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1); orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); @@ -531,7 +563,11 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride, orc_union32 *ORC_RESTRICT ptr0; const orc_union32 *ORC_RESTRICT ptr4; orc_union64 var39; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var40; +#else orc_union32 var40; +#endif orc_union32 var41; orc_union16 var42; orc_int8 var43; @@ -652,7 +688,11 @@ _backup_video_mixer_orc_blend_argb (OrcExecutor * ORC_RESTRICT ex) orc_union32 *ORC_RESTRICT ptr0; const orc_union32 *ORC_RESTRICT ptr4; orc_union64 var39; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var40; +#else orc_union32 var40; +#endif orc_union32 var41; orc_union16 var42; orc_int8 var43; @@ -776,6 +816,21 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 7, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, + 111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 97, 114, 103, 98, 11, 4, + 4, 12, 4, 4, 14, 4, 255, 0, 0, 0, 14, 4, 8, 0, 0, 0, + 16, 2, 20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 20, 8, 20, 8, + 113, 32, 4, 163, 33, 32, 157, 34, 33, 152, 35, 34, 21, 2, 150, 38, + 35, 21, 2, 89, 38, 38, 24, 21, 2, 95, 38, 38, 17, 21, 2, 150, + 37, 32, 113, 32, 0, 21, 2, 150, 36, 32, 21, 2, 98, 37, 37, 36, + 21, 2, 89, 37, 37, 38, 21, 2, 80, 37, 37, 21, 2, 70, 36, 36, + 37, 21, 2, 157, 32, 36, 123, 32, 32, 16, 128, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_argb); +#else p = orc_program_new (); orc_program_set_2d (p); orc_program_set_name (p, "video_mixer_orc_blend_argb"); @@ -827,6 +882,7 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1); orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); @@ -863,7 +919,11 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, orc_union32 *ORC_RESTRICT ptr0; const orc_union32 *ORC_RESTRICT ptr4; orc_union64 var40; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var41; +#else orc_union32 var41; +#endif orc_union32 var42; orc_union32 var43; orc_union16 var44; @@ -987,7 +1047,11 @@ _backup_video_mixer_orc_blend_bgra (OrcExecutor * ORC_RESTRICT ex) orc_union32 *ORC_RESTRICT ptr0; const orc_union32 *ORC_RESTRICT ptr4; orc_union64 var40; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var41; +#else orc_union32 var41; +#endif orc_union32 var42; orc_union32 var43; orc_union16 var44; @@ -1114,6 +1178,22 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 7, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, + 111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 98, 103, 114, 97, 11, 4, + 4, 12, 4, 4, 14, 4, 0, 0, 0, 255, 14, 4, 24, 0, 0, 0, + 14, 4, 8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, + 20, 4, 20, 8, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32, 17, 163, + 34, 33, 157, 35, 34, 152, 36, 35, 21, 2, 150, 39, 36, 21, 2, 89, + 39, 39, 24, 21, 2, 95, 39, 39, 18, 21, 2, 150, 38, 32, 113, 32, + 0, 21, 2, 150, 37, 32, 21, 2, 98, 38, 38, 37, 21, 2, 89, 38, + 38, 39, 21, 2, 80, 38, 38, 21, 2, 70, 37, 37, 38, 21, 2, 157, + 32, 37, 123, 32, 32, 16, 128, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_bgra); +#else p = orc_program_new (); orc_program_set_2d (p); orc_program_set_name (p, "video_mixer_orc_blend_bgra"); @@ -1169,6 +1249,7 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1); orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); @@ -1205,8 +1286,16 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, orc_union32 *ORC_RESTRICT ptr0; const orc_union32 *ORC_RESTRICT ptr4; orc_union64 var41; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var42; +#else orc_union32 var42; +#endif +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var43; +#else orc_union32 var43; +#endif orc_union32 var44; orc_union16 var45; orc_int8 var46; @@ -1403,8 +1492,16 @@ _backup_video_mixer_orc_overlay_argb (OrcExecutor * ORC_RESTRICT ex) orc_union32 *ORC_RESTRICT ptr0; const orc_union32 *ORC_RESTRICT ptr4; orc_union64 var41; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var42; +#else orc_union32 var42; +#endif +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var43; +#else orc_union32 var43; +#endif orc_union32 var44; orc_union16 var45; orc_int8 var46; @@ -1604,6 +1701,27 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, + 111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103, + 98, + 11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 255, 0, + 0, 0, 14, 4, 0, 255, 255, 255, 14, 4, 8, 0, 0, 0, 16, 2, + 20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20, 8, + 20, 8, 113, 32, 4, 163, 33, 32, 157, 34, 33, 152, 38, 34, 21, 2, + 150, 35, 38, 21, 2, 89, 35, 35, 24, 21, 2, 95, 35, 35, 19, 21, + 2, 150, 40, 32, 21, 2, 89, 40, 40, 35, 115, 38, 16, 21, 2, 150, + 36, 38, 21, 2, 98, 36, 36, 35, 113, 32, 0, 163, 33, 32, 157, 34, + 33, 152, 38, 34, 21, 2, 150, 37, 38, 21, 2, 89, 37, 37, 36, 21, + 2, 80, 37, 37, 21, 2, 150, 39, 32, 21, 2, 89, 39, 39, 37, 21, + 2, 70, 39, 39, 40, 21, 2, 70, 37, 37, 35, 21, 2, 81, 39, 39, + 37, 21, 2, 157, 32, 39, 106, 32, 32, 18, 21, 2, 157, 38, 37, 106, + 38, 38, 17, 123, 32, 32, 38, 128, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_argb); +#else p = orc_program_new (); orc_program_set_2d (p); orc_program_set_name (p, "video_mixer_orc_overlay_argb"); @@ -1685,6 +1803,7 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1); orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); @@ -1721,8 +1840,16 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, orc_union32 *ORC_RESTRICT ptr0; const orc_union32 *ORC_RESTRICT ptr4; orc_union64 var42; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var43; +#else orc_union32 var43; +#endif +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var44; +#else orc_union32 var44; +#endif orc_union32 var45; orc_union32 var46; orc_union16 var47; @@ -1925,8 +2052,16 @@ _backup_video_mixer_orc_overlay_bgra (OrcExecutor * ORC_RESTRICT ex) orc_union32 *ORC_RESTRICT ptr0; const orc_union32 *ORC_RESTRICT ptr4; orc_union64 var42; +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var43; +#else orc_union32 var43; +#endif +#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__) + volatile orc_union32 var44; +#else orc_union32 var44; +#endif orc_union32 var45; orc_union32 var46; orc_union16 var47; @@ -2132,6 +2267,28 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, + 111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114, + 97, + 11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 0, 0, + 0, 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 14, 4, + 8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 8, + 20, 8, 20, 8, 20, 4, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32, + 19, 163, 34, 33, 157, 35, 34, 152, 39, 35, 21, 2, 150, 36, 39, 21, + 2, 89, 36, 36, 24, 21, 2, 95, 36, 36, 20, 21, 2, 150, 41, 32, + 21, 2, 89, 41, 41, 36, 115, 39, 16, 21, 2, 150, 37, 39, 21, 2, + 98, 37, 37, 36, 113, 32, 0, 126, 33, 32, 19, 163, 34, 33, 157, 35, + 34, 152, 39, 35, 21, 2, 150, 38, 39, 21, 2, 89, 38, 38, 37, 21, + 2, 80, 38, 38, 21, 2, 150, 40, 32, 21, 2, 89, 40, 40, 38, 21, + 2, 70, 40, 40, 41, 21, 2, 70, 38, 38, 36, 21, 2, 81, 40, 40, + 38, 21, 2, 157, 32, 40, 106, 32, 32, 18, 21, 2, 157, 39, 38, 106, + 39, 39, 17, 123, 32, 32, 39, 128, 0, 32, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_bgra); +#else p = orc_program_new (); orc_program_set_2d (p); orc_program_set_name (p, "video_mixer_orc_overlay_bgra"); @@ -2219,6 +2376,7 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1); orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c index aa11051d9d42a84840ca7bf2dfff79eb04c59fe2..464dc48c855262fb45f93bac0324f4140b4b0087 100644 --- a/gst/videomixer/videomixer2.c +++ b/gst/videomixer/videomixer2.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -317,9 +317,11 @@ gst_videomixer2_pad_sink_setcaps (GstPad * pad, GstObject * parent, if (GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_INFO_FORMAT (&info) || GST_VIDEO_INFO_PAR_N (&mix->info) != GST_VIDEO_INFO_PAR_N (&info) || GST_VIDEO_INFO_PAR_D (&mix->info) != GST_VIDEO_INFO_PAR_D (&info)) { - GST_ERROR_OBJECT (pad, "Caps not compatible with other pads' caps"); GST_VIDEO_MIXER2_UNLOCK (mix); - goto beach; + GST_DEBUG_OBJECT (pad, "got input caps %" GST_PTR_FORMAT ", but " + "current caps are %" GST_PTR_FORMAT, caps, mix->current_caps); + gst_pad_push_event (pad, gst_event_new_reconfigure ()); + return FALSE; } } @@ -641,7 +643,7 @@ gst_videomixer2_reset (GstVideoMixer2 * mix) } mix->newseg_pending = TRUE; - mix->flush_stop_pending = FALSE; + g_atomic_int_set (&mix->flush_stop_pending, FALSE); } /* 1 == OK @@ -707,21 +709,6 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix, g_assert (start_time != -1 && end_time != -1); end_time += start_time; /* convert from duration to position */ - if (mixcol->end_time != -1 && mixcol->end_time > end_time) { - GST_WARNING_OBJECT (pad, "Buffer from the past, dropping"); - if (buf == mixcol->queued) { - gst_buffer_unref (buf); - gst_buffer_replace (&mixcol->queued, NULL); - } else { - gst_buffer_unref (buf); - buf = gst_collect_pads_pop (mix->collect, &mixcol->collect); - gst_buffer_unref (buf); - } - - need_more_data = TRUE; - continue; - } - /* Check if it's inside the segment */ if (start_time >= segment->stop || end_time < segment->start) { GST_DEBUG_OBJECT (pad, "Buffer outside the segment"); @@ -755,6 +742,21 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix, end_time *= ABS (mix->segment.rate); } + if (mixcol->end_time != -1 && mixcol->end_time > end_time) { + GST_DEBUG_OBJECT (pad, "Buffer from the past, dropping"); + if (buf == mixcol->queued) { + gst_buffer_unref (buf); + gst_buffer_replace (&mixcol->queued, NULL); + } else { + gst_buffer_unref (buf); + buf = gst_collect_pads_pop (mix->collect, &mixcol->collect); + gst_buffer_unref (buf); + } + + need_more_data = TRUE; + continue; + } + if (end_time >= output_start_time && start_time < output_end_time) { GST_DEBUG_OBJECT (pad, "Taking new buffer with start time %" GST_TIME_FORMAT, @@ -964,15 +966,36 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix) gst_pad_push_event (mix->srcpad, gst_event_new_flush_stop (TRUE)); } + if (mix->send_stream_start) { + gchar s_id[32]; + + /* stream-start (FIXME: create id based on input ids) */ + g_snprintf (s_id, sizeof (s_id), "mix-%08x", g_random_int ()); + if (!gst_pad_push_event (mix->srcpad, gst_event_new_stream_start (s_id))) { + GST_WARNING_OBJECT (mix->srcpad, "Sending stream start event failed"); + } + mix->send_stream_start = FALSE; + } + + if (mix->send_caps) { + if (!gst_pad_push_event (mix->srcpad, + gst_event_new_caps (mix->current_caps))) { + GST_WARNING_OBJECT (mix->srcpad, "Sending caps event failed"); + } + mix->send_caps = FALSE; + } + GST_VIDEO_MIXER2_LOCK (mix); if (mix->newseg_pending) { GST_DEBUG_OBJECT (mix, "Sending NEWSEGMENT event"); + GST_VIDEO_MIXER2_UNLOCK (mix); if (!gst_pad_push_event (mix->srcpad, gst_event_new_segment (&mix->segment))) { ret = GST_FLOW_ERROR; - goto done; + goto done_unlocked; } + GST_VIDEO_MIXER2_LOCK (mix); mix->newseg_pending = FALSE; } @@ -983,15 +1006,16 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix) if (output_start_time >= mix->segment.stop) { GST_DEBUG_OBJECT (mix, "Segment done"); + GST_VIDEO_MIXER2_UNLOCK (mix); gst_pad_push_event (mix->srcpad, gst_event_new_eos ()); ret = GST_FLOW_EOS; - goto done; + goto done_unlocked; } output_end_time = mix->ts_offset + gst_util_uint64_scale (mix->nframes + 1, GST_SECOND * GST_VIDEO_INFO_FPS_D (&mix->info), - GST_VIDEO_INFO_FPS_N (&mix->info)); + GST_VIDEO_INFO_FPS_N (&mix->info)) + mix->segment.start; if (mix->segment.stop != -1) output_end_time = MIN (output_end_time, mix->segment.stop); @@ -1002,10 +1026,11 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix) ret = GST_FLOW_OK; goto done; } else if (res == -1) { + GST_VIDEO_MIXER2_UNLOCK (mix); GST_DEBUG_OBJECT (mix, "All sinkpads are EOS -- forwarding"); gst_pad_push_event (mix->srcpad, gst_event_new_eos ()); ret = GST_FLOW_EOS; - goto done; + goto done_unlocked; } else if (res == -2) { GST_ERROR_OBJECT (mix, "Error collecting buffers"); ret = GST_FLOW_ERROR; @@ -1049,29 +1074,31 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix) GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf))); ret = gst_pad_push (mix->srcpad, outbuf); } - GST_VIDEO_MIXER2_LOCK (mix); + goto done_unlocked; done: GST_VIDEO_MIXER2_UNLOCK (mix); +done_unlocked: return ret; } static gboolean gst_videomixer2_query_caps (GstPad * pad, GstObject * parent, GstQuery * query) { - GstCaps *filter, *caps; - GstVideoMixer2 *mix = GST_VIDEO_MIXER2 (parent); + GstCaps *filter; GstStructure *s; gint n; + GstVideoMixer2 *mix = GST_VIDEO_MIXER2 (parent); + GstCaps *caps = NULL; gst_query_parse_caps (query, &filter); - if (GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_FORMAT_UNKNOWN) { - caps = gst_pad_get_current_caps (mix->srcpad); - } else { + if (GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_FORMAT_UNKNOWN) + caps = gst_caps_ref (mix->current_caps); + + if (caps == NULL) caps = gst_pad_get_pad_template_caps (mix->srcpad); - } caps = gst_caps_make_writable (caps); @@ -1091,6 +1118,22 @@ gst_videomixer2_query_caps (GstPad * pad, GstObject * parent, GstQuery * query) return TRUE; } +/* FIXME, the duration query should reflect how long you will produce + * data, that is the amount of stream time until you will emit EOS. + * + * For synchronized mixing this is always the max of all the durations + * of upstream since we emit EOS when all of them finished. + * + * We don't do synchronized mixing so this really depends on where the + * streams where punched in and what their relative offsets are against + * eachother which we can get from the first timestamps we see. + * + * When we add a new stream (or remove a stream) the duration might + * also become invalid again and we need to post a new DURATION + * message to notify this fact to the parent. + * For now we take the max of all the upstream elements so the simple + * cases work at least somewhat. + */ static gboolean gst_videomixer2_query_duration (GstVideoMixer2 * mix, GstQuery * query) { @@ -1386,7 +1429,7 @@ gst_videomixer2_src_event (GstPad * pad, GstObject * parent, GstEvent * event) * forwarding the seek upstream or from gst_videomixer_collected, * whichever happens first. */ - mix->flush_stop_pending = TRUE; + g_atomic_int_set (&mix->flush_stop_pending, TRUE); } GST_COLLECT_PADS_STREAM_UNLOCK (mix->collect); @@ -1394,13 +1437,6 @@ gst_videomixer2_src_event (GstPad * pad, GstObject * parent, GstEvent * event) gst_videomixer2_reset_qos (mix); result = gst_videomixer2_push_sink_event (mix, event); - - if (g_atomic_int_compare_and_exchange (&mix->flush_stop_pending, TRUE, - FALSE)) { - GST_DEBUG_OBJECT (mix, "pending flush stop"); - gst_pad_push_event (mix->srcpad, gst_event_new_flush_stop (TRUE)); - } - break; } case GST_EVENT_NAVIGATION: @@ -1599,9 +1635,13 @@ gst_videomixer2_src_setcaps (GstPad * pad, GstVideoMixer2 * mix, GstCaps * caps) } GST_VIDEO_MIXER2_UNLOCK (mix); - ret = gst_pad_set_caps (pad, caps); -done: + if (mix->current_caps == NULL || + gst_caps_is_equal (caps, mix->current_caps) == FALSE) { + gst_caps_replace (&mix->current_caps, caps); + mix->send_caps = TRUE; + } +done: return ret; } @@ -1664,7 +1704,7 @@ gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata, GstEvent * event, GstVideoMixer2 * mix) { GstVideoMixer2Pad *pad = GST_VIDEO_MIXER2_PAD (cdata->pad); - gboolean ret = TRUE; + gboolean ret = TRUE, discard = FALSE; GST_DEBUG_OBJECT (pad, "Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event), GST_DEBUG_PAD_NAME (pad)); @@ -1689,15 +1729,29 @@ gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata, g_assert (seg.format == GST_FORMAT_TIME); break; } + case GST_EVENT_FLUSH_START: + g_atomic_int_set (&mix->flush_stop_pending, TRUE); + ret = gst_collect_pads_event_default (pads, cdata, event, discard); + event = NULL; + break; case GST_EVENT_FLUSH_STOP: mix->newseg_pending = TRUE; - mix->flush_stop_pending = FALSE; + if (g_atomic_int_compare_and_exchange (&mix->flush_stop_pending, TRUE, + FALSE)) { + GST_DEBUG_OBJECT (pad, "forwarding flush stop"); + ret = gst_collect_pads_event_default (pads, cdata, event, discard); + event = NULL; + } else { + discard = TRUE; + GST_DEBUG_OBJECT (pad, "eating flush stop"); + } + + /* FIXME Should we reset in case we were not awaiting a flush stop? */ gst_videomixer2_reset_qos (mix); gst_buffer_replace (&pad->mixcol->buffer, NULL); pad->mixcol->start_time = -1; pad->mixcol->end_time = -1; - gst_segment_init (&mix->segment, GST_FORMAT_TIME); mix->segment.position = -1; mix->ts_offset = 0; mix->nframes = 0; @@ -1707,7 +1761,7 @@ gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata, } if (event != NULL) - return gst_collect_pads_event_default (pads, cdata, event, FALSE); + return gst_collect_pads_event_default (pads, cdata, event, discard); return ret; } @@ -1758,6 +1812,10 @@ gst_videomixer2_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_READY_TO_PAUSED: + mix->send_stream_start = TRUE; + mix->send_caps = TRUE; + gst_segment_init (&mix->segment, GST_FORMAT_TIME); + gst_caps_replace (&mix->current_caps, NULL); GST_LOG_OBJECT (mix, "starting collectpads"); gst_collect_pads_start (mix->collect); break; @@ -1899,6 +1957,14 @@ gst_videomixer2_finalize (GObject * o) G_OBJECT_CLASS (parent_class)->finalize (o); } +static void +gst_videomixer2_dispose (GObject * o) +{ + GstVideoMixer2 *mix = GST_VIDEO_MIXER2 (o); + + gst_caps_replace (&mix->current_caps, NULL); +} + static void gst_videomixer2_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) @@ -1977,6 +2043,7 @@ gst_videomixer2_class_init (GstVideoMixer2Class * klass) GstElementClass *gstelement_class = (GstElementClass *) klass; gobject_class->finalize = gst_videomixer2_finalize; + gobject_class->dispose = gst_videomixer2_dispose; gobject_class->get_property = gst_videomixer2_get_property; gobject_class->set_property = gst_videomixer2_set_property; @@ -2023,6 +2090,7 @@ gst_videomixer2_init (GstVideoMixer2 * mix) mix->collect = gst_collect_pads_new (); mix->background = DEFAULT_BACKGROUND; + mix->current_caps = NULL; gst_collect_pads_set_function (mix->collect, (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_videomixer2_collected), diff --git a/gst/videomixer/videomixer2.h b/gst/videomixer/videomixer2.h index 92eef5308885c74fb33ea1cb202beb7897be7885..b8532561455edee4c1be371b4e1e8af953697d68 100644 --- a/gst/videomixer/videomixer2.h +++ b/gst/videomixer/videomixer2.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_VIDEO_MIXER2_H__ @@ -92,6 +92,10 @@ struct _GstVideoMixer2 /* Output caps */ GstVideoInfo info; + /* current caps */ + GstCaps *current_caps; + gboolean send_caps; + gboolean newseg_pending; gboolean flush_stop_pending; @@ -110,6 +114,8 @@ struct _GstVideoMixer2 BlendFunction blend, overlay; FillCheckerFunction fill_checker; FillColorFunction fill_color; + + gboolean send_stream_start; }; struct _GstVideoMixer2Class diff --git a/gst/videomixer/videomixer2pad.h b/gst/videomixer/videomixer2pad.h index cd344200040fb549e928ed74481ef6e8efd6b97e..759bf9ee1b530e4a8f894f912c5a2bf287a32766 100644 --- a/gst/videomixer/videomixer2pad.h +++ b/gst/videomixer/videomixer2pad.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_VIDEO_MIXER2_PAD_H__ diff --git a/gst/wavenc/Makefile.am b/gst/wavenc/Makefile.am index 4bfdf504f54b8d668348ec558e4d135534c42c63..98d6f663e9d133429991548c339f173721d3730a 100644 --- a/gst/wavenc/Makefile.am +++ b/gst/wavenc/Makefile.am @@ -3,11 +3,13 @@ plugin_LTLIBRARIES = libgstwavenc.la libgstwavenc_la_SOURCES = gstwavenc.c libgstwavenc_la_CFLAGS = \ $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) libgstwavenc_la_LIBADD = \ $(GST_PLUGINS_BASE_LIBS) \ -lgstaudio-@GST_API_VERSION@ \ -lgstriff-@GST_API_VERSION@ \ + $(GST_BASE_LIBS) \ $(GST_LIBS) libgstwavenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstwavenc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) diff --git a/gst/wavenc/Makefile.in b/gst/wavenc/Makefile.in index 05d4aad0e9c09aa0890a52acd4e5e8e06b125f3d..146dac855864bace1eb094c53f8c542179f98295 100644 --- a/gst/wavenc/Makefile.in +++ b/gst/wavenc/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/wavenc -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -129,16 +155,29 @@ am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstwavenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstwavenc_la_OBJECTS = libgstwavenc_la-gstwavenc.lo libgstwavenc_la_OBJECTS = $(am_libgstwavenc_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstwavenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstwavenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstwavenc_la_CFLAGS) $(CFLAGS) \ $(libgstwavenc_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstwavenc_la_SOURCES) DIST_SOURCES = $(libgstwavenc_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -505,12 +558,14 @@ plugin_LTLIBRARIES = libgstwavenc.la libgstwavenc_la_SOURCES = gstwavenc.c libgstwavenc_la_CFLAGS = \ $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) libgstwavenc_la_LIBADD = \ $(GST_PLUGINS_BASE_LIBS) \ -lgstaudio-@GST_API_VERSION@ \ -lgstriff-@GST_API_VERSION@ \ + $(GST_BASE_LIBS) \ $(GST_LIBS) libgstwavenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) @@ -550,6 +605,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -576,12 +632,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstwavenc.la: $(libgstwavenc_la_OBJECTS) $(libgstwavenc_la_DEPENDENCIES) $(EXTRA_libgstwavenc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwavenc_la_LINK) -rpath $(plugindir) $(libgstwavenc_la_OBJECTS) $(libgstwavenc_la_LIBADD) $(LIBS) @@ -627,26 +686,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -658,15 +706,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -675,6 +719,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -819,19 +878,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/wavenc/gstwavenc.c b/gst/wavenc/gstwavenc.c index eb80e89cc19b048c281105d7ed7714962569ee5e..6d64f1e44289267707ea14eca6a482ba107ca689 100644 --- a/gst/wavenc/gstwavenc.c +++ b/gst/wavenc/gstwavenc.c @@ -15,14 +15,24 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ /** * SECTION:element-wavenc * - * Format a audio stream into the wav format. + * Format an audio stream into the wav format. + * + * <refsect2> + * <title>Example launch line</title> + * |[ + * gst-launch-1.0 cdparanoiasrc mode=continuous ! queue ! audioconvert ! wavenc ! filesink location=cd.wav + * ]| Rip a whole audio CD into a single wav file, with the track table written into a CUE sheet inside the file + * |[ + * gst-launch-1.0 cdparanoiasrc track=5 ! queue ! audioconvert ! wavenc ! filesink location=track5.wav + * ]| Rip track 5 of an audio CD into a single wav file containing unencoded raw audio samples. + * </refsect2> * */ #ifdef HAVE_CONFIG_H @@ -34,6 +44,7 @@ #include <gst/audio/audio.h> #include <gst/riff/riff-media.h> +#include <gst/base/gstbytewriter.h> GST_DEBUG_CATEGORY_STATIC (wavenc_debug); #define GST_CAT_DEFAULT wavenc_debug @@ -69,6 +80,38 @@ struct wave_header struct chunk_struct data; }; +typedef struct +{ + /* Offset Size Description Value + * 0x00 4 ID unique identification value + * 0x04 4 Position play order position + * 0x08 4 Data Chunk ID RIFF ID of corresponding data chunk + * 0x0c 4 Chunk Start Byte Offset of Data Chunk * + * 0x10 4 Block Start Byte Offset to sample of First Channel + * 0x14 4 Sample Offset Byte Offset to sample byte of First Channel + */ + guint32 id; + guint32 position; + guint8 data_chunk_id[4]; + guint32 chunk_start; + guint32 block_start; + guint32 sample_offset; +} GstWavEncCue; + +typedef struct +{ + /* Offset Size Description Value + * 0x00 4 Chunk ID "labl" (0x6C61626C) or "note" (0x6E6F7465) + * 0x04 4 Chunk Data Size depends on contained text + * 0x08 4 Cue Point ID 0 - 0xFFFFFFFF + * 0x0c Text + */ + guint8 chunk_id[4]; + guint32 chunk_data_size; + guint32 cue_point_id; + gchar *text; +} GstWavEncLabl, GstWavEncNote; + /* FIXME: mono doesn't produce correct files it seems, at least mplayer xruns */ /* Max. of two channels, more channels need WAVFORMATEX with * channel layout, which we do not support yet */ @@ -113,7 +156,10 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", ); #define gst_wavenc_parent_class parent_class -G_DEFINE_TYPE (GstWavEnc, gst_wavenc, GST_TYPE_ELEMENT); +G_DEFINE_TYPE_WITH_CODE (GstWavEnc, gst_wavenc, GST_TYPE_ELEMENT, + G_IMPLEMENT_INTERFACE (GST_TYPE_TAG_SETTER, NULL) + G_IMPLEMENT_INTERFACE (GST_TYPE_TOC_SETTER, NULL) + ); static GstFlowReturn gst_wavenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf); @@ -165,7 +211,7 @@ gst_wavenc_init (GstWavEnc * wavenc) #define WAV_HEADER_LEN 44 static GstBuffer * -gst_wavenc_create_header_buf (GstWavEnc * wavenc, guint audio_data_size) +gst_wavenc_create_header_buf (GstWavEnc * wavenc) { struct wave_header wave; GstBuffer *buf; @@ -177,25 +223,24 @@ gst_wavenc_create_header_buf (GstWavEnc * wavenc, guint audio_data_size) header = map.data; memset (header, 0, WAV_HEADER_LEN); - wave.common.wChannels = wavenc->channels; - wave.common.wBitsPerSample = wavenc->width; - wave.common.dwSamplesPerSec = wavenc->rate; - - /* Fill out our wav-header with some information */ memcpy (wave.riff.id, "RIFF", 4); - wave.riff.len = audio_data_size + WAV_HEADER_LEN - 8; + wave.riff.len = + wavenc->meta_length + wavenc->audio_length + WAV_HEADER_LEN - 8; memcpy (wave.riff.wav_id, "WAVE", 4); memcpy (wave.format.id, "fmt ", 4); wave.format.len = 16; + wave.common.wChannels = wavenc->channels; + wave.common.wBitsPerSample = wavenc->width; + wave.common.dwSamplesPerSec = wavenc->rate; wave.common.wFormatTag = wavenc->format; wave.common.wBlockAlign = (wavenc->width / 8) * wave.common.wChannels; wave.common.dwAvgBytesPerSec = wave.common.wBlockAlign * wave.common.dwSamplesPerSec; memcpy (wave.data.id, "data", 4); - wave.data.len = audio_data_size; + wave.data.len = wavenc->audio_length; memcpy (header, (char *) wave.riff.id, 4); GST_WRITE_UINT32_LE (header + 4, wave.riff.len); @@ -217,7 +262,7 @@ gst_wavenc_create_header_buf (GstWavEnc * wavenc, guint audio_data_size) } static GstFlowReturn -gst_wavenc_push_header (GstWavEnc * wavenc, guint audio_data_size) +gst_wavenc_push_header (GstWavEnc * wavenc) { GstFlowReturn ret; GstBuffer *outbuf; @@ -227,9 +272,10 @@ gst_wavenc_push_header (GstWavEnc * wavenc, guint audio_data_size) gst_segment_init (&segment, GST_FORMAT_BYTES); gst_pad_push_event (wavenc->srcpad, gst_event_new_segment (&segment)); - GST_DEBUG_OBJECT (wavenc, "writing header with datasize=%u", audio_data_size); + GST_DEBUG_OBJECT (wavenc, "writing header, meta_size=%u, audio_size=%u", + wavenc->meta_length, wavenc->audio_length); - outbuf = gst_wavenc_create_header_buf (wavenc, audio_data_size); + outbuf = gst_wavenc_create_header_buf (wavenc); GST_BUFFER_OFFSET (outbuf) = 0; ret = gst_pad_push (wavenc->srcpad, outbuf); @@ -313,291 +359,417 @@ fail: return FALSE; } -#if 0 -static struct _maps +static void +gst_wavparse_tags_foreach (const GstTagList * tags, const gchar * tag, + gpointer data) { - const guint32 id; - const gchar *name; -} maps[] = { + const struct { - GST_RIFF_INFO_IARL, "Location"}, { - GST_RIFF_INFO_IART, "Artist"}, { - GST_RIFF_INFO_ICMS, "Commissioner"}, { - GST_RIFF_INFO_ICMT, "Comment"}, { - GST_RIFF_INFO_ICOP, "Copyright"}, { - GST_RIFF_INFO_ICRD, "Creation Date"}, { - GST_RIFF_INFO_IENG, "Engineer"}, { - GST_RIFF_INFO_IGNR, "Genre"}, { - GST_RIFF_INFO_IKEY, "Keywords"}, { - GST_RIFF_INFO_INAM, "Title"}, { - GST_RIFF_INFO_IPRD, "Product"}, { - GST_RIFF_INFO_ISBJ, "Subject"}, { - GST_RIFF_INFO_ISFT, "Software"}, { - GST_RIFF_INFO_ITCH, "Technician"} -}; - -static guint32 -get_id_from_name (const char *name) -{ - int i; - - for (i = 0; i < G_N_ELEMENTS (maps); i++) { - if (strcasecmp (maps[i].name, name) == 0) { - return maps[i].id; + guint32 fcc; + const gchar *tag; + } rifftags[] = { + { + GST_RIFF_INFO_IARL, GST_TAG_LOCATION}, { + GST_RIFF_INFO_IART, GST_TAG_ARTIST}, { + GST_RIFF_INFO_ICMT, GST_TAG_COMMENT}, { + GST_RIFF_INFO_ICOP, GST_TAG_COPYRIGHT}, { + GST_RIFF_INFO_ICRD, GST_TAG_DATE}, { + GST_RIFF_INFO_IGNR, GST_TAG_GENRE}, { + GST_RIFF_INFO_IKEY, GST_TAG_KEYWORDS}, { + GST_RIFF_INFO_INAM, GST_TAG_TITLE}, { + GST_RIFF_INFO_IPRD, GST_TAG_ALBUM}, { + GST_RIFF_INFO_ISBJ, GST_TAG_ALBUM_ARTIST}, { + GST_RIFF_INFO_ISFT, GST_TAG_ENCODER}, { + GST_RIFF_INFO_ISRC, GST_TAG_ISRC}, { + 0, NULL} + }; + gint n; + gchar *str = NULL; + GstByteWriter *bw = data; + for (n = 0; rifftags[n].fcc != 0; n++) { + if (!strcmp (rifftags[n].tag, tag)) { + if (rifftags[n].fcc == GST_RIFF_INFO_ICRD) { + GDate *date; + /* special case for the date tag */ + if (gst_tag_list_get_date (tags, tag, &date)) { + str = + g_strdup_printf ("%04d:%02d:%02d", g_date_get_year (date), + g_date_get_month (date), g_date_get_day (date)); + g_date_free (date); + } + } else { + gst_tag_list_get_string (tags, tag, &str); + } + if (str) { + gst_byte_writer_put_uint32_le (bw, rifftags[n].fcc); + gst_byte_writer_put_uint32_le (bw, GST_ROUND_UP_2 (strlen (str))); + gst_byte_writer_put_string (bw, str); + g_free (str); + str = NULL; + break; + } } } - return 0; } -static void -write_metadata (GstWavEnc * wavenc) +static GstFlowReturn +gst_wavenc_write_tags (GstWavEnc * wavenc) { - GString *info_str; - GList *props; - int total = 4; - gboolean need_to_write = FALSE; - - info_str = g_string_new ("LIST INFO"); - - for (props = wavenc->metadata->properties->properties; props; - props = props->next) { - GstPropsEntry *entry = props->data; - const char *name; - guint32 id; - - name = gst_props_entry_get_name (entry); - id = get_id_from_name (name); - if (id != 0) { - const char *text; - char *tmp; - int len, req, i; - - need_to_write = TRUE; /* We've got at least one entry */ - - gst_props_entry_get_string (entry, &text); - len = strlen (text) + 1; /* The length in the file includes the \0 */ - - tmp = g_strdup_printf ("%" GST_FOURCC_FORMAT "%d%s", GST_FOURCC_ARGS (id), - GUINT32_TO_LE (len), text); - g_string_append (info_str, tmp); - g_free (tmp); - - /* Check that we end on an even boundary */ - req = ((len + 8) + 1) & ~1; - for (i = 0; i < req - len; i++) { - g_string_append_printf (info_str, "%c", 0); - } + const GstTagList *user_tags; + GstTagList *tags; + guint size; + GstBuffer *buf; + GstByteWriter bw; - total += req; - } + g_return_val_if_fail (wavenc != NULL, GST_FLOW_OK); + + user_tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (wavenc)); + if ((!wavenc->tags) && (!user_tags)) { + GST_DEBUG_OBJECT (wavenc, "have no tags"); + return GST_FLOW_OK; } + tags = + gst_tag_list_merge (user_tags, wavenc->tags, + gst_tag_setter_get_tag_merge_mode (GST_TAG_SETTER (wavenc))); - if (need_to_write) { - GstBuffer *buf; + GST_DEBUG_OBJECT (wavenc, "writing tags"); - /* Now we've got all the strings together, we can write our length in */ - info_str->str[4] = GUINT32_TO_LE (total); + gst_byte_writer_init_with_size (&bw, 1024, FALSE); - buf = gst_buffer_new (); - gst_buffer_set_data (buf, info_str->str, info_str->len); + /* add LIST INFO chunk */ + gst_byte_writer_put_data (&bw, (const guint8 *) "LIST", 4); + gst_byte_writer_put_uint32_le (&bw, 0); + gst_byte_writer_put_data (&bw, (const guint8 *) "INFO", 4); - gst_pad_push (wavenc->srcpad, GST_DATA (buf)); - g_string_free (info_str, FALSE); - } + /* add tags */ + gst_tag_list_foreach (tags, gst_wavparse_tags_foreach, &bw); + + /* sets real size of LIST INFO chunk */ + size = gst_byte_writer_get_pos (&bw); + gst_byte_writer_set_pos (&bw, 4); + gst_byte_writer_put_uint32_le (&bw, size - 8); + + gst_tag_list_unref (tags); + + buf = gst_byte_writer_reset_and_get_buffer (&bw); + wavenc->meta_length += gst_buffer_get_size (buf); + return gst_pad_push (wavenc->srcpad, buf); } -static void -write_cues (GstWavEnc * wavenc) +static gboolean +gst_wavenc_is_cue_id_unique (guint32 id, GList * list) { - GString *cue_string, *point_string; - GstBuffer *buf; - GList *cue_list, *c; - int num_cues, total = 4; + GstWavEncCue *cue; - if (gst_props_get (wavenc->metadata->properties, - "cues", &cue_list, NULL) == FALSE) { - /* No cues, move along please, nothing to see here */ - return; + while (list) { + cue = list->data; + if (cue->id == id) + return FALSE; + list = g_list_next (list); } - /* Space for 'cue ', chunk size and number of cuepoints */ - cue_string = g_string_new ("cue "); -#define CUEPOINT_SIZE 24 - point_string = g_string_sized_new (CUEPOINT_SIZE); - - for (c = cue_list, num_cues = 0; c; c = c->next, num_cues++) { - GstCaps *cue_caps = c->data; - guint32 pos; - - gst_props_get (cue_caps->properties, "position", &pos, NULL); - - point_string->str[0] = GUINT32_TO_LE (num_cues + 1); - point_string->str[4] = GUINT32_TO_LE (0); - /* Fixme: There is probably a macro for this */ - point_string->str[8] = 'd'; - point_string->str[9] = 'a'; - point_string->str[10] = 't'; - point_string->str[11] = 'a'; - point_string->str[12] = GUINT32_TO_LE (0); - point_string->str[16] = GUINT32_TO_LE (0); - point_string->str[20] = GUINT32_TO_LE (pos); - - total += CUEPOINT_SIZE; - } + return TRUE; +} - /* Set the length and chunk size */ - cue_string->str[4] = GUINT32_TO_LE (total); - cue_string->str[8] = GUINT32_TO_LE (num_cues); - /* Stick the cue points on the end */ - g_string_append (cue_string, point_string->str); - g_string_free (point_string, TRUE); +static gboolean +gst_wavenc_parse_cue (GstWavEnc * wavenc, guint32 id, GstTocEntry * entry) +{ + gint64 start; + GstWavEncCue *cue; + + g_return_val_if_fail (entry != NULL, FALSE); - buf = gst_buffer_new (); - gst_buffer_set_data (buf, cue_string->str, cue_string->len); + gst_toc_entry_get_start_stop_times (entry, &start, NULL); - gst_pad_push (wavenc->srcpad, GST_DATA (buf)); - g_string_free (cue_string, FALSE); + cue = g_new (GstWavEncCue, 1); + cue->id = id; + cue->position = gst_util_uint64_scale_round (start, wavenc->rate, GST_SECOND); + memcpy (cue->data_chunk_id, "data", 4); + cue->chunk_start = 0; + cue->block_start = 0; + cue->sample_offset = cue->position; + wavenc->cues = g_list_append (wavenc->cues, cue); + + return TRUE; } -static void -write_labels (GstWavEnc * wavenc) +static gboolean +gst_wavenc_parse_labl (GstWavEnc * wavenc, guint32 id, GstTocEntry * entry) { - GstBuffer *buf; - GString *info_str; - int total = 4; - GList *caps; - - info_str = g_string_new ("LIST adtl"); - if (gst_props_get (wavenc->metadata->properties, "ltxts", &caps, NULL)) { - GList *p; - int i; - - for (p = caps, i = 1; p; p = p->next, i++) { - GstCaps *ltxt_caps = p->data; - GString *ltxt; - char *label = NULL; - int len, req, j; - - gst_props_get (ltxt_caps->properties, "name", &label, NULL); - len = strlen (label); - -#define LTXT_SIZE 28 - ltxt = g_string_new ("ltxt "); - ltxt->str[8] = GUINT32_TO_LE (i); /* Identifier */ - ltxt->str[12] = GUINT32_TO_LE (0); /* Sample Length */ - ltxt->str[16] = GUINT32_TO_LE (0); /* FIXME: Don't save the purpose yet */ - ltxt->str[20] = GUINT16_TO_LE (0); /* Country */ - ltxt->str[22] = GUINT16_TO_LE (0); /* Language */ - ltxt->str[24] = GUINT16_TO_LE (0); /* Dialect */ - ltxt->str[26] = GUINT16_TO_LE (0); /* Code Page */ - g_string_append (ltxt, label); - g_free (label); - - len += LTXT_SIZE; - - ltxt->str[4] = GUINT32_TO_LE (len); - - /* Check that we end on an even boundary */ - req = ((len + 8) + 1) & ~1; - for (j = 0; j < req - len; j++) { - g_string_append_printf (ltxt, "%c", 0); - } + gchar *tag; + GstTagList *tags; + GstWavEncLabl *labl; - total += req; + g_return_val_if_fail (entry != NULL, FALSE); - g_string_append (info_str, ltxt->str); - g_string_free (ltxt, TRUE); - } + tags = gst_toc_entry_get_tags (entry); + if (!tags) { + GST_INFO_OBJECT (wavenc, "no tags for entry: %d", id); + return FALSE; + } + if (!gst_tag_list_get_string (tags, GST_TAG_TITLE, &tag)) { + GST_INFO_OBJECT (wavenc, "no title tag for entry: %d", id); + return FALSE; } - if (gst_props_get (wavenc->metadata->properties, "labels", &caps, NULL)) { - GList *p; - int i; + labl = g_new (GstWavEncLabl, 1); + memcpy (labl->chunk_id, "labl", 4); + labl->chunk_data_size = 4 + strlen (tag) + 1; + labl->cue_point_id = id; + labl->text = tag; - for (p = caps, i = 1; p; p = p->next, i++) { - GstCaps *labl_caps = p->data; - GString *labl; - char *label = NULL; - int len, req, j; + GST_DEBUG_OBJECT (wavenc, "got labl: '%s'", tag); - gst_props_get (labl_caps->properties, "name", &label, NULL); - len = strlen (label); + wavenc->labls = g_list_append (wavenc->labls, labl); -#define LABL_SIZE 4 - labl = g_string_new ("labl "); - labl->str[8] = GUINT32_TO_LE (i); - g_string_append (labl, label); - g_free (label); + return TRUE; +} - len += LABL_SIZE; +static gboolean +gst_wavenc_parse_note (GstWavEnc * wavenc, guint32 id, GstTocEntry * entry) +{ + gchar *tag; + GstTagList *tags; + GstWavEncNote *note; + + g_return_val_if_fail (entry != NULL, FALSE); + tags = gst_toc_entry_get_tags (entry); + if (!tags) { + GST_INFO_OBJECT (wavenc, "no tags for entry: %d", id); + return FALSE; + } + if (!gst_tag_list_get_string (tags, GST_TAG_COMMENT, &tag)) { + GST_INFO_OBJECT (wavenc, "no comment tag for entry: %d", id); + return FALSE; + } - labl->str[4] = GUINT32_TO_LE (len); + note = g_new (GstWavEncNote, 1); + memcpy (note->chunk_id, "note", 4); + note->chunk_data_size = 4 + strlen (tag) + 1; + note->cue_point_id = id; + note->text = tag; - /* Check our size */ - req = ((len + 8) + 1) & ~1; - for (j = 0; j < req - len; j++) { - g_string_append_printf (labl, "%c", 0); - } + GST_DEBUG_OBJECT (wavenc, "got note: '%s'", tag); - total += req; + wavenc->notes = g_list_append (wavenc->notes, note); - g_string_append (info_str, labl->str); - g_string_free (labl, TRUE); - } + return TRUE; +} + +static gboolean +gst_wavenc_write_cues (guint8 ** data, GList * list) +{ + GstWavEncCue *cue; + + while (list) { + cue = list->data; + GST_WRITE_UINT32_LE (*data, cue->id); + GST_WRITE_UINT32_LE (*data + 4, cue->position); + memcpy (*data + 8, (gchar *) cue->data_chunk_id, 4); + GST_WRITE_UINT32_LE (*data + 12, cue->chunk_start); + GST_WRITE_UINT32_LE (*data + 16, cue->block_start); + GST_WRITE_UINT32_LE (*data + 20, cue->sample_offset); + *data += 24; + list = g_list_next (list); } - if (gst_props_get (wavenc->metadata->properties, "notes", &caps, NULL)) { - GList *p; - int i; + return TRUE; +} - for (p = caps, i = 1; p; p = p->next, i++) { - GstCaps *note_caps = p->data; - GString *note; - char *label = NULL; - int len, req, j; +static gboolean +gst_wavenc_write_labls (guint8 ** data, GList * list) +{ + GstWavEncLabl *labl; + + while (list) { + labl = list->data; + memcpy (*data, (gchar *) labl->chunk_id, 4); + GST_WRITE_UINT32_LE (*data + 4, labl->chunk_data_size); + GST_WRITE_UINT32_LE (*data + 8, labl->cue_point_id); + memcpy (*data + 12, (gchar *) labl->text, strlen (labl->text)); + *data += 8 + GST_ROUND_UP_2 (labl->chunk_data_size); + list = g_list_next (list); + } - gst_props_get (note_caps->properties, "name", &label, NULL); - len = strlen (label); + return TRUE; +} -#define NOTE_SIZE 4 - note = g_string_new ("note "); - note->str[8] = GUINT32_TO_LE (i); - g_string_append (note, label); - g_free (label); +static gboolean +gst_wavenc_write_notes (guint8 ** data, GList * list) +{ + GstWavEncNote *note; + + while (list) { + note = list->data; + memcpy (*data, (gchar *) note->chunk_id, 4); + GST_WRITE_UINT32_LE (*data + 4, note->chunk_data_size); + GST_WRITE_UINT32_LE (*data + 8, note->cue_point_id); + memcpy (*data + 12, (gchar *) note->text, strlen (note->text)); + *data += 8 + GST_ROUND_UP_2 (note->chunk_data_size); + list = g_list_next (list); + } - len += NOTE_SIZE; + return TRUE; +} - note->str[4] = GUINT32_TO_LE (len); +static GstFlowReturn +gst_wavenc_write_toc (GstWavEnc * wavenc) +{ + GList *list; + GstToc *toc; + GstTocEntry *entry, *subentry; + GstBuffer *buf; + GstMapInfo map; + guint8 *data; + guint32 ncues, size, cues_size, labls_size, notes_size; - /* Size check */ - req = ((len + 8) + 1) & ~1; - for (j = 0; j < req - len; j++) { - g_string_append_printf (note, "%c", 0); - } + if (!wavenc->toc) { + GST_DEBUG_OBJECT (wavenc, "have no toc, checking toc_setter"); + wavenc->toc = gst_toc_setter_get_toc (GST_TOC_SETTER (wavenc)); + } + if (!wavenc->toc) { + GST_WARNING_OBJECT (wavenc, "have no toc"); + return GST_FLOW_OK; + } - total += req; + toc = gst_toc_ref (wavenc->toc); + size = 0; + cues_size = 0; + labls_size = 0; + notes_size = 0; + + /* check if the TOC entries is valid */ + list = gst_toc_get_entries (toc); + entry = list->data; + if (gst_toc_entry_is_alternative (entry)) { + list = gst_toc_entry_get_sub_entries (entry); + while (list) { + subentry = list->data; + if (!gst_toc_entry_is_sequence (subentry)) + return FALSE; + list = g_list_next (list); + } + list = gst_toc_entry_get_sub_entries (entry); + } + if (gst_toc_entry_is_sequence (entry)) { + while (list) { + entry = list->data; + if (!gst_toc_entry_is_sequence (entry)) + return FALSE; + list = g_list_next (list); + } + list = gst_toc_get_entries (toc); + } - g_string_append (info_str, note->str); - g_string_free (note, TRUE); + ncues = g_list_length (list); + GST_DEBUG_OBJECT (wavenc, "number of cue entries: %d", ncues); + + while (list) { + guint32 id = 0; + gint64 id64; + const gchar *uid; + + entry = list->data; + uid = gst_toc_entry_get_uid (entry); + id64 = g_ascii_strtoll (uid, NULL, 0); + /* check if id unique compatible with guint32 else generate random */ + if (id64 >= 0 && gst_wavenc_is_cue_id_unique (id64, wavenc->cues)) { + id = (guint32) id64; + } else { + do { + id = g_random_int (); + } while (!gst_wavenc_is_cue_id_unique (id, wavenc->cues)); } + gst_wavenc_parse_cue (wavenc, id, entry); + gst_wavenc_parse_labl (wavenc, id, entry); + gst_wavenc_parse_note (wavenc, id, entry); + list = g_list_next (list); } - info_str->str[4] = GUINT32_TO_LE (total); + /* count cues size */ + if (wavenc->cues) { + cues_size = 24 * g_list_length (wavenc->cues); + size += 12 + cues_size; + } else { + GST_WARNING_OBJECT (wavenc, "cue's not found"); + return FALSE; + } + /* count labls size */ + if (wavenc->labls) { + list = wavenc->labls; + while (list) { + GstWavEncLabl *labl; + labl = list->data; + labls_size += 8 + GST_ROUND_UP_2 (labl->chunk_data_size); + list = g_list_next (list); + } + size += labls_size; + } + /* count notes size */ + if (wavenc->notes) { + list = wavenc->notes; + while (list) { + GstWavEncNote *note; + note = list->data; + notes_size += 8 + GST_ROUND_UP_2 (note->chunk_data_size); + list = g_list_next (list); + } + size += notes_size; + } + if (wavenc->labls || wavenc->notes) { + size += 12; + } + + buf = gst_buffer_new_and_alloc (size); + gst_buffer_map (buf, &map, GST_MAP_WRITE); + data = map.data; + memset (data, 0, size); + + /* write Cue Chunk */ + if (wavenc->cues) { + memcpy (data, (gchar *) "cue ", 4); + GST_WRITE_UINT32_LE (data + 4, 4 + cues_size); + GST_WRITE_UINT32_LE (data + 8, ncues); + data += 12; + gst_wavenc_write_cues (&data, wavenc->cues); + + /* write Associated Data List Chunk */ + if (wavenc->labls || wavenc->notes) { + memcpy (data, (gchar *) "LIST", 4); + GST_WRITE_UINT32_LE (data + 4, 4 + labls_size + notes_size); + memcpy (data + 8, (gchar *) "adtl", 4); + data += 12; + if (wavenc->labls) + gst_wavenc_write_labls (&data, wavenc->labls); + if (wavenc->notes) + gst_wavenc_write_notes (&data, wavenc->notes); + } + } + + /* free resources */ + if (toc) + gst_toc_unref (toc); + if (wavenc->cues) + g_list_free_full (wavenc->cues, g_free); + if (wavenc->labls) + g_list_free_full (wavenc->labls, g_free); + if (wavenc->notes) + g_list_free_full (wavenc->notes, g_free); - buf = gst_buffer_new (); - gst_buffer_set_data (buf, info_str->str, info_str->len); + gst_buffer_unmap (buf, &map); + wavenc->meta_length += gst_buffer_get_size (buf); - gst_pad_push (wavenc->srcpad, GST_DATA (buf)); - g_string_free (info_str, FALSE); + return gst_pad_push (wavenc->srcpad, buf); } -#endif static gboolean gst_wavenc_event (GstPad * pad, GstObject * parent, GstEvent * event) { gboolean res = TRUE; GstWavEnc *wavenc; + GstTagList *tags; + GstToc *toc; wavenc = GST_WAVENC (parent); @@ -613,18 +785,24 @@ gst_wavenc_event (GstPad * pad, GstObject * parent, GstEvent * event) gst_event_unref (event); break; } - case GST_EVENT_EOS:{ + case GST_EVENT_EOS: + { + GstFlowReturn flow; GST_DEBUG_OBJECT (wavenc, "got EOS"); -#if 0 - /* Write our metadata if we have any */ - if (wavenc->metadata) { - write_metadata (wavenc); - write_cues (wavenc); - write_labels (wavenc); + + flow = gst_wavenc_write_toc (wavenc); + if (flow != GST_FLOW_OK) { + GST_WARNING_OBJECT (wavenc, "error pushing toc: %s", + gst_flow_get_name (flow)); } -#endif + flow = gst_wavenc_write_tags (wavenc); + if (flow != GST_FLOW_OK) { + GST_WARNING_OBJECT (wavenc, "error pushing tags: %s", + gst_flow_get_name (flow)); + } + /* write header with correct length values */ - gst_wavenc_push_header (wavenc, wavenc->length); + gst_wavenc_push_header (wavenc); /* we're done with this file */ wavenc->finished_properly = TRUE; @@ -638,6 +816,30 @@ gst_wavenc_event (GstPad * pad, GstObject * parent, GstEvent * event) * anyway. We'll send our own newsegment event */ gst_event_unref (event); break; + case GST_EVENT_TOC: + gst_event_parse_toc (event, &toc, NULL); + if (toc) { + if (wavenc->toc != toc) { + if (wavenc->toc) + gst_toc_unref (wavenc->toc); + wavenc->toc = toc; + } else { + gst_toc_unref (toc); + } + } + res = gst_pad_event_default (pad, parent, event); + break; + case GST_EVENT_TAG: + gst_event_parse_tag (event, &tags); + if (tags) { + if (wavenc->tags != tags) { + if (wavenc->tags) + gst_tag_list_unref (wavenc->tags); + wavenc->tags = gst_tag_list_ref (tags); + } + } + res = gst_pad_event_default (pad, parent, event); + break; default: res = gst_pad_event_default (pad, parent, event); break; @@ -654,17 +856,18 @@ gst_wavenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) g_return_val_if_fail (wavenc->channels > 0, GST_FLOW_FLUSHING); - if (!wavenc->sent_header) { - /* use bogus size initially, we'll write the real - * header when we get EOS and know the exact length */ - flow = gst_wavenc_push_header (wavenc, 0x7FFF0000); - + if (G_UNLIKELY (!wavenc->sent_header)) { /* starting a file, means we have to finish it properly */ wavenc->finished_properly = FALSE; - if (flow != GST_FLOW_OK) + /* use bogus size initially, we'll write the real + * header when we get EOS and know the exact length */ + flow = gst_wavenc_push_header (wavenc); + if (flow != GST_FLOW_OK) { + GST_WARNING_OBJECT (wavenc, "error pushing header: %s", + gst_flow_get_name (flow)); return flow; - + } GST_DEBUG_OBJECT (wavenc, "wrote dummy header"); wavenc->sent_header = TRUE; } @@ -675,10 +878,10 @@ gst_wavenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) buf = gst_buffer_make_writable (buf); - GST_BUFFER_OFFSET (buf) = WAV_HEADER_LEN + wavenc->length; + GST_BUFFER_OFFSET (buf) = WAV_HEADER_LEN + wavenc->audio_length; GST_BUFFER_OFFSET_END (buf) = GST_BUFFER_OFFSET_NONE; - wavenc->length += gst_buffer_get_size (buf); + wavenc->audio_length += gst_buffer_get_size (buf); flow = gst_pad_push (wavenc->srcpad, buf); @@ -697,7 +900,8 @@ gst_wavenc_change_state (GstElement * element, GstStateChange transition) wavenc->channels = 0; wavenc->width = 0; wavenc->rate = 0; - wavenc->length = 0; + wavenc->audio_length = 0; + wavenc->meta_length = 0; wavenc->sent_header = FALSE; /* its true because we haven't writen anything */ wavenc->finished_properly = TRUE; @@ -719,6 +923,20 @@ gst_wavenc_change_state (GstElement * element, GstStateChange transition) "before shutdown")); } break; + case GST_STATE_CHANGE_READY_TO_NULL: + GST_DEBUG_OBJECT (wavenc, "tags: %p", wavenc->tags); + if (wavenc->tags) { + gst_tag_list_unref (wavenc->tags); + wavenc->tags = NULL; + } + GST_DEBUG_OBJECT (wavenc, "toc: %p", wavenc->toc); + if (wavenc->toc) { + gst_toc_unref (wavenc->toc); + wavenc->toc = NULL; + } + gst_tag_setter_reset_tags (GST_TAG_SETTER (wavenc)); + gst_toc_setter_reset (GST_TOC_SETTER (wavenc)); + break; default: break; } diff --git a/gst/wavenc/gstwavenc.h b/gst/wavenc/gstwavenc.h index 3fe167ec674517f61473d60b333e5e7567fb4234..b6f8df4c163534aeef2636143deda618daa39798 100644 --- a/gst/wavenc/gstwavenc.h +++ b/gst/wavenc/gstwavenc.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ @@ -46,12 +46,21 @@ struct _GstWavEnc { GstPad *sinkpad; GstPad *srcpad; + GstTagList *tags; + GstToc *toc; + GList *cues; + GList *labls; + GList *notes; + /* useful audio data */ guint16 format; guint width; guint rate; guint channels; - guint32 length; + + /* data sizes */ + guint32 audio_length; + guint32 meta_length; gboolean sent_header; gboolean finished_properly; diff --git a/gst/wavparse/Makefile.in b/gst/wavparse/Makefile.in index 05143ee115ab3af1eecbf01a1e493c8e7dc0eae0..66843b8b72dfcb3ca21ea603c6e57bb56c887eb3 100644 --- a/gst/wavparse/Makefile.in +++ b/gst/wavparse/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/wavparse -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -136,10 +162,23 @@ libgstwavparse_la_OBJECTS = $(am_libgstwavparse_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstwavparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstwavparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstwavparse_la_CFLAGS) $(CFLAGS) \ $(libgstwavparse_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstwavparse_la_SOURCES) DIST_SOURCES = $(libgstwavparse_la_SOURCES) am__can_run_installinfo = \ @@ -174,6 +209,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -342,6 +394,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -555,6 +608,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -581,12 +635,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstwavparse.la: $(libgstwavparse_la_OBJECTS) $(libgstwavparse_la_DEPENDENCIES) $(EXTRA_libgstwavparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwavparse_la_LINK) -rpath $(plugindir) $(libgstwavparse_la_OBJECTS) $(libgstwavparse_la_LIBADD) $(LIBS) @@ -632,26 +689,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -663,15 +709,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -680,6 +722,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -824,19 +881,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 1aee9c4b5000b756c304b067cc983ab6cb5f365a..603a7d0385841edcfbaea3845f646fcd62edf6e3 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -54,7 +54,6 @@ #include <math.h> #include "gstwavparse.h" -#include "gst/riff/riff-ids.h" #include "gst/riff/riff-media.h" #include <gst/base/gsttypefindhelper.h> #include <gst/gst-i18n-plugin.h> @@ -139,7 +138,7 @@ typedef struct */ guint32 cue_point_id; gchar *text; -} GstWavParseLabl; +} GstWavParseLabl, GstWavParseNote; static void gst_wavparse_class_init (GstWavParseClass * klass) @@ -1219,14 +1218,43 @@ gst_wavparse_labl_chunk (GstWavParse * wav, const guint8 * data, guint32 size) /* parse data */ data += 8; labl->cue_point_id = GST_READ_UINT32_LE (data); - labl->text = (gchar *) g_new0 (gchar *, size - 4 + 1); - memcpy (labl->text, data + 4, size - 4); + labl->text = g_memdup (data + 4, size - 4); wav->labls = g_list_append (wav->labls, labl); return TRUE; } +/* + * gst_wavparse_note_chunk: + * @wav GstWavParse object + * @data holder for data + * @size holder for data size + * + * Parse note from @data to wav->notes. + * + * Returns: %TRUE when note chunk is available + */ +static gboolean +gst_wavparse_note_chunk (GstWavParse * wav, const guint8 * data, guint32 size) +{ + GstWavParseNote *note; + + if (size < 5) + return FALSE; + + note = g_new0 (GstWavParseNote, 1); + + /* parse data */ + data += 8; + note->cue_point_id = GST_READ_UINT32_LE (data); + note->text = g_memdup (data + 4, size - 4); + + wav->notes = g_list_append (wav->notes, note); + + return TRUE; +} + /* * gst_wavparse_adtl_chunk: * @wav GstWavParse object @@ -1248,6 +1276,10 @@ gst_wavparse_adtl_chunk (GstWavParse * wav, const guint8 * data, guint32 size) switch (ltag) { case GST_RIFF_TAG_labl: gst_wavparse_labl_chunk (wav, data + offset, size); + break; + case GST_RIFF_TAG_note: + gst_wavparse_note_chunk (wav, data + offset, size); + break; default: break; } @@ -1258,6 +1290,24 @@ gst_wavparse_adtl_chunk (GstWavParse * wav, const guint8 * data, guint32 size) return TRUE; } +static GstTagList * +gst_wavparse_get_tags_toc_entry (GstToc * toc, gchar * id) +{ + GstTagList *tags = NULL; + GstTocEntry *entry = NULL; + + entry = gst_toc_find_entry (toc, id); + if (entry != NULL) { + tags = gst_toc_entry_get_tags (entry); + if (tags == NULL) { + tags = gst_tag_list_new_empty (); + gst_toc_entry_set_tags (entry, tags); + } + } + + return tags; +} + /* * gst_wavparse_create_toc: * @wav GstWavParse object @@ -1272,6 +1322,7 @@ gst_wavparse_create_toc (GstWavParse * wav) GList *list; GstWavParseCue *cue; GstWavParseLabl *labl; + GstWavParseNote *note; GstTagList *tags; GstToc *toc; GstTocEntry *entry = NULL, *cur_subentry = NULL, *prev_subentry = NULL; @@ -1296,19 +1347,19 @@ gst_wavparse_create_toc (GstWavParse * wav) gst_toc_entry_set_start_stop_times (entry, 0, wav->duration); gst_toc_append_entry (toc, entry); - /* add chapters in cue edition */ - list = g_list_first (wav->cues); + /* add tracks in cue edition */ + list = wav->cues; while (list) { cue = list->data; prev_subentry = cur_subentry; - /* previous chapter stop time = current chapter start time */ + /* previous track stop time = current track start time */ if (prev_subentry != NULL) { gst_toc_entry_get_start_stop_times (prev_subentry, &start, NULL); stop = gst_util_uint64_scale_round (cue->position, GST_SECOND, wav->rate); gst_toc_entry_set_start_stop_times (prev_subentry, start, stop); } id = g_strdup_printf ("%08x", cue->id); - cur_subentry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, id); + cur_subentry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_TRACK, id); g_free (id); start = gst_util_uint64_scale_round (cue->position, GST_SECOND, wav->rate); stop = wav->duration; @@ -1317,18 +1368,28 @@ gst_wavparse_create_toc (GstWavParse * wav) list = g_list_next (list); } - /* add tags in chapters */ - list = g_list_first (wav->labls); + /* add tags in tracks */ + list = wav->labls; while (list) { labl = list->data; id = g_strdup_printf ("%08x", labl->cue_point_id); - cur_subentry = gst_toc_find_entry (toc, id); + tags = gst_wavparse_get_tags_toc_entry (toc, id); g_free (id); - if (cur_subentry != NULL) { - tags = gst_tag_list_new_empty (); + if (tags != NULL) { gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, labl->text, NULL); - gst_toc_entry_set_tags (cur_subentry, tags); + } + list = g_list_next (list); + } + list = wav->notes; + while (list) { + note = list->data; + id = g_strdup_printf ("%08x", note->cue_point_id); + tags = gst_wavparse_get_tags_toc_entry (toc, id); + g_free (id); + if (tags != NULL) { + gst_tag_list_add (tags, GST_TAG_MERGE_PREPEND, GST_TAG_COMMENT, + note->text, NULL); } list = g_list_next (list); } @@ -2304,6 +2365,7 @@ gst_wavparse_loop (GstPad * pad) { GstFlowReturn ret; GstWavParse *wav = GST_WAVPARSE (GST_PAD_PARENT (pad)); + gchar *stream_id; GST_LOG_OBJECT (wav, "process data"); @@ -2313,6 +2375,11 @@ gst_wavparse_loop (GstPad * pad) if ((ret = gst_wavparse_stream_init (wav)) != GST_FLOW_OK) goto pause; + stream_id = + gst_pad_create_stream_id (wav->srcpad, GST_ELEMENT_CAST (wav), NULL); + gst_pad_push_event (wav->srcpad, gst_event_new_stream_start (stream_id)); + g_free (stream_id); + wav->state = GST_WAVPARSE_HEADER; /* fall-through */ diff --git a/gst/wavparse/gstwavparse.h b/gst/wavparse/gstwavparse.h index ad8e02b19b84d5e041cea24ebd664b16d547dfcb..7dc43bc1bef54dff1d754be232e4bc187827385b 100644 --- a/gst/wavparse/gstwavparse.h +++ b/gst/wavparse/gstwavparse.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ @@ -69,6 +69,7 @@ struct _GstWavParse { GstToc *toc; GList *cues; GList *labls; + GList *notes; GstEvent *start_segment; /* WAVE decoding state */ diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in index 8cdf7ed0406ea22b2634d2be9b075498b2ebcc89..6058a6371732d90912b7f4e873c42c6ecc72b28a 100644 --- a/gst/y4m/Makefile.in +++ b/gst/y4m/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = gst/y4m -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -135,10 +161,23 @@ libgsty4menc_la_OBJECTS = $(am_libgsty4menc_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgsty4menc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsty4menc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgsty4menc_la_CFLAGS) $(CFLAGS) \ $(libgsty4menc_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgsty4menc_la_SOURCES) DIST_SOURCES = $(libgsty4menc_la_SOURCES) am__can_run_installinfo = \ @@ -173,6 +208,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -341,6 +393,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgsty4menc.la: $(libgsty4menc_la_OBJECTS) $(libgsty4menc_la_DEPENDENCIES) $(EXTRA_libgsty4menc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsty4menc_la_LINK) -rpath $(plugindir) $(libgsty4menc_la_OBJECTS) $(libgsty4menc_la_LIBADD) $(LIBS) @@ -619,26 +676,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -650,15 +696,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -667,6 +709,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/y4m/gsty4mencode.c b/gst/y4m/gsty4mencode.c index 8d0641191d81dec48c5e46a8ce869589efeecde9..4926cb7a6c043ba606a455af4e2cf5443c446c3c 100644 --- a/gst/y4m/gsty4mencode.c +++ b/gst/y4m/gsty4mencode.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-y4menc diff --git a/gst/y4m/gsty4mencode.h b/gst/y4m/gsty4mencode.h index 9eb820e4895e9dd03abedc3ecbc930e105418a38..27bd05ec1f3243fa05bb91adeda5254f70c9b45c 100644 --- a/gst/y4m/gsty4mencode.h +++ b/gst/y4m/gsty4mencode.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/ltmain.sh b/ltmain.sh index 499e473fb966a9f1d74a216cdd0252c13a80c148..68c6d96ca5e37ac001a33a6d6a8e2d3f6fded2a2 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -70,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.2 +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.3 # automake: $automake_version # autoconf: $autoconf_version # @@ -80,7 +80,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.2 Debian-2.4.2-1.2" +VERSION="2.4.2 Debian-2.4.2-1.3" TIMESTAMP="" package_revision=1.3337 diff --git a/m4/Makefile.in b/m4/Makefile.in index 73903d127e632144d2f6da67478f9ef47c10bbc6..dd4dd4cc064ca8f33f46bd841a62d04525d23c3e 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,14 +79,13 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = m4 -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -95,12 +121,18 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -108,6 +140,7 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AALIB_CFLAGS = @AALIB_CFLAGS@ AALIB_CONFIG = @AALIB_CONFIG@ @@ -274,6 +307,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -510,11 +544,11 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -650,15 +684,16 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in index ad2035f87c57abca9a5dc77a340fa9b407dc4570..c86d8b55e792e033bbf4a1d33e852d218a5b05b2 100644 --- a/pkgconfig/Makefile.in +++ b/pkgconfig/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +79,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = pkgconfig -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/gstreamer-plugins-good-uninstalled.pc.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -60,7 +87,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -96,12 +122,18 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = gstreamer-plugins-good-uninstalled.pc CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -109,6 +141,7 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AALIB_CFLAGS = @AALIB_CFLAGS@ AALIB_CONFIG = @AALIB_CONFIG@ @@ -275,6 +308,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -499,11 +533,11 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -641,16 +675,17 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ - clean-libtool distclean distclean-generic distclean-libtool \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am + clean-libtool cscopelist-am ctags-am distclean \ + distclean-generic distclean-libtool distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am ### all-local: $(pcverfiles) $(pcverfiles_uninstalled) diff --git a/po/LINGUAS b/po/LINGUAS index c020019136b722f9c3d5830a87d01657c4e6beb7..73d8b85b2d73fe861a24831c9a61bcd1cc42c66d 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1 +1 @@ -af az bg ca cs da de el en_GB eo es eu fi fr gl hr hu id it ja lt lv mt nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN zh_HK zh_TW +af az bg ca cs da de el en_GB eo es eu fi fr gl hu id it ja lt lv mt nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN zh_HK zh_TW diff --git a/po/POTFILES.in b/po/POTFILES.in index ae3438c302edf0971cd398248c15d90197132034..596eda7e77c9e555b7e6331edac4a566e0f4bcec 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,7 +1,9 @@ -ext/pulse/pulsesink.c ext/flac/gstflacdec.c +ext/jack/gstjackaudiosink.c +ext/jack/gstjackaudiosrc.c ext/jpeg/gstjpegdec.c ext/libpng/gstpngdec.c +ext/pulse/pulsesink.c ext/shout2/gstshout2.c ext/soup/gstsouphttpsrc.c gst/audioparsers/gstwavpackparse.c @@ -10,13 +12,15 @@ gst/avi/gstavimux.c gst/isomp4/qtdemux.c gst/rtsp/gstrtspsrc.c gst/wavparse/gstwavparse.c -sys/oss/gstosssink.c -sys/oss/gstosssrc.c sys/oss4/oss4-sink.c sys/oss4/oss4-source.c +sys/oss/gstosssink.c +sys/oss/gstosssrc.c +sys/sunaudio/gstsunaudiomixeroptions.c sys/sunaudio/gstsunaudiomixertrack.c sys/v4l2/gstv4l2bufferpool.c sys/v4l2/gstv4l2object.c sys/v4l2/gstv4l2radio.c +sys/v4l2/gstv4l2videooverlay.c sys/v4l2/v4l2_calls.c sys/ximage/gstximagesrc.c diff --git a/po/af.gmo b/po/af.gmo index bc5ad1a3aeeef9c258788eef8b01ae117d2ff390..c8f874f67f9eb67cd82338c7686f6efbe73852fd 100644 Binary files a/po/af.gmo and b/po/af.gmo differ diff --git a/po/af.po b/po/af.po index c664b22c6d5d10982735a6d537a827bf879870e4..9f435c25385961f383953f04754092d4ac736120 100644 --- a/po/af.po +++ b/po/af.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins 0.7.6\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2004-03-18 14:16+0200\n" "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n" "Language-Team: Afrikaans <i18n@af.org.za>\n" @@ -16,18 +16,24 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#. TRANSLATORS: 'song title' by 'artist name' -#, c-format -msgid "'%s' by '%s'" +msgid "Jack server not found" msgstr "" msgid "Failed to decode JPEG image" msgstr "" +#. TRANSLATORS: 'song title' by 'artist name' +#, c-format +msgid "'%s' by '%s'" +msgstr "" + #, fuzzy msgid "Could not connect to server" msgstr "Kon nie beheertoestel \"%s\" toemaak nie." +msgid "No URL set." +msgstr "" + msgid "Server does not support seeking." msgstr "" @@ -49,9 +55,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "" @@ -64,6 +67,9 @@ msgstr "" msgid "This file is invalid and cannot be played." msgstr "" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "" @@ -108,6 +114,23 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Kon nie oudio-toestel \"%s\" oopmaak vir skryf nie." +msgid "" +"Could not open audio device for playback. This version of the Open Sound " +"System is not supported by this element." +msgstr "" + +msgid "Playback is not supported by this audio device." +msgstr "" + +msgid "Audio playback error." +msgstr "" + +msgid "Recording is not supported by this audio device." +msgstr "" + +msgid "Error recording from audio device." +msgstr "" + msgid "" "Could not open audio device for recording. You don't have permission to open " "the device." @@ -117,21 +140,33 @@ msgstr "" msgid "Could not open audio device for recording." msgstr "Kon nie CD-toestel oopmaak om te lees nie." -msgid "" -"Could not open audio device for playback. This version of the Open Sound " -"System is not supported by this element." +#, fuzzy +msgid "Record Source" +msgstr "Neem op" + +msgid "Microphone" +msgstr "Mikrofoon" + +#, fuzzy +msgid "Line In" +msgstr "Lyn-in" + +msgid "Internal CD" msgstr "" -msgid "Playback is not supported by this audio device." +msgid "SPDIF In" msgstr "" -msgid "Audio playback error." +msgid "AUX 1 In" msgstr "" -msgid "Recording is not supported by this audio device." +msgid "AUX 2 In" msgstr "" -msgid "Error recording from audio device." +msgid "Codec Loopback" +msgstr "" + +msgid "SunVTS Loopback" msgstr "" msgid "Volume" @@ -232,6 +267,10 @@ msgstr "Kon nie oudio-toestel \"%s\" toemaak nie." msgid "Failed to change mute state for device '%s'." msgstr "Kon nie buffers vanaf toestel \"%s\" verkry nie." +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "Kon nie skryf na toestel \"%s\" nie." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -254,10 +293,6 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "Kon nie skryf na toestel \"%s\" nie." - #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -339,9 +374,6 @@ msgstr "" #~ msgid "Line-in" #~ msgstr "Lyn-in" -#~ msgid "Microphone" -#~ msgstr "Mikrofoon" - #~ msgid "CD" #~ msgstr "CD" @@ -402,10 +434,6 @@ msgstr "" #~ msgid "Side" #~ msgstr "Video" -#, fuzzy -#~ msgid "Line In" -#~ msgstr "Lyn-in" - #, fuzzy #~ msgid "Video In" #~ msgstr "Video" @@ -422,10 +450,6 @@ msgstr "" #~ msgid "Microphone Boost" #~ msgstr "Mikrofoon" -#, fuzzy -#~ msgid "Record Source" -#~ msgstr "Neem op" - #, fuzzy #~ msgid "Monitor Source" #~ msgstr "Monitor" diff --git a/po/az.gmo b/po/az.gmo index 7f1477f0c115857580b9a5087139586439e8d198..758ba66e785c503a9c68995b7b654205ef5584f9 100644 Binary files a/po/az.gmo and b/po/az.gmo differ diff --git a/po/az.po b/po/az.po index 3cc78953f291b3511a68a4efdc14721fe9a320c1..bf3d0b1989aa6c2f3eb8581f3fbaee6d5551c613 100644 --- a/po/az.po +++ b/po/az.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-0.8.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2004-03-19 18:29+0200\n" "Last-Translator: Metin Amiroff <metin@karegen.com>\n" "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n" @@ -17,18 +17,24 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.2\n" -#. TRANSLATORS: 'song title' by 'artist name' -#, c-format -msgid "'%s' by '%s'" +msgid "Jack server not found" msgstr "" msgid "Failed to decode JPEG image" msgstr "" +#. TRANSLATORS: 'song title' by 'artist name' +#, c-format +msgid "'%s' by '%s'" +msgstr "" + #, fuzzy msgid "Could not connect to server" msgstr "\"%s\" idarÉ™ avadanlığı baÄŸlana bilmÉ™di." +msgid "No URL set." +msgstr "" + msgid "Server does not support seeking." msgstr "" @@ -50,9 +56,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "" @@ -65,6 +68,9 @@ msgstr "" msgid "This file is invalid and cannot be played." msgstr "" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "" @@ -109,6 +115,23 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "\"%s\" audio avadanlığı yazma üçün açıla bilmÉ™di." +msgid "" +"Could not open audio device for playback. This version of the Open Sound " +"System is not supported by this element." +msgstr "" + +msgid "Playback is not supported by this audio device." +msgstr "" + +msgid "Audio playback error." +msgstr "" + +msgid "Recording is not supported by this audio device." +msgstr "" + +msgid "Error recording from audio device." +msgstr "" + msgid "" "Could not open audio device for recording. You don't have permission to open " "the device." @@ -118,21 +141,33 @@ msgstr "" msgid "Could not open audio device for recording." msgstr "CD avadanlığı oxuma üçün açıla bilmÉ™di." -msgid "" -"Could not open audio device for playback. This version of the Open Sound " -"System is not supported by this element." +#, fuzzy +msgid "Record Source" +msgstr "Qeyd" + +msgid "Microphone" +msgstr "Mikrofon" + +#, fuzzy +msgid "Line In" +msgstr "XÉ™td-giriÅŸ" + +msgid "Internal CD" msgstr "" -msgid "Playback is not supported by this audio device." +msgid "SPDIF In" msgstr "" -msgid "Audio playback error." +msgid "AUX 1 In" msgstr "" -msgid "Recording is not supported by this audio device." +msgid "AUX 2 In" msgstr "" -msgid "Error recording from audio device." +msgid "Codec Loopback" +msgstr "" + +msgid "SunVTS Loopback" msgstr "" msgid "Volume" @@ -233,6 +268,10 @@ msgstr "\"%s\" audio avadanlığı baÄŸlana bilmÉ™di." msgid "Failed to change mute state for device '%s'." msgstr "\"%s\" avadanlığından bufferlÉ™r alına bilmÉ™di." +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "\"%s\" avadanlığına yazıla bilmÉ™di." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -255,10 +294,6 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "\"%s\" avadanlığına yazıla bilmÉ™di." - #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -340,9 +375,6 @@ msgstr "" #~ msgid "Line-in" #~ msgstr "XÉ™td-giriÅŸ" -#~ msgid "Microphone" -#~ msgstr "Mikrofon" - #~ msgid "CD" #~ msgstr "CD" @@ -403,10 +435,6 @@ msgstr "" #~ msgid "Side" #~ msgstr "Video" -#, fuzzy -#~ msgid "Line In" -#~ msgstr "XÉ™td-giriÅŸ" - #, fuzzy #~ msgid "Video In" #~ msgstr "Video" @@ -423,10 +451,6 @@ msgstr "" #~ msgid "Microphone Boost" #~ msgstr "Mikrofon" -#, fuzzy -#~ msgid "Record Source" -#~ msgstr "Qeyd" - #, fuzzy #~ msgid "Monitor Source" #~ msgstr "Monitor" diff --git a/po/bg.gmo b/po/bg.gmo index dde8090d41143e3781aafaeaa0b4eeeee43df4d8..9c541f59a9a0e6b7aa7b4929a53bdb1e27be1ec4 100644 Binary files a/po/bg.gmo and b/po/bg.gmo differ diff --git a/po/bg.po b/po/bg.po index 9db72ef67b75104251e80a586316d70376797098..f457f990ce912789c02f9ee9b0eaee2f1b2436aa 100644 --- a/po/bg.po +++ b/po/bg.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-04-26 22:35+0300\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n" @@ -18,17 +18,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "ÐеуÑпешно декодиране на изображение, формат JPEG." + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "„%s“ от „%s“" -msgid "Failed to decode JPEG image" -msgstr "ÐеуÑпешно декодиране на изображение, формат JPEG." - msgid "Could not connect to server" msgstr "Ðе може да Ñе оÑъщеÑтви връзка към Ñървър." +msgid "No URL set." +msgstr "Ðе е зададен адреÑ." + msgid "Server does not support seeking." msgstr "Сървърът не поддържа Ñ‚ÑŠÑ€Ñене." @@ -48,9 +54,6 @@ msgstr "Възникна мрежова грешка или Ñървърът н msgid "Server sent bad data." msgstr "Сървърът изпрати лоши данни." -msgid "No URL set." -msgstr "Ðе е зададен адреÑ." - msgid "Internal data stream error." msgstr "Вътрешна грешка на потока от данни." @@ -63,6 +66,9 @@ msgstr "Този файл не Ñъдържа изпълними потоци." msgid "This file is invalid and cannot be played." msgstr "Този файл е повреден и не може да бъде изпълнен." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Този файл е повреден и не може да бъде изпълнен." @@ -114,15 +120,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "УÑтройÑтвото не може да Ñе отвори за изпълнение." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Ðудио уÑтройÑтвото не може да Ñе отвори за запиÑ, нÑмате права за това." - -msgid "Could not open audio device for recording." -msgstr "Ðудио уÑтройÑтвото не може да Ñе отвори за запиÑ." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -142,6 +139,44 @@ msgstr "Това аудио уÑтройÑтво не поддържа запи msgid "Error recording from audio device." msgstr "Грешка при запиÑа от аудио уÑтройÑтвото." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Ðудио уÑтройÑтвото не може да Ñе отвори за запиÑ, нÑмате права за това." + +msgid "Could not open audio device for recording." +msgstr "Ðудио уÑтройÑтвото не може да Ñе отвори за запиÑ." + +msgid "Record Source" +msgstr "Източник за запиÑ" + +msgid "Microphone" +msgstr "Микрофон" + +msgid "Line In" +msgstr "Вход" + +msgid "Internal CD" +msgstr "Вътрешно CD" + +msgid "SPDIF In" +msgstr "Вход SPDIF" + +msgid "AUX 1 In" +msgstr "Вход AUX 1" + +msgid "AUX 2 In" +msgstr "Вход AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Обратна връзка" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Обратна връзка" + msgid "Volume" msgstr "Сила на звука" @@ -241,6 +276,10 @@ msgstr "ÐеуÑпешно задаване на вход %d на уÑÑ‚Ñ€Ð¾Ð¹Ñ msgid "Failed to change mute state for device '%s'." msgstr "ÐеуÑпешно получаване на Ñилата на Ñигнала на уÑтройÑтво „%s“." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "УÑтройÑтвото „%s“ не може да Ñе идентифицира." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -265,10 +304,6 @@ msgstr "ÐеуÑпешно запитване за нормата на уÑÑ‚Ñ€ msgid "Failed getting controls attributes on device '%s'." msgstr "ÐеуÑпешно получаване на контролните атрибути на уÑтройÑтвото „%s“." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "УÑтройÑтвото „%s“ не може да Ñе идентифицира." - #, c-format msgid "This isn't a device '%s'." msgstr "„%s“ не е уÑтройÑтво." @@ -362,9 +397,6 @@ msgstr "Работата без чаÑовник е невъзможна." #~ msgid "Line-in" #~ msgstr "Вход" -#~ msgid "Microphone" -#~ msgstr "Микрофон" - #~ msgid "CD" #~ msgstr "CD" @@ -463,21 +495,9 @@ msgstr "Работата без чаÑовник е невъзможна." #~ msgid "Telephone" #~ msgstr "Телефон" -#~ msgid "Line In" -#~ msgstr "Вход" - -#~ msgid "Internal CD" -#~ msgstr "Вътрешно CD" - #~ msgid "Video In" #~ msgstr "Видео вход" -#~ msgid "AUX 1 In" -#~ msgstr "Вход AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Вход AUX 2" - #~ msgid "AUX In" #~ msgstr "Вход AUX" @@ -490,9 +510,6 @@ msgstr "Работата без чаÑовник е невъзможна." #~ msgid "Microphone Boost" #~ msgstr "УÑилване на микрофона" -#~ msgid "Loopback" -#~ msgstr "Обратна връзка" - #~ msgid "Diagnostic" #~ msgstr "ДиагноÑтика" @@ -505,9 +522,6 @@ msgstr "Работата без чаÑовник е невъзможна." #~ msgid "Input" #~ msgstr "Вход" -#~ msgid "Record Source" -#~ msgstr "Източник за запиÑ" - #~ msgid "Monitor Source" #~ msgstr "Източник за звуков монитор" @@ -547,9 +561,6 @@ msgstr "Работата без чаÑовник е невъзможна." #~ msgid "Input Mix" #~ msgstr "СмеÑител на входа" -#~ msgid "SPDIF In" -#~ msgstr "Вход SPDIF" - #~ msgid "Microphone 1" #~ msgstr "Микрофон 1" diff --git a/po/ca.gmo b/po/ca.gmo index ef7dc5de6373d8a9193a2ac223cfed1b364e5be7..fca0bad0d614b96db020635b62a4886a404b5bc3 100644 Binary files a/po/ca.gmo and b/po/ca.gmo differ diff --git a/po/ca.po b/po/ca.po index 7b7199dd5fcaadb1a3c1e8955cafefde8fda2bd7..015c2ae83d95de2afa963359925bf55ad40ccb5a 100644 --- a/po/ca.po +++ b/po/ca.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2012-01-01 14:19+0100\n" "Last-Translator: Gil Forcada <gforcada@gnome.org>\n" "Language-Team: Catalan <ca@dodds.net>\n" @@ -19,17 +19,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Ha fallat en descodificar la imatge JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "«%s» per «%s»" -msgid "Failed to decode JPEG image" -msgstr "Ha fallat en descodificar la imatge JPEG" - msgid "Could not connect to server" msgstr "No s'ha pogut connectar al servidor" +msgid "No URL set." +msgstr "No s'ha indicat cap URL." + msgid "Server does not support seeking." msgstr "El servidor no ademet les cerques." @@ -51,9 +57,6 @@ msgstr "" msgid "Server sent bad data." msgstr "El servidor ha enviat dades errònies." -msgid "No URL set." -msgstr "No s'ha indicat cap URL." - msgid "Internal data stream error." msgstr "S'ha produït un error intern de flux de dades." @@ -66,6 +69,9 @@ msgstr "Aquest fitxer no conté cap flux reproduïble." msgid "This file is invalid and cannot be played." msgstr "Aquest fitxer no és và lid i no es pot reproduir." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Aquest fitxer està malmès i no es pot reproduir." @@ -119,16 +125,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "No s'ha pogut obrir el dispositiu d'aÌ€udio per a la reproducció." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"No s'ha pogut obrir el dispositiu d'aÌ€udio per a l'enregistrament. No teniu " -"permiÌs per obrir el dispositiu." - -msgid "Could not open audio device for recording." -msgstr "No s'ha pogut obrir el dispositiu d'aÌ€udio per a l'enregistrament." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -148,6 +144,45 @@ msgstr "Aquest dispositiu d'à udio no permet l'enregistrament." msgid "Error recording from audio device." msgstr "S'ha produït un error a l'enregistrar des del dispositiu d'à udio." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"No s'ha pogut obrir el dispositiu d'aÌ€udio per a l'enregistrament. No teniu " +"permiÌs per obrir el dispositiu." + +msgid "Could not open audio device for recording." +msgstr "No s'ha pogut obrir el dispositiu d'aÌ€udio per a l'enregistrament." + +msgid "Record Source" +msgstr "Font d'enregistrament" + +msgid "Microphone" +msgstr "Micròfon" + +msgid "Line In" +msgstr "LÃnia d'entrada" + +msgid "Internal CD" +msgstr "CD intern" + +msgid "SPDIF In" +msgstr "Entrada SPDIF" + +msgid "AUX 1 In" +msgstr "Entrada AUX 1" + +msgid "AUX 2 In" +msgstr "Entrada AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Bucle local" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Bucle local" + msgid "Volume" msgstr "Volum" @@ -254,6 +289,10 @@ msgstr "No s'ha pogut establir l'entrada %d en el dispositiu %s." msgid "Failed to change mute state for device '%s'." msgstr "No s'ha pogut obtenir la intensitat del senyal per al dispositiu «%s»." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "No es pot identificar el dispositiu «%s»." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -283,10 +322,6 @@ msgid "Failed getting controls attributes on device '%s'." msgstr "" "No s'ha pogut obtenir els atributs dels controls en el dispositiu «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "No es pot identificar el dispositiu «%s»." - #, c-format msgid "This isn't a device '%s'." msgstr "Això no és un dispositiu «%s»." @@ -386,9 +421,6 @@ msgstr "No es pot operar sense un rellotge" #~ msgid "Line-in" #~ msgstr "LÃnia d'entrada" -#~ msgid "Microphone" -#~ msgstr "Micròfon" - #~ msgid "CD" #~ msgstr "CD" @@ -489,21 +521,9 @@ msgstr "No es pot operar sense un rellotge" #~ msgid "Telephone" #~ msgstr "Telèfon" -#~ msgid "Line In" -#~ msgstr "LÃnia d'entrada" - -#~ msgid "Internal CD" -#~ msgstr "CD intern" - #~ msgid "Video In" #~ msgstr "Entrada de vÃdeo" -#~ msgid "AUX 1 In" -#~ msgstr "Entrada AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Entrada AUX 2" - #~ msgid "AUX In" #~ msgstr "Entrada AUX" @@ -516,9 +536,6 @@ msgstr "No es pot operar sense un rellotge" #~ msgid "Microphone Boost" #~ msgstr "Amplificació del micròfon" -#~ msgid "Loopback" -#~ msgstr "Bucle local" - #~ msgid "Diagnostic" #~ msgstr "Diagnòstic" @@ -531,9 +548,6 @@ msgstr "No es pot operar sense un rellotge" #~ msgid "Input" #~ msgstr "Entrada" -#~ msgid "Record Source" -#~ msgstr "Font d'enregistrament" - #~ msgid "Monitor Source" #~ msgstr "Font del monitor" @@ -573,9 +587,6 @@ msgstr "No es pot operar sense un rellotge" #~ msgid "Input Mix" #~ msgstr "Mescla d'entrada" -#~ msgid "SPDIF In" -#~ msgstr "Entrada SPDIF" - #~ msgid "Microphone 1" #~ msgstr "Micròfon 1" diff --git a/po/cs.gmo b/po/cs.gmo index 701540911cf64811f503ccd90a17253345fd0cfa..25dacda0b33e1df7155c39afb909a8027754e146 100644 Binary files a/po/cs.gmo and b/po/cs.gmo differ diff --git a/po/cs.po b/po/cs.po index ee288ef5b147b3a39c4c2865eb3225acf9b9ee47..0914d71c97d6d90c6e10a64eb5119d06a7a3800c 100644 --- a/po/cs.po +++ b/po/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-01-12 23:07+0100\n" "Last-Translator: Petr Kovar <pknbe@volny.cz>\n" "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" @@ -19,17 +19,23 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Lokalize 1.1\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "NezdaÅ™ilo se dekódovánà obrázku JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "\"%s\" od \"%s\"" -msgid "Failed to decode JPEG image" -msgstr "NezdaÅ™ilo se dekódovánà obrázku JPEG" - msgid "Could not connect to server" msgstr "NezdaÅ™ilo se spojenà se serverem" +msgid "No URL set." +msgstr "Nenastaveno URL." + msgid "Server does not support seeking." msgstr "Server nepodporuje hledánÃ." @@ -49,9 +55,6 @@ msgstr "DoÅ¡lo k sÃÅ¥ové chybÄ›, nebo server neoÄekávanÄ› ukonÄil spojenÃ. msgid "Server sent bad data." msgstr "Server odeslal chybná data." -msgid "No URL set." -msgstr "Nenastaveno URL." - msgid "Internal data stream error." msgstr "VnitÅ™nà chyba datového proudu." @@ -64,6 +67,9 @@ msgstr "Tento soubor neobsahuje hratelné proudy." msgid "This file is invalid and cannot be played." msgstr "Tento soubor je neplatný a nelze jej pÅ™ehrát." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Tento soubor je poÅ¡kozen a nelze jej pÅ™ehrát." @@ -116,16 +122,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Zvukové zaÅ™Ãzenà nelze otevÅ™Ãt ke ÄtenÃ." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Zvukové zaÅ™Ãzenà nelze otevÅ™Ãt k nahrávánÃ. Nemáte oprávnÄ›nà k otevÅ™enà " -"zaÅ™ÃzenÃ." - -msgid "Could not open audio device for recording." -msgstr "Zvukové zaÅ™Ãzenà nelze otevÅ™Ãt k nahrávánÃ." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -145,6 +141,45 @@ msgstr "Toto zvukové zaÅ™Ãzenà nepodporuje nahrávánÃ." msgid "Error recording from audio device." msgstr "Chyba pÅ™i nahrávánà ze zvukového zaÅ™ÃzenÃ." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Zvukové zaÅ™Ãzenà nelze otevÅ™Ãt k nahrávánÃ. Nemáte oprávnÄ›nà k otevÅ™enà " +"zaÅ™ÃzenÃ." + +msgid "Could not open audio device for recording." +msgstr "Zvukové zaÅ™Ãzenà nelze otevÅ™Ãt k nahrávánÃ." + +msgid "Record Source" +msgstr "Zdroj záznamu" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "Linkový vstup" + +msgid "Internal CD" +msgstr "VnitÅ™nà CD" + +msgid "SPDIF In" +msgstr "Vstup SPDIF" + +msgid "AUX 1 In" +msgstr "Vstup AUX 1" + +msgid "AUX 2 In" +msgstr "Vstup AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "ZpÄ›tná smyÄka" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "ZpÄ›tná smyÄka" + msgid "Volume" msgstr "Hlasitost" @@ -243,6 +278,10 @@ msgstr "NezdaÅ™ilo se nastavenà vstupu \"%d\" na zaÅ™Ãzenà \"%s\"." msgid "Failed to change mute state for device '%s'." msgstr "NezdaÅ™ilo se zjiÅ¡tÄ›nà sÃly signálu u zaÅ™Ãzenà \"%s\"." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Nelze rozpoznat zaÅ™Ãzenà \"%s\"." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -267,10 +306,6 @@ msgstr "NezdaÅ™ilo se dotázánà na norm na zaÅ™Ãzenà \"%s\"." msgid "Failed getting controls attributes on device '%s'." msgstr "NezdaÅ™ilo se zjiÅ¡tÄ›nà vlastnostà ovládacÃch prvků na zaÅ™Ãzenà \"%s\"." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Nelze rozpoznat zaÅ™Ãzenà \"%s\"." - #, c-format msgid "This isn't a device '%s'." msgstr "Toto nenà zaÅ™Ãzenà \"%s\"." @@ -365,9 +400,6 @@ msgstr "Nenà možné fungovat bez hodin" #~ msgid "Line-in" #~ msgstr "Linkový vstup" -#~ msgid "Microphone" -#~ msgstr "Mikrofon" - #~ msgid "CD" #~ msgstr "CD" @@ -466,21 +498,9 @@ msgstr "Nenà možné fungovat bez hodin" #~ msgid "Telephone" #~ msgstr "Telefon" -#~ msgid "Line In" -#~ msgstr "Linkový vstup" - -#~ msgid "Internal CD" -#~ msgstr "VnitÅ™nà CD" - #~ msgid "Video In" #~ msgstr "Vstup videa" -#~ msgid "AUX 1 In" -#~ msgstr "Vstup AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Vstup AUX 2" - #~ msgid "AUX In" #~ msgstr "Vstup AUX" @@ -493,9 +513,6 @@ msgstr "Nenà možné fungovat bez hodin" #~ msgid "Microphone Boost" #~ msgstr "ZesÃlenà mikrofonu" -#~ msgid "Loopback" -#~ msgstr "ZpÄ›tná smyÄka" - #~ msgid "Diagnostic" #~ msgstr "Diagnostika" @@ -508,9 +525,6 @@ msgstr "Nenà možné fungovat bez hodin" #~ msgid "Input" #~ msgstr "Vstup" -#~ msgid "Record Source" -#~ msgstr "Zdroj záznamu" - #~ msgid "Monitor Source" #~ msgstr "Zdroj monitoru" @@ -550,9 +564,6 @@ msgstr "Nenà možné fungovat bez hodin" #~ msgid "Input Mix" #~ msgstr "SměšovaÄ vstupu" -#~ msgid "SPDIF In" -#~ msgstr "Vstup SPDIF" - #~ msgid "Microphone 1" #~ msgstr "Mikrofon 1" diff --git a/po/da.gmo b/po/da.gmo index c997d7fb35c8b19a2359a44d34db06a8443373b4..d3508f5a428a8a9c9ec86c296a4b3a167455bb92 100644 Binary files a/po/da.gmo and b/po/da.gmo differ diff --git a/po/da.po b/po/da.po index bdf5dfa37d48ecc1fb1a1480f465aade8f4bb451..20279084c956199a879e8af302b7754ef4da3fc3 100644 --- a/po/da.po +++ b/po/da.po @@ -3,17 +3,17 @@ # This file is distributed under the same license as the gst-plugins-good package. # # Mogens Jaeger <mogens@jaeger.tf>, 2007. -# Joe Hansen <joedalton2@yahoo.dk>, 2008, 2009, 2010, 2011, 2012. +# Joe Hansen <joedalton2@yahoo.dk>, 2008, 2009, 2010, 2011. # # gain -> forhøjelse # boost -> øgning? # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good-1.0.3\n" +"Project-Id-Version: gst-plugins-good-0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-12-13 23:54+0200\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2011-01-07 23:54+0200\n" "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language: da\n" @@ -21,17 +21,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Mislykkedes i at afkode JPEG-billede" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "'%s' af '%s'" -msgid "Failed to decode JPEG image" -msgstr "Mislykkedes i at afkode JPEG-billede" - msgid "Could not connect to server" msgstr "Kunne ikke forbinde til server" +msgid "No URL set." +msgstr "Ingen adresse angivet." + msgid "Server does not support seeking." msgstr "Server understøtter ikke søgning." @@ -52,9 +58,6 @@ msgstr "" msgid "Server sent bad data." msgstr "Server sendte ugyldige data." -msgid "No URL set." -msgstr "Ingen adresse angivet." - msgid "Internal data stream error." msgstr "Intern datastrømsfejl." @@ -67,6 +70,9 @@ msgstr "Denne fil indeholder ingen spilbar strøm." msgid "This file is invalid and cannot be played." msgstr "Denne fil er ufuldstændig og kan ikke afspilles." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Denne fil er ødelagt og kan ikke afspilles." @@ -122,16 +128,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Kunne ikke Ã¥bne enhed til afspilning." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Kunne ikke Ã¥bne lydenhed til optagelse. Du har ikke rettighed til at Ã¥bne " -"enheden." - -msgid "Could not open audio device for recording." -msgstr "Kunne ikke Ã¥bne lydenhed til optagelse." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -151,6 +147,45 @@ msgstr "Optagelse er ikke understøttet af denne lydenhed." msgid "Error recording from audio device." msgstr "Fejl ved optagelse fra lydenhed." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Kunne ikke Ã¥bne lydenhed til optagelse. Du har ikke rettighed til at Ã¥bne " +"enheden." + +msgid "Could not open audio device for recording." +msgstr "Kunne ikke Ã¥bne lydenhed til optagelse." + +msgid "Record Source" +msgstr "Optag kilde" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "Linje ind" + +msgid "Internal CD" +msgstr "Intern cd" + +msgid "SPDIF In" +msgstr "SPDIF ind" + +msgid "AUX 1 In" +msgstr "AUX 1 ind" + +msgid "AUX 2 In" +msgstr "AUX 2 ind" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Loopback" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Loopback" + msgid "Volume" msgstr "Lydstyrke" @@ -185,69 +220,74 @@ msgstr "Fejl ved læsning af %d byte pÃ¥ enhed '%s'." #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" msgstr "" -"Kunne ikke nummerere mulig videoformater som enhed »%s« kan fungere med" #, c-format msgid "Could not map buffers from device '%s'" msgstr "Kunne ikke afbilde mellemlager fra enhed '%s'" -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "Driveren til enhed »%s« understøtter ikke IO-metoden %d" +msgstr "Driveren til enhed '%s' understøtter ingen kendt optagemetode." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." -msgstr "Driveren til enhed »%s« understøtter ingen kendt IO-metode." +msgstr "Driveren til enhed '%s' understøtter ingen kendt optagemetode." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "Enheden »%s« understøtter ikke videooptagelse" +msgstr "Enhed '%s' er ikke en uddataenhed." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "Enheden »%s« er optaget" +msgstr "Enhed '%s' er ikke en uddataenhed." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture at %dx%d" -msgstr "Enheden »%s« kan ikke optage med %dx%d" +msgstr "Enhed '%s' er ikke en optageenhed." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture in the specified format" -msgstr "Enheden »%s« kan ikke optage i det angivne format" +msgstr "Enhed '%s' er ikke en optageenhed." #, c-format msgid "Could not get parameters on device '%s'" msgstr "Kunne ikke hente parametre fra enhed '%s'" +#, fuzzy msgid "Video device did not accept new frame rate setting." -msgstr "Videoenheden accepterede ikke ny indstilling for billedrate." +msgstr "" +"Enheden til videoinddata accepterede ikke ny indstilling for billedrate." msgid "Video device could not create buffer pool." -msgstr "Videoenhed kunne ikke oprette mellemlagerkø." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." -msgstr "Hentning af indstillinger for tuner %d pÃ¥ enhed »%s« fejlede." +msgstr "Hentning af indstillinger for tuner %d pÃ¥ enhed '%s' fejlede." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Fejl under hentning af kapaciteter for enhed »%s«." +msgstr "Fejl ved læsning af %d byte pÃ¥ enhed '%s'." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "Enhed »%s« er ikke en tuner." +msgstr "Enhed '%s' er ikke en uddataenhed." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Kunne ikke hente radioinddata for enhed »%s«." +msgstr "Kunne ikke sætte inddata %d for enhed %s." #, c-format msgid "Failed to set input %d on device %s." msgstr "Kunne ikke sætte inddata %d for enhed %s." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "Kunne ikke ændre tilstand for tænk/slut for enhed »%s«." +msgstr "Kunne ikke hente signalstyrke for enhed '%s'." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Kan ikke identificere enhed '%s'." #, c-format msgid "" @@ -273,10 +313,6 @@ msgstr "Listning af standard pÃ¥ enhed '%s' fejlede." msgid "Failed getting controls attributes on device '%s'." msgstr "Hentning af kontrolattributter for enhed '%s' fejlede." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Kan ikke identificere enhed '%s'." - #, c-format msgid "This isn't a device '%s'." msgstr "Dette er ikke en enheds '%s'." @@ -337,3 +373,354 @@ msgstr "Ændring af opløsning under kørsel er endnu ikke understøttet." msgid "Cannot operate without a clock" msgstr "Kan ikke fungere uden et ur" + +# Er rammestørrelse ikke mere passende? Jeg er dog ikke helt sikker pÃ¥ +# konteksten her. +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Fik uventet billedstørrelse pÃ¥ %u i steden for %u." + +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Forsøg pÃ¥ at hente videorammer fra enhed '%s' mislykkedes." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "Fejlede efter %d forsøg. enhed %s. systemfejl: %s" + +#~ msgid "Bass" +#~ msgstr "Bas" + +#~ msgid "Treble" +#~ msgstr "Diskant" + +#~ msgid "Synth" +#~ msgstr "Synth" + +#~ msgid "PCM" +#~ msgstr "PCM" + +#~ msgid "Speaker" +#~ msgstr "Højtaler" + +#~ msgid "Line-in" +#~ msgstr "Linje-ind" + +#~ msgid "CD" +#~ msgstr "Cd" + +#~ msgid "Mixer" +#~ msgstr "Mikser" + +#~ msgid "PCM-2" +#~ msgstr "PCM-2" + +#~ msgid "Record" +#~ msgstr "Optag" + +#~ msgid "In-gain" +#~ msgstr "Ind-forhøjelse" + +#~ msgid "Out-gain" +#~ msgstr "Ud-forhøjelse" + +#~ msgid "Line-1" +#~ msgstr "Linje-1" + +#~ msgid "Line-2" +#~ msgstr "Linje-2" + +#~ msgid "Line-3" +#~ msgstr "Linje-3" + +#~ msgid "Digital-1" +#~ msgstr "Digital-1" + +#~ msgid "Digital-2" +#~ msgstr "Digital-2" + +#~ msgid "Digital-3" +#~ msgstr "Digital-3" + +# Eller Phono-ind +#~ msgid "Phone-in" +#~ msgstr "Lyd-ind" + +# Eller Phono-ud +#~ msgid "Phone-out" +#~ msgstr "Lyd-ud" + +#~ msgid "Video" +#~ msgstr "Video" + +#~ msgid "Radio" +#~ msgstr "Radio" + +#~ msgid "Could not open audio device for mixer control handling." +#~ msgstr "Kunne ikke Ã¥bne lydenhed til hÃ¥ndtering af mikserkontrol." + +#~ msgid "" +#~ "Could not open audio device for mixer control handling. This version of " +#~ "the Open Sound System is not supported by this element." +#~ msgstr "" +#~ "Kunne ikke Ã¥bne lydenhed til hÃ¥ndtering af mikserkontrol. Denne version " +#~ "af Open Sound System er ikke understøttet af dette element." + +#~ msgid "Master" +#~ msgstr "Master" + +#~ msgid "Front" +#~ msgstr "Front" + +#~ msgid "Rear" +#~ msgstr "Bagende" + +#~ msgid "Headphones" +#~ msgstr "Hovedtelefoner" + +#~ msgid "Center" +#~ msgstr "Centrum" + +# Low-frequency effect +#~ msgid "LFE" +#~ msgstr "LFE" + +#~ msgid "Surround" +#~ msgstr "Surround" + +#~ msgid "Side" +#~ msgstr "Side" + +#~ msgid "AUX Out" +#~ msgstr "AUX ud" + +#~ msgid "3D Depth" +#~ msgstr "3D-dybde" + +#~ msgid "3D Center" +#~ msgstr "3D-centrum" + +#~ msgid "3D Enhance" +#~ msgstr "3D-forstærkning" + +#~ msgid "Telephone" +#~ msgstr "Telefon" + +#~ msgid "Video In" +#~ msgstr "Video ind" + +#~ msgid "AUX In" +#~ msgstr "AUX ind" + +#~ msgid "Record Gain" +#~ msgstr "Optag - forhøjelse" + +#~ msgid "Output Gain" +#~ msgstr "Uddata - forhøjelse" + +#~ msgid "Microphone Boost" +#~ msgstr "Mikrofonøgning" + +#~ msgid "Diagnostic" +#~ msgstr "Diagnostik" + +#~ msgid "Bass Boost" +#~ msgstr "Bas-øgning" + +#~ msgid "Playback Ports" +#~ msgstr "Afspilningsporte" + +#~ msgid "Input" +#~ msgstr "Inddata" + +#~ msgid "Monitor Source" +#~ msgstr "Skærmkilde" + +#~ msgid "Keyboard Beep" +#~ msgstr "Tastaturbeep" + +#~ msgid "Simulate Stereo" +#~ msgstr "Simuler stereo" + +#~ msgid "Stereo" +#~ msgstr "Stereo" + +#~ msgid "Surround Sound" +#~ msgstr "Surroundlyd" + +#~ msgid "Microphone Gain" +#~ msgstr "Mikrofonforhøjelse" + +#~ msgid "Speaker Source" +#~ msgstr "Højtalerkilde" + +#~ msgid "Microphone Source" +#~ msgstr "Mikrofonkilde" + +#~ msgid "Jack" +#~ msgstr "Jack" + +#~ msgid "Center / LFE" +#~ msgstr "Center / LFE" + +#~ msgid "Stereo Mix" +#~ msgstr "Stereomiks" + +#~ msgid "Mono Mix" +#~ msgstr "Monomiks" + +#~ msgid "Input Mix" +#~ msgstr "Inddatamiks" + +#~ msgid "Microphone 1" +#~ msgstr "Mikrofon 1" + +#~ msgid "Microphone 2" +#~ msgstr "Mikrofon 2" + +#~ msgid "Digital Out" +#~ msgstr "Digital ud" + +#~ msgid "Digital In" +#~ msgstr "Digital ind" + +#~ msgid "HDMI" +#~ msgstr "HDMI" + +#~ msgid "Modem" +#~ msgstr "Modem" + +#~ msgid "Handset" +#~ msgstr "HÃ¥ndsæt" + +#~ msgid "Other" +#~ msgstr "Andet" + +#~ msgid "None" +#~ msgstr "Ingen" + +#~ msgid "On" +#~ msgstr "Tænd" + +#~ msgid "Off" +#~ msgstr "Sluk" + +#~ msgid "Mute" +#~ msgstr "Slukket" + +#~ msgid "Fast" +#~ msgstr "Hurtig" + +#~ msgid "Very Low" +#~ msgstr "Meget lav" + +#~ msgid "Low" +#~ msgstr "Lav" + +#~ msgid "Medium" +#~ msgstr "Mellem" + +#~ msgid "High" +#~ msgstr "Høj" + +#~ msgid "Very High" +#~ msgstr "Meget høj" + +#~ msgid "Production" +#~ msgstr "Produktion" + +#~ msgid "Front Panel Microphone" +#~ msgstr "Frontpanelmikrofon" + +#~ msgid "Front Panel Line In" +#~ msgstr "Frontpanels linje ind" + +#~ msgid "Front Panel Headphones" +#~ msgstr "Frontpanels hovedtelefoner" + +#~ msgid "Front Panel Line Out" +#~ msgstr "Frontpanels linje ud" + +#~ msgid "Green Connector" +#~ msgstr "Grøn forbindelse " + +#~ msgid "Pink Connector" +#~ msgstr "Lyserød forbindelse" + +#~ msgid "Blue Connector" +#~ msgstr "BlÃ¥ forbindelse" + +#~ msgid "White Connector" +#~ msgstr "Hvid forbindelse" + +#~ msgid "Black Connector" +#~ msgstr "Sort forbindelse" + +#~ msgid "Gray Connector" +#~ msgstr "GrÃ¥ forbindelse" + +#~ msgid "Orange Connector" +#~ msgstr "Orange forbindelse" + +#~ msgid "Red Connector" +#~ msgstr "Rød forbindelse" + +#~ msgid "Yellow Connector" +#~ msgstr "Gul forbindelse" + +#~ msgid "Green Front Panel Connector" +#~ msgstr "Grøn frontpanelforbindelse" + +#~ msgid "Pink Front Panel Connector" +#~ msgstr "Lyserød frontpanelforbindelse" + +#~ msgid "Blue Front Panel Connector" +#~ msgstr "BlÃ¥ frontpanelforbindelse" + +#~ msgid "White Front Panel Connector" +#~ msgstr "Hvid frontpanelforbindelse" + +#~ msgid "Black Front Panel Connector" +#~ msgstr "Sort frontpanelforbindelse" + +#~ msgid "Gray Front Panel Connector" +#~ msgstr "GrÃ¥ frontpanelforbindelse" + +#~ msgid "Orange Front Panel Connector" +#~ msgstr "Orange frontpanelforbindelse" + +#~ msgid "Red Front Panel Connector" +#~ msgstr "Rød frontpanelforbindelse" + +#~ msgid "Yellow Front Panel Connector" +#~ msgstr "Gul frontpanelforbindelse" + +#~ msgid "Spread Output" +#~ msgstr "Spred uddata" + +#~ msgid "Downmix" +#~ msgstr "Downmix" + +#~ msgid "Virtual Mixer Input" +#~ msgstr "Virtuel mikserinddata" + +#~ msgid "Virtual Mixer Output" +#~ msgstr "Virtuel mikseruddata" + +#~ msgid "Virtual Mixer Channels" +#~ msgstr "Virtuel mikserkanaler" + +#~ msgid "%s %d Function" +#~ msgstr "%s %d funktion" + +#~ msgid "%s Function" +#~ msgstr "%s funktion" + +#~ msgid "Error reading %d bytes on device '%s'." +#~ msgstr "Fejl ved læsning af %d byte pÃ¥ enhed '%s'." + +#~ msgid "Could not enqueue buffers in device '%s'." +#~ msgstr "Kunne ikke sætte mellemlager fra enhed '%s' i kø." + +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Kunne ikke skabe kontakt til lyd-serveren" + +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Listning af lydservers egenskaber fejlede" diff --git a/po/de.gmo b/po/de.gmo index 8de2d4f82b378f4a158c3fb57137ba0ce8327375..92c5642c2f6e1b7bf146698b019d835c44b33cfc 100644 Binary files a/po/de.gmo and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po index 99e4d5c22c88f023287c8f3f6867bbc7bc6b5b0a..fa77af83d3f2de38d46c53824c049de6d6be3e3e 100644 --- a/po/de.po +++ b/po/de.po @@ -1,4 +1,4 @@ -# German translations for gst-plugins-good 1.0.3 +# German translations for gst-plugins-bad # Copyright (C) 2007 Free Software Foundation, Inc. # This file is distributed under the same license as the gst-plugins-good package. # @@ -8,15 +8,15 @@ # Pipeline = Weiterleitung # Stream = Strom # mixer = -# Christian Kirbach <christian.kirbach@gmail.com>, 2010, 2011, 2012. +# Christian Kirbach <christian.kirbach@googlemail.com>, 2010, 2011. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-11-28 19:56+0100\n" -"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2011-01-21 22:36+0100\n" +"Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" "Language: de\n" "MIME-Version: 1.0\n" @@ -26,17 +26,23 @@ msgstr "" "X-Poedit-Country: GERMANY\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Dekodieren des JPEG-Bildes schlug fehl" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "»%s« durch »%s«" -msgid "Failed to decode JPEG image" -msgstr "Dekodieren des JPEG-Bildes schlug fehl" - msgid "Could not connect to server" msgstr "Verbindung zum Server konnte nicht hergestellt werden" +msgid "No URL set." +msgstr "Keine Adresse festgelegt." + msgid "Server does not support seeking." msgstr "Suchlauf wird nicht vom Server unterstützt." @@ -58,9 +64,6 @@ msgstr "" msgid "Server sent bad data." msgstr "Server gab unerwartete Daten zurück." -msgid "No URL set." -msgstr "Keine Adresse festgelegt." - msgid "Internal data stream error." msgstr "Interner Datenstromfehler." @@ -73,6 +76,9 @@ msgstr "Diese Datei enthält keine abspielbaren Ströme." msgid "This file is invalid and cannot be played." msgstr "Diese Datei ist ungültig und kann nicht wiedergegeben werden." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Diese Datei ist beschädigt und kann nicht wiedergegeben werden." @@ -127,16 +133,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Das Audio-Gerät konnte nicht zur Wiedergabe geöffnet werden. " -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Das Audio-Gerät konnte nicht zur Aufnahme geöffnet werden. Sie haben nicht " -"die Berechtigungen zum Öffnen des Gerätes." - -msgid "Could not open audio device for recording." -msgstr "Das Audio-Gerät konnte nicht zur Aufnahme geöffnet werden. " - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -156,6 +152,45 @@ msgstr "Aufnahme wird von diesem Audio-Gerät nicht unterstützt." msgid "Error recording from audio device." msgstr "Fehler beim Aufnehmen vom Audio-Gerät." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Das Audio-Gerät konnte nicht zur Aufnahme geöffnet werden. Sie haben nicht " +"die Berechtigungen zum Öffnen des Gerätes." + +msgid "Could not open audio device for recording." +msgstr "Das Audio-Gerät konnte nicht zur Aufnahme geöffnet werden. " + +msgid "Record Source" +msgstr "Aufnahmequelle" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "Line-Eingang" + +msgid "Internal CD" +msgstr "Interne CD" + +msgid "SPDIF In" +msgstr "SPDIF-Eingang" + +msgid "AUX 1 In" +msgstr "AUX-Eingang 1" + +msgid "AUX 2 In" +msgstr "AUX-Eingang 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Schleife" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Schleife" + msgid "Volume" msgstr "Lautstärke" @@ -166,14 +201,14 @@ msgid "Monitor" msgstr "Monitor" msgid "Built-in Speaker" -msgstr "Eingebauter Lautsprecher" +msgstr "Eingebaute Lautsprecher" msgid "Headphone" msgstr "Kopfhörer" # Hier ist mir noch nichts Besseres eingefallen. msgid "Line Out" -msgstr "Ausgang" +msgstr "Line-Ausgang" msgid "SPDIF Out" msgstr "SPDIF-Ausgang" @@ -199,21 +234,23 @@ msgstr "" msgid "Could not map buffers from device '%s'" msgstr "Die Puffer des Gerätes »%s« konnten nicht geholt werden." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "Der Treiber von Gerät »%s« unterstützt nicht die EA-Methode %d" +msgstr "" +"Der Treiber von Gerät »%s« unterstützt keine der bekannten Aufnahmemethoden." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." -msgstr "Der Treiber von Gerät »%s« unterstützt keine bekannte EA-Methode" +msgstr "" +"Der Treiber von Gerät »%s« unterstützt keine der bekannten Aufnahmemethoden." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "Gerät »%s« unterstützt keine Videoaufnahme" +msgstr "»%s« ist kein Wiedergabegerät." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "Gerät »%s« ist belegt" +msgstr "»%s« ist kein Wiedergabegerät." #, c-format msgid "Device '%s' cannot capture at %dx%d" @@ -227,45 +264,50 @@ msgstr "Das angegebene Format kann nicht vom Gerät »%s« ausgelesen werden" msgid "Could not get parameters on device '%s'" msgstr "Parameter konnten nicht von Gerät »%s« ausgelesen werden" +#, fuzzy msgid "Video device did not accept new frame rate setting." msgstr "" -"Das Video-Eingabegerät akzeptierte nicht die neue Einstellung zur " -"Bildwiederholungsrate." +"Vom Video-Eingabegerät wurde die Einstellung zur Bildwiederholungsrate nicht " +"akzeptiert." msgid "Video device could not create buffer pool." -msgstr "Das Videogerät konnte keinen Puffer-Pool erstellen" +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" -"Auslesen der Einstellungen von Empfänger »%d« auf Gerät »%s« schlug fehl." +"Auslesen der Einstellungen der Senderwahl »%d« auf Gerät »%s« schlug fehl." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Fehler beim Ermitteln der Funktionsmerkmale von Gerät »%s«." +msgstr "Fehler beim Lesen von %d Bytes von Gerät »%s«." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "»%s« ist kein Empfänger." +msgstr "»%s« ist kein Wiedergabegerät." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Empfangen eines Funksignals auf Gerät »%s« schlug fehl." +msgstr "Festlegen der Eingabe »%d« des Geräts »%s« schlug fehl." #, c-format msgid "Failed to set input %d on device %s." msgstr "Festlegen der Eingabe »%d« des Geräts »%s« schlug fehl." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "Ändern des Stummzustands von Gerät »%s« schlug fehl." +msgstr "Auslesen der aktuellen Signalstärke des Geräts »%s« schlug fehl." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Gerät »%s« kann nicht identifiziert werden." #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" -"Fehler beim Bestimmen der Fähigkeiten des Geräts »%s«: Es ist kein »v4l2«-" +"Fehler beim Bestimmen der Fähigkeiten des Gerätes »%s«: Es ist kein »v4l2«-" "Treiber. Ãœberprüfen Sie, ob es ein »v4l1«-Treiber ist." #, c-format @@ -285,10 +327,6 @@ msgstr "Abfragen der Norm auf Gerät »%s« schlug fehl." msgid "Failed getting controls attributes on device '%s'." msgstr "Abfrage der Kontrollattribute auf Gerät »%s« schlug fehl." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Gerät »%s« kann nicht identifiziert werden." - #, c-format msgid "This isn't a device '%s'." msgstr "»%s« ist kein Gerät." @@ -331,12 +369,14 @@ msgid "Failed to set value %d for control %d on device '%s'." msgstr "" "Festlegen des Wertes »%d« der Einstellung »%d« des Geräts »%s« schlug fehl." +# Sendegerät sicherlich nicht, eben eher ein Radio. Warum diese Fehlermeldung beie einem Radiogerät kommen könnte, weiß ich allerdings auch nicht. #, c-format msgid "Failed to get current input on device '%s'. May be it is a radio device" msgstr "" "Auslesen der aktuellen Eingabe auf dem Gerät »%s« schlug fehl. Vielleicht " "ist es ein Funkgerät." +# Sendegerät sicherlich nicht, eben eher ein Radio. Warum diese Fehlermeldung beie einem Radiogerät kommen könnte, weiß ich allerdings auch nicht. #, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" @@ -355,11 +395,15 @@ msgstr "Ein Wechsel der Auflösung zur Laufzeit wird noch nicht unterstützt." msgid "Cannot operate without a clock" msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden." -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Es konnte keine Verbindung zum Audio-Server hergestellt werden" +# »Frame« sollten wir im Zusammenhang mit Videos vielleicht besser so belassen. Habe ich in gnome-subtitles auch so gemacht. +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Unerwartete Frame-Größe von %u anstatt %u wurde erhalten." -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Abfrage der Fähigkeiten des Audio-Servers ist fehlgeschlagen" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Der Versuch Videobilder von Gerät »%s« auszulesen schlug fehl." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "%d Versuche sind fehlgeschlagen. Gerät »%s«. Systemfehler: %s" #~ msgid "Bass" #~ msgstr "Bass" @@ -379,9 +423,6 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden." #~ msgid "Line-in" #~ msgstr "Line-Eingang" -#~ msgid "Microphone" -#~ msgstr "Mikrofon" - #~ msgid "CD" #~ msgstr "CD" @@ -481,21 +522,9 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden." #~ msgid "Telephone" #~ msgstr "Telefon" -#~ msgid "Line In" -#~ msgstr "Line-Eingang" - -#~ msgid "Internal CD" -#~ msgstr "Interne CD" - #~ msgid "Video In" #~ msgstr "Video-Eingang" -#~ msgid "AUX 1 In" -#~ msgstr "AUX-Eingang 1" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX-Eingang 2" - #~ msgid "AUX In" #~ msgstr "AUX-Eingang" @@ -508,9 +537,6 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden." #~ msgid "Microphone Boost" #~ msgstr "Mikrofonverstärkung" -#~ msgid "Loopback" -#~ msgstr "Schleife" - #~ msgid "Diagnostic" #~ msgstr "Zur Diagnose" @@ -523,9 +549,6 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden." #~ msgid "Input" #~ msgstr "Eingang" -#~ msgid "Record Source" -#~ msgstr "Aufnahmequelle" - #~ msgid "Monitor Source" #~ msgstr "Ãœberwachungsquelle" @@ -565,9 +588,6 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden." #~ msgid "Input Mix" #~ msgstr "Eingangs-Mischpult" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF-Eingang" - #~ msgid "Microphone 1" #~ msgstr "Mikrofon 1" @@ -712,21 +732,17 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden." #~ msgid "%s Function" #~ msgstr "%s-Funktion" -# »Frame« sollten wir im Zusammenhang mit Videos vielleicht besser so belassen. Habe ich in gnome-subtitles auch so gemacht. -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Unerwartete Frame-Größe von %u anstatt %u wurde erhalten." - #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "Fehler beim Lesen von %d Bytes auf Gerät »%s«." #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "Auf Gerät »%s« konnten keine Puffer eingereiht werden." -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Der Versuch Videobilder von Gerät »%s« auszulesen schlug fehl." +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Es konnte keine Verbindung zum Audio-Server hergestellt werden" -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "%d Versuche sind fehlgeschlagen. Gerät »%s«. Systemfehler: %s" +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Abfrage der Fähigkeiten des Audio-Servers ist fehlgeschlagen" #~ msgid "" #~ "The buffer type is not supported, or the index is out of bounds, or no " @@ -758,3 +774,108 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden." #~ msgid "Could not get enough buffers from device '%s'." #~ msgstr "Es konnten nicht genug Puffer von Gerät »%s« ausgelesen werden." + +# »Stromaufnahme« klingt nach Energieverbrauch. +#~ msgid "Error starting streaming capture from device '%s'." +#~ msgstr "Fehler beim Start der Aufzeichnung des Stroms von Gerät »%s«." + +#~ msgid "Error stopping streaming capture from device '%s'." +#~ msgstr "Fehler beim Stoppen der Aufzeichnung des Stroms von Gerät »%s«." + +#~ msgid "Describes the selected input element." +#~ msgstr "Beschreibt das ausgewählte Eingabeelement." + +#~ msgid "Describes the selected output element for Audio/Video Conferencing." +#~ msgstr "" +#~ "Beschreibt das ausgewählte Ausgabeelement für Audio/Video-Konferenzen." + +#~ msgid "Describes the selected output element for Music and Movies." +#~ msgstr "Beschreibt das ausgewählte Ausgabeelement für Musik und Videos." + +#~ msgid "Describes the selected output element." +#~ msgstr "Beschreibt das ausgewählte Ausgabeelement." + +# »sink« hatte ich z.B. in Conduit auch mit Ziel übersetzt. +#~ msgid "GStreamer audiosink for Audio/Video Conferencing" +#~ msgstr "Gstreamer-Audioziel für Audio/Video-Konferenzen." + +#~ msgid "GStreamer audiosink for Music and Movies" +#~ msgstr "Gstreamer-Audioziel für Musik und Videos" + +#~ msgid "" +#~ "GStreamer can play audio using any number of output elements. Some " +#~ "possible choices are osssink, esdsink and alsasink. The audiosink can be " +#~ "a partial pipeline instead of just one element." +#~ msgstr "" +#~ "GStreamer kann Klänge mittels einer beliebigen Anzahl von " +#~ "Ausgabeelementen wiedergeben. Einige mögliche Werte sind osssink, esdsink " +#~ "und alsasink. Das Audioziel kann eine teilweise Weiterleitung anstelle " +#~ "eines Elementes sein." + +#~ msgid "" +#~ "GStreamer can play video using any number of output elements. Some " +#~ "possible choices are xvimagesink, ximagesink, sdlvideosink and aasink. " +#~ "The videosink can be a partial pipeline instead of just one element." +#~ msgstr "" +#~ "GStreamer kann Videos mittels einer beliebigen Anzahl von " +#~ "Ausgabeelementen wiedergeben. Einige mögliche Werte sind xvimagesink, " +#~ "ximagesink, sdlvideosink und aasink. Das Videoziel kann eine teilweise " +#~ "Weiterleitung anstelle eines Elementes sein." + +#~ msgid "" +#~ "GStreamer can put visualization plugins in a pipeline to transform audio " +#~ "stream in video frames. Default is goom but more visualization plugins " +#~ "will be ported soon. The visualization plugin can be a partial pipeline " +#~ "instead of just one element." +#~ msgstr "" +#~ "GStreamer kann Visualisierungs-Plugins in eine Weiterleitung setzen, um " +#~ "Audioströme in Videobilder umzuwandeln. Das Standard-Plugin ist »goom«. " +#~ "Weitere Plugins werden demnächst portiert. Das Visualisierungs-Plugin " +#~ "kann eine teilweise Weiterleitung anstelle eines Elementes sein." + +#~ msgid "" +#~ "GStreamer can record audio using any number of input elements. Some " +#~ "possible choices are osssrc, esdsrc and alsasrc. The audio source can be " +#~ "a partial pipeline instead of just one element." +#~ msgstr "" +#~ "GStreamer kann Klänge mittels einer beliebigen Anzahl von " +#~ "Eingabeelementen aufzeichnen. Einige mögliche Werte sind osssrc, esdsrc " +#~ "und alsasrc. Die Audioquelle kann eine teilweise Weiterleitung anstelle " +#~ "eines Elementes sein." + +#~ msgid "" +#~ "GStreamer can record video from any number of input elements. Some " +#~ "possible choices are v4lsrc and videotestsrc. The video source can be a " +#~ "partial pipeline instead of just one element." +#~ msgstr "" +#~ "GStreamer kann Videos mittels einer beliebigen Anzahl von " +#~ "Eingabeelementen aufzeichnen. Einige mögliche Werte sind v4lsrc und " +#~ "videotestsrc. Die Videoquelle kann eine teilweise Weiterleitung anstelle " +#~ "eines Elementes sein." + +#~ msgid "default GStreamer audio source" +#~ msgstr "Vorgegebene GStreamer-Audioquelle" + +#~ msgid "default GStreamer audiosink" +#~ msgstr "Vorgegebenes GStreamer-Audioziel" + +#~ msgid "default GStreamer video source" +#~ msgstr "Vorgegebene GStreamer-Videoquelle" + +#~ msgid "default GStreamer videosink" +#~ msgstr "Vorgegebenes GStreamer-Videoziel" + +#~ msgid "default GStreamer visualization plugin" +#~ msgstr "Vorgegebenes GStreamer-Visualisierungs-Plugin" + +#~ msgid "description for GStreamer audiosink for Audio/Video Conferencing" +#~ msgstr "Beschreibung der GStreamer-Audioquelle für Audio/Video-Konferenzen" + +#~ msgid "description for GStreamer audiosink for Music and Movies" +#~ msgstr "Beschreibung der GStreamer-Audioquelle für Musik und Videos" + +#~ msgid "description for default GStreamer audiosink" +#~ msgstr "Beschreibung des vorgegebenen GStreamer-Audioziels" + +#~ msgid "description for default GStreamer audiosrc" +#~ msgstr "Beschreibung der vorgegebenen GStreamer-Audioquelle" diff --git a/po/el.gmo b/po/el.gmo index d8bb2a5bd5b2303e27fbcc6d95fc282f2979e34b..7da95be70b549863b40615118b150e6019bb0ccf 100644 Binary files a/po/el.gmo and b/po/el.gmo differ diff --git a/po/el.po b/po/el.po index 340ad4e9da4f0c23fd92ea45469c8bccf8350d61..0ce750e8ff6c0c88b0d82c6c00ec0429513eb5f1 100644 --- a/po/el.po +++ b/po/el.po @@ -3,14 +3,13 @@ # This file is distributed under the same license as the gst-plugins-good package. # Simos Xenitellis <simos.lists@googlemail.com>, 2009. # Michael Kotsarinis <mk73628@gmail.com>, 2010 -# Savvas Radevic <vicedar@gmail.com>, 2012. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 0.10.28.2\n" +"Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-05-05 19:05+0100\n" -"Last-Translator: Savvas Radevic <vicedar@gmail.com>\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2010-10-27 12:16+0200\n" +"Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n" "Language-Team: Greek <team@lists.gnome.gr>\n" "Language: el\n" "MIME-Version: 1.0\n" @@ -19,17 +18,23 @@ msgstr "" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Αποτυχία αποκωδικοποίησης της εικόνας JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "'%s' από '%s'" -msgid "Failed to decode JPEG image" -msgstr "Αποτυχία αποκωδικοποίησης της εικόνας JPEG" - msgid "Could not connect to server" msgstr "Δεν ήταν δυνατή η σÏνδεση με τον διακομιστή" +msgid "No URL set." +msgstr "Δεν οÏίσθηκε URL." + msgid "Server does not support seeking." msgstr "Ο διακομιστής δεν υποστηÏίζει αναζήτηση." @@ -50,9 +55,6 @@ msgstr "" msgid "Server sent bad data." msgstr "Ο διακομιστής Îστειλε λάθος δεδομÎνα." -msgid "No URL set." -msgstr "Δεν οÏίσθηκε URL." - msgid "Internal data stream error." msgstr "ΕσωτεÏικό σφάλμα Ïοής δεδομÎνων." @@ -65,11 +67,14 @@ msgstr "Αυτό το αÏχείο δεν πεÏιÎχει αναπαÏαγώγ msgid "This file is invalid and cannot be played." msgstr "Το αÏχείο αυτό δεν είναι ÎγκυÏο και δεν μποÏεί να αναπαÏαχθεί." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Το αÏχείο αυτό είναι κατεστÏαμμÎνο και δεν μποÏεί να αναπαÏαχθεί. " msgid "Invalid atom size." -msgstr "ΆκυÏο μÎγεθος ατόμου." +msgstr "" msgid "This file is incomplete and cannot be played." msgstr "Το αÏχείο αυτό είναι ανολοκλήÏωτο και δεν μποÏεί να αναπαÏαχθεί." @@ -117,16 +122,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για αναπαÏαγωγή. " -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για εγγÏαφή. Δεν Îχετε τα " -"δικαιώματα να ανοίξετε την συσκευή." - -msgid "Could not open audio device for recording." -msgstr "Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για εγγÏαφή. " - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -146,6 +141,45 @@ msgstr "Αυτή η συσκευή ήχου δεν υποστηÏίζει εγγ msgid "Error recording from audio device." msgstr "Σφάλμα κατά την εγγÏαφή από τη συσκευή ήχου." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για εγγÏαφή. Δεν Îχετε τα " +"δικαιώματα να ανοίξετε την συσκευή." + +msgid "Could not open audio device for recording." +msgstr "Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για εγγÏαφή. " + +msgid "Record Source" +msgstr "Πηγή εγγÏαφής" + +msgid "Microphone" +msgstr "ΜικÏόφωνο" + +msgid "Line In" +msgstr "Είσοδος γÏαμμής" + +msgid "Internal CD" +msgstr "ΕσωτεÏικό CD" + +msgid "SPDIF In" +msgstr "Είσδος SPDIF" + +msgid "AUX 1 In" +msgstr "Είσοδις AUX 1" + +msgid "AUX 2 In" +msgstr "Είσοδος AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "ΑνατÏοφοδότηση" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "ΑνατÏοφοδότηση" + msgid "Volume" msgstr "Ένταση" @@ -244,6 +278,10 @@ msgstr "Αποτυχία ÏÏθμισης εισαγωγής %d στην συσ msgid "Failed to change mute state for device '%s'." msgstr "Αποτυχία ανάγνωσης ισχÏÏ‚ σήματος για την συσκευή '%s'." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Δεν ήταν δυνατή η ταυτοποίηση της συσκευής '%s'." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -269,10 +307,6 @@ msgid "Failed getting controls attributes on device '%s'." msgstr "" "Αποτυχία κατά την ανάγνωση των χαÏακτηÏιστικών ελÎγχου στην συσκευή '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Δεν ήταν δυνατή η ταυτοποίηση της συσκευής '%s'." - #, c-format msgid "This isn't a device '%s'." msgstr "Αυτή δεν είναι μια συκευή '%s'." @@ -322,16 +356,16 @@ msgstr "" "Αποτυχία ανάγνωσης της Ï„ÏÎχουσας εισαγωγής στην συσκευή '%s'. Πιθανόν να " "είναι μια συσκευή Ïάδιο" -#, c-format +#, fuzzy, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" -"Αποτυχία ανάγνωσης της Ï„ÏÎχουσας εξόδου στην συσκευή '%s'. Πιθανόν να είναι " -"μια συσκευή Ïάδιο" +"Αποτυχία ανάγνωσης της Ï„ÏÎχουσας εισαγωγής στην συσκευή '%s'. Πιθανόν να " +"είναι μια συσκευή Ïάδιο" -#, c-format +#, fuzzy, c-format msgid "Failed to set output %d on device %s." -msgstr "Αποτυχία οÏÎ¹ÏƒÎ¼Î¿Ï ÎµÎ¾ÏŒÎ´Î¿Ï… %d στην συσκευή %s." +msgstr "Αποτυχία ÏÏθμισης εισαγωγής %d στην συσκευή %s." msgid "Changing resolution at runtime is not yet supported." msgstr "" @@ -340,11 +374,15 @@ msgstr "" msgid "Cannot operate without a clock" msgstr "Δεν είναι δυνατή η λειτουÏγία χωÏίς Ïολόι " -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Δεν ήταν δυνατή η σÏνδεση με τον διακομιστή ήχου" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "ΑπÏοσδόκητο μÎγεθος πλαισίου από %u αντί του %u" -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Αποτυχία αναζήτησης των δυνατοτήτων του διακομιστή ήχου" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Αποτυχία ανάγνωσης πλαισίων βίντεο από την συσκευή '%s'." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "" +#~ "Αποτυχία Îπειτα από %d Ï€Ïοσπάθειες. συσκευή %s. σφάλμα συστήματος: %s" #~ msgid "Bass" #~ msgstr "Μπάσα" @@ -364,9 +402,6 @@ msgstr "Δεν είναι δυνατή η λειτουÏγία χωÏίς Ïολ #~ msgid "Line-in" #~ msgstr "ΓÏαμμή-εισόδου" -#~ msgid "Microphone" -#~ msgstr "ΜικÏόφωνο" - #~ msgid "CD" #~ msgstr "CD" @@ -467,21 +502,9 @@ msgstr "Δεν είναι δυνατή η λειτουÏγία χωÏίς Ïολ #~ msgid "Telephone" #~ msgstr "ΤηλÎφωνο" -#~ msgid "Line In" -#~ msgstr "Είσοδος γÏαμμής" - -#~ msgid "Internal CD" -#~ msgstr "ΕσωτεÏικό CD" - #~ msgid "Video In" #~ msgstr "Είσοδος βίντεο" -#~ msgid "AUX 1 In" -#~ msgstr "Είσοδις AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Είσοδος AUX 2" - #~ msgid "AUX In" #~ msgstr "Είσοδος AUX" @@ -494,9 +517,6 @@ msgstr "Δεν είναι δυνατή η λειτουÏγία χωÏίς Ïολ #~ msgid "Microphone Boost" #~ msgstr "Ενίσχυση μικÏοφώνου" -#~ msgid "Loopback" -#~ msgstr "ΑνατÏοφοδότηση" - #~ msgid "Diagnostic" #~ msgstr "Διαγνωστικό" @@ -509,9 +529,6 @@ msgstr "Δεν είναι δυνατή η λειτουÏγία χωÏίς Ïολ #~ msgid "Input" #~ msgstr "Είσοδος" -#~ msgid "Record Source" -#~ msgstr "Πηγή εγγÏαφής" - #~ msgid "Monitor Source" #~ msgstr "ΠαÏακολοÏθηση πηγής" @@ -551,9 +568,6 @@ msgstr "Δεν είναι δυνατή η λειτουÏγία χωÏίς Ïολ #~ msgid "Input Mix" #~ msgstr "Μίξη εισόδου" -#~ msgid "SPDIF In" -#~ msgstr "Είσδος SPDIF" - #~ msgid "Microphone 1" #~ msgstr "ΜικÏόφωνο 1" @@ -698,8 +712,11 @@ msgstr "Δεν είναι δυνατή η λειτουÏγία χωÏίς Ïολ #~ msgid "%s Function" #~ msgstr "ΛειτουÏγία %s" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "ΑπÏοσδόκητο μÎγεθος πλαισίου από %u αντί του %u" +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Δεν ήταν δυνατή η σÏνδεση με τον διακομιστή ήχου" + +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Αποτυχία αναζήτησης των δυνατοτήτων του διακομιστή ήχου" #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "Σφάλμα κατά την ανάγνωση %d bytes στην συσκευή '%s'." @@ -707,13 +724,6 @@ msgstr "Δεν είναι δυνατή η λειτουÏγία χωÏίς Ïολ #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "Αδυναμία θÎσης σε σειÏά των buffer στη συσκευή '%s'." -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Αποτυχία ανάγνωσης πλαισίων βίντεο από την συσκευή '%s'." - -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "" -#~ "Αποτυχία Îπειτα από %d Ï€Ïοσπάθειες. συσκευή %s. σφάλμα συστήματος: %s" - #~ msgid "Describes the selected input element." #~ msgstr "ΠεÏιγÏάφει το επιλεγμÎνο στοιχείο εισαγωγής." diff --git a/po/en_GB.gmo b/po/en_GB.gmo index dda5e46ca3c5c010fb06191bf731f286829337c3..f643630259d3b0015b76b1148aba766d3e5a4aa8 100644 Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ diff --git a/po/en_GB.po b/po/en_GB.po index d068dcc3d54d87c3e8f31d1e325959c0c91e2d7a..03a513af6c2a50f6fc6f597814e731d4ad7782b1 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins 0.8.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2004-04-26 10:41-0400\n" "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n" "Language-Team: English (British) <en_gb@li.org>\n" @@ -15,18 +15,24 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#. TRANSLATORS: 'song title' by 'artist name' -#, c-format -msgid "'%s' by '%s'" +msgid "Jack server not found" msgstr "" msgid "Failed to decode JPEG image" msgstr "" +#. TRANSLATORS: 'song title' by 'artist name' +#, c-format +msgid "'%s' by '%s'" +msgstr "" + #, fuzzy msgid "Could not connect to server" msgstr "Could not close control device \"%s\"." +msgid "No URL set." +msgstr "" + #, fuzzy msgid "Server does not support seeking." msgstr "Your oss device could not be probed correctly" @@ -49,9 +55,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "" @@ -64,6 +67,9 @@ msgstr "" msgid "This file is invalid and cannot be played." msgstr "" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "" @@ -108,6 +114,23 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Could not open audio device \"%s\" for writing." +msgid "" +"Could not open audio device for playback. This version of the Open Sound " +"System is not supported by this element." +msgstr "" + +msgid "Playback is not supported by this audio device." +msgstr "" + +msgid "Audio playback error." +msgstr "" + +msgid "Recording is not supported by this audio device." +msgstr "" + +msgid "Error recording from audio device." +msgstr "" + msgid "" "Could not open audio device for recording. You don't have permission to open " "the device." @@ -117,21 +140,33 @@ msgstr "" msgid "Could not open audio device for recording." msgstr "Could not open CD device for reading." -msgid "" -"Could not open audio device for playback. This version of the Open Sound " -"System is not supported by this element." +#, fuzzy +msgid "Record Source" +msgstr "Record" + +msgid "Microphone" +msgstr "Microphone" + +#, fuzzy +msgid "Line In" +msgstr "Line-in" + +msgid "Internal CD" msgstr "" -msgid "Playback is not supported by this audio device." +msgid "SPDIF In" msgstr "" -msgid "Audio playback error." +msgid "AUX 1 In" msgstr "" -msgid "Recording is not supported by this audio device." +msgid "AUX 2 In" msgstr "" -msgid "Error recording from audio device." +msgid "Codec Loopback" +msgstr "" + +msgid "SunVTS Loopback" msgstr "" msgid "Volume" @@ -232,6 +267,10 @@ msgstr "Could not close audio device \"%s\"." msgid "Failed to change mute state for device '%s'." msgstr "Could not get buffers from device \"%s\"." +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "Could not write to device \"%s\"." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -254,10 +293,6 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "Could not write to device \"%s\"." - #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -339,9 +374,6 @@ msgstr "" #~ msgid "Line-in" #~ msgstr "Line-in" -#~ msgid "Microphone" -#~ msgstr "Microphone" - #~ msgid "CD" #~ msgstr "CD" @@ -402,10 +434,6 @@ msgstr "" #~ msgid "Side" #~ msgstr "Video" -#, fuzzy -#~ msgid "Line In" -#~ msgstr "Line-in" - #, fuzzy #~ msgid "Video In" #~ msgstr "Video" @@ -422,10 +450,6 @@ msgstr "" #~ msgid "Microphone Boost" #~ msgstr "Microphone" -#, fuzzy -#~ msgid "Record Source" -#~ msgstr "Record" - #, fuzzy #~ msgid "Monitor Source" #~ msgstr "Monitor" diff --git a/po/eo.gmo b/po/eo.gmo index 3bcff55a99829da3c916ba89b695ca1a83b3fef5..0c54fa6fc5f1b629c2898cdfd06ba1b5fc41c38b 100644 Binary files a/po/eo.gmo and b/po/eo.gmo differ diff --git a/po/eo.po b/po/eo.po index 8b38f36347a33adfce2f5d9582e0b341d9c404ef..32c0067c75b3be5cecb8b6783f2676bcf343aafa 100644 --- a/po/eo.po +++ b/po/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-06-04 21:48+0100\n" "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n" @@ -17,17 +17,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "'%s' de '%s'" -msgid "Failed to decode JPEG image" -msgstr "" - msgid "Could not connect to server" msgstr "Ne eblis konekti al servilo" +msgid "No URL set." +msgstr "" + msgid "Server does not support seeking." msgstr "" @@ -47,9 +53,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "Interna datumflu-eraro." @@ -62,6 +65,9 @@ msgstr "" msgid "This file is invalid and cannot be played." msgstr "" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "" @@ -107,6 +113,23 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Ne eblis malfermi la sonaparaton por reproduktado." +msgid "" +"Could not open audio device for playback. This version of the Open Sound " +"System is not supported by this element." +msgstr "" + +msgid "Playback is not supported by this audio device." +msgstr "" + +msgid "Audio playback error." +msgstr "" + +msgid "Recording is not supported by this audio device." +msgstr "" + +msgid "Error recording from audio device." +msgstr "" + msgid "" "Could not open audio device for recording. You don't have permission to open " "the device." @@ -115,21 +138,32 @@ msgstr "" msgid "Could not open audio device for recording." msgstr "Ne eblis malfermi sonaparaton por registrado." -msgid "" -"Could not open audio device for playback. This version of the Open Sound " -"System is not supported by this element." +#, fuzzy +msgid "Record Source" +msgstr "Registri" + +msgid "Microphone" +msgstr "Mikrofono" + +msgid "Line In" msgstr "" -msgid "Playback is not supported by this audio device." +msgid "Internal CD" msgstr "" -msgid "Audio playback error." +msgid "SPDIF In" msgstr "" -msgid "Recording is not supported by this audio device." +msgid "AUX 1 In" msgstr "" -msgid "Error recording from audio device." +msgid "AUX 2 In" +msgstr "" + +msgid "Codec Loopback" +msgstr "" + +msgid "SunVTS Loopback" msgstr "" msgid "Volume" @@ -229,6 +263,10 @@ msgstr "" msgid "Failed to change mute state for device '%s'." msgstr "" +#, c-format +msgid "Cannot identify device '%s'." +msgstr "" + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -251,10 +289,6 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "" - #, c-format msgid "This isn't a device '%s'." msgstr "Tio ne estas '%s'-aparato." @@ -323,18 +357,12 @@ msgstr "" #~ msgid "Speaker" #~ msgstr "Parolilo" -#~ msgid "Microphone" -#~ msgstr "Mikrofono" - #~ msgid "CD" #~ msgstr "KD" #~ msgid "Mixer" #~ msgstr "Miksilo" -#~ msgid "Record" -#~ msgstr "Registri" - #~ msgid "Video" #~ msgstr "Video" diff --git a/po/es.gmo b/po/es.gmo index b6f775a4730dfd0e9da5d7bbade94ce1413fdab9..6cea3468e38ffd4483515e7bf79fe21af59f5963 100644 Binary files a/po/es.gmo and b/po/es.gmo differ diff --git a/po/es.po b/po/es.po index f8bf2b7daba81f9ba3e364368988a60eeb034298..f88d231f450d71ea65d2683a1304d1b780f2364e 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-02-12 18:30+0100\n" "Last-Translator: Jorge González González <aloriel@gmail.com>\n" "Language-Team: Spanish <es@li.org>\n" @@ -18,17 +18,23 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Falló al decodificar la imagen JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "«%s» por «%s»" -msgid "Failed to decode JPEG image" -msgstr "Falló al decodificar la imagen JPEG" - msgid "Could not connect to server" msgstr "No se pudo conectar con el servidor" +msgid "No URL set." +msgstr "No existe un URL establecido." + msgid "Server does not support seeking." msgstr "El servidor no soporta la búsqueda." @@ -49,9 +55,6 @@ msgstr "" msgid "Server sent bad data." msgstr "El servidor envió datos erróneos." -msgid "No URL set." -msgstr "No existe un URL establecido." - msgid "Internal data stream error." msgstr "Error interno de flujo de datos." @@ -64,6 +67,9 @@ msgstr "Este archivo no contiene flujos reproducibles." msgid "This file is invalid and cannot be played." msgstr "Este archivo no es válido y no se puede reproducir." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Este archivo está corrupto y no se puede reproducir." @@ -118,16 +124,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "No se pudo abrir el dispositivo para reproducir." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"No se pudo abrir el dispositivo de sonido para grabar. No tiene permisos " -"para abrir el dispositivo." - -msgid "Could not open audio device for recording." -msgstr "No se pudo abrir el dispositivo para grabar." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -148,6 +144,45 @@ msgstr "Este dispositivo de sonido no soporta la grabación." msgid "Error recording from audio device." msgstr "Error al grabar del dispositivo de sonido." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"No se pudo abrir el dispositivo de sonido para grabar. No tiene permisos " +"para abrir el dispositivo." + +msgid "Could not open audio device for recording." +msgstr "No se pudo abrir el dispositivo para grabar." + +msgid "Record Source" +msgstr "Origen de la grabación" + +msgid "Microphone" +msgstr "Micrófono" + +msgid "Line In" +msgstr "LÃnea de entrada" + +msgid "Internal CD" +msgstr "CD interno" + +msgid "SPDIF In" +msgstr "Entrada S/PDIF" + +msgid "AUX 1 In" +msgstr "Entrada AUX 1" + +msgid "AUX 2 In" +msgstr "Entrada AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Bucle local" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Bucle local" + msgid "Volume" msgstr "Volumen" @@ -255,6 +290,10 @@ msgstr "Falló al establecer la entrada %d en el dispositivo %s." msgid "Failed to change mute state for device '%s'." msgstr "Falló al obtener la potencia de la señal para el dispositivo «%s»." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "No se puede identificar el dispositivo «%s»." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -280,10 +319,6 @@ msgstr "Falló al consultar la norma para el dispositivo «%s»." msgid "Failed getting controls attributes on device '%s'." msgstr "Falló al obtener los atributos de control en el dispositivo «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "No se puede identificar el dispositivo «%s»." - #, c-format msgid "This isn't a device '%s'." msgstr "Esto no es un dispositivo «%s»." @@ -379,9 +414,6 @@ msgstr "No se puede operar sin reloj" #~ msgid "Line-in" #~ msgstr "LÃnea de entrada" -#~ msgid "Microphone" -#~ msgstr "Micrófono" - #~ msgid "CD" #~ msgstr "CD" @@ -482,21 +514,9 @@ msgstr "No se puede operar sin reloj" #~ msgid "Telephone" #~ msgstr "TeleÌfono" -#~ msgid "Line In" -#~ msgstr "LÃnea de entrada" - -#~ msgid "Internal CD" -#~ msgstr "CD interno" - #~ msgid "Video In" #~ msgstr "Entrada de vÃdeo" -#~ msgid "AUX 1 In" -#~ msgstr "Entrada AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Entrada AUX 2" - #~ msgid "AUX In" #~ msgstr "Entrada AUX" @@ -509,9 +529,6 @@ msgstr "No se puede operar sin reloj" #~ msgid "Microphone Boost" #~ msgstr "Aumento del micrófono" -#~ msgid "Loopback" -#~ msgstr "Bucle local" - #~ msgid "Diagnostic" #~ msgstr "DiagnoÌstico" @@ -524,9 +541,6 @@ msgstr "No se puede operar sin reloj" #~ msgid "Input" #~ msgstr "Entrada" -#~ msgid "Record Source" -#~ msgstr "Origen de la grabación" - #~ msgid "Monitor Source" #~ msgstr "Monitor de origen" @@ -566,9 +580,6 @@ msgstr "No se puede operar sin reloj" #~ msgid "Input Mix" #~ msgstr "Mezclador de entrada" -#~ msgid "SPDIF In" -#~ msgstr "Entrada S/PDIF" - #~ msgid "Microphone 1" #~ msgstr "Micrófono 1" diff --git a/po/eu.gmo b/po/eu.gmo index cfc0449eaaf3d75b586edc72c9ee74c1a7e04283..2ca5f8b54873591c2be1a83fe74caf1486ea962c 100644 Binary files a/po/eu.gmo and b/po/eu.gmo differ diff --git a/po/eu.po b/po/eu.po index a80410ad9d2463db529fc7158c967e9583a8c688..0b1ac4557cc7b159f9c66a680a45d26faba894f6 100644 --- a/po/eu.po +++ b/po/eu.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.18.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2010-03-25 12:37+0100\n" "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n" "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n" @@ -19,17 +19,23 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Huts egin du JPEG irudia deskodetzean" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "'%s' - '%s'" -msgid "Failed to decode JPEG image" -msgstr "Huts egin du JPEG irudia deskodetzean" - msgid "Could not connect to server" msgstr "Ezin izan da konektatu zerbitzariarekin" +msgid "No URL set." +msgstr "" + msgid "Server does not support seeking." msgstr "" @@ -51,9 +57,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "Datu-korrontearen barne-errorea." @@ -68,6 +71,9 @@ msgstr "Fitxategi horretan ez dago erreproduzi daitekeen korronterik." msgid "This file is invalid and cannot be played." msgstr "Fitxategi hau ez da baliozkoa eta ezin da erreproduzitu." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Fitxategi hau hondatua dago, eta ezin da erreproduzitu." @@ -121,16 +127,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Ezin izan da audioaren gailua ireki erreproduzitzeko." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Ezin izan da audioaren gailua ireki grabatzeko. Ez duzu baimenik gailua " -"irekitzeko." - -msgid "Could not open audio device for recording." -msgstr "Ezin izan da audioaren gailua ireki grabatzeko." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -150,6 +146,45 @@ msgstr "Audio gailu honek ez du grabatzea onartzen." msgid "Error recording from audio device." msgstr "Errorea audioko gailutik grabatzean." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Ezin izan da audioaren gailua ireki grabatzeko. Ez duzu baimenik gailua " +"irekitzeko." + +msgid "Could not open audio device for recording." +msgstr "Ezin izan da audioaren gailua ireki grabatzeko." + +msgid "Record Source" +msgstr "Grabazioaren iturburua" + +msgid "Microphone" +msgstr "Mikrofonoa" + +msgid "Line In" +msgstr "Sarrerako linea" + +msgid "Internal CD" +msgstr "Barneko CDa" + +msgid "SPDIF In" +msgstr "SPDIF sarrera" + +msgid "AUX 1 In" +msgstr "1. sarrera lagungarria" + +msgid "AUX 2 In" +msgstr "2. sarrera lagungarria" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Atzera-begizta" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Atzera-begizta" + msgid "Volume" msgstr "Bolumena" @@ -253,6 +288,10 @@ msgstr "Huts egin du '%2$s' gailuko %1$d. sarrera ezartzean." msgid "Failed to change mute state for device '%s'." msgstr "Huts egin du '%s' gailuaren seinalearen indarra eskuratzean." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Ezin da '%s' gailua identifikatu." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -278,10 +317,6 @@ msgstr "Huts egin du '%s' gailuaren araua kontsultatzean." msgid "Failed getting controls attributes on device '%s'." msgstr "Huts egin dut '%s' gailuaren kontrol-atributuak eskuratzean." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ezin da '%s' gailua identifikatu." - #, c-format msgid "This isn't a device '%s'." msgstr "Hau ez da '%s' gailu bat." @@ -376,9 +411,6 @@ msgstr "Ezin du funtzionatu erlojurik gabe" #~ msgid "Line-in" #~ msgstr "Linea-sarrera" -#~ msgid "Microphone" -#~ msgstr "Mikrofonoa" - #~ msgid "CD" #~ msgstr "CDa" @@ -477,21 +509,9 @@ msgstr "Ezin du funtzionatu erlojurik gabe" #~ msgid "Telephone" #~ msgstr "Telefonoa" -#~ msgid "Line In" -#~ msgstr "Sarrerako linea" - -#~ msgid "Internal CD" -#~ msgstr "Barneko CDa" - #~ msgid "Video In" #~ msgstr "Bideo-sarrera" -#~ msgid "AUX 1 In" -#~ msgstr "1. sarrera lagungarria" - -#~ msgid "AUX 2 In" -#~ msgstr "2. sarrera lagungarria" - #~ msgid "AUX In" #~ msgstr "Sarrera lagungarria" @@ -504,9 +524,6 @@ msgstr "Ezin du funtzionatu erlojurik gabe" #~ msgid "Microphone Boost" #~ msgstr "Mikrofonoaren bultzada" -#~ msgid "Loopback" -#~ msgstr "Atzera-begizta" - #~ msgid "Diagnostic" #~ msgstr "Diagnostikoa" @@ -519,9 +536,6 @@ msgstr "Ezin du funtzionatu erlojurik gabe" #~ msgid "Input" #~ msgstr "Sarrera" -#~ msgid "Record Source" -#~ msgstr "Grabazioaren iturburua" - #~ msgid "Monitor Source" #~ msgstr "Monitorearen iturburua" @@ -561,9 +575,6 @@ msgstr "Ezin du funtzionatu erlojurik gabe" #~ msgid "Input Mix" #~ msgstr "Sarrerako nahasketa" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF sarrera" - #~ msgid "Microphone 1" #~ msgstr "1. mikrofonoa" diff --git a/po/fi.gmo b/po/fi.gmo index 4dd4235ea94607d2f2e7acd739ba25fa3dde77a3..417050c0ee58ed9c66663b931e6341a04a5706c7 100644 Binary files a/po/fi.gmo and b/po/fi.gmo differ diff --git a/po/fi.po b/po/fi.po index cfdf9bcf6aabc7ce80b5dd4f57745aa1ba13bc33..2076b16e59094d28de45cd3b0fc77376031a197e 100644 --- a/po/fi.po +++ b/po/fi.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2010-11-17 23:03+0200\n" "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n" "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" @@ -21,17 +21,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "JPEG-kuvan purku epäonnistui" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "â€%s†artistilta â€%sâ€" -msgid "Failed to decode JPEG image" -msgstr "JPEG-kuvan purku epäonnistui" - msgid "Could not connect to server" msgstr "Palvelimeen ei saatu yhteyttä" +msgid "No URL set." +msgstr "Ei URL:ää asetettuna." + msgid "Server does not support seeking." msgstr "Pavelin ei tue kelausta." @@ -51,9 +57,6 @@ msgstr "Tapahtui verkkovirhe tai palvelin sulki yhteyden yllättäen." msgid "Server sent bad data." msgstr "Palvelin lähetti virheellistä dataa." -msgid "No URL set." -msgstr "Ei URL:ää asetettuna." - msgid "Internal data stream error." msgstr "Sisäisen tietovirran virhe." @@ -68,6 +71,9 @@ msgstr "Tiedosto ei sisällä soitettavia virtoja." msgid "This file is invalid and cannot be played." msgstr "Tiedosto on virheellinen eikä sitä voida esittää." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Tiedosto on vioittunut eikä sitä voida näyttää." @@ -120,16 +126,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Äänilaitetta ei voitu avata toistettavaksi." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Äänilaitetta ei voitu avata nauhoitusta varten. Laitteen avaamiseen ei ole " -"oikeuksia." - -msgid "Could not open audio device for recording." -msgstr "Äänilaitetta ei voitu avata nauhoitusta varten." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -149,6 +145,45 @@ msgstr "Tämä äänilaite ei tue nauhoitusta." msgid "Error recording from audio device." msgstr "Virhe luettaessa äänilaitteelta." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Äänilaitetta ei voitu avata nauhoitusta varten. Laitteen avaamiseen ei ole " +"oikeuksia." + +msgid "Could not open audio device for recording." +msgstr "Äänilaitetta ei voitu avata nauhoitusta varten." + +msgid "Record Source" +msgstr "Nauhoituslähde" + +msgid "Microphone" +msgstr "Mikrofoni" + +msgid "Line In" +msgstr "Linjatulo" + +msgid "Internal CD" +msgstr "Sisäinen CD" + +msgid "SPDIF In" +msgstr "SPDIF sisään" + +msgid "AUX 1 In" +msgstr "AUX 1 sisään" + +msgid "AUX 2 In" +msgstr "AUX 2 sisään" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Takaisinkytkentä" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Takaisinkytkentä" + msgid "Volume" msgstr "Äänenvoimakkuus" @@ -247,6 +282,10 @@ msgstr "Sisääntuloa %d ei voitu asettaa laitteelle %s." msgid "Failed to change mute state for device '%s'." msgstr "Laitteelta â€%s†ei saatu signaalinvoimakkuutta." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Laitetta â€%s†ei voi tunnistaa." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -271,10 +310,6 @@ msgstr "Laitteen â€%s†videostandardia ei voitu kysyä." msgid "Failed getting controls attributes on device '%s'." msgstr "Laitteen â€%s†ohjainattribuutteja ei voitu lukea." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Laitetta â€%s†ei voi tunnistaa." - #, c-format msgid "This isn't a device '%s'." msgstr "Tämä ei ole laite â€%sâ€." @@ -365,9 +400,6 @@ msgstr "Ei voitu toimia ilman kelloa" #~ msgid "Line-in" #~ msgstr "Linjatulo" -#~ msgid "Microphone" -#~ msgstr "Mikrofoni" - #~ msgid "CD" #~ msgstr "CD" @@ -465,21 +497,9 @@ msgstr "Ei voitu toimia ilman kelloa" #~ msgid "Telephone" #~ msgstr "Puhelin" -#~ msgid "Line In" -#~ msgstr "Linjatulo" - -#~ msgid "Internal CD" -#~ msgstr "Sisäinen CD" - #~ msgid "Video In" #~ msgstr "Videotulo" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 sisään" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 sisään" - #~ msgid "AUX In" #~ msgstr "AUX sisään" @@ -492,9 +512,6 @@ msgstr "Ei voitu toimia ilman kelloa" #~ msgid "Microphone Boost" #~ msgstr "Mikrofonitehostin" -#~ msgid "Loopback" -#~ msgstr "Takaisinkytkentä" - #~ msgid "Diagnostic" #~ msgstr "Diagnosointi" @@ -507,9 +524,6 @@ msgstr "Ei voitu toimia ilman kelloa" #~ msgid "Input" #~ msgstr "Sisään" -#~ msgid "Record Source" -#~ msgstr "Nauhoituslähde" - #~ msgid "Monitor Source" #~ msgstr "Tarkkailulähde" @@ -549,9 +563,6 @@ msgstr "Ei voitu toimia ilman kelloa" #~ msgid "Input Mix" #~ msgstr "Sisään Mix" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF sisään" - #~ msgid "Microphone 1" #~ msgstr "Mikrofoni 1" diff --git a/po/fr.gmo b/po/fr.gmo index 0b80dd7b6934541bbd255df06db638164aec1f73..2c7cadfc9c74c9e049acb7bebe7beea0794f67d3 100644 Binary files a/po/fr.gmo and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po index 2e40e637e071ecc67635303648614e8c446c9a22..5e8de841106c074daadb0b4a149ca9436e3bd19e 100644 --- a/po/fr.po +++ b/po/fr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-04-28 09:22+0200\n" "Last-Translator: Claude Paroz <claude@2xlibre.net>\n" "Language-Team: French <traduc@traduc.org>\n" @@ -18,17 +18,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Échec de décodage de l'image JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "« %s » par « %s »" -msgid "Failed to decode JPEG image" -msgstr "Échec de décodage de l'image JPEG" - msgid "Could not connect to server" msgstr "Impossible de se connecter au serveur" +msgid "No URL set." +msgstr "Aucun URL défini." + msgid "Server does not support seeking." msgstr "Le serveur ne gère pas le positionnement." @@ -50,9 +56,6 @@ msgstr "" msgid "Server sent bad data." msgstr "Le serveur a envoyé de mauvaises données." -msgid "No URL set." -msgstr "Aucun URL défini." - msgid "Internal data stream error." msgstr "Erreur interne de flux de données." @@ -65,6 +68,9 @@ msgstr "Ce fichier ne contient aucun flux exploitable." msgid "This file is invalid and cannot be played." msgstr "Ce fichier n'est pas valide et ne peut donc pas être lu." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Ce fichier est corrompu et ne peut pas être lu." @@ -119,16 +125,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Impossible d'ouvrir le périphérique audio pour la lecture." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Impossible d'ouvrir le périphérique audio pour l'enregistrement. Vous n'avez " -"pas les droits nécessaires pour ouvrir le périphérique." - -msgid "Could not open audio device for recording." -msgstr "Impossible d'ouvrir le périphérique audio pour l'enregistrement." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -148,6 +144,45 @@ msgstr "L'enregistrement n'est pas pris en charge par ce périphérique audio." msgid "Error recording from audio device." msgstr "Erreur lors de l'enregistrement à partir du périphérique audio." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Impossible d'ouvrir le périphérique audio pour l'enregistrement. Vous n'avez " +"pas les droits nécessaires pour ouvrir le périphérique." + +msgid "Could not open audio device for recording." +msgstr "Impossible d'ouvrir le périphérique audio pour l'enregistrement." + +msgid "Record Source" +msgstr "Source d'enregistrement" + +msgid "Microphone" +msgstr "Micro" + +msgid "Line In" +msgstr "Entrée ligne" + +msgid "Internal CD" +msgstr "CD interne" + +msgid "SPDIF In" +msgstr "Entrée SPDIF" + +msgid "AUX 1 In" +msgstr "Entrée AUX 1" + +msgid "AUX 2 In" +msgstr "Entrée AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Boucle interne" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Boucle interne" + msgid "Volume" msgstr "Volume" @@ -253,6 +288,10 @@ msgstr "Impossible de définir l'entrée %d du périphérique %s." msgid "Failed to change mute state for device '%s'." msgstr "Impossible d'obtenir la force du signal du périphérique « %s »." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Impossible d'identifier le périphérique « %s »." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -278,10 +317,6 @@ msgstr "Impossible d'obtenir la norme du périphérique « %s »." msgid "Failed getting controls attributes on device '%s'." msgstr "Impossible d'obtenir les attributs de contrôle du périphérique « %s »." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Impossible d'identifier le périphérique « %s »." - #, c-format msgid "This isn't a device '%s'." msgstr "Ceci n'est pas un périphérique « %s »." @@ -379,9 +414,6 @@ msgstr "Impossible de fonctionner sans horloge" #~ msgid "Line-in" #~ msgstr "Entrée ligne" -#~ msgid "Microphone" -#~ msgstr "Micro" - #~ msgid "CD" #~ msgstr "CD" @@ -482,21 +514,9 @@ msgstr "Impossible de fonctionner sans horloge" #~ msgid "Telephone" #~ msgstr "Téléphone" -#~ msgid "Line In" -#~ msgstr "Entrée ligne" - -#~ msgid "Internal CD" -#~ msgstr "CD interne" - #~ msgid "Video In" #~ msgstr "Entrée vidéo" -#~ msgid "AUX 1 In" -#~ msgstr "Entrée AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Entrée AUX 2" - #~ msgid "AUX In" #~ msgstr "Entrée AUX" @@ -509,9 +529,6 @@ msgstr "Impossible de fonctionner sans horloge" #~ msgid "Microphone Boost" #~ msgstr "Amplification micro" -#~ msgid "Loopback" -#~ msgstr "Boucle interne" - #~ msgid "Diagnostic" #~ msgstr "Diagnostic" @@ -524,9 +541,6 @@ msgstr "Impossible de fonctionner sans horloge" #~ msgid "Input" #~ msgstr "Entrée" -#~ msgid "Record Source" -#~ msgstr "Source d'enregistrement" - #~ msgid "Monitor Source" #~ msgstr "Source de moniteur" @@ -566,9 +580,6 @@ msgstr "Impossible de fonctionner sans horloge" #~ msgid "Input Mix" #~ msgstr "Mélangeur d'entrée" -#~ msgid "SPDIF In" -#~ msgstr "Entrée SPDIF" - #~ msgid "Microphone 1" #~ msgstr "Microphone 1" diff --git a/po/gl.gmo b/po/gl.gmo index 12b6c992b96ab859250eef933eb432297d9d71f4..535d774836518f6eaad204c69b22e0ce7e5f7266 100644 Binary files a/po/gl.gmo and b/po/gl.gmo differ diff --git a/po/gl.po b/po/gl.po index 62c1313a63dcb517cd3c9c3d37aa50865697a458..c555201d99d13a6e34bf70d70bb2598c60158d17 100644 --- a/po/gl.po +++ b/po/gl.po @@ -2,34 +2,38 @@ # Copyright (C) 2009 gst-plugins-good's COPYRIGHT HOLDER # This file is distributed under the same license as the gst-plugins-good package. # Fran Diéguez <frandieguez@ubuntu.com>, 2009, 2010, 2011. -# Fran Dieguez <frandieguez@gnome.org>, 2012. +# msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-12-15 03:46+0200\n" -"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2011-01-09 21:20+0100\n" +"Last-Translator: Fran Diéguez <frandieguez@ubuntu.com>\n" "Language-Team: Galician <proxecto@trasno.net>\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Virtaal 0.7.1\n" -"X-Project-Style: gnome\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Produciuse un erro ao descodificar a imaxe JPEG" #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "«%s» por «%s»" -msgid "Failed to decode JPEG image" -msgstr "Produciuse un erro ao descodificar a imaxe JPEG" - msgid "Could not connect to server" msgstr "Non foi posÃbel conectarse ao servidor" +msgid "No URL set." +msgstr "No existe un URL estabelecido." + msgid "Server does not support seeking." msgstr "O servidor non admite a busca." @@ -51,9 +55,6 @@ msgstr "" msgid "Server sent bad data." msgstr "O servidor enviou datos erróneos." -msgid "No URL set." -msgstr "No existe un URL estabelecido." - msgid "Internal data stream error." msgstr "Produciuse un erro no fluxo de datos interno." @@ -66,6 +67,9 @@ msgstr "Este ficheiro non contén ningún fluxo reproducÃbel." msgid "This file is invalid and cannot be played." msgstr "Este ficheiro é incorrecto e non pode reproducirse." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Este ficheiro está danado e non pode reproducirse." @@ -119,16 +123,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Non foi posÃbel abrir o dispositivo de son para a reprodución." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Non foi posÃbel abrir o dispositivo de son para a gravación. Vostede non ten " -"permisos para abrir o dispositivo." - -msgid "Could not open audio device for recording." -msgstr "Non foi posÃbel abrir o dispositivo de son para a gravación." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -148,6 +142,45 @@ msgstr "Este dispositivo de son non admite a gravación." msgid "Error recording from audio device." msgstr "Erro ao gravar do dispositivo de son." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Non foi posÃbel abrir o dispositivo de son para a gravación. Vostede non ten " +"permisos para abrir o dispositivo." + +msgid "Could not open audio device for recording." +msgstr "Non foi posÃbel abrir o dispositivo de son para a gravación." + +msgid "Record Source" +msgstr "Orixe da gravación" + +msgid "Microphone" +msgstr "Micrófono" + +msgid "Line In" +msgstr "Liña de entrada" + +msgid "Internal CD" +msgstr "CD interno" + +msgid "SPDIF In" +msgstr "Entrada SPDIF" + +msgid "AUX 1 In" +msgstr "Entrada AUX 1" + +msgid "AUX 2 In" +msgstr "Entrada AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Bucle local" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Bucle local" + msgid "Volume" msgstr "Volume" @@ -182,75 +215,81 @@ msgstr "Produciuse un erro ao ler %d bytes desde o dispositivo «%s»." #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" msgstr "" -"Produciuse un fallo ao enumerar os formatos de vÃdeo posÃbeis cos que o " -"dispositivo «%s» pode reproducir" #, c-format msgid "Could not map buffers from device '%s'" msgstr "Non foi posÃbel mapear os búferes do dispositivo «%s»" -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "O controlador do dispositivo «%s» non admite o método IO %d" +msgstr "" +"O controlador do dispositivo «%s» non admite ningún método de captura " +"coñecido." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." msgstr "" -"O controlador do dispositivo «%s» non admite calquera método IO coñecido." +"O controlador do dispositivo «%s» non admite ningún método de captura " +"coñecido." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "O dispositivo «%s» non admite a captura de vÃdeo." +msgstr "O dispositivo «%s» non é un dispositivo de captura." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "O dispositivo «%s» está ocupado" +msgstr "O dispositivo «%s» non é un dispositivo de captura." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture at %dx%d" -msgstr "O dispositivo «%s» non pode capturar a %dx%d" +msgstr "O dispositivo «%s» non é un dispositivo de captura." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture in the specified format" -msgstr "O dispositivo «%s» non pode capturar o formato especificado" +msgstr "O dispositivo «%s» non é un dispositivo de captura." #, c-format msgid "Could not get parameters on device '%s'" msgstr "Non foi posÃbel obter os parámetros para o dispositivo «%s»" +#, fuzzy msgid "Video device did not accept new frame rate setting." msgstr "" -"O dispositivo de vÃdeo non acepta a nova configuración de taxa de marcos." +"O dispositivo de entrada de vÃdeo non aceptou o axuste da nova taxa de " +"fotogramas." msgid "Video device could not create buffer pool." -msgstr "O dispositivo de vÃdeo non pode crear un pool de búfer." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" -"Produciuse un erro ao obter as configuracións do sintonizador %d no " -"dispositivo «%s»." +"Produciuse un erro ao configurar o sintonizador %d no dispositivo «%s»." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Produciuse un erro ao ler as capacidades para o dispositivo «%s»." +msgstr "Produciuse un erro ao ler %d bytes desde o dispositivo «%s»." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "O dispositivo «%s» non é un sintonizador." +msgstr "O dispositivo «%s» non é un dispositivo de captura." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Produciuse un fallo ao obter a entrada do radio no dispositivo %s." +msgstr "Produciuse un fallo ao estabelecer a entrada %d no dispositivo %s." #, c-format msgid "Failed to set input %d on device %s." msgstr "Produciuse un fallo ao estabelecer a entrada %d no dispositivo %s." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." msgstr "" -"Produciuse un erro ao cambiar o estado de enmudecido para o dispositivo «%s»." +"Produciuse un erro ao obter a potencia do sinal para o dispositivo «%s»." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Non foi posÃbel identificar o dispositivo «%s»." #, c-format msgid "" @@ -279,10 +318,6 @@ msgid "Failed getting controls attributes on device '%s'." msgstr "" "Produciuse un erro ao obter os atributos de control do dispositivo «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Non foi posÃbel identificar o dispositivo «%s»." - #, c-format msgid "This isn't a device '%s'." msgstr "Este non é un dispositivo «%s»." @@ -354,11 +389,17 @@ msgstr "AÃnda non se admite o cambio de resolución durante a reprodución." msgid "Cannot operate without a clock" msgstr "Non é posÃbel operar sen reloxo" -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Non foi posÃbel estabelecer a conexión co servidor de son" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "ObtÃvose un tamaño de marco de %u non esperado no lugar de %u." -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Produciuse un erro ao consultar as capacidades do servidor de son" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "" +#~ "Produciuse un fallo ao tentar obter cadros de vÃdeo do dispositivo «%s»." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "" +#~ "Prouciuse un fallo despois de %d intentos. Dispositivo %s. Error do " +#~ "sistema: %s" #~ msgid "Bass" #~ msgstr "Baixos" @@ -378,9 +419,6 @@ msgstr "Non é posÃbel operar sen reloxo" #~ msgid "Line-in" #~ msgstr "Liña de entrada" -#~ msgid "Microphone" -#~ msgstr "Micrófono" - #~ msgid "CD" #~ msgstr "CD" @@ -481,21 +519,9 @@ msgstr "Non é posÃbel operar sen reloxo" #~ msgid "Telephone" #~ msgstr "Teléfono" -#~ msgid "Line In" -#~ msgstr "Liña de entrada" - -#~ msgid "Internal CD" -#~ msgstr "CD interno" - #~ msgid "Video In" #~ msgstr "Entrada de vÃdeo" -#~ msgid "AUX 1 In" -#~ msgstr "Entrada AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Entrada AUX 2" - #~ msgid "AUX In" #~ msgstr "Entrada AUX" @@ -508,9 +534,6 @@ msgstr "Non é posÃbel operar sen reloxo" #~ msgid "Microphone Boost" #~ msgstr "Aumento do micrófono" -#~ msgid "Loopback" -#~ msgstr "Bucle local" - #~ msgid "Diagnostic" #~ msgstr "Diagnóstico" @@ -523,9 +546,6 @@ msgstr "Non é posÃbel operar sen reloxo" #~ msgid "Input" #~ msgstr "Entrada" -#~ msgid "Record Source" -#~ msgstr "Orixe da gravación" - #~ msgid "Monitor Source" #~ msgstr "Monitor de orixe" @@ -565,9 +585,6 @@ msgstr "Non é posÃbel operar sen reloxo" #~ msgid "Input Mix" #~ msgstr "Misturador de entrada" -#~ msgid "SPDIF In" -#~ msgstr "Entrada SPDIF" - #~ msgid "Microphone 1" #~ msgstr "Micrófono 1" @@ -712,23 +729,17 @@ msgstr "Non é posÃbel operar sen reloxo" #~ msgid "%s Function" #~ msgstr "Función %s" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "ObtÃvose un tamaño de marco de %u non esperado no lugar de %u." - #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "Produciuse un erro ao ler %d bytes do dispositivo «%s»." #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "Non é posÃbel meter na cola os búferes no dispositivo «%s»." -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "" -#~ "Produciuse un fallo ao tentar obter cadros de vÃdeo do dispositivo «%s»." +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Non foi posÃbel estabelecer a conexión co servidor de son" -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "" -#~ "Prouciuse un fallo despois de %d intentos. Dispositivo %s. Error do " -#~ "sistema: %s" +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Produciuse un erro ao consultar as capacidades do servidor de son" #~ msgid "Describes the selected input element." #~ msgstr "Describe o elemento de entrada seleccionado." diff --git a/po/gst-plugins-good-1.0.pot b/po/gst-plugins-good-1.0.pot index 1fe83b9a4e869601c4792e89b2bf0314e6acaa0e..baa67e4b271c06e998361b1ea92e8bab0dddcb46 100644 --- a/po/gst-plugins-good-1.0.pot +++ b/po/gst-plugins-good-1.0.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.8\n" +"Project-Id-Version: gst-plugins-good 1.1.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,148 +16,146 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#. TRANSLATORS: 'song title' by 'artist name' -#: ext/pulse/pulsesink.c:2787 -#, c-format -msgid "'%s' by '%s'" +#: ext/jack/gstjackaudiosink.c:358 ext/jack/gstjackaudiosrc.c:366 +msgid "Jack server not found" msgstr "" #: ext/jpeg/gstjpegdec.c:251 msgid "Failed to decode JPEG image" msgstr "" +#. TRANSLATORS: 'song title' by 'artist name' +#: ext/pulse/pulsesink.c:3081 +#, c-format +msgid "'%s' by '%s'" +msgstr "" + #: ext/shout2/gstshout2.c:549 msgid "Could not connect to server" msgstr "" -#: ext/soup/gstsouphttpsrc.c:817 +#: ext/soup/gstsouphttpsrc.c:654 +msgid "No URL set." +msgstr "" + +#: ext/soup/gstsouphttpsrc.c:880 msgid "Server does not support seeking." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1044 +#: ext/soup/gstsouphttpsrc.c:1119 msgid "Could not resolve server name." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1050 +#: ext/soup/gstsouphttpsrc.c:1125 msgid "Could not establish connection to server." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1055 +#: ext/soup/gstsouphttpsrc.c:1130 msgid "Secure connection setup failed." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1060 +#: ext/soup/gstsouphttpsrc.c:1135 msgid "" "A network error occured, or the server closed the connection unexpectedly." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1066 +#: ext/soup/gstsouphttpsrc.c:1141 msgid "Server sent bad data." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1213 -msgid "No URL set." -msgstr "" - -#: gst/avi/gstavidemux.c:5289 +#: gst/avi/gstavidemux.c:5311 msgid "Internal data stream error." msgstr "" -#: gst/avi/gstavimux.c:1788 +#: gst/avi/gstavimux.c:1808 msgid "No or invalid input audio, AVI stream will be corrupt." msgstr "" -#: gst/isomp4/qtdemux.c:526 gst/isomp4/qtdemux.c:530 +#: gst/isomp4/qtdemux.c:549 gst/isomp4/qtdemux.c:553 msgid "This file contains no playable streams." msgstr "" -#: gst/isomp4/qtdemux.c:596 gst/isomp4/qtdemux.c:4142 -#: gst/isomp4/qtdemux.c:4208 gst/isomp4/qtdemux.c:4363 +#: gst/isomp4/qtdemux.c:619 gst/isomp4/qtdemux.c:4519 +#: gst/isomp4/qtdemux.c:4585 gst/isomp4/qtdemux.c:4770 msgid "This file is invalid and cannot be played." msgstr "" -#: gst/isomp4/qtdemux.c:2504 gst/isomp4/qtdemux.c:2580 -#: gst/isomp4/qtdemux.c:2623 gst/isomp4/qtdemux.c:4972 -#: gst/isomp4/qtdemux.c:4979 gst/isomp4/qtdemux.c:5617 -#: gst/isomp4/qtdemux.c:6045 gst/isomp4/qtdemux.c:6052 -#: gst/isomp4/qtdemux.c:7654 +#: gst/isomp4/qtdemux.c:2218 +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + +#: gst/isomp4/qtdemux.c:2781 gst/isomp4/qtdemux.c:2857 +#: gst/isomp4/qtdemux.c:2900 gst/isomp4/qtdemux.c:5391 +#: gst/isomp4/qtdemux.c:5398 gst/isomp4/qtdemux.c:6077 +#: gst/isomp4/qtdemux.c:6506 gst/isomp4/qtdemux.c:6513 +#: gst/isomp4/qtdemux.c:8138 msgid "This file is corrupt and cannot be played." msgstr "" -#: gst/isomp4/qtdemux.c:2714 +#: gst/isomp4/qtdemux.c:2991 msgid "Invalid atom size." msgstr "" -#: gst/isomp4/qtdemux.c:2782 +#: gst/isomp4/qtdemux.c:3059 msgid "This file is incomplete and cannot be played." msgstr "" -#: gst/isomp4/qtdemux.c:5194 +#: gst/isomp4/qtdemux.c:5622 msgid "The video in this file might not play correctly." msgstr "" -#: gst/isomp4/qtdemux.c:7683 +#: gst/isomp4/qtdemux.c:8175 #, c-format msgid "This file contains too many streams. Only playing first %d" msgstr "" -#: gst/rtsp/gstrtspsrc.c:5440 +#: gst/rtsp/gstrtspsrc.c:5721 msgid "" "No supported stream was found. You might need to install a GStreamer RTSP " "extension plugin for Real media streams." msgstr "" -#: gst/rtsp/gstrtspsrc.c:5445 +#: gst/rtsp/gstrtspsrc.c:5726 msgid "" "No supported stream was found. You might need to allow more transport " "protocols or may otherwise be missing the right GStreamer RTSP extension " "plugin." msgstr "" -#: gst/wavparse/gstwavparse.c:2387 +#: gst/wavparse/gstwavparse.c:2454 msgid "Internal data flow error." msgstr "" -#: sys/oss/gstosssink.c:384 sys/oss4/oss4-sink.c:495 -#: sys/oss4/oss4-source.c:360 +#: sys/oss4/oss4-sink.c:495 sys/oss4/oss4-source.c:360 +#: sys/oss/gstosssink.c:384 msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" -#: sys/oss/gstosssink.c:391 sys/oss4/oss4-sink.c:505 -#: sys/oss4/oss4-source.c:370 +#: sys/oss4/oss4-sink.c:505 sys/oss4/oss4-source.c:370 +#: sys/oss/gstosssink.c:391 msgid "" "Could not open audio device for playback. You don't have permission to open " "the device." msgstr "" -#: sys/oss/gstosssink.c:399 sys/oss4/oss4-sink.c:516 -#: sys/oss4/oss4-source.c:381 +#: sys/oss4/oss4-sink.c:516 sys/oss4/oss4-source.c:381 +#: sys/oss/gstosssink.c:399 msgid "Could not open audio device for playback." msgstr "" -#: sys/oss/gstosssrc.c:377 -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" - -#: sys/oss/gstosssrc.c:385 -msgid "Could not open audio device for recording." -msgstr "" - #: sys/oss4/oss4-sink.c:525 sys/oss4/oss4-source.c:391 msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." msgstr "" -#: sys/oss4/oss4-sink.c:642 +#: sys/oss4/oss4-sink.c:648 msgid "Playback is not supported by this audio device." msgstr "" -#: sys/oss4/oss4-sink.c:649 +#: sys/oss4/oss4-sink.c:655 msgid "Audio playback error." msgstr "" @@ -169,6 +167,52 @@ msgstr "" msgid "Error recording from audio device." msgstr "" +#: sys/oss/gstosssrc.c:377 +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" + +#: sys/oss/gstosssrc.c:385 +msgid "Could not open audio device for recording." +msgstr "" + +#: sys/sunaudio/gstsunaudiomixeroptions.c:109 +msgid "Record Source" +msgstr "" + +#: sys/sunaudio/gstsunaudiomixeroptions.c:120 +msgid "Microphone" +msgstr "" + +#: sys/sunaudio/gstsunaudiomixeroptions.c:121 +msgid "Line In" +msgstr "" + +#: sys/sunaudio/gstsunaudiomixeroptions.c:122 +msgid "Internal CD" +msgstr "" + +#: sys/sunaudio/gstsunaudiomixeroptions.c:123 +msgid "SPDIF In" +msgstr "" + +#: sys/sunaudio/gstsunaudiomixeroptions.c:124 +msgid "AUX 1 In" +msgstr "" + +#: sys/sunaudio/gstsunaudiomixeroptions.c:125 +msgid "AUX 2 In" +msgstr "" + +#: sys/sunaudio/gstsunaudiomixeroptions.c:126 +msgid "Codec Loopback" +msgstr "" + +#: sys/sunaudio/gstsunaudiomixeroptions.c:127 +msgid "SunVTS Loopback" +msgstr "" + #: sys/sunaudio/gstsunaudiomixertrack.c:69 msgid "Volume" msgstr "" @@ -205,61 +249,61 @@ msgstr "" msgid "AUX 2 Out" msgstr "" -#: sys/v4l2/gstv4l2bufferpool.c:1010 +#: sys/v4l2/gstv4l2bufferpool.c:1136 #, c-format msgid "Error reading %d bytes from device '%s'." msgstr "" -#: sys/v4l2/gstv4l2object.c:1170 +#: sys/v4l2/gstv4l2object.c:1256 #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" msgstr "" -#: sys/v4l2/gstv4l2object.c:2187 +#: sys/v4l2/gstv4l2object.c:2291 #, c-format msgid "Could not map buffers from device '%s'" msgstr "" -#: sys/v4l2/gstv4l2object.c:2195 +#: sys/v4l2/gstv4l2object.c:2299 #, c-format msgid "The driver of device '%s' does not support the IO method %d" msgstr "" -#: sys/v4l2/gstv4l2object.c:2202 +#: sys/v4l2/gstv4l2object.c:2306 #, c-format msgid "The driver of device '%s' does not support any known IO method." msgstr "" -#: sys/v4l2/gstv4l2object.c:2396 +#: sys/v4l2/gstv4l2object.c:2494 #, c-format msgid "Device '%s' does not support video capture" msgstr "" -#: sys/v4l2/gstv4l2object.c:2405 +#: sys/v4l2/gstv4l2object.c:2503 #, c-format msgid "Device '%s' is busy" msgstr "" -#: sys/v4l2/gstv4l2object.c:2411 sys/v4l2/gstv4l2object.c:2422 +#: sys/v4l2/gstv4l2object.c:2509 sys/v4l2/gstv4l2object.c:2520 #, c-format msgid "Device '%s' cannot capture at %dx%d" msgstr "" -#: sys/v4l2/gstv4l2object.c:2431 +#: sys/v4l2/gstv4l2object.c:2529 #, c-format msgid "Device '%s' cannot capture in the specified format" msgstr "" -#: sys/v4l2/gstv4l2object.c:2444 +#: sys/v4l2/gstv4l2object.c:2542 #, c-format msgid "Could not get parameters on device '%s'" msgstr "" -#: sys/v4l2/gstv4l2object.c:2452 +#: sys/v4l2/gstv4l2object.c:2550 msgid "Video device did not accept new frame rate setting." msgstr "" -#: sys/v4l2/gstv4l2object.c:2459 +#: sys/v4l2/gstv4l2object.c:2557 msgid "Video device could not create buffer pool." msgstr "" @@ -283,7 +327,7 @@ msgstr "" msgid "Failed to get radio input on device '%s'. " msgstr "" -#: sys/v4l2/gstv4l2radio.c:202 sys/v4l2/v4l2_calls.c:861 +#: sys/v4l2/gstv4l2radio.c:202 sys/v4l2/v4l2_calls.c:956 #, c-format msgid "Failed to set input %d on device %s." msgstr "" @@ -293,6 +337,11 @@ msgstr "" msgid "Failed to change mute state for device '%s'." msgstr "" +#: sys/v4l2/gstv4l2videooverlay.c:103 sys/v4l2/v4l2_calls.c:559 +#, c-format +msgid "Cannot identify device '%s'." +msgstr "" + #: sys/v4l2/v4l2_calls.c:96 #, c-format msgid "" @@ -300,93 +349,88 @@ msgid "" "it is a v4l1 driver." msgstr "" -#: sys/v4l2/v4l2_calls.c:136 +#: sys/v4l2/v4l2_calls.c:137 #, c-format msgid "Failed to query attributes of input %d in device %s" msgstr "" -#: sys/v4l2/v4l2_calls.c:166 +#: sys/v4l2/v4l2_calls.c:168 #, c-format msgid "Failed to get setting of tuner %d on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:210 +#: sys/v4l2/v4l2_calls.c:212 #, c-format msgid "Failed to query norm on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:348 +#: sys/v4l2/v4l2_calls.c:408 #, c-format msgid "Failed getting controls attributes on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:491 -#, c-format -msgid "Cannot identify device '%s'." -msgstr "" - -#: sys/v4l2/v4l2_calls.c:498 +#: sys/v4l2/v4l2_calls.c:566 #, c-format msgid "This isn't a device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:505 +#: sys/v4l2/v4l2_calls.c:573 #, c-format msgid "Could not open device '%s' for reading and writing." msgstr "" -#: sys/v4l2/v4l2_calls.c:512 +#: sys/v4l2/v4l2_calls.c:580 #, c-format msgid "Device '%s' is not a capture device." msgstr "" -#: sys/v4l2/v4l2_calls.c:520 +#: sys/v4l2/v4l2_calls.c:588 #, c-format msgid "Device '%s' is not a output device." msgstr "" -#: sys/v4l2/v4l2_calls.c:619 +#: sys/v4l2/v4l2_calls.c:687 #, c-format msgid "Failed to set norm for device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:657 +#: sys/v4l2/v4l2_calls.c:725 #, c-format msgid "Failed to get current tuner frequency for device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:699 +#: sys/v4l2/v4l2_calls.c:767 #, c-format msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "" -#: sys/v4l2/v4l2_calls.c:733 +#: sys/v4l2/v4l2_calls.c:801 #, c-format msgid "Failed to get signal strength for device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:769 +#: sys/v4l2/v4l2_calls.c:837 #, c-format msgid "Failed to get value for control %d on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:804 +#: sys/v4l2/v4l2_calls.c:872 #, c-format msgid "Failed to set value %d for control %d on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:836 +#: sys/v4l2/v4l2_calls.c:931 #, c-format msgid "Failed to get current input on device '%s'. May be it is a radio device" msgstr "" -#: sys/v4l2/v4l2_calls.c:893 +#: sys/v4l2/v4l2_calls.c:988 #, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" -#: sys/v4l2/v4l2_calls.c:918 +#: sys/v4l2/v4l2_calls.c:1013 #, c-format msgid "Failed to set output %d on device %s." msgstr "" diff --git a/po/hr.gmo b/po/hr.gmo deleted file mode 100644 index e519404f4f3d63e1684ebc95491f1f4fc49a24ba..0000000000000000000000000000000000000000 Binary files a/po/hr.gmo and /dev/null differ diff --git a/po/hr.po b/po/hr.po deleted file mode 100644 index 0e92da9c83643a2198d89276a8067e648c5fc726..0000000000000000000000000000000000000000 --- a/po/hr.po +++ /dev/null @@ -1,702 +0,0 @@ -# Translation of gst-plugins-good to Croatian. -# This file is put in the public domain. -# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: gst-plugins-good 0.10.28.2\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-04-16 03:04+0200\n" -"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n" -"Language-Team: Croatian <lokalizacija@linux.hr>\n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" - -#. TRANSLATORS: 'song title' by 'artist name' -#, c-format -msgid "'%s' by '%s'" -msgstr "„%s†(„%sâ€)" - -msgid "Failed to decode JPEG image" -msgstr "Nisam uspio dekodirati JPEG sliku" - -msgid "Could not connect to server" -msgstr "Ne mogu se spojiti na poslužitelj" - -msgid "Server does not support seeking." -msgstr "Poslužitelj ne podržava traženje" - -msgid "Could not resolve server name." -msgstr "Rezolucija imena poslužitelja nije moguća." - -msgid "Could not establish connection to server." -msgstr "Ne mogu ostvariti vezu prema poslužitelju." - -msgid "Secure connection setup failed." -msgstr "Postavljanje sigurne veze nije uspjelo." - -msgid "" -"A network error occured, or the server closed the connection unexpectedly." -msgstr "" -"Dogodila se greÅ¡ka mreže, ili je poslužitelj neoÄekivano zatvorio vezu." - -msgid "Server sent bad data." -msgstr "Poslužitelj je poslao neispravne podatke." - -msgid "No URL set." -msgstr "Nije postavljen URL." - -msgid "Internal data stream error." -msgstr "GreÅ¡ka unutarnjeg niza podataka." - -msgid "No or invalid input audio, AVI stream will be corrupt." -msgstr "AVI niz nema ili ima neispravan ulazni zvuk, zbog Äega je oÅ¡tećen." - -msgid "This file contains no playable streams." -msgstr "Datoteka ne sadrži nizove koji se mogu reproducirati." - -msgid "This file is invalid and cannot be played." -msgstr "Datoteka je neispravna i ne može se reproducirati." - -msgid "This file is corrupt and cannot be played." -msgstr "Datoteka je oÅ¡tećena i ne može se reproducirati." - -msgid "Invalid atom size." -msgstr "Neispravna veliÄina elementa." - -msgid "This file is incomplete and cannot be played." -msgstr "Ova datoteka je nepotpuna i ne može se reproducirati." - -msgid "The video in this file might not play correctly." -msgstr "Videozapis u ovoj datoteci se možda neće ispravno reproducirati." - -#, c-format -msgid "This file contains too many streams. Only playing first %d" -msgstr "Ova datoteka sadrži previÅ¡e nizova. Reproduciram samo prvih %d" - -msgid "" -"No supported stream was found. You might need to install a GStreamer RTSP " -"extension plugin for Real media streams." -msgstr "" -"Nisu pronaÄ‘eni podržani nizovi. Morate instalirati GStreamer RTSP prikljuÄak " -"proÅ¡irenja za Real medijske nizove." - -msgid "" -"No supported stream was found. You might need to allow more transport " -"protocols or may otherwise be missing the right GStreamer RTSP extension " -"plugin." -msgstr "" -"Nisu pronaÄ‘eni podržani nizovi. Morate dozvoliti viÅ¡e protokola prijenosa " -"ili vam možda nedostaje odgovarajući GStreamer RTSP prikljuÄak proÅ¡irenja." - -msgid "Internal data flow error." -msgstr "GreÅ¡ka unutarnjeg toka podataka." - -msgid "" -"Could not open audio device for playback. Device is being used by another " -"application." -msgstr "" -"Ne mogu otvoriti zvuÄni ureÄ‘aj za reprodukciju. UreÄ‘aj trenutno koristi " -"drugi program." - -msgid "" -"Could not open audio device for playback. You don't have permission to open " -"the device." -msgstr "" -"Ne mogu otvoriti zvuÄni ureÄ‘aj za reprodukciju. Nemate dozvole za otvaranje " -"ureÄ‘aja." - -msgid "Could not open audio device for playback." -msgstr "Ne mogu otvoriti zvuÄni ureÄ‘aj za reprodukciju." - -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Ne mogu otvoriti zvuÄni ureÄ‘aj za snimanje. Nemate dozvole za otvaranje " -"ureÄ‘aja." - -msgid "Could not open audio device for recording." -msgstr "Ne mogu otvoriti zvuÄni ureÄ‘aj za snimanje." - -msgid "" -"Could not open audio device for playback. This version of the Open Sound " -"System is not supported by this element." -msgstr "" -"Ne mogu otvoriti zvuÄni ureÄ‘aj za reprodukciju. Ovaj element ne podržava ovu " -"inaÄicu Open Sound System sustava." - -msgid "Playback is not supported by this audio device." -msgstr "Ovaj zvuÄni ureÄ‘aj ne podržava reprodukciju." - -msgid "Audio playback error." -msgstr "GreÅ¡ka reprodukcije zvuka." - -msgid "Recording is not supported by this audio device." -msgstr "Ovaj zvuÄni ureÄ‘aj ne podržava snimanje." - -msgid "Error recording from audio device." -msgstr "GreÅ¡ka snimanja sa zvuÄnog ureÄ‘aja." - -msgid "Volume" -msgstr "Glasnoća" - -msgid "Gain" -msgstr "PojaÄanje" - -msgid "Monitor" -msgstr "Nadzor" - -msgid "Built-in Speaker" -msgstr "UgraÄ‘eni zvuÄnik" - -msgid "Headphone" -msgstr "SluÅ¡alica" - -msgid "Line Out" -msgstr "Linijski izlaz" - -msgid "SPDIF Out" -msgstr "SPDIF izlaz" - -msgid "AUX 1 Out" -msgstr "AUX 1 izlaz" - -msgid "AUX 2 Out" -msgstr "AUX 2 izlaz" - -#, c-format -msgid "Error reading %d bytes from device '%s'." -msgstr "GreÅ¡ka Äitanja %d bajtova s ureÄ‘aja „%sâ€." - -#, c-format -msgid "Failed to enumerate possible video formats device '%s' can work with" -msgstr "" - -#, c-format -msgid "Could not map buffers from device '%s'" -msgstr "Ne mogu mapirati meÄ‘uspremnike iz ureÄ‘aja „%sâ€" - -#, fuzzy, c-format -msgid "The driver of device '%s' does not support the IO method %d" -msgstr "UpravljaÄki program ureÄ‘aja „%s†ne podržava poznate metode snimanja." - -#, fuzzy, c-format -msgid "The driver of device '%s' does not support any known IO method." -msgstr "UpravljaÄki program ureÄ‘aja „%s†ne podržava poznate metode snimanja." - -#, fuzzy, c-format -msgid "Device '%s' does not support video capture" -msgstr "UreÄ‘aj „%s†nije izlazni ureÄ‘aj." - -#, c-format -msgid "Device '%s' is busy" -msgstr "" - -#, fuzzy, c-format -msgid "Device '%s' cannot capture at %dx%d" -msgstr "UreÄ‘aj „%s†nije ureÄ‘aj za snimanje." - -#, fuzzy, c-format -msgid "Device '%s' cannot capture in the specified format" -msgstr "UreÄ‘aj „%s†nije ureÄ‘aj za snimanje." - -#, c-format -msgid "Could not get parameters on device '%s'" -msgstr "Nisam uspio dobiti parametre ureÄ‘aja „%sâ€" - -#, fuzzy -msgid "Video device did not accept new frame rate setting." -msgstr "Ulazni video ureÄ‘aj nije prihvatio nove postavke broja okvira." - -msgid "Video device could not create buffer pool." -msgstr "" - -#, fuzzy, c-format -msgid "Failed to get settings of tuner %d on device '%s'." -msgstr "Nisam uspio dobiti postavke biraÄa %d ureÄ‘aja „%sâ€." - -#, fuzzy, c-format -msgid "Error getting capabilities for device '%s'." -msgstr "GreÅ¡ka Äitanja %d bajtova s ureÄ‘aja „%sâ€." - -#, fuzzy, c-format -msgid "Device '%s' is not a tuner." -msgstr "UreÄ‘aj „%s†nije izlazni ureÄ‘aj." - -#, fuzzy, c-format -msgid "Failed to get radio input on device '%s'. " -msgstr "Nisam uspio postaviti ulaz %d na ureÄ‘aj %s." - -#, c-format -msgid "Failed to set input %d on device %s." -msgstr "Nisam uspio postaviti ulaz %d na ureÄ‘aj %s." - -#, fuzzy, c-format -msgid "Failed to change mute state for device '%s'." -msgstr "Nisam uspio dobiti snagu signala za ureÄ‘aj „%sâ€." - -#, c-format -msgid "" -"Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " -"it is a v4l1 driver." -msgstr "" -"GreÅ¡ka dobivanja mogućnosti ureÄ‘aja „%sâ€: To nije v4l2 upravljaÄki program. " -"Provjerite je li v4l1 upravljaÄki program." - -#, c-format -msgid "Failed to query attributes of input %d in device %s" -msgstr "Nisam uspio ispitati svojstva ulaza %d ureÄ‘aja %s" - -#, c-format -msgid "Failed to get setting of tuner %d on device '%s'." -msgstr "Nisam uspio dobiti postavke biraÄa %d ureÄ‘aja „%sâ€." - -#, c-format -msgid "Failed to query norm on device '%s'." -msgstr "Nisam uspio ispitati norm na ureÄ‘aju „%sâ€." - -#, c-format -msgid "Failed getting controls attributes on device '%s'." -msgstr "Nisam uspio dobiti svojstva upravljanja na ureÄ‘aju „%sâ€." - -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ne mogu identificirati ureÄ‘aj „%sâ€." - -#, c-format -msgid "This isn't a device '%s'." -msgstr "Ovo nije ureÄ‘aj „%sâ€." - -#, c-format -msgid "Could not open device '%s' for reading and writing." -msgstr "Ne mogu otvoriti ureÄ‘aj „%s†za Äitanje i pisanje." - -#, c-format -msgid "Device '%s' is not a capture device." -msgstr "UreÄ‘aj „%s†nije ureÄ‘aj za snimanje." - -#, c-format -msgid "Device '%s' is not a output device." -msgstr "UreÄ‘aj „%s†nije izlazni ureÄ‘aj." - -#, c-format -msgid "Failed to set norm for device '%s'." -msgstr "Nisam uspio postaviti norm za ureÄ‘aj „%sâ€." - -#, c-format -msgid "Failed to get current tuner frequency for device '%s'." -msgstr "Nisam uspio dobiti trenutnu frekvenciju biraÄa za ureÄ‘aj „%sâ€." - -#, c-format -msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." -msgstr "" -"Nisam uspio postaviti trenutnu frekvenciju biraÄa za ureÄ‘aj „%s†na %lu Hz." - -#, c-format -msgid "Failed to get signal strength for device '%s'." -msgstr "Nisam uspio dobiti snagu signala za ureÄ‘aj „%sâ€." - -#, c-format -msgid "Failed to get value for control %d on device '%s'." -msgstr "Nisam uspio dobiti vrijednost za kontrolu %d na ureÄ‘aju „%sâ€." - -#, c-format -msgid "Failed to set value %d for control %d on device '%s'." -msgstr "Nisam uspio postaviti vrijednost %d za kontrolu %d na ureÄ‘aju „%sâ€." - -#, c-format -msgid "Failed to get current input on device '%s'. May be it is a radio device" -msgstr "" -"Nisam uspio dobiti trenutni ulaz na ureÄ‘aju „%sâ€. Možda je to radio ureÄ‘aj" - -#, c-format -msgid "" -"Failed to get current output on device '%s'. May be it is a radio device" -msgstr "" -"Nisam uspio dobiti trenutni izlaz na ureÄ‘aju „%sâ€. Možda je to radio ureÄ‘aj" - -#, c-format -msgid "Failed to set output %d on device %s." -msgstr "Nisam uspio postaviti izlaz %d na ureÄ‘aj %s." - -msgid "Changing resolution at runtime is not yet supported." -msgstr "Promjena rezolucije pri izvoÄ‘enju joÅ¡ nije podržana." - -msgid "Cannot operate without a clock" -msgstr "Ne mogu raditi bez takta" - -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Ne mogu ostvariti vezu prema poslužitelju zvuka" - -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Nisam uspio ispitati mogućnosti poslužitelja zvuka" - -#~ msgid "Bass" -#~ msgstr "Niski" - -#~ msgid "Treble" -#~ msgstr "Visoki" - -#~ msgid "Synth" -#~ msgstr "Sintetizator" - -#~ msgid "PCM" -#~ msgstr "PCM" - -#~ msgid "Speaker" -#~ msgstr "ZvuÄnik" - -#~ msgid "Line-in" -#~ msgstr "Ulazna linija" - -#~ msgid "Microphone" -#~ msgstr "Mikrofon" - -#~ msgid "CD" -#~ msgstr "CD" - -#~ msgid "Mixer" -#~ msgstr "Mikser" - -#~ msgid "PCM-2" -#~ msgstr "PCM-2" - -#~ msgid "Record" -#~ msgstr "Snimanje" - -#~ msgid "In-gain" -#~ msgstr "Ulazno pojaÄanje" - -#~ msgid "Out-gain" -#~ msgstr "Izlazno pojaÄanje" - -#~ msgid "Line-1" -#~ msgstr "Linija 1" - -#~ msgid "Line-2" -#~ msgstr "Linija 2" - -#~ msgid "Line-3" -#~ msgstr "Linija 3" - -#~ msgid "Digital-1" -#~ msgstr "Digitalni 1" - -#~ msgid "Digital-2" -#~ msgstr "Digitalni 2" - -#~ msgid "Digital-3" -#~ msgstr "Digitalni 3" - -#~ msgid "Phone-in" -#~ msgstr "Telefonski ulaz" - -#~ msgid "Phone-out" -#~ msgstr "Telefonski izlaz" - -#~ msgid "Video" -#~ msgstr "Video" - -#~ msgid "Radio" -#~ msgstr "Radio" - -#~ msgid "Could not open audio device for mixer control handling." -#~ msgstr "Ne mogu otvoriti zvuÄni ureÄ‘aj za upravljanje mikserom." - -#~ msgid "" -#~ "Could not open audio device for mixer control handling. This version of " -#~ "the Open Sound System is not supported by this element." -#~ msgstr "" -#~ "Ne mogu otvoriti zvuÄni ureÄ‘aj za upravljanje mikserom. Ovaj element ne " -#~ "podržava ovu inaÄicu Open Sound System sustava." - -#~ msgid "Master" -#~ msgstr "Glavni" - -#~ msgid "Front" -#~ msgstr "Prednji" - -#~ msgid "Rear" -#~ msgstr "Stražnji" - -#~ msgid "Headphones" -#~ msgstr "SluÅ¡alice" - -#~ msgid "Center" -#~ msgstr "Srednji" - -#~ msgid "LFE" -#~ msgstr "LFE" - -#~ msgid "Surround" -#~ msgstr "Surround" - -#~ msgid "Side" -#~ msgstr "BoÄni" - -#~ msgid "AUX Out" -#~ msgstr "AUX izlaz" - -#~ msgid "3D Depth" -#~ msgstr "3D dubina" - -#~ msgid "3D Center" -#~ msgstr "3D srediÅ¡te" - -#~ msgid "3D Enhance" -#~ msgstr "3D dopuna" - -#~ msgid "Telephone" -#~ msgstr "Telefon" - -#~ msgid "Line In" -#~ msgstr "Linijski ulaz" - -#~ msgid "Internal CD" -#~ msgstr "Interni CD" - -#~ msgid "Video In" -#~ msgstr "Video ulaz" - -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 ulaz" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 ulaz" - -#~ msgid "AUX In" -#~ msgstr "AUX ulaz" - -#~ msgid "Record Gain" -#~ msgstr "PojaÄanje snimanja" - -#~ msgid "Output Gain" -#~ msgstr "PojaÄanje izlaza" - -#~ msgid "Microphone Boost" -#~ msgstr "PojaÄanje mikrofona" - -#~ msgid "Loopback" -#~ msgstr "Povratna petlja" - -#~ msgid "Diagnostic" -#~ msgstr "Dijagnostika" - -#~ msgid "Bass Boost" -#~ msgstr "PojaÄanje niskih" - -#~ msgid "Playback Ports" -#~ msgstr "Portovi reprodukcije" - -#~ msgid "Input" -#~ msgstr "Ulaz" - -#~ msgid "Record Source" -#~ msgstr "Izvor snimanja" - -#~ msgid "Monitor Source" -#~ msgstr "Izvor nadziranja" - -#~ msgid "Keyboard Beep" -#~ msgstr "TipkovniÄki zvuk" - -#~ msgid "Simulate Stereo" -#~ msgstr "Simuliraj stereo" - -#~ msgid "Stereo" -#~ msgstr "Stereo" - -#~ msgid "Surround Sound" -#~ msgstr "Surround zvuk" - -#~ msgid "Microphone Gain" -#~ msgstr "PojaÄanje mikrofona" - -#~ msgid "Speaker Source" -#~ msgstr "Izvor zvuÄnika" - -#~ msgid "Microphone Source" -#~ msgstr "Izvor mikrofona" - -#~ msgid "Jack" -#~ msgstr "PrikljuÄak" - -#~ msgid "Center / LFE" -#~ msgstr "Srednji / LFE" - -#~ msgid "Stereo Mix" -#~ msgstr "Stereo mikser" - -#~ msgid "Mono Mix" -#~ msgstr "Mono mikser" - -#~ msgid "Input Mix" -#~ msgstr "Ulazni mikser" - -#~ msgid "SPDIF In" -#~ msgstr "SPDIF ulaz" - -#~ msgid "Microphone 1" -#~ msgstr "Mikrofon 1" - -#~ msgid "Microphone 2" -#~ msgstr "Mikrofon 2" - -#~ msgid "Digital Out" -#~ msgstr "Digitalni izlaz" - -#~ msgid "Digital In" -#~ msgstr "Digitalni ulaz" - -#~ msgid "HDMI" -#~ msgstr "HDMI" - -#~ msgid "Modem" -#~ msgstr "Modem" - -#~ msgid "Handset" -#~ msgstr "SluÅ¡alice s mikrofonom" - -#~ msgid "Other" -#~ msgstr "Ostalo" - -#~ msgid "None" -#~ msgstr "Nijedan" - -#~ msgid "On" -#~ msgstr "UkljuÄen" - -#~ msgid "Off" -#~ msgstr "IskljuÄen" - -#~ msgid "Mute" -#~ msgstr "UtiÅ¡an" - -#~ msgid "Fast" -#~ msgstr "Brzo" - -#~ msgid "Very Low" -#~ msgstr "Vrlo niska" - -#~ msgid "Low" -#~ msgstr "Niska" - -#~ msgid "Medium" -#~ msgstr "Srednja" - -#~ msgid "High" -#~ msgstr "Visoka" - -#~ msgid "Very High" -#~ msgstr "Vrlo visoka" - -#~ msgid "Production" -#~ msgstr "Produkcijska" - -#~ msgid "Front Panel Microphone" -#~ msgstr "Mikrofon na prednjoj ploÄi" - -#~ msgid "Front Panel Line In" -#~ msgstr "Linijski ulaz na prednjoj ploÄi" - -#~ msgid "Front Panel Headphones" -#~ msgstr "SluÅ¡alice na prednjoj ploÄi" - -#~ msgid "Front Panel Line Out" -#~ msgstr "Linijski izlaz na prednjoj ploÄi" - -#~ msgid "Green Connector" -#~ msgstr "Zelena prikljuÄnica" - -#~ msgid "Pink Connector" -#~ msgstr "RužiÄasta prikljuÄnica" - -#~ msgid "Blue Connector" -#~ msgstr "Plava prikljuÄnica" - -#~ msgid "White Connector" -#~ msgstr "Bijela prikljuÄnica" - -#~ msgid "Black Connector" -#~ msgstr "Crna prikljuÄnica" - -#~ msgid "Gray Connector" -#~ msgstr "Siva prikljuÄnica" - -#~ msgid "Orange Connector" -#~ msgstr "NaranÄasta prikljuÄnica" - -#~ msgid "Red Connector" -#~ msgstr "Crvena prikljuÄnica" - -#~ msgid "Yellow Connector" -#~ msgstr "Žuta prikljuÄnica" - -#~ msgid "Green Front Panel Connector" -#~ msgstr "Zelena prikljuÄnica na prednjoj ploÄi" - -#~ msgid "Pink Front Panel Connector" -#~ msgstr "RužiÄasta prikljuÄnica na prednjoj ploÄi" - -#~ msgid "Blue Front Panel Connector" -#~ msgstr "Plava prikljuÄnica na prednjoj ploÄi" - -#~ msgid "White Front Panel Connector" -#~ msgstr "Bijela prikljuÄnica na prednjoj ploÄi" - -#~ msgid "Black Front Panel Connector" -#~ msgstr "Crna prikljuÄnica na prednjoj ploÄi" - -#~ msgid "Gray Front Panel Connector" -#~ msgstr "Siva prikljuÄnica na prednjoj ploÄi" - -#~ msgid "Orange Front Panel Connector" -#~ msgstr "NaranÄasta prikljuÄnica na prednjoj ploÄi" - -#~ msgid "Red Front Panel Connector" -#~ msgstr "Crvena prikljuÄnica na prednjoj ploÄi" - -#~ msgid "Yellow Front Panel Connector" -#~ msgstr "Žuta prikljuÄnica na prednjoj ploÄi" - -#~ msgid "Spread Output" -#~ msgstr "RaÅ¡ireni izlaz" - -#~ msgid "Downmix" -#~ msgstr "Smanjenje broja kanala" - -#~ msgid "Virtual Mixer Input" -#~ msgstr "Ulaz virtualnog miksera" - -#~ msgid "Virtual Mixer Output" -#~ msgstr "Izlaz virtualnog miksera" - -#~ msgid "Virtual Mixer Channels" -#~ msgstr "Kanali virtualnog miksera" - -#~ msgid "%s %d Function" -#~ msgstr "%s %d funkcija" - -#~ msgid "%s Function" -#~ msgstr "%s funkcija" - -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Dobivena neoÄekivana veliÄina okvira %u umjesto %u." - -#~ msgid "Error reading %d bytes on device '%s'." -#~ msgstr "GreÅ¡ka Äitanja %d bajtova na ureÄ‘aju „%sâ€." - -#~ msgid "Could not enqueue buffers in device '%s'." -#~ msgstr "Nisam uspio dodati u red meÄ‘uspremnike u ureÄ‘aj „%sâ€." - -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Nisam uspio pokuÅ¡avajući dobiti video okvire iz ureÄ‘aja „%sâ€." - -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "Nisam uspio nakon %d pokuÅ¡aja. ureÄ‘aj %s. greÅ¡ka sustava: %s" diff --git a/po/hu.gmo b/po/hu.gmo index 0a5ac2c4ed40042996e6f07c8579a98d88787dda..91f9fa334f8844d90c04a0e26a8f978afda37b4f 100644 Binary files a/po/hu.gmo and b/po/hu.gmo differ diff --git a/po/hu.po b/po/hu.po index 7f640e85201726b1951be944a7c1a17743341877..b8663e297c7a1f66003248f2eb8256556fa2c713 100644 --- a/po/hu.po +++ b/po/hu.po @@ -3,13 +3,13 @@ # Copyright (C) 2004, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # # Laszlo Dvornik <dvornik@invitel.hu>, 2004. -# Gabor Kelemen <kelemeng@gnome.hu>, 2007, 2008, 2009, 2010, 2012. +# Gabor Kelemen <kelemeng@gnome.hu>, 2007, 2008, 2009, 2010. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-11-30 15:05+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2010-11-04 01:21+0100\n" "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n" "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n" "Language: hu\n" @@ -17,21 +17,27 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Rosetta-Export-Date: 2007-07-27 19:18:15+0000\n" -"X-Generator: Lokalize 1.4\n" +"X-Generator: KBabel 1.11.4\n" "X-Rosetta-Export-Date: 2007-07-27 19:18:15+0000\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "A JPEG kép visszafejtése meghiúsult" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "„%s†ettÅ‘l: „%sâ€" -msgid "Failed to decode JPEG image" -msgstr "A JPEG kép visszafejtése meghiúsult" - msgid "Could not connect to server" msgstr "Nem lehet csatlakozni a kiszolgálóhoz" +msgid "No URL set." +msgstr "Nincs beállÃtva URL." + msgid "Server does not support seeking." msgstr "A kiszolgáló nem támogatja a tekerést." @@ -52,9 +58,6 @@ msgstr "" msgid "Server sent bad data." msgstr "A kiszolgáló hibás adatokat küldött." -msgid "No URL set." -msgstr "Nincs beállÃtva URL." - msgid "Internal data stream error." msgstr "BelsÅ‘ adatfolyam-hiba." @@ -67,11 +70,14 @@ msgstr "A fájl nem tartalmaz lejátszható adatfolyamokat." msgid "This file is invalid and cannot be played." msgstr "A fájl nem érvényes és nem játszható le." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "A fájl sérült és nem játszható le." msgid "Invalid atom size." -msgstr "Érvénytelen atom méret." +msgstr "" msgid "This file is incomplete and cannot be played." msgstr "A fájl nem teljes és nem játszható le." @@ -119,16 +125,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Nem nyitható meg hangeszköz a lejátszáshoz." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Nem nyitható meg hangeszköz a felvételhez. Nincs jogosultsága az eszköz " -"megnyitására." - -msgid "Could not open audio device for recording." -msgstr "Nem nyitható meg hangeszköz a felvételhez." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -148,6 +144,45 @@ msgstr "Ez a hangeszköz nem támogatja a felvételt." msgid "Error recording from audio device." msgstr "Hiba a hangeszközrÅ‘l való felvételkor." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Nem nyitható meg hangeszköz a felvételhez. Nincs jogosultsága az eszköz " +"megnyitására." + +msgid "Could not open audio device for recording." +msgstr "Nem nyitható meg hangeszköz a felvételhez." + +msgid "Record Source" +msgstr "Felvétel forrása" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "Vonalbemenet" + +msgid "Internal CD" +msgstr "BelsÅ‘ CD" + +msgid "SPDIF In" +msgstr "SPDIF be" + +msgid "AUX 1 In" +msgstr "1. AUX be" + +msgid "AUX 2 In" +msgstr "2. AUX be" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Visszacsatolás" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Visszacsatolás" + msgid "Volume" msgstr "HangerÅ‘" @@ -182,71 +217,78 @@ msgstr "Hiba %d bájt olvasásakor a következÅ‘ eszközrÅ‘l: „%sâ€." #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" msgstr "" -"A(z) „%s†eszköz által kezelhetÅ‘ lehetséges videoformátumok felsorolása " -"sikertelen" #, c-format msgid "Could not map buffers from device '%s'" msgstr "Nem képezhetÅ‘k le a(z) „%s†eszköz pufferei" -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "A(z) „%s†eszköz illesztÅ‘programja nem támogatja a(z) %d. IO módot" +msgstr "" +"A(z) „%s†eszköz illesztÅ‘programja nem támogat egyetlen ismert felvételi " +"módot sem." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." msgstr "" -"A(z) „%s†eszköz illesztÅ‘programja nem támogat egyetlen ismert IO módot sem." +"A(z) „%s†eszköz illesztÅ‘programja nem támogat egyetlen ismert felvételi " +"módot sem." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "A(z) „%s†eszköz nem támogatja a videofelvételt" +msgstr "A(z) „%s†eszköz nem kimeneti eszköz." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "A(z) „%s†eszköz foglalt" +msgstr "A(z) „%s†eszköz nem kimeneti eszköz." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture at %dx%d" -msgstr "A(z) „%s†eszköz nem képes felvenni %dx%d felbontásban" +msgstr "A(z) „%s†eszköz nem rögzÃtÅ‘eszköz." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture in the specified format" -msgstr "A(z) „%s†eszköz nem képes felvenni a megadott formátumban" +msgstr "A(z) „%s†eszköz nem rögzÃtÅ‘eszköz." #, c-format msgid "Could not get parameters on device '%s'" msgstr "Nem kérhetÅ‘k le a(z) „%s†eszköz paraméterei" +#, fuzzy msgid "Video device did not accept new frame rate setting." -msgstr "A videoeszköz nem fogadta el az új képkockasebesség-beállÃtást." +msgstr "" +"A videobemeneti eszköz nem fogadta el az új képkockasebesség-beállÃtást." msgid "Video device could not create buffer pool." -msgstr "A videoeszköz nem tudott létrehozni puffertárolót." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "A(z) %d. tuner beállÃtásának lekérése a(z) „%s†eszközön meghiúsult." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Hiba a(z) „%s†eszköz képességeinek lekérésekor." +msgstr "Hiba %d bájt olvasásakor a következÅ‘ eszközrÅ‘l: „%sâ€." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "A(z) „%s†eszköz nem tuner." +msgstr "A(z) „%s†eszköz nem kimeneti eszköz." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "A rádióbemenet lekérése meghiúsult a(z) „%s†eszközön." +msgstr "A(z) %d. bemenet beállÃtása meghiúsult a(z) „%s†eszközön." #, c-format msgid "Failed to set input %d on device %s." msgstr "A(z) %d. bemenet beállÃtása meghiúsult a(z) „%s†eszközön." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "A némÃtási állapot módosÃtása meghiúsult a(z) „%s†eszközön." +msgstr "A jelerÅ‘sség lekérdezése meghiúsult a(z) „%s†eszközön." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Nem azonosÃtható a(z) „%s†eszköz." #, c-format msgid "" @@ -272,10 +314,6 @@ msgstr "A norma lekérdezése meghiúsult a(z) „%s†eszköztÅ‘l." msgid "Failed getting controls attributes on device '%s'." msgstr "A vezérlÅ‘attribútumok lekérése meghiúsult a(z) „%s†eszközön." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Nem azonosÃtható a(z) „%s†eszköz." - #, c-format msgid "This isn't a device '%s'." msgstr "Ez nem egy eszköz: „%sâ€." @@ -326,16 +364,16 @@ msgstr "" "Az aktuális bemenet lekérése meghiúsult a(z) „%s†eszközrÅ‘l. Lehet, hogy ez " "egy rádióeszköz." -#, c-format +#, fuzzy, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" -"Az aktuális kimenet lekérése meghiúsult a(z) „%s†eszközrÅ‘l. Lehet, hogy ez " +"Az aktuális bemenet lekérése meghiúsult a(z) „%s†eszközrÅ‘l. Lehet, hogy ez " "egy rádióeszköz." -#, c-format +#, fuzzy, c-format msgid "Failed to set output %d on device %s." -msgstr "A(z) %d. kimenet beállÃtása meghiúsult a(z) „%s†eszközön." +msgstr "A(z) %d. bemenet beállÃtása meghiúsult a(z) „%s†eszközön." msgid "Changing resolution at runtime is not yet supported." msgstr "A felbontás módosÃtása futás közben még nem támogatott." @@ -343,11 +381,14 @@ msgstr "A felbontás módosÃtása futás közben még nem támogatott." msgid "Cannot operate without a clock" msgstr "Óra nélkül lehetetlen a működés" -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Nem hozható létre kapcsolat a hangkiszolgálóhoz" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Váratlan keretméret (%u) érkezett %u helyett." -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "A hangkiszolgáló képességeinek lekérdezése meghiúsult" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Nem sikerült videokockákat lekérni a(z) „%s†eszköztÅ‘l." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "Hiba %d próbálkozás után. Eszköz: %s. Rendszerhiba: %s." #~ msgid "Bass" #~ msgstr "Basszus" @@ -367,9 +408,6 @@ msgstr "Óra nélkül lehetetlen a működés" #~ msgid "Line-in" #~ msgstr "Vonalbemenet" -#~ msgid "Microphone" -#~ msgstr "Mikrofon" - #~ msgid "CD" #~ msgstr "CD" @@ -467,21 +505,9 @@ msgstr "Óra nélkül lehetetlen a működés" #~ msgid "Telephone" #~ msgstr "Telefon" -#~ msgid "Line In" -#~ msgstr "Vonalbemenet" - -#~ msgid "Internal CD" -#~ msgstr "BelsÅ‘ CD" - #~ msgid "Video In" #~ msgstr "Video be" -#~ msgid "AUX 1 In" -#~ msgstr "1. AUX be" - -#~ msgid "AUX 2 In" -#~ msgstr "2. AUX be" - #~ msgid "AUX In" #~ msgstr "AUX be" @@ -494,9 +520,6 @@ msgstr "Óra nélkül lehetetlen a működés" #~ msgid "Microphone Boost" #~ msgstr "MikrofonerÅ‘sÃtés" -#~ msgid "Loopback" -#~ msgstr "Visszacsatolás" - #~ msgid "Diagnostic" #~ msgstr "Diagnosztika" @@ -509,9 +532,6 @@ msgstr "Óra nélkül lehetetlen a működés" #~ msgid "Input" #~ msgstr "Bemenet" -#~ msgid "Record Source" -#~ msgstr "Felvétel forrása" - #~ msgid "Monitor Source" #~ msgstr "Monitor forrása" @@ -551,9 +571,6 @@ msgstr "Óra nélkül lehetetlen a működés" #~ msgid "Input Mix" #~ msgstr "Bemeneti keverés" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF be" - #~ msgid "Microphone 1" #~ msgstr "1. mikrofon" @@ -698,17 +715,14 @@ msgstr "Óra nélkül lehetetlen a működés" #~ msgid "%s Function" #~ msgstr "%s funkció" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Váratlan keretméret (%u) érkezett %u helyett." - #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "Hiba %d bájt olvasásakor a következÅ‘ eszközrÅ‘l: „%sâ€." #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "Nem állÃthatók sorba a pufferek a(z) „%s†eszközben." -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Nem sikerült videokockákat lekérni a(z) „%s†eszköztÅ‘l." +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Nem hozható létre kapcsolat a hangkiszolgálóhoz" -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "Hiba %d próbálkozás után. Eszköz: %s. Rendszerhiba: %s." +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "A hangkiszolgáló képességeinek lekérdezése meghiúsult" diff --git a/po/id.gmo b/po/id.gmo index 8432255559c76220d2421ecaff5c79c43c39b1c9..30bb87d7cfebfc0a78ebc57f39cd23242526e56d 100644 Binary files a/po/id.gmo and b/po/id.gmo differ diff --git a/po/id.po b/po/id.po index 1ca8461e5f14cfd237b4dde6ad9fe1ed70c55388..5bc0c45431a231ef9bb730a913831be1aa461b32 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-02-26 18:09+0700\n" "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n" "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n" @@ -16,17 +16,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Gagal untuk mengawasandi citra JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "'%s' oleh '%s'" -msgid "Failed to decode JPEG image" -msgstr "Gagal untuk mengawasandi citra JPEG" - msgid "Could not connect to server" msgstr "Tak dapat menghubungi server" +msgid "No URL set." +msgstr "Tak ada URL yang ditentukan." + msgid "Server does not support seeking." msgstr "Server tidak mendukung pencarian." @@ -47,9 +53,6 @@ msgstr "" msgid "Server sent bad data." msgstr "Server mengirim data rusak." -msgid "No URL set." -msgstr "Tak ada URL yang ditentukan." - msgid "Internal data stream error." msgstr "Galat arus data internal." @@ -62,6 +65,9 @@ msgstr "Berkas ini tidak berisi arus yang dapat diputar." msgid "This file is invalid and cannot be played." msgstr "Berkas ini tidak sah dan tak dapat diputar." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Berkas ini rusak dan tak dapat diputar." @@ -114,16 +120,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Tak dapat membuka divais audio untuk putar kembali." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Tak dapat membuka divais audio untuk merekam. Anda tak memiliki hak akses " -"untuk membuka divais." - -msgid "Could not open audio device for recording." -msgstr "Tak dapat membuka divais audio untuk merekam." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -143,6 +139,45 @@ msgstr "Perekaman tidak didukung oleh divais audio ini." msgid "Error recording from audio device." msgstr "Galat merekam dari divais audio." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Tak dapat membuka divais audio untuk merekam. Anda tak memiliki hak akses " +"untuk membuka divais." + +msgid "Could not open audio device for recording." +msgstr "Tak dapat membuka divais audio untuk merekam." + +msgid "Record Source" +msgstr "Sumber Rekaman" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "Jalur Masuk" + +msgid "Internal CD" +msgstr "CD Internal" + +msgid "SPDIF In" +msgstr "SPDIF Masuk" + +msgid "AUX 1 In" +msgstr "AUX 1 Masuk" + +msgid "AUX 2 In" +msgstr "AUX 2 Masuk" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Loopback" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Loopback" + msgid "Volume" msgstr "Volume" @@ -245,6 +280,10 @@ msgstr "Gagal mengatur masukan %d di divais %s." msgid "Failed to change mute state for device '%s'." msgstr "Gagal mendapatkan kekuatan sinyal untuk divais '%s'." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Tak dapat mengidentifikasi divais '%s'." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -269,10 +308,6 @@ msgstr "Gagal kueri standar di divais '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "Gagal mendapatkan kendali atribut di divais '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Tak dapat mengidentifikasi divais '%s'." - #, c-format msgid "This isn't a device '%s'." msgstr "Ini bukan divais '%s'." @@ -361,9 +396,6 @@ msgstr "Tak dapat beroperasi tanpa jam" #~ msgid "Line-in" #~ msgstr "Jalur masuk" -#~ msgid "Microphone" -#~ msgstr "Mikrofon" - #~ msgid "CD" #~ msgstr "CD" @@ -461,21 +493,9 @@ msgstr "Tak dapat beroperasi tanpa jam" #~ msgid "Telephone" #~ msgstr "Telepon" -#~ msgid "Line In" -#~ msgstr "Jalur Masuk" - -#~ msgid "Internal CD" -#~ msgstr "CD Internal" - #~ msgid "Video In" #~ msgstr "Video Masuk" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 Masuk" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 Masuk" - #~ msgid "AUX In" #~ msgstr "AUX Masuk" @@ -488,9 +508,6 @@ msgstr "Tak dapat beroperasi tanpa jam" #~ msgid "Microphone Boost" #~ msgstr "Mikrofon Boost" -#~ msgid "Loopback" -#~ msgstr "Loopback" - #~ msgid "Diagnostic" #~ msgstr "Diagnosis" @@ -503,9 +520,6 @@ msgstr "Tak dapat beroperasi tanpa jam" #~ msgid "Input" #~ msgstr "Masukan" -#~ msgid "Record Source" -#~ msgstr "Sumber Rekaman" - #~ msgid "Monitor Source" #~ msgstr "Sumber Monitor" @@ -545,9 +559,6 @@ msgstr "Tak dapat beroperasi tanpa jam" #~ msgid "Input Mix" #~ msgstr "Mix Masukan" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF Masuk" - #~ msgid "Microphone 1" #~ msgstr "Mikrofon 1" diff --git a/po/it.gmo b/po/it.gmo index ed38e50b7fb2cbcdbbbfa8f239d70a1a50ef1df2..af6eced5f56416ce9331fbe5d3e141cd0dc16957 100644 Binary files a/po/it.gmo and b/po/it.gmo differ diff --git a/po/it.po b/po/it.po index 8affa746e9fd53aac38ba4a08c39602763acace9..9966115241527212cef26b9671fb6f2392df5f33 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2010-10-25 10:11+0200\n" "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n" "Language-Team: Italian <tp@lists.linux.it>\n" @@ -16,17 +16,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Decodifica dell'immagine JPEG non riuscita" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "«%s» di «%s»" -msgid "Failed to decode JPEG image" -msgstr "Decodifica dell'immagine JPEG non riuscita" - msgid "Could not connect to server" msgstr "Impossibile connettersi al server" +msgid "No URL set." +msgstr "Nessun URL impostato." + msgid "Server does not support seeking." msgstr "Il server non supporta il posizionamento." @@ -48,9 +54,6 @@ msgstr "" msgid "Server sent bad data." msgstr "In server ha inviato dati errati." -msgid "No URL set." -msgstr "Nessun URL impostato." - msgid "Internal data stream error." msgstr "Errore interno nello stream dei dati." @@ -64,6 +67,9 @@ msgstr "Questo file non contiene alcuno stream riproducibile." msgid "This file is invalid and cannot be played." msgstr "Questo file non è valido e non può essere riprodotto." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Questo file è alterato e non può essere riprodotto." @@ -117,16 +123,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Impossibile aprire il dispositivo audio per la riproduzione." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Impossibile aprire il dispositivo audio per la registrazione. Permessi non " -"sufficienti per aprire il dispositivo." - -msgid "Could not open audio device for recording." -msgstr "Impossibile aprire il dispositivo audio per la registrazione." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -146,6 +142,45 @@ msgstr "Questo dispositivo audio non supporta la registrazione." msgid "Error recording from audio device." msgstr "Errore nel registrare dal dispositivo audio." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Impossibile aprire il dispositivo audio per la registrazione. Permessi non " +"sufficienti per aprire il dispositivo." + +msgid "Could not open audio device for recording." +msgstr "Impossibile aprire il dispositivo audio per la registrazione." + +msgid "Record Source" +msgstr "Sorgente registrazione" + +msgid "Microphone" +msgstr "Microfono" + +msgid "Line In" +msgstr "Linea in" + +msgid "Internal CD" +msgstr "CD interno" + +msgid "SPDIF In" +msgstr "SPDIF in" + +msgid "AUX 1 In" +msgstr "AUX 1 in" + +msgid "AUX 2 In" +msgstr "AUX 2 in" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Loopback" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Loopback" + msgid "Volume" msgstr "Volume" @@ -247,6 +282,10 @@ msgstr "Impostazione dell'ingresso %d sul device «%s» non riuscita." msgid "Failed to change mute state for device '%s'." msgstr "Recupero dell'intensità del segnale per il device «%s» non riuscito." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Impossibile identificare il device «%s»." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -280,10 +319,6 @@ msgstr "Interrogazione di norm sul device «%s» non riuscita." msgid "Failed getting controls attributes on device '%s'." msgstr "Recupero degli attributi dei controlli sul device «%s» non riuscito." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Impossibile identificare il device «%s»." - #, c-format msgid "This isn't a device '%s'." msgstr "Questo non è un dispositivo «%s»." @@ -381,9 +416,6 @@ msgstr "Impossibile operare senza un clock" #~ msgid "Line-in" #~ msgstr "Linea in" -#~ msgid "Microphone" -#~ msgstr "Microfono" - #~ msgid "CD" #~ msgstr "CD" @@ -485,21 +517,9 @@ msgstr "Impossibile operare senza un clock" #~ msgid "Telephone" #~ msgstr "Telefono" -#~ msgid "Line In" -#~ msgstr "Linea in" - -#~ msgid "Internal CD" -#~ msgstr "CD interno" - #~ msgid "Video In" #~ msgstr "Video in" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 in" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 in" - #~ msgid "AUX In" #~ msgstr "AUX in" @@ -512,9 +532,6 @@ msgstr "Impossibile operare senza un clock" #~ msgid "Microphone Boost" #~ msgstr "Incremento microfono" -#~ msgid "Loopback" -#~ msgstr "Loopback" - #~ msgid "Diagnostic" #~ msgstr "Diagnostica" @@ -527,9 +544,6 @@ msgstr "Impossibile operare senza un clock" #~ msgid "Input" #~ msgstr "Input" -#~ msgid "Record Source" -#~ msgstr "Sorgente registrazione" - #~ msgid "Monitor Source" #~ msgstr "Sorgente monitor" @@ -570,9 +584,6 @@ msgstr "Impossibile operare senza un clock" #~ msgid "Input Mix" #~ msgstr "Mix ingresso" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF in" - #~ msgid "Microphone 1" #~ msgstr "Microfono 1" diff --git a/po/ja.gmo b/po/ja.gmo index 12ee8afe0f75110eb0d656ae76d5f553af88a02d..6083abbe567857cc4f3b64a10bd3b6f7f4836668 100644 Binary files a/po/ja.gmo and b/po/ja.gmo differ diff --git a/po/ja.po b/po/ja.po index bf2f628dede3643073055cac39aa7cb7acd95a57..431ea88193ee675df3516c19c9129aece7e4ff2b 100644 --- a/po/ja.po +++ b/po/ja.po @@ -3,33 +3,39 @@ # # Takao Fujiwara <takao.fujiwara@sun.com>, 2006. # Makoto Kato <makoto.kt@gmail.com>, 2009-2011. -# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2011-2012 +# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2011 msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-12-22 20:13+0900\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2011-08-28 23:59+0900\n" "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n" "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.4\n" +"X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=1; plural=0;\n" -#. TRANSLATORS: 'song title' by 'artist name' -#, c-format -msgid "'%s' by '%s'" -msgstr "'%s' , '%s'" +msgid "Jack server not found" +msgstr "" msgid "Failed to decode JPEG image" msgstr "JPEGç”»åƒã®ãƒ‡ã‚³ãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸ" +#. TRANSLATORS: 'song title' by 'artist name' +#, fuzzy, c-format +msgid "'%s' by '%s'" +msgstr "対" + msgid "Could not connect to server" msgstr "サーãƒãƒ¼ã¸æŽ¥ç¶šã§ãã¾ã›ã‚“" +msgid "No URL set." +msgstr "URLãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。" + msgid "Server does not support seeking." msgstr "サーãƒãƒ¼ã¯ã‚·ãƒ¼ã‚¯ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。" @@ -46,11 +52,9 @@ msgid "" "A network error occured, or the server closed the connection unexpectedly." msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸã‹ã€ã‚µãƒ¼ãƒãƒ¼ãŒäºˆæœŸã›ãšæŽ¥ç¶šã‚’é–‰ã˜ã¾ã—ãŸã€‚" +#, fuzzy msgid "Server sent bad data." -msgstr "サーãƒãŒä¸æ£ãªãƒ‡ãƒ¼ã‚¿ã‚’é€ä¿¡ã—ã¾ã—ãŸã€‚" - -msgid "No URL set." -msgstr "URLãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。" +msgstr "データストリーム(サーãƒãƒ¼ãƒ—ッシュ型)" msgid "Internal data stream error." msgstr "内部データストリームエラー" @@ -65,6 +69,9 @@ msgstr "ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ã¯å†ç”Ÿä¸å¯èƒ½ãªã‚¹ãƒˆãƒªãƒ¼ãƒ ãŒå«ã¾ã‚Œã¦ msgid "This file is invalid and cannot be played." msgstr "ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ä¸æ£ãªãŸã‚å†ç”Ÿã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯å£Šã‚Œã¦ã„ã‚‹ãŸã‚å†ç”Ÿã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" @@ -120,17 +127,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "音声デãƒã‚¤ã‚¹ã‚’èªã¿å–り用ã«é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“。" -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"録音用ã«ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªãƒ‡ãƒã‚¤ã‚¹ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚デãƒã‚¤ã‚¹ã‚’é–‹ããŸã‚ã®" -"権é™ãŒã‚ã‚Šã¾ã›ã‚“。" - -# SUN REVIEWED -msgid "Could not open audio device for recording." -msgstr "音声デãƒã‚¤ã‚¹ã‚’録音用ã«é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“。" - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -150,6 +146,47 @@ msgstr "ã“ã®ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªãƒ‡ãƒã‚¤ã‚¹ã«ã‚ˆã£ã¦éŒ²éŸ³ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œ msgid "Error recording from audio device." msgstr "オーディオデãƒã‚¤ã‚¹ã‹ã‚‰ã®éŒ²éŸ³æ™‚ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚" +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"録音用ã«ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªãƒ‡ãƒã‚¤ã‚¹ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚デãƒã‚¤ã‚¹ã‚’é–‹ããŸã‚ã®" +"権é™ãŒã‚ã‚Šã¾ã›ã‚“。" + +# SUN REVIEWED +msgid "Could not open audio device for recording." +msgstr "音声デãƒã‚¤ã‚¹ã‚’録音用ã«é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“。" + +msgid "Record Source" +msgstr "録音ソース" + +# SUN REVIEWED +msgid "Microphone" +msgstr "マイクãƒãƒ•ã‚©ãƒ³" + +msgid "Line In" +msgstr "ライン入力" + +msgid "Internal CD" +msgstr "内蔵CD" + +msgid "SPDIF In" +msgstr "SPDIF入力" + +msgid "AUX 1 In" +msgstr "AUX 1入力" + +msgid "AUX 2 In" +msgstr "AUX 2入力" + +#, fuzzy +msgid "Codec Loopback" +msgstr "ループãƒãƒƒã‚¯" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "ループãƒãƒƒã‚¯" + # SUN REVIEWED msgid "Volume" msgstr "音é‡" @@ -186,29 +223,31 @@ msgstr "デãƒã‚¤ã‚¹ %2$s ã‹ã‚‰ã€€%1$d ãƒã‚¤ãƒˆèªã¿è¾¼ã¿æ™‚ã«ã‚¨ãƒ©ãƒ¼ãŒ #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" -msgstr "デãƒã‚¤ã‚¹'%s'ãŒä½œæ¥ã§ãるビデオ形å¼ã®æ•°ãˆä¸Šã’ã«å¤±æ•—ã—ã¾ã—ãŸ" +msgstr "" #, c-format msgid "Could not map buffers from device '%s'" msgstr "デãƒã‚¤ã‚¹ '%s' ã‹ã‚‰ãƒãƒƒãƒ•ã‚¡ã‚’マップã§ãã¾ã›ã‚“。" -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "デãƒã‚¤ã‚¹ '%s' ã®ãƒ‰ãƒ©ã‚¤ãƒã¯IOメソッド%dをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" +msgstr "" +"デãƒã‚¤ã‚¹ '%s' ã®ãƒ‰ãƒ©ã‚¤ãƒãƒ¼ã¯ã‚ˆã知られãŸã‚ャプãƒãƒ£ãƒ¼ãƒ¡ã‚½ãƒƒãƒ‰ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„" +"ã¾ã›ã‚“" -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." msgstr "" -"デãƒã‚¤ã‚¹ '%s' ã®ãƒ‰ãƒ©ã‚¤ãƒã¯çŸ¥ã‚‰ã‚Œã¦ã„ã‚‹ã„ã‹ãªã‚‹IOメソッドもサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›" -"ん。" +"デãƒã‚¤ã‚¹ '%s' ã®ãƒ‰ãƒ©ã‚¤ãƒãƒ¼ã¯ã‚ˆã知られãŸã‚ャプãƒãƒ£ãƒ¼ãƒ¡ã‚½ãƒƒãƒ‰ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„" +"ã¾ã›ã‚“" -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "デãƒã‚¤ã‚¹ '%s' ã¯ãƒ“デオã‚ャプãƒãƒ£ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" +msgstr "デãƒã‚¤ã‚¹ '%s' ã¯å‡ºåŠ›ãƒ‡ãƒã‚¤ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" #, c-format msgid "Device '%s' is busy" -msgstr "デãƒã‚¤ã‚¹`%s'ã¯ãƒ“ジー状態ã§ã™" +msgstr "" #, c-format msgid "Device '%s' cannot capture at %dx%d" @@ -223,43 +262,52 @@ msgstr "デãƒã‚¤ã‚¹ '%s' ã¯æŒ‡å®šã•ã‚ŒãŸãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã§ã‚ャプãƒãƒ£ msgid "Could not get parameters on device '%s'" msgstr "デãƒã‚¤ã‚¹ '%s' 上ã®ãƒ‘ラメータをå–å¾—ã§ãã¾ã›ã‚“。" +#, fuzzy msgid "Video device did not accept new frame rate setting." -msgstr "ビデオデãƒã‚¤ã‚¹ãŒæ–°ã—ã„フレームレートè¨å®šã‚’å—ã‘付ã‘ã¾ã›ã‚“。" +msgstr "ビデオ入力デãƒã‚¤ã‚¹ã¯æ–°ã—ã„フレームレートè¨å®šã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" msgid "Video device could not create buffer pool." -msgstr "ビデオデãƒã‚¤ã‚¹ã¯ãƒãƒƒãƒ•ã‚¡ãƒ—ールを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "デãƒã‚¤ã‚¹ '%2$s' 上ã®ãƒãƒ¥ãƒ¼ãƒŠãƒ¼ %1$d ã®è¨å®šã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "デãƒã‚¤ã‚¹'%s' ã®èƒ½åŠ›ã‚’å–å¾—ã™ã‚‹æ™‚ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚" +msgstr "デãƒã‚¤ã‚¹ %2$s ã‹ã‚‰ã€€%1$d ãƒã‚¤ãƒˆèªã¿è¾¼ã¿æ™‚ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚" -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "デãƒã‚¤ã‚¹ '%s' ã¯ãƒãƒ¥ãƒ¼ãƒŠã§ã¯ã‚ã‚Šã¾ã›ã‚“。" +msgstr "デãƒã‚¤ã‚¹ '%s' ã¯å‡ºåŠ›ãƒ‡ãƒã‚¤ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "デãƒã‚¤ã‚¹ '%s' 上ã®ãƒ©ã‚¸ã‚ªå…¥åŠ›ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" +msgstr "" +"デãƒã‚¤ã‚¹ '%3$s' 上ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ« %2$d ã®å€¤ã‚’ %1$d ã¸è¨å®šã™ã‚‹ã“ã¨ã«å¤±æ•—ã—ã¾ã—" +"ãŸã€‚" -#, c-format +#, fuzzy, c-format msgid "Failed to set input %d on device %s." -msgstr "デãƒã‚¤ã‚¹ '%2$s' 上ã®å…¥åŠ›%1$d ã®è¨å®šã«å¤±æ•—ã—ã¾ã—ãŸã€‚" +msgstr "" +"デãƒã‚¤ã‚¹ '%3$s' 上ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ« %2$d ã®å€¤ã‚’ %1$d ã¸è¨å®šã™ã‚‹ã“ã¨ã«å¤±æ•—ã—ã¾ã—" +"ãŸã€‚" -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "デãƒã‚¤ã‚¹ '%s' ã®ãƒŸãƒ¥ãƒ¼ãƒˆçŠ¶æ…‹ã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ" +msgstr "デãƒã‚¤ã‚¹ '%s' ã®ç¾åœ¨ã®ãƒãƒ¥ãƒ¼ãƒŠãƒ¼ã®å‘¨æ³¢æ•°ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ" + +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "ミã‚サーデãƒã‚¤ã‚¹'%s'ã‚’é–‹ã‘ã¾ã›ã‚“" #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" -"デãƒã‚¤ã‚¹ '%s' ã®èƒ½åŠ›ã‚’å–å¾—ã™ã‚‹æ™‚ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: v4l2 ドライãƒã§ã¯ã‚ã‚Š" -"ã¾ã›ã‚“。v4l1 ドライãƒã§ãªã„ã‹ã€ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" +"デãƒã‚¤ã‚¹ '%s' ケイパビリティã®å–得時ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: v4l2 ドライãƒã§ã¯" +"ã‚ã‚Šã¾ã›ã‚“。v4l1 ドライãƒã§ãªã„ã‹ã€ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #, c-format msgid "Failed to query attributes of input %d in device %s" @@ -269,18 +317,14 @@ msgstr "デãƒã‚¤ã‚¹ %2$s 内ã®å…¥åŠ› %1$d ã®å±žæ€§ã®ã‚¯ã‚¨ãƒªãƒ¼ã«å¤±æ•—ã— msgid "Failed to get setting of tuner %d on device '%s'." msgstr "デãƒã‚¤ã‚¹ '%2$s' 上ã®ãƒãƒ¥ãƒ¼ãƒŠãƒ¼ %1$d ã®è¨å®šã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" -#, c-format +#, fuzzy, c-format msgid "Failed to query norm on device '%s'." -msgstr "デãƒã‚¤ã‚¹ '%s' 上ã®ãƒŽãƒ«ãƒ ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" +msgstr "デãƒã‚¤ã‚¹ '%2$s' 上ã®ãƒãƒ¥ãƒ¼ãƒŠãƒ¼ %1$d ã®è¨å®šã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #, c-format msgid "Failed getting controls attributes on device '%s'." msgstr "デãƒã‚¤ã‚¹ '%s' ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«å±žæ€§ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "デãƒã‚¤ã‚¹'%s'を特定ã§ãã¾ã›ã‚“。" - #, c-format msgid "This isn't a device '%s'." msgstr "ã“ã‚Œã¯ãƒ‡ãƒã‚¤ã‚¹ '%s' ã§ã¯ã‚ã‚Šã¾ã›ã‚“" @@ -298,9 +342,11 @@ msgstr "デãƒã‚¤ã‚¹ '%s' ã¯ã‚ャプãƒãƒ£ãƒ‡ãƒã‚¤ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" msgid "Device '%s' is not a output device." msgstr "デãƒã‚¤ã‚¹ '%s' ã¯å‡ºåŠ›ãƒ‡ãƒã‚¤ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#, c-format +#, fuzzy, c-format msgid "Failed to set norm for device '%s'." -msgstr "デãƒã‚¤ã‚¹ '%s' 上ã®ãƒŽãƒ«ãƒ ã®è¨å®šã«å¤±æ•—ã—ã¾ã—ãŸã€‚" +msgstr "" +"デãƒã‚¤ã‚¹ '%3$s' 上ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ« %2$d ã®å€¤ã‚’ %1$d ã¸è¨å®šã™ã‚‹ã“ã¨ã«å¤±æ•—ã—ã¾ã—" +"ãŸã€‚" #, c-format msgid "Failed to get current tuner frequency for device '%s'." @@ -310,9 +356,9 @@ msgstr "デãƒã‚¤ã‚¹ '%s' ã®ç¾åœ¨ã®ãƒãƒ¥ãƒ¼ãƒŠãƒ¼ã®å‘¨æ³¢æ•°ã®å–å¾—ã«å¤± msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "デãƒã‚¤ã‚¹ '%s' ã®ãƒãƒ¥ãƒ¼ãƒŠãƒ¼ã®å‘¨æ³¢æ•°ã® %lu Hz ã¸ã®è¨å®šã«å¤±æ•—ã—ã¾ã—ãŸ" -#, c-format +#, fuzzy, c-format msgid "Failed to get signal strength for device '%s'." -msgstr "デãƒã‚¤ã‚¹ '%s' ã®ä¿¡å·ã®å¼·ã•ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" +msgstr "デãƒã‚¤ã‚¹ '%s' ã®ç¾åœ¨ã®ãƒãƒ¥ãƒ¼ãƒŠãƒ¼ã®å‘¨æ³¢æ•°ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ" #, c-format msgid "Failed to get value for control %d on device '%s'." @@ -347,11 +393,15 @@ msgstr "実行時ã®è§£åƒåº¦å¤‰æ›´ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。" msgid "Cannot operate without a clock" msgstr "クãƒãƒƒã‚¯ãªã—ã§ã¯å‹•ä½œã§ãã¾ã›ã‚“。" -#~ msgid "Could not establish connection to sound server" -#~ msgstr "サウンドサーãƒãƒ¼ã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸ" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "予期ã—ãªã„フレームサイズ (%2$u ã§ã¯ãªã %1$u) ã‚’å–å¾—ã—ã¾ã—ãŸã€‚" -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "サウンドサーãƒãƒ¼ã®ã‚±ã‚¤ãƒ‘ビリティã®ã‚¯ã‚¨ãƒªãƒ¼ã«å¤±æ•—ã—ã¾ã—ãŸ" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "デãƒã‚¤ã‚¹ '%s' ã‹ã‚‰ãƒ“デオフレームã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "" +#~ "%d 回リトライã—ã¾ã—ãŸãŒå¤±æ•—ã—ã¾ã—ãŸã€‚デãƒã‚¤ã‚¹ %s。システムエラー: %s" # SUN REVIEWED #~ msgid "Bass" @@ -376,10 +426,6 @@ msgstr "クãƒãƒƒã‚¯ãªã—ã§ã¯å‹•ä½œã§ãã¾ã›ã‚“。" #~ msgid "Line-in" #~ msgstr "ライン入力" -# SUN REVIEWED -#~ msgid "Microphone" -#~ msgstr "マイクãƒãƒ•ã‚©ãƒ³" - # SUN REVIEWED #~ msgid "CD" #~ msgstr "CD" @@ -497,21 +543,9 @@ msgstr "クãƒãƒƒã‚¯ãªã—ã§ã¯å‹•ä½œã§ãã¾ã›ã‚“。" #~ msgid "Telephone" #~ msgstr "電話" -#~ msgid "Line In" -#~ msgstr "ライン入力" - -#~ msgid "Internal CD" -#~ msgstr "内蔵CD" - #~ msgid "Video In" #~ msgstr "ビデオ入力" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1入力" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2入力" - #~ msgid "AUX In" #~ msgstr "AUX入力" @@ -524,9 +558,6 @@ msgstr "クãƒãƒƒã‚¯ãªã—ã§ã¯å‹•ä½œã§ãã¾ã›ã‚“。" #~ msgid "Microphone Boost" #~ msgstr "マイクãƒãƒ•ã‚©ãƒ³ãƒ–ースト" -#~ msgid "Loopback" -#~ msgstr "ループãƒãƒƒã‚¯" - #~ msgid "Diagnostic" #~ msgstr "診æ–" @@ -539,9 +570,6 @@ msgstr "クãƒãƒƒã‚¯ãªã—ã§ã¯å‹•ä½œã§ãã¾ã›ã‚“。" #~ msgid "Input" #~ msgstr "入力" -#~ msgid "Record Source" -#~ msgstr "録音ソース" - #~ msgid "Monitor Source" #~ msgstr "モニターソース" @@ -582,9 +610,6 @@ msgstr "クãƒãƒƒã‚¯ãªã—ã§ã¯å‹•ä½œã§ãã¾ã›ã‚“。" #~ msgid "Input Mix" #~ msgstr "入力ミックス" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF入力" - #~ msgid "Microphone 1" #~ msgstr "マイクãƒãƒ•ã‚©ãƒ³1" @@ -712,8 +737,11 @@ msgstr "クãƒãƒƒã‚¯ãªã—ã§ã¯å‹•ä½œã§ãã¾ã›ã‚“。" #~ msgid "%s Function" #~ msgstr "機能" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "予期ã—ãªã„フレームサイズ (%2$u ã§ã¯ãªã %1$u) ã‚’å–å¾—ã—ã¾ã—ãŸã€‚" +#~ msgid "Could not establish connection to sound server" +#~ msgstr "サウンドサーãƒãƒ¼ã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸ" + +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "サウンドサーãƒãƒ¼ã®ã‚±ã‚¤ãƒ‘ビリティã®ã‚¯ã‚¨ãƒªãƒ¼ã«å¤±æ•—ã—ã¾ã—ãŸ" #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "" @@ -723,13 +751,6 @@ msgstr "クãƒãƒƒã‚¯ãªã—ã§ã¯å‹•ä½œã§ãã¾ã›ã‚“。" #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "デãƒã‚¤ã‚¹ '%s' ã‹ã‚‰ãƒãƒƒãƒ•ã‚¡ã‚’マップã§ãã¾ã›ã‚“。" -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "デãƒã‚¤ã‚¹ '%s' ã‹ã‚‰ãƒ“デオフレームã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" - -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "" -#~ "%d 回リトライã—ã¾ã—ãŸãŒå¤±æ•—ã—ã¾ã—ãŸã€‚デãƒã‚¤ã‚¹ %s。システムエラー: %s" - #~ msgid "" #~ "Failed trying to get video frames from device '%s'. Not enough memory." #~ msgstr "" diff --git a/po/lt.gmo b/po/lt.gmo index 301af7d7e217ba52fdbd30dd3aa60f5893772a56..ac391807a57a09f20b9228c0a6a4ce290167d6ca 100644 Binary files a/po/lt.gmo and b/po/lt.gmo differ diff --git a/po/lt.po b/po/lt.po index 16abe0ce7d43f6244bd7b1d7a2c81e8bcaa6505c..cbd4cbe002ddfef9edd4977912664904e36a454a 100644 --- a/po/lt.po +++ b/po/lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.23.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2010-07-16 19:34+0300\n" "Last-Translator: Žygimantas BeruÄka <uid0@akl.lt>\n" "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n" @@ -19,17 +19,23 @@ msgstr "" "%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Virtaal 0.6.1\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Nepavyko dekoduoti JPEG paveikslÄ—lio" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "„%s“ atlieka „%s“" -msgid "Failed to decode JPEG image" -msgstr "Nepavyko dekoduoti JPEG paveikslÄ—lio" - msgid "Could not connect to server" msgstr "Nepavyko prisijungti prie serverio" +msgid "No URL set." +msgstr "" + msgid "Server does not support seeking." msgstr "" @@ -51,9 +57,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "VidinÄ— duomenų srauto klaida." @@ -66,6 +69,9 @@ msgstr "Å iame faile nÄ—ra atkurtinų srautų." msgid "This file is invalid and cannot be played." msgstr "Failas netinkamas ir negali bÅ«ti atkurtas." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Failas sugadintas ir negali bÅ«ti atkurtas." @@ -116,16 +122,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Nepavyko atverti garso įrenginio grojimui. " -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Nepavyko atverti garso įrenginio įraÅ¡ymui. JÅ«s neturite leidimo atverti " -"įrenginį." - -msgid "Could not open audio device for recording." -msgstr "Nepavyko atverti garso įrenginio įraÅ¡ymui." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -145,6 +141,45 @@ msgstr "Å is garso įrenginys nepalaiko grojimo." msgid "Error recording from audio device." msgstr "Klaida įraÅ¡ant iÅ¡ garso įrenginio." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Nepavyko atverti garso įrenginio įraÅ¡ymui. JÅ«s neturite leidimo atverti " +"įrenginį." + +msgid "Could not open audio device for recording." +msgstr "Nepavyko atverti garso įrenginio įraÅ¡ymui." + +msgid "Record Source" +msgstr "Ä®raÅ¡ymo Å¡altinis" + +msgid "Microphone" +msgstr "Mikrofonas" + +msgid "Line In" +msgstr "Ä®einanti linija" + +msgid "Internal CD" +msgstr "Vidinis CD" + +msgid "SPDIF In" +msgstr "SPDIF įvestis" + +msgid "AUX 1 In" +msgstr "AUX 1 įvestis" + +msgid "AUX 2 In" +msgstr "AUX 2 įvestis" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Perduoti ratu" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Perduoti ratu" + msgid "Volume" msgstr "Garsumas" @@ -243,6 +278,10 @@ msgstr "Nepavyko nustatyti įvesties %d įrenginyje %s." msgid "Failed to change mute state for device '%s'." msgstr "Nepavyko gauti įrenginio „%s“ signalo stiprumo." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Nepavyko nustatyti įrenginio „%s“." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -267,10 +306,6 @@ msgstr "Nepavyko užklausti normalÄ—s įrenginyje „%s“." msgid "Failed getting controls attributes on device '%s'." msgstr "Nepavyko gauti valdymo atributų įrenginyje „%s“." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Nepavyko nustatyti įrenginio „%s“." - #, c-format msgid "This isn't a device '%s'." msgstr "Tai nÄ—ra įrenginys „%s“." @@ -361,9 +396,6 @@ msgstr "Negali veikti be laikrodžio" #~ msgid "Line-in" #~ msgstr "Ä®vedimas" -#~ msgid "Microphone" -#~ msgstr "Mikrofonas" - #~ msgid "CD" #~ msgstr "CD" @@ -461,21 +493,9 @@ msgstr "Negali veikti be laikrodžio" #~ msgid "Telephone" #~ msgstr "Telefonas" -#~ msgid "Line In" -#~ msgstr "Ä®einanti linija" - -#~ msgid "Internal CD" -#~ msgstr "Vidinis CD" - #~ msgid "Video In" #~ msgstr "Vaizdo įvestis" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 įvestis" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 įvestis" - #~ msgid "AUX In" #~ msgstr "AUX įvestis" @@ -488,9 +508,6 @@ msgstr "Negali veikti be laikrodžio" #~ msgid "Microphone Boost" #~ msgstr "Mikrofono pagarsinimas" -#~ msgid "Loopback" -#~ msgstr "Perduoti ratu" - #~ msgid "Diagnostic" #~ msgstr "Diagnostika" @@ -503,9 +520,6 @@ msgstr "Negali veikti be laikrodžio" #~ msgid "Input" #~ msgstr "Ä®vestis" -#~ msgid "Record Source" -#~ msgstr "Ä®raÅ¡ymo Å¡altinis" - #~ msgid "Monitor Source" #~ msgstr "Monitoriaus Å¡altinis" @@ -545,9 +559,6 @@ msgstr "Negali veikti be laikrodžio" #~ msgid "Input Mix" #~ msgstr "Ä®vesties maiÅ¡a" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF įvestis" - #~ msgid "Microphone 1" #~ msgstr "Mikrofonas 1" diff --git a/po/lv.gmo b/po/lv.gmo index 90042e6f42321d9d23b2a6fdd08952a17619b07c..24bba87824aeb73de32b96b2fbd19a7d4d247d32 100644 Binary files a/po/lv.gmo and b/po/lv.gmo differ diff --git a/po/lv.po b/po/lv.po index 97226f8cd85770f6c82c2f702f7701dc87f55396..621a332381585a98bbb25a820ad68bb3c5c22475 100644 --- a/po/lv.po +++ b/po/lv.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-09-02 11:23-0000\n" "Last-Translator: Rihards PriedÄ«tis <rprieditis@gmail.com>\n" "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n" @@ -20,17 +20,23 @@ msgstr "" "2);\n" "X-Generator: Lokalize 1.0\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "NeizdevÄs atkodÄ“t JPEG attÄ“lu" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "\"%s\"ko \"%s\"" -msgid "Failed to decode JPEG image" -msgstr "NeizdevÄs atkodÄ“t JPEG attÄ“lu" - msgid "Could not connect to server" msgstr "Nevar savienoties ar serveri" +msgid "No URL set." +msgstr "URL nav uzstÄdÄ«ts." + msgid "Server does not support seeking." msgstr "Serveris neatbalsta meklÄ“Å¡anu." @@ -50,9 +56,6 @@ msgstr "Notika tÄ«kla kļūda, vai serveris negaidÄ«ti aizvÄ“ra savienojumu." msgid "Server sent bad data." msgstr "Serveris nosÅ«tija sliktus datus." -msgid "No URL set." -msgstr "URL nav uzstÄdÄ«ts." - msgid "Internal data stream error." msgstr "IekÅ¡Ä“jÄs datu plÅ«smas kļūda." @@ -65,6 +68,9 @@ msgstr "Å is fails nesatur nevienu atskaņojamu straumi." msgid "This file is invalid and cannot be played." msgstr "Å is fails ir nederÄ«gs un nevar tikt atskaņots." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Å is fails ir bojÄts un nevar tikt atskaņots." @@ -116,16 +122,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Nav iespÄ“jams atvÄ“rt audio ierÄ«ci atskaņoÅ¡anai." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Nevar atvÄ“rt audio ierÄ«ci ierakstÄ«Å¡anai. Jums nav nepiecieÅ¡amo piekļuves " -"tiesÄ«bu, lai atvÄ“rtu ierÄ«ci." - -msgid "Could not open audio device for recording." -msgstr "NevarÄ“ja atvÄ“rt audio ierÄ«ci ierakstÄ«Å¡anai." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -145,6 +141,45 @@ msgstr "Å Ä« audio ierÄ«ce neatablsta ierkastÄ«Å¡anu." msgid "Error recording from audio device." msgstr "Kļūda ierakstot no audio iekÄrtas." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Nevar atvÄ“rt audio ierÄ«ci ierakstÄ«Å¡anai. Jums nav nepiecieÅ¡amo piekļuves " +"tiesÄ«bu, lai atvÄ“rtu ierÄ«ci." + +msgid "Could not open audio device for recording." +msgstr "NevarÄ“ja atvÄ“rt audio ierÄ«ci ierakstÄ«Å¡anai." + +msgid "Record Source" +msgstr "IerakstÄ«Å¡anas avots" + +msgid "Microphone" +msgstr "Mikrofons" + +msgid "Line In" +msgstr "LÄ«nijas ieeja" + +msgid "Internal CD" +msgstr "IekÅ¡Ä“jais CD" + +msgid "SPDIF In" +msgstr "SPDIF ieeja" + +msgid "AUX 1 In" +msgstr "AUX 1 ieeja" + +msgid "AUX 2 In" +msgstr "AUX 2 ieeja" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Atpakaļcikls" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Atpakaļcikls" + msgid "Volume" msgstr "Skaļums" @@ -245,6 +280,10 @@ msgstr "NeizdevÄs uzstÄdÄ«t ievadi %d uz ierÄ«ces %s." msgid "Failed to change mute state for device '%s'." msgstr "NeizdevÄs saņemt signÄla stiprumu no ierÄ«ces \"%s\"." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Nevar atpazÄ«t ierÄ«ci \"%s\"" + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -269,10 +308,6 @@ msgstr "NeizdevÄs noskaidrot normu ierÄ«cei \"%s\"." msgid "Failed getting controls attributes on device '%s'." msgstr "NeizdevÄs iegÅ«t kontroles atribÅ«tus ierÄ«cei \"%s\"." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Nevar atpazÄ«t ierÄ«ci \"%s\"" - #, c-format msgid "This isn't a device '%s'." msgstr "Å Ä« nav ierÄ«ce \"%s\"" @@ -364,9 +399,6 @@ msgstr "Nevar veikt darbÄ«bas bez pulksteņa" #~ msgid "Line-in" #~ msgstr "Skaņas ieeja" -#~ msgid "Microphone" -#~ msgstr "Mikrofons" - #~ msgid "CD" #~ msgstr "CD" @@ -464,21 +496,9 @@ msgstr "Nevar veikt darbÄ«bas bez pulksteņa" #~ msgid "Telephone" #~ msgstr "Telefons" -#~ msgid "Line In" -#~ msgstr "LÄ«nijas ieeja" - -#~ msgid "Internal CD" -#~ msgstr "IekÅ¡Ä“jais CD" - #~ msgid "Video In" #~ msgstr "Video ieeja" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 ieeja" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 ieeja" - #~ msgid "AUX In" #~ msgstr "AUC ieeja" @@ -491,9 +511,6 @@ msgstr "Nevar veikt darbÄ«bas bez pulksteņa" #~ msgid "Microphone Boost" #~ msgstr "Mikrofona pastiprinÄjums" -#~ msgid "Loopback" -#~ msgstr "Atpakaļcikls" - #~ msgid "Diagnostic" #~ msgstr "Diagnostika" @@ -506,9 +523,6 @@ msgstr "Nevar veikt darbÄ«bas bez pulksteņa" #~ msgid "Input" #~ msgstr "Ievads" -#~ msgid "Record Source" -#~ msgstr "IerakstÄ«Å¡anas avots" - #~ msgid "Monitor Source" #~ msgstr "Monitora avots" @@ -548,9 +562,6 @@ msgstr "Nevar veikt darbÄ«bas bez pulksteņa" #~ msgid "Input Mix" #~ msgstr "Ieejas mikseris" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF ieeja" - #~ msgid "Microphone 1" #~ msgstr "Mikrofons 1" diff --git a/po/mt.gmo b/po/mt.gmo index a37a46bf1e86d64d7443bf835dafbb28cc61df13..3f248aa6cbb5b0f311ebc7e52a82a3afc392026c 100644 Binary files a/po/mt.gmo and b/po/mt.gmo differ diff --git a/po/mt.po b/po/mt.po index af429836aaebf47c99c8b3d4aaf6d3eb28e394ea..604706be33d7dabf3d3cf550d501a5e52dc793f9 100644 --- a/po/mt.po +++ b/po/mt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.10.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2008-10-26 19:09+0100\n" "Last-Translator: Michel Bugeja <michelbugeja@rabatmalta.com>\n" "Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n" @@ -16,17 +16,23 @@ msgstr "" "X-Poedit-Language: Maltese\n" "X-Poedit-Country: MALTA\n" -#. TRANSLATORS: 'song title' by 'artist name' -#, c-format -msgid "'%s' by '%s'" +msgid "Jack server not found" msgstr "" msgid "Failed to decode JPEG image" msgstr "Problem fid-decoding tal-istampa JPEG" +#. TRANSLATORS: 'song title' by 'artist name' +#, c-format +msgid "'%s' by '%s'" +msgstr "" + msgid "Could not connect to server" msgstr "Mhux possibli naqbad mas-server" +msgid "No URL set." +msgstr "" + #, fuzzy msgid "Server does not support seeking." msgstr "Appart '%s' ma jagħmilx video capture" @@ -49,9 +55,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "Problema interna fid-data stream" @@ -64,6 +67,9 @@ msgstr "Il-fajl ma fiħ l-ebda stream li tista tindaqq." msgid "This file is invalid and cannot be played." msgstr "Il-fajl mhux validu u ma jistax jindaqq" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Il-fajl huwa korrott u ma jistax jinfetaħ." @@ -108,16 +114,6 @@ msgstr "Audio device ma jistax jintuża. M'għandex aÄ‹Ä‹ess għalih." msgid "Could not open audio device for playback." msgstr "Audio device ma jistax jintuża." -#, fuzzy -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Audio device ma jistax jintuża biex tirrekordja. M'għandex aÄ‹Ä‹ess għalih." - -msgid "Could not open audio device for recording." -msgstr "Audio device ma jistax jintuża biex tirrekordja." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -137,6 +133,45 @@ msgstr "Irrekordjar mhux issapportjat minn dan l-apparat tal-awdjo." msgid "Error recording from audio device." msgstr "Å»ball fl-irrekordjar mill-apparat tal-awdjo." +#, fuzzy +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Audio device ma jistax jintuża biex tirrekordja. M'għandex aÄ‹Ä‹ess għalih." + +msgid "Could not open audio device for recording." +msgstr "Audio device ma jistax jintuża biex tirrekordja." + +#, fuzzy +msgid "Record Source" +msgstr "Record" + +msgid "Microphone" +msgstr "Mikrofonu" + +#, fuzzy +msgid "Line In" +msgstr "Line-in" + +msgid "Internal CD" +msgstr "" + +msgid "SPDIF In" +msgstr "" + +msgid "AUX 1 In" +msgstr "" + +msgid "AUX 2 In" +msgstr "" + +msgid "Codec Loopback" +msgstr "" + +msgid "SunVTS Loopback" +msgstr "" + msgid "Volume" msgstr "Volum" @@ -239,6 +274,10 @@ msgstr "Problema biex nissettja input %d fuq apparat %s." msgid "Failed to change mute state for device '%s'." msgstr "Problema biex inÄ¡ib signal strength fuq l-apparat '%s'." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Device '%s' mhux identifikat." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -263,10 +302,6 @@ msgstr "Ma stajx nfittex norm fuq apparat '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "L-attributi ta' kontroll ta' device '%s' ma nqrawx." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Device '%s' mhux identifikat." - #, c-format msgid "This isn't a device '%s'." msgstr "Dan mhux device %s." @@ -360,9 +395,6 @@ msgstr "Ma nistax nħaddem mingħajr arloÄ¡Ä¡" #~ msgid "Line-in" #~ msgstr "Line-in" -#~ msgid "Microphone" -#~ msgstr "Mikrofonu" - #~ msgid "CD" #~ msgstr "CD" @@ -372,9 +404,6 @@ msgstr "Ma nistax nħaddem mingħajr arloÄ¡Ä¡" #~ msgid "PCM-2" #~ msgstr "PCM-2" -#~ msgid "Record" -#~ msgstr "Record" - #~ msgid "In-gain" #~ msgstr "In-gain" @@ -449,10 +478,6 @@ msgstr "Ma nistax nħaddem mingħajr arloÄ¡Ä¡" #~ msgid "Telephone" #~ msgstr "Headphones" -#, fuzzy -#~ msgid "Line In" -#~ msgstr "Line-in" - #, fuzzy #~ msgid "Microphone Boost" #~ msgstr "Mikrofonu" diff --git a/po/nb.gmo b/po/nb.gmo index 3b470fc6d2f86b2302057c107b834130b8a0662d..baebcba2b80f85a617b509d1f1770e1e8eeb6338 100644 Binary files a/po/nb.gmo and b/po/nb.gmo differ diff --git a/po/nb.po b/po/nb.po index b84679240d9fe7e71618815d9e533469a598eed9..d86fdd11d43cd68cd71ee82cb76701a2af8fc011 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1,34 +1,37 @@ # Norwegian bokmaal translation of gst-utils. # This file is put in the public domain. -# # Kjartan Maraas <kmaraas@gnome.org>, 2004-2010. -# Johnny A. Solbu <johnny@solbu.net>, 2012. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-12-21 22:13+0100\n" -"Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2010-10-24 21:53+0200\n" +"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n" "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n" -"Language: nb_NO\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.4\n" + +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Klarte ikke Ã¥ dekode JPEG-bilde" #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "«%s» av «%s»" -msgid "Failed to decode JPEG image" -msgstr "Klarte ikke Ã¥ dekode JPEG-bilde" - msgid "Could not connect to server" msgstr "Kunne ikke koble til tjener." +msgid "No URL set." +msgstr "Ingen URL satt." + msgid "Server does not support seeking." msgstr "Tjener støtter ikke søking." @@ -43,112 +46,127 @@ msgstr "Oppsett av sikker tilkobling feilet." msgid "" "A network error occured, or the server closed the connection unexpectedly." -msgstr "Et nettverk feil oppstod, eller tjeneren lukket uventet tilkoblingen." +msgstr "" msgid "Server sent bad data." msgstr "Tjener sendte ugyldige data." -msgid "No URL set." -msgstr "Ingen URL satt." - msgid "Internal data stream error." msgstr "Intern feil i datastrøm." msgid "No or invalid input audio, AVI stream will be corrupt." -msgstr "Ingen eller ugyldig inndatalyd, AVI-strømmen vil bli skadet." +msgstr "" msgid "This file contains no playable streams." -msgstr "Filen inneholder ingen spillbare strømmer." +msgstr "" msgid "This file is invalid and cannot be played." -msgstr "Filen er ugyldig og kan ikke spilles." +msgstr "" + +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" msgid "This file is corrupt and cannot be played." -msgstr "Filen er skadet og kan ikke spilles." +msgstr "" msgid "Invalid atom size." -msgstr "Ugyldig atomstørrelse." +msgstr "" msgid "This file is incomplete and cannot be played." -msgstr "Filen er ufullstendig og kan ikke spilles." +msgstr "" msgid "The video in this file might not play correctly." -msgstr "Videoen i denne filen spilles kanskje ikke av korrekt." +msgstr "" #, c-format msgid "This file contains too many streams. Only playing first %d" -msgstr "Filen inneholder for mange strømmer. Spiller bare første %d" +msgstr "" msgid "" "No supported stream was found. You might need to install a GStreamer RTSP " "extension plugin for Real media streams." msgstr "" -"Ingen støttet strøm ble funnet. Du mÃ¥ kanskje installere en GStreamer RTSP " -"utvidelsesprogramtillegg for Real mediestrømmer." msgid "" "No supported stream was found. You might need to allow more transport " "protocols or may otherwise be missing the right GStreamer RTSP extension " "plugin." msgstr "" -"Ingen støttet strøm ble funnet. Du mÃ¥ kanskje tillate flere " -"transportprotokoller eller den kan mangle den rette GStreamer RTSP-" -"utvidelsestillegget." msgid "Internal data flow error." -msgstr "Intern dataflytfeil." +msgstr "" msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" -"Kunne ikke Ã¥pne lydenheten for avspilling. Enheten brukes av et annet " -"program." msgid "" "Could not open audio device for playback. You don't have permission to open " "the device." msgstr "" -"Kunne ikke Ã¥pne lydenheten for avspilling. Du har ikke tillatelse til Ã¥ Ã¥pne " -"enheten." msgid "Could not open audio device for playback." msgstr "Kunne ikke Ã¥pne lydenhet for avspilling." +msgid "" +"Could not open audio device for playback. This version of the Open Sound " +"System is not supported by this element." +msgstr "" + +msgid "Playback is not supported by this audio device." +msgstr "" + +msgid "Audio playback error." +msgstr "" + +msgid "Recording is not supported by this audio device." +msgstr "" + +msgid "Error recording from audio device." +msgstr "" + msgid "" "Could not open audio device for recording. You don't have permission to open " "the device." msgstr "" -"Kunne ikke Ã¥pne lydenheten for opptak. Du har ikke tillatelse til Ã¥ Ã¥pne " -"enheten." msgid "Could not open audio device for recording." msgstr "Kunne ikke Ã¥pne lydenhet for opptak." -msgid "" -"Could not open audio device for playback. This version of the Open Sound " -"System is not supported by this element." +#, fuzzy +msgid "Record Source" +msgstr "Opptak" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "Linje inn" + +msgid "Internal CD" +msgstr "Intern CD" + +msgid "SPDIF In" msgstr "" -"Kunne ikke Ã¥pne lydenheten for avspilling. Denne versjonen av «Open Sound " -"System» støttes ikke av dette elementet." -msgid "Playback is not supported by this audio device." -msgstr "Avspilling støttes ikke av denne lydenheten." +msgid "AUX 1 In" +msgstr "AUX 1 inn" -msgid "Audio playback error." -msgstr "Lydavspillingsfeil" +msgid "AUX 2 In" +msgstr "AUX 2 inn" -msgid "Recording is not supported by this audio device." -msgstr "Opptak støttes ikke av denne lydenheten." +msgid "Codec Loopback" +msgstr "" -msgid "Error recording from audio device." -msgstr "Feil ved opptak fra lydenheten." +msgid "SunVTS Loopback" +msgstr "" msgid "Volume" msgstr "Volum" msgid "Gain" -msgstr "Styrke" +msgstr "" msgid "Monitor" msgstr "Monitor" @@ -163,7 +181,7 @@ msgid "Line Out" msgstr "Linje ut" msgid "SPDIF Out" -msgstr "SPDIF ut" +msgstr "" msgid "AUX 1 Out" msgstr "AUX 1 ut" @@ -171,103 +189,101 @@ msgstr "AUX 1 ut" msgid "AUX 2 Out" msgstr "AUX 2 ut" -#, c-format +#, fuzzy, c-format msgid "Error reading %d bytes from device '%s'." -msgstr "Feil ved lesing av% d bytes fra enheten '% s»." +msgstr "Kunne ikke lukke VFS-fil «%s»." #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" -msgstr "Kunne ikke spesifisere mulige videoformater enhet «%s» kan arbeide med" +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Could not map buffers from device '%s'" -msgstr "Kunne ikke tilordne buffere fra enheten «%s»." +msgstr "Kunne ikke lukke VFS-fil «%s»." #, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "Driveren av enheten «%s» støtter ikke IO metoden %d" +msgstr "" #, c-format msgid "The driver of device '%s' does not support any known IO method." -msgstr "Driveren av enheten «%s» støtter ikke noen kjente IO-metoder." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "Enhet «%s» støtter ikke videoopptak" +msgstr "Enhet «%s» kan ikke fange data." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "Enheten «%s» er opptatt" +msgstr "Enhet «%s» kan ikke fange data." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture at %dx%d" -msgstr "Enhet «%s» kan ikke fange ved %dx%d" +msgstr "Enhet «%s» kan ikke fange data." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture in the specified format" -msgstr "Enhet «%s» kan ikke fange i det angitte formatet" +msgstr "Enhet «%s» kan ikke fange data." -#, c-format +#, fuzzy, c-format msgid "Could not get parameters on device '%s'" -msgstr "Kunne ikke fÃ¥ parametere pÃ¥ enheten «%s»." +msgstr "Kunne ikke lukke VFS-fil «%s»." msgid "Video device did not accept new frame rate setting." -msgstr "Videoenheten aksepterte ikke ny bildefrekvensinnstilling." +msgstr "" msgid "Video device could not create buffer pool." -msgstr "Videoenhet kan ikke opprette bufferkø" +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." -msgstr "Kunne ikke hente innstillingene fra mottakeren %d pÃ¥ enheten «%s»." +msgstr "Kunne ikke lukke VFS-fil «%s»." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Feil ved henting av funksjoner for enheten «%s»." +msgstr "Kunne ikke lukke VFS-fil «%s»." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "Enheten «%s» er ikke en tuner." +msgstr "Enhet «%s» kan ikke fange data." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Mislyktes i Ã¥ fÃ¥ radio-inndata pÃ¥ enheten «%s»." +msgstr "Kunne ikke lukke VFS-fil «%s»." #, c-format msgid "Failed to set input %d on device %s." -msgstr "Klarte ikke Ã¥ sette inngang %d pÃ¥ enhet %s." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "Klarte ikke Ã¥ endre dempe-modus for enheten «%s»." +msgstr "Kunne ikke lukke VFS-fil «%s»." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Kan ikke identifisere enhet «%s»." #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" -"Feil ved henting av evner for enheten «%s»: Det er ikke en v4l2 driver. " -"Sjekk om det er en v4l1 driver." #, c-format msgid "Failed to query attributes of input %d in device %s" -msgstr "Feil ved attributtspørring av inndata %d pÃ¥ enhet %s" +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get setting of tuner %d on device '%s'." -msgstr "Kunne ikke hente innstillingen av mottakeren %d pÃ¥ enheten «%s»." +msgstr "Kunne ikke lukke VFS-fil «%s»." #, c-format msgid "Failed to query norm on device '%s'." -msgstr "Feil ved norm-spørring pÃ¥ enhet %s." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed getting controls attributes on device '%s'." -msgstr "Kunne ikke Ã¥ fÃ¥ inn kontrollattributter pÃ¥ enhet «%s»." - -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Kan ikke identifisere enhet «%s»." +msgstr "Kunne ikke lukke VFS-fil «%s»." #, c-format msgid "This isn't a device '%s'." @@ -281,62 +297,53 @@ msgstr "Kunne ikke Ã¥pne enhet «%s» for lesing og skriving." msgid "Device '%s' is not a capture device." msgstr "Enhet «%s» kan ikke fange data." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a output device." -msgstr "Enhet «%s» er ikke en utgangsenhet." +msgstr "Enhet «%s» kan ikke fange data." #, c-format msgid "Failed to set norm for device '%s'." -msgstr "Kunne ikke sette normen for enhet «%s»." +msgstr "" #, c-format msgid "Failed to get current tuner frequency for device '%s'." -msgstr "Klarte ikke Ã¥ fÃ¥ gjeldende mottakerfrekvens for enheten «%s»." +msgstr "" #, c-format msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "" -"Klarte ikke Ã¥ sette gjeldende mottakerfrekvens for enheten «%s» til %lu Hz." #, c-format msgid "Failed to get signal strength for device '%s'." -msgstr "Klarte ikke Ã¥ innhente signalstyrken for enheten «%s»." +msgstr "" #, c-format msgid "Failed to get value for control %d on device '%s'." -msgstr "Kunne ikke hente verdi for kontroll %d pÃ¥ enheten «%s»." +msgstr "" #, c-format msgid "Failed to set value %d for control %d on device '%s'." -msgstr "Klarte ikke Ã¥ sette verdi %d for kontroll %d pÃ¥ enheten «%s»." +msgstr "" #, c-format msgid "Failed to get current input on device '%s'. May be it is a radio device" msgstr "" -"Kunne ikke hente gjeldende inndata pÃ¥ enheten «%s». Kanskje det er en " -"radioenhet" #, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" -msgstr "Kunne ikke hente utdata fra enheten «%s». Kanskje det er en radioenhet" +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to set output %d on device %s." -msgstr "Klarte ikke Ã¥ sette utgang %d pÃ¥ enhet %s." +msgstr "Kunne ikke lukke VFS-fil «%s»." msgid "Changing resolution at runtime is not yet supported." -msgstr "Endring av oppløsning under kjøring støttes ikke enda." +msgstr "" msgid "Cannot operate without a clock" msgstr "Kan ikke operere uten en klokke" -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Kunne ikke etablere tilkobling til lydtjener" - -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Klarte ikke Ã¥ etterspørre lydtjenerens evner" - #~ msgid "Bass" #~ msgstr "Bass" @@ -355,9 +362,6 @@ msgstr "Kan ikke operere uten en klokke" #~ msgid "Line-in" #~ msgstr "Linje inn" -#~ msgid "Microphone" -#~ msgstr "Mikrofon" - #~ msgid "CD" #~ msgstr "CD" @@ -367,15 +371,6 @@ msgstr "Kan ikke operere uten en klokke" #~ msgid "PCM-2" #~ msgstr "PCM-2" -#~ msgid "Record" -#~ msgstr "Opptak" - -#~ msgid "In-gain" -#~ msgstr "Innstyrke" - -#~ msgid "Out-gain" -#~ msgstr "Utstyrke" - #~ msgid "Line-1" #~ msgstr "Linje 1" @@ -406,15 +401,9 @@ msgstr "Kan ikke operere uten en klokke" #~ msgid "Radio" #~ msgstr "Radio" +#, fuzzy #~ msgid "Could not open audio device for mixer control handling." -#~ msgstr "Kunne ikke Ã¥pne lydenheten for mikserkontrollhÃ¥ndtering." - -#~ msgid "" -#~ "Could not open audio device for mixer control handling. This version of " -#~ "the Open Sound System is not supported by this element." -#~ msgstr "" -#~ "Kunne ikke Ã¥pne lydenheten for mikserkontrollhÃ¥ndtering. Denne versjonen " -#~ "av «Open Sound System» støttes ikke av dette elementet." +#~ msgstr "Kunne ikke Ã¥pne filen «%s» for lesing." #~ msgid "Master" #~ msgstr "Hovedvolum" @@ -431,9 +420,6 @@ msgstr "Kan ikke operere uten en klokke" #~ msgid "Center" #~ msgstr "Senter" -#~ msgid "LFE" -#~ msgstr "LFE" - #~ msgid "Surround" #~ msgstr "Surround" @@ -449,99 +435,18 @@ msgstr "Kan ikke operere uten en klokke" #~ msgid "3D Center" #~ msgstr "3D senter" -#~ msgid "3D Enhance" -#~ msgstr "3D-forbedring" - #~ msgid "Telephone" #~ msgstr "Telefon" -#~ msgid "Line In" -#~ msgstr "Linje inn" - -#~ msgid "Internal CD" -#~ msgstr "Intern CD" - #~ msgid "Video In" #~ msgstr "Video inn" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 inn" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 inn" - #~ msgid "AUX In" #~ msgstr "AUX inn" -#~ msgid "Record Gain" -#~ msgstr "Innspillingsstyrke" - -#~ msgid "Output Gain" -#~ msgstr "Utdatastyrke" - -#~ msgid "Microphone Boost" -#~ msgstr "Mikrofonforsterkning" - -#~ msgid "Loopback" -#~ msgstr "Loopback" - -#~ msgid "Diagnostic" -#~ msgstr "Diagnose" - -#~ msgid "Bass Boost" -#~ msgstr "BassBoost" - -#~ msgid "Playback Ports" -#~ msgstr "Avspillingsporter:" - -#~ msgid "Input" -#~ msgstr "Inngang" - -#~ msgid "Record Source" -#~ msgstr "Opptakskilde" - -#~ msgid "Monitor Source" -#~ msgstr "Monitorkilde" - -#~ msgid "Keyboard Beep" -#~ msgstr "Tastaturpip" - -#~ msgid "Simulate Stereo" -#~ msgstr "Simulert stereo" - #~ msgid "Stereo" #~ msgstr "Stereo" -#~ msgid "Surround Sound" -#~ msgstr "Surroundlyd" - -#~ msgid "Microphone Gain" -#~ msgstr "Mikrofonstyrke" - -#~ msgid "Speaker Source" -#~ msgstr "Høyttalerkilde" - -#~ msgid "Microphone Source" -#~ msgstr "Mikrofonkilde" - -#~ msgid "Jack" -#~ msgstr "Jack" - -#~ msgid "Center / LFE" -#~ msgstr "Senter / LFE" - -#~ msgid "Stereo Mix" -#~ msgstr "Stereomiks" - -#~ msgid "Mono Mix" -#~ msgstr "Monomiks" - -#~ msgid "Input Mix" -#~ msgstr "Inndatamiks" - -#~ msgid "SPDIF In" -#~ msgstr "SPDIF Inn" - #~ msgid "Microphone 1" #~ msgstr "Mikrofon 1" @@ -599,107 +504,16 @@ msgstr "Kan ikke operere uten en klokke" #~ msgid "Production" #~ msgstr "Produksjon" -#~ msgid "Front Panel Microphone" -#~ msgstr "Fronpanelmikrofon" - -#~ msgid "Front Panel Line In" -#~ msgstr "Frontpanel innlinje" - -#~ msgid "Front Panel Headphones" -#~ msgstr "Frontpanelhodetelefoner" - -#~ msgid "Front Panel Line Out" -#~ msgstr "Frontpanel utlinje" - -#~ msgid "Green Connector" -#~ msgstr "Grønn kontakt" - -#~ msgid "Pink Connector" -#~ msgstr "Rosa kontakt" - -#~ msgid "Blue Connector" -#~ msgstr "BlÃ¥ kontakt" - -#~ msgid "White Connector" -#~ msgstr "Hvit kontakt" - -#~ msgid "Black Connector" -#~ msgstr "Sort kontakt" - -#~ msgid "Gray Connector" -#~ msgstr "GrÃ¥ kontakt" - -#~ msgid "Orange Connector" -#~ msgstr "Oransje kontakt" - -#~ msgid "Red Connector" -#~ msgstr "Rød kontakt" - -#~ msgid "Yellow Connector" -#~ msgstr "Gul kontakt" - -#~ msgid "Green Front Panel Connector" -#~ msgstr "Grønn frontpanelkontakt" - -#~ msgid "Pink Front Panel Connector" -#~ msgstr "Rosa frontpanelkontakt" - -#~ msgid "Blue Front Panel Connector" -#~ msgstr "BlÃ¥ frontpanelkontakt" - -#~ msgid "White Front Panel Connector" -#~ msgstr "Hvit frontpanelkontakt" - -#~ msgid "Black Front Panel Connector" -#~ msgstr "Sort frontpanelkontakt" - -#~ msgid "Gray Front Panel Connector" -#~ msgstr "GrÃ¥ frontpanelkontakt" - -#~ msgid "Orange Front Panel Connector" -#~ msgstr "Oransje frontpanelkontakt" - -#~ msgid "Red Front Panel Connector" -#~ msgstr "Rød frontpanelkontakt" - -#~ msgid "Yellow Front Panel Connector" -#~ msgstr "Gul frontpanelkontakt" - -#~ msgid "Spread Output" -#~ msgstr "Spredningsutgang" - -#~ msgid "Downmix" -#~ msgstr "Nedmiks" - -#~ msgid "Virtual Mixer Input" -#~ msgstr "Virtuell mikserinngang" - -#~ msgid "Virtual Mixer Output" -#~ msgstr "Virtuell mikserutgang" - -#~ msgid "Virtual Mixer Channels" -#~ msgstr "Virtuelle mikserkanaler" - -#~ msgid "%s %d Function" -#~ msgstr "%s %d Funksjon" - -#~ msgid "%s Function" -#~ msgstr "%s Funksjon" - -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Fikk uventet rammestørrelsen %u istedenfor %u." - +#, fuzzy #~ msgid "Error reading %d bytes on device '%s'." -#~ msgstr "Feil ved lesing av %d byte pÃ¥ enheten «%s»." +#~ msgstr "Kunne ikke lukke VFS-fil «%s»." +#, fuzzy #~ msgid "Could not enqueue buffers in device '%s'." -#~ msgstr "Kunne ikke legge i kø buffere i enheten «%s»." - -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Mislyktes i Ã¥ fÃ¥ videobilder fra enhet «%s»." +#~ msgstr "Kunne ikke lukke VFS-fil «%s»." -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "Mislyktes etter %d forsøk. Enhet %s. Systemfeil: %s" +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Kunne ikke etablere tilkobling til lydtjener" #~ msgid "Describes the selected input element." #~ msgstr "Beskriver valgt inndataelement." diff --git a/po/nl.gmo b/po/nl.gmo index f2efee1479c792ce9e72e721e2ded4adbcf6ec7b..524d32855698d7aaf8730f683b7018f173396eb3 100644 Binary files a/po/nl.gmo and b/po/nl.gmo differ diff --git a/po/nl.po b/po/nl.po index 2de852789507d82b275dfb03177f2f5cf38d0011..cb9d2393d8f5b179e81c91b4e3f88a0ed122d234 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1,33 +1,39 @@ -# translation of gst-plugins-good-1.0.3.nl.po to Dutch +# translation of gst-plugins-good-0.10.28.2.nl.po to Dutch # This file is put in the public domain. # -# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2012. +# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-11-29 22:30+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2011-04-27 00:05+0200\n" "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Kan de JPEG-afbeelding niet decoderen" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "'%s' door '%s'" -msgid "Failed to decode JPEG image" -msgstr "Kan de JPEG-afbeelding niet decoderen" - msgid "Could not connect to server" msgstr "Kan geen verbinding maken met server" +msgid "No URL set." +msgstr "Geen URL ingesteld." + msgid "Server does not support seeking." msgstr "Zoeken wordt door de server niet ondersteund." @@ -49,9 +55,6 @@ msgstr "" msgid "Server sent bad data." msgstr "De server stuurde onjuiste gegevens." -msgid "No URL set." -msgstr "Geen URL ingesteld." - msgid "Internal data stream error." msgstr "Interne fout in gegevensstroom." @@ -64,6 +67,9 @@ msgstr "Dit bestand bevat geen afspeelbare stromen." msgid "This file is invalid and cannot be played." msgstr "Dit bestand is ongeldig en kan niet afgespeeld worden." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Dit bestand is beschadigd en kan niet afgespeeld worden." @@ -117,16 +123,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Kan het audio-apparaat niet openen voor afspelen." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Kan het audio-apparaat niet openen voor opnemen. U hebt geen toestemming om " -"het apparaat te openen." - -msgid "Could not open audio device for recording." -msgstr "Kan het audio-apparaat niet openen voor opnemen." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -146,6 +142,45 @@ msgstr "Opnemen wordt niet ondersteund door dit audio-apparaat" msgid "Error recording from audio device." msgstr "Fout bij opnemen vanaf audio-apparaat." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Kan het audio-apparaat niet openen voor opnemen. U hebt geen toestemming om " +"het apparaat te openen." + +msgid "Could not open audio device for recording." +msgstr "Kan het audio-apparaat niet openen voor opnemen." + +msgid "Record Source" +msgstr "Opnamebron" + +msgid "Microphone" +msgstr "Microfoon" + +msgid "Line In" +msgstr "Lijn-in" + +msgid "Internal CD" +msgstr "Interne cd" + +msgid "SPDIF In" +msgstr "SPDIF-in" + +msgid "AUX 1 In" +msgstr "AUX 1-in" + +msgid "AUX 2 In" +msgstr "AUX 2-in" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Loopback" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Loopback" + msgid "Volume" msgstr "Volume" @@ -179,70 +214,77 @@ msgstr "Fout bij het lezen van %d bytes van apparaat '%s'." #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" -msgstr "Opnoemen van videoformaten waarmee apparaat '%s' kan werken is mislukt" +msgstr "" #, c-format msgid "Could not map buffers from device '%s'" msgstr "Kan de buffers van apparaat '%s' niet vinden" -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "Het stuurprogramma van apparaat '%s' ondersteunt de IO-methode %d niet" +msgstr "" +"Het stuurprogramma van apparaat '%s' ondersteunt geen bekende opnamemethode." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." msgstr "" -"Het stuurprogramma van apparaat '%s' ondersteunt geen bekende IO-methode." +"Het stuurprogramma van apparaat '%s' ondersteunt geen bekende opnamemethode." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "Apparaat '%s' ondersteunt het opnemen van video niet" +msgstr "Apparaat '%s' is geen uitvoerapparaat." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "Apparaat '%s' is bezet" +msgstr "Apparaat '%s' is geen uitvoerapparaat." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture at %dx%d" -msgstr "Apparaat '%s' kan geen opname maken met %dx%d" +msgstr "Apparaat '%s' is geen opnameapparaat." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture in the specified format" -msgstr "Apparaat '%s' kan geen opname maken in het gespecificeerde formaat" +msgstr "Apparaat '%s' is geen opnameapparaat." #, c-format msgid "Could not get parameters on device '%s'" msgstr "Kan de parameters op apparaat '%s' niet verkrijgen" +#, fuzzy msgid "Video device did not accept new frame rate setting." -msgstr "Videoapparaat heeft de nieuwe frame-snelheid niet geaccepteerd." +msgstr "" +"Invoerapparaat voor video heeft de nieuwe frame-snelheid niet geaccepteerd." msgid "Video device could not create buffer pool." -msgstr "Videoapparaat kon geen bufferpool aanmaken." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." -msgstr "Instellingen van tuner %d op apparaat '%s' ophalen is mislukt." +msgstr "Kan de instelling van tuner %d op apparaat '%s' niet verkrijgen." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Fout bij het ophalen de mogelijkheden van apparaat '%s'." +msgstr "Fout bij het lezen van %d bytes van apparaat '%s'." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "Apparaat '%s' is geen tuner." +msgstr "Apparaat '%s' is geen uitvoerapparaat." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Radio-invoer van apparaat '%s' ophalen is mislukt." +msgstr "Kan invoer %d op apparaat '%s' niet instellen." #, c-format msgid "Failed to set input %d on device %s." msgstr "Kan invoer %d op apparaat '%s' niet instellen." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "De gedempte status van apparaat '%s' wijzigen is mislukt." +msgstr "Kan de signaalsterkte van apparaat '%s' niet verkrijgen." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Kan apparaat '%s' niet identificeren." #, c-format msgid "" @@ -268,10 +310,6 @@ msgstr "Kan de norm op apparaat '%s' niet opvragen." msgid "Failed getting controls attributes on device '%s'." msgstr "Kan de knopeigenschappen op apparaat '%s' niet verkrijgen." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Kan apparaat '%s' niet identificeren." - #, c-format msgid "This isn't a device '%s'." msgstr "Dit is geen apparaat '%s'." @@ -336,11 +374,14 @@ msgstr "Tijdens het draaien kan de resolutie nog niet gewijzigd worden." msgid "Cannot operate without a clock" msgstr "Kan niet werken zonder een klok." -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Kan geen verbinding maken met de geluidsserver" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Onverwachte framegrootte, %u in plaats van %u." -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Kan de eigenschappen van de geluidsserver niet opvragen" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Kan geen videoframes verkrijgen van apparaat '%s'." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "Fout na %d pogingen. Apparaat %s. Systeemfout: %s" #~ msgid "Bass" #~ msgstr "Lage tonen" @@ -360,9 +401,6 @@ msgstr "Kan niet werken zonder een klok." #~ msgid "Line-in" #~ msgstr "Lijn-in" -#~ msgid "Microphone" -#~ msgstr "Microfoon" - #~ msgid "CD" #~ msgstr "CD" @@ -460,21 +498,9 @@ msgstr "Kan niet werken zonder een klok." #~ msgid "Telephone" #~ msgstr "Telefoon" -#~ msgid "Line In" -#~ msgstr "Lijn-in" - -#~ msgid "Internal CD" -#~ msgstr "Interne cd" - #~ msgid "Video In" #~ msgstr "Video-in" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1-in" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2-in" - #~ msgid "AUX In" #~ msgstr "AUX-in" @@ -487,9 +513,6 @@ msgstr "Kan niet werken zonder een klok." #~ msgid "Microphone Boost" #~ msgstr "Microfoon-boost" -#~ msgid "Loopback" -#~ msgstr "Loopback" - #~ msgid "Diagnostic" #~ msgstr "Diagnose" @@ -502,9 +525,6 @@ msgstr "Kan niet werken zonder een klok." #~ msgid "Input" #~ msgstr "Invoer" -#~ msgid "Record Source" -#~ msgstr "Opnamebron" - #~ msgid "Monitor Source" #~ msgstr "Monitorbron" @@ -544,9 +564,6 @@ msgstr "Kan niet werken zonder een klok." #~ msgid "Input Mix" #~ msgstr "Invoer-mix" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF-in" - #~ msgid "Microphone 1" #~ msgstr "Microfoon-1" @@ -691,17 +708,14 @@ msgstr "Kan niet werken zonder een klok." #~ msgid "%s Function" #~ msgstr "%s-function" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Onverwachte framegrootte, %u in plaats van %u." - #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "Fout bij het lezen van %d bytes van apparaat '%s'." #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "Kan geen buffers toekennen in apparaat '%s'." -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Kan geen videoframes verkrijgen van apparaat '%s'." +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Kan geen verbinding maken met de geluidsserver" -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "Fout na %d pogingen. Apparaat %s. Systeemfout: %s" +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Kan de eigenschappen van de geluidsserver niet opvragen" diff --git a/po/or.gmo b/po/or.gmo index 5731504f6eb9fddac9aafe217cd962e131c7d9ce..e8246757948ae0f4f3973ea7d48d6ca96f318ef4 100644 Binary files a/po/or.gmo and b/po/or.gmo differ diff --git a/po/or.po b/po/or.po index 66b5be20377c66caa0254192185cf1621f2418ed..673ec9f920ba4f36993a19fecaaf7d7e87d5b12e 100644 --- a/po/or.po +++ b/po/or.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-0.8.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2004-09-27 13:32+0530\n" "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n" "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n" @@ -17,18 +17,24 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#. TRANSLATORS: 'song title' by 'artist name' -#, c-format -msgid "'%s' by '%s'" +msgid "Jack server not found" msgstr "" msgid "Failed to decode JPEG image" msgstr "" +#. TRANSLATORS: 'song title' by 'artist name' +#, c-format +msgid "'%s' by '%s'" +msgstr "" + #, fuzzy msgid "Could not connect to server" msgstr "\"%s\" ନିàŸà¬¨àତàରଣ ଯନàତàର ବନàଦ କରିହà‡à¬²à¬¾ ନାହିà¬." +msgid "No URL set." +msgstr "" + #, fuzzy msgid "Server does not support seeking." msgstr "\"%s\" ଯନàତàର ଗà‹à¬Ÿà¬¿à¬ ଅନàଲିପିକାର ନàହà‡à¬." @@ -51,9 +57,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "" @@ -66,6 +69,9 @@ msgstr "" msgid "This file is invalid and cannot be played." msgstr "" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "" @@ -111,6 +117,23 @@ msgstr "\"%s\" ଧàବନି ଯନàତàର ଲà‡à¬–ିବା ପାଇ msgid "Could not open audio device for playback." msgstr "\"%s\" ଧàବନି ଯନàତàର ଲà‡à¬–ିବା ପାଇଠଖà‹à¬²à¬¿à¬¹à‡à¬²à¬¾ ନାହିà¬." +msgid "" +"Could not open audio device for playback. This version of the Open Sound " +"System is not supported by this element." +msgstr "" + +msgid "Playback is not supported by this audio device." +msgstr "" + +msgid "Audio playback error." +msgstr "" + +msgid "Recording is not supported by this audio device." +msgstr "" + +msgid "Error recording from audio device." +msgstr "" + #, fuzzy msgid "" "Could not open audio device for recording. You don't have permission to open " @@ -121,21 +144,33 @@ msgstr "ସି.ଡି. ଯନàତàର ପଢ଼ିବା à¬ªà¬¾à¬‡à¬ à¬–à‹ msgid "Could not open audio device for recording." msgstr "ସି.ଡି. ଯନàତàର ପଢ଼ିବା ପାଇଠଖà‹à¬²à¬¿à¬¹à‡à¬²à¬¾ ନାହିà¬." -msgid "" -"Could not open audio device for playback. This version of the Open Sound " -"System is not supported by this element." +#, fuzzy +msgid "Record Source" +msgstr "ପàରଦରàଶିକା" + +msgid "Microphone" +msgstr "ମାଇକàରà‹à¬«à‹à¬¨à" + +#, fuzzy +msgid "Line In" +msgstr "ଲାଇନ-ଇନ" + +msgid "Internal CD" msgstr "" -msgid "Playback is not supported by this audio device." +msgid "SPDIF In" msgstr "" -msgid "Audio playback error." +msgid "AUX 1 In" msgstr "" -msgid "Recording is not supported by this audio device." +msgid "AUX 2 In" msgstr "" -msgid "Error recording from audio device." +msgid "Codec Loopback" +msgstr "" + +msgid "SunVTS Loopback" msgstr "" msgid "Volume" @@ -236,6 +271,10 @@ msgstr "\"%s\" ଧàବନି ଯନàତàର ବନàଦ à¬•à¬°à¬¿à¬¹à‡ msgid "Failed to change mute state for device '%s'." msgstr "\"%s\" ଯନàତàରରà ଅସàଥାàŸà€ ସଞàà¬šàŸ à¬¸àଥାନ ଆଣିହà‡à¬²à¬¾ ନାହିà¬." +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "\"%s\" ଯନàତàà¬°à¬°à‡ à¬²à‡à¬–ିହà‡à¬²à¬¾ ନାହିà¬." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -258,10 +297,6 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "\"%s\" ଯନàତàà¬°à¬°à‡ à¬²à‡à¬–ିହà‡à¬²à¬¾ ନାହିà¬." - #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -343,9 +378,6 @@ msgstr "" #~ msgid "Line-in" #~ msgstr "ଲାଇନ-ଇନ" -#~ msgid "Microphone" -#~ msgstr "ମାଇକàରà‹à¬«à‹à¬¨à" - #~ msgid "CD" #~ msgstr "ସି.ଡି." @@ -412,10 +444,6 @@ msgstr "" #~ msgid "Side" #~ msgstr "à¬à¬¿à¬¡à¬¿à¬“" -#, fuzzy -#~ msgid "Line In" -#~ msgstr "ଲାଇନ-ଇନ" - #, fuzzy #~ msgid "Output Gain" #~ msgstr "ନିରàଗମ-ବàƒà¬¦àଧି" @@ -424,10 +452,6 @@ msgstr "" #~ msgid "Microphone Boost" #~ msgstr "ମାଇକàରà‹à¬«à‹à¬¨à" -#, fuzzy -#~ msgid "Monitor Source" -#~ msgstr "ପàରଦରàଶିକା" - #, fuzzy #~ msgid "Microphone Gain" #~ msgstr "ମାଇକàରà‹à¬«à‹à¬¨à" diff --git a/po/pl.gmo b/po/pl.gmo index 983e062b72188f498b532901cefda7c59c9a41dd..d44cc0c67923dddaffe26c8fab6db57c4e3b9a22 100644 Binary files a/po/pl.gmo and b/po/pl.gmo differ diff --git a/po/pl.po b/po/pl.po index 107d657955e610c407126f52c642c64148be6cbf..f9abe161ea5b8894442873233fd1ad300eb7d132 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,13 +1,13 @@ # Polish translation for gst-plugins-good. # This file is distributed under the same license as the gst-plugins-good package. -# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2012. +# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2011. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-11-28 19:27+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2011-01-07 21:53+0100\n" "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n" "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" "Language: pl\n" @@ -15,17 +15,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Nie udaÅ‚o siÄ™ zdekodować obrazu JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "'%s' autorstwa '%s'" -msgid "Failed to decode JPEG image" -msgstr "Nie udaÅ‚o siÄ™ zdekodować obrazu JPEG" - msgid "Could not connect to server" msgstr "Nie udaÅ‚o siÄ™ poÅ‚Ä…czyć z serwerem" +msgid "No URL set." +msgstr "Nie ustawiono URL-a." + msgid "Server does not support seeking." msgstr "Serwer nie obsÅ‚uguje przewijania." @@ -45,9 +51,6 @@ msgstr "WystÄ…piÅ‚ bÅ‚Ä…d sieciowy lub serwer nieoczekiwanie zamknÄ…Å‚ poÅ‚Ä…cze msgid "Server sent bad data." msgstr "Serwer przysÅ‚aÅ‚ bÅ‚Ä™dne dane." -msgid "No URL set." -msgstr "Nie ustawiono URL-a." - msgid "Internal data stream error." msgstr "BÅ‚Ä…d wewnÄ™trzny strumienia danych." @@ -60,6 +63,9 @@ msgstr "Ten plik nie zawiera strumieni nadajÄ…cych siÄ™ do odtworzenia." msgid "This file is invalid and cannot be played." msgstr "Ten plik jest bÅ‚Ä™dny i nie może być odtworzony." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Ten plik jest uszkodzony i nie może być odtworzony." @@ -112,16 +118,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Nie udaÅ‚o siÄ™ otworzyć urzÄ…dzenia dźwiÄ™kowego do odtwarzania." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Nie udaÅ‚o siÄ™ otworzyć urzÄ…dzenia dźwiÄ™kowego do nagrywania. Brak uprawnieÅ„ " -"do otwarcia urzÄ…dzenia." - -msgid "Could not open audio device for recording." -msgstr "Nie udaÅ‚o siÄ™ otworzyć urzÄ…dzenia dźwiÄ™kowego do nagrywania." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -141,6 +137,45 @@ msgstr "Nagrywanie nie jest obsÅ‚ugiwane przez to urzÄ…dzenie dźwiÄ™kowe." msgid "Error recording from audio device." msgstr "BÅ‚Ä…d nagrywania z urzÄ…dzenia dźwiÄ™kowego." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Nie udaÅ‚o siÄ™ otworzyć urzÄ…dzenia dźwiÄ™kowego do nagrywania. Brak uprawnieÅ„ " +"do otwarcia urzÄ…dzenia." + +msgid "Could not open audio device for recording." +msgstr "Nie udaÅ‚o siÄ™ otworzyć urzÄ…dzenia dźwiÄ™kowego do nagrywania." + +msgid "Record Source" +msgstr "ŹródÅ‚o nagrywania" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "WejÅ›cie linii" + +msgid "Internal CD" +msgstr "WewnÄ™trzny CD" + +msgid "SPDIF In" +msgstr "WejÅ›cie SPDIF" + +msgid "AUX 1 In" +msgstr "WejÅ›cie AUX 1" + +msgid "AUX 2 In" +msgstr "WejÅ›cie AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "PÄ™tla zwrotna" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "PÄ™tla zwrotna" + msgid "Volume" msgstr "GÅ‚oÅ›ność" @@ -175,71 +210,77 @@ msgstr "BÅ‚Ä…d odczytu %d bajtów z urzÄ…dzenia '%s'." #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" msgstr "" -"Nie udaÅ‚o siÄ™ wyliczyć dostÄ™pnych formatów obrazu, z którymi może dziaÅ‚ać " -"urzÄ…dzenie '%s'" #, c-format msgid "Could not map buffers from device '%s'" msgstr "Nie udaÅ‚o siÄ™ odwzorować buforów z urzÄ…dzenia '%s'" -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "Sterownik urzÄ…dzenia '%s' nie obsÅ‚uguje metody we/wy %d" +msgstr "" +"Sterownik urzÄ…dzenia '%s' nie obsÅ‚uguje żadnej znanej metody przechwytywania." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." -msgstr "Sterownik urzÄ…dzenia '%s' nie obsÅ‚uguje żadnej znanej metody we/wy." +msgstr "" +"Sterownik urzÄ…dzenia '%s' nie obsÅ‚uguje żadnej znanej metody przechwytywania." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "UrzÄ…dzenie '%s' nie obsÅ‚uguje przechwytywania obrazu" +msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem wyjÅ›ciowym." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "UrzÄ…dzenie '%s' jest zajÄ™te" +msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem wyjÅ›ciowym." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture at %dx%d" -msgstr "UrzÄ…dzenie '%s' nie potrafi przechwytywać obrazu %dx%d" +msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem przechwytujÄ…cym." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture in the specified format" -msgstr "UrzÄ…dzenie '%s' nie potrafi przechwytywać obrazu w podanym formacie" +msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem przechwytujÄ…cym." #, c-format msgid "Could not get parameters on device '%s'" msgstr "Nie udaÅ‚o siÄ™ uzyskać parametrów urzÄ…dzenia '%s'" +#, fuzzy msgid "Video device did not accept new frame rate setting." msgstr "" -"UrzÄ…dzenie obrazu nie przyjęło nowego ustawienia czÄ™stotliwoÅ›ci klatek." +"UrzÄ…dzenie wejÅ›ciowe obrazu nie przyjęło nowego ustawienia czÄ™stotliwoÅ›ci " +"klatek." msgid "Video device could not create buffer pool." -msgstr "UrzÄ™dzenie obrazu nie mogÅ‚o utworzyć puli buforów." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Nie udaÅ‚o siÄ™ uzyskać ustawieÅ„ tunera %d urzÄ…dzenia '%s'." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "BÅ‚Ä…d podczas pobierania możliwoÅ›ci uzÄ…dzenia '%s'." +msgstr "BÅ‚Ä…d odczytu %d bajtów z urzÄ…dzenia '%s'." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "UrzÄ…dzenie '%s' nie jest tunerem." +msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem wyjÅ›ciowym." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Nie udaÅ‚o siÄ™ uzyskać wejÅ›cia radiowego z urzÄ…dzenia '%s'. " +msgstr "Nie udaÅ‚o siÄ™ ustawić wejÅ›cia %d urzÄ…dzenia %s." #, c-format msgid "Failed to set input %d on device %s." msgstr "Nie udaÅ‚o siÄ™ ustawić wejÅ›cia %d urzÄ…dzenia %s." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "Nie udaÅ‚o siÄ™ zmienić stanu wyciszenia dla urzÄ…dzenia '%s'." +msgstr "Nie udaÅ‚o siÄ™ uzyskać siÅ‚y sygnaÅ‚u dla urzÄ…dzenia '%s'." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Nie można zidentyfikować urzÄ…dzenia '%s'." #, c-format msgid "" @@ -265,10 +306,6 @@ msgstr "Nie udaÅ‚o siÄ™ odpytać normalizacji urzÄ…dzenia '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "Nie udaÅ‚o siÄ™ uzyskać atrybutów sterujÄ…cych urzÄ…dzenia '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Nie można zidentyfikować urzÄ…dzenia '%s'." - #, c-format msgid "This isn't a device '%s'." msgstr "To nie jest urzÄ…dzenie '%s'." @@ -332,3 +369,350 @@ msgstr "Zmiana rozdzielczoÅ›ci w czasie dziaÅ‚ania nie jest jeszcze obsÅ‚ugiwana msgid "Cannot operate without a clock" msgstr "Nie można pracować bez zegara" + +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Otrzymano nieoczekiwany rozmiar klatki %u zamiast %u." + +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Nie udaÅ‚o siÄ™ uzyskać klatek obrazu z urzÄ…dzenia '%s'." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "Niepowodzenie po %d próbach. UrzÄ…dzenie %s. BÅ‚Ä…d systemowy: %s" + +#~ msgid "Bass" +#~ msgstr "Niskie" + +#~ msgid "Treble" +#~ msgstr "Wysokie" + +#~ msgid "Synth" +#~ msgstr "Syntezator" + +#~ msgid "PCM" +#~ msgstr "PCM" + +#~ msgid "Speaker" +#~ msgstr "GÅ‚oÅ›niczek" + +#~ msgid "Line-in" +#~ msgstr "WejÅ›cie" + +#~ msgid "CD" +#~ msgstr "CD" + +#~ msgid "Mixer" +#~ msgstr "Mikser" + +#~ msgid "PCM-2" +#~ msgstr "PCM-2" + +#~ msgid "Record" +#~ msgstr "Nagrywanie" + +#~ msgid "In-gain" +#~ msgstr "Wzmocnienie we" + +#~ msgid "Out-gain" +#~ msgstr "Wzmocnienie wy" + +#~ msgid "Line-1" +#~ msgstr "Linia 1" + +#~ msgid "Line-2" +#~ msgstr "Linia 2" + +#~ msgid "Line-3" +#~ msgstr "Linia 3" + +#~ msgid "Digital-1" +#~ msgstr "Cyfrowe 1" + +#~ msgid "Digital-2" +#~ msgstr "Cyfrowe 2" + +#~ msgid "Digital-3" +#~ msgstr "Cyfrowe 3" + +#~ msgid "Phone-in" +#~ msgstr "Mikrofon" + +#~ msgid "Phone-out" +#~ msgstr "SÅ‚uchawki" + +#~ msgid "Video" +#~ msgstr "Obraz" + +#~ msgid "Radio" +#~ msgstr "Radio" + +#~ msgid "Could not open audio device for mixer control handling." +#~ msgstr "" +#~ "Nie udaÅ‚o siÄ™ otworzyć urzÄ…dzenia dźwiÄ™kowego do sterowania mikserem." + +#~ msgid "" +#~ "Could not open audio device for mixer control handling. This version of " +#~ "the Open Sound System is not supported by this element." +#~ msgstr "" +#~ "Nie udaÅ‚o siÄ™ otworzyć urzÄ…dzenia dźwiÄ™kowego do sterowania mikserem. Ta " +#~ "wersja Open Sound System nie jest obsÅ‚ugiwana przez ten element." + +#~ msgid "Master" +#~ msgstr "Główna" + +#~ msgid "Front" +#~ msgstr "Przód" + +#~ msgid "Rear" +#~ msgstr "TyÅ‚" + +#~ msgid "Headphones" +#~ msgstr "SÅ‚uchawki" + +#~ msgid "Center" +#~ msgstr "Åšrodek" + +#~ msgid "LFE" +#~ msgstr "LFE" + +#~ msgid "Surround" +#~ msgstr "Surround" + +#~ msgid "Side" +#~ msgstr "Boki" + +#~ msgid "AUX Out" +#~ msgstr "WyjÅ›cie AUX" + +#~ msgid "3D Depth" +#~ msgstr "GÅ‚Ä™bia 3D" + +#~ msgid "3D Center" +#~ msgstr "Åšrodek 3D" + +#~ msgid "3D Enhance" +#~ msgstr "Rozszerzenie 3D" + +#~ msgid "Telephone" +#~ msgstr "Telefon" + +#~ msgid "Video In" +#~ msgstr "WejÅ›cie video" + +#~ msgid "AUX In" +#~ msgstr "WejÅ›cie AUX" + +#~ msgid "Record Gain" +#~ msgstr "Wzmocnienie nagrywania" + +#~ msgid "Output Gain" +#~ msgstr "Wzmocnienie wyjÅ›cia" + +#~ msgid "Microphone Boost" +#~ msgstr "Podbicie mikrofonu" + +#~ msgid "Diagnostic" +#~ msgstr "Diagnostyka" + +#~ msgid "Bass Boost" +#~ msgstr "Podbicie basów" + +#~ msgid "Playback Ports" +#~ msgstr "Porty odtwarzania" + +#~ msgid "Input" +#~ msgstr "WejÅ›cie" + +#~ msgid "Monitor Source" +#~ msgstr "ŹródÅ‚o monitora" + +#~ msgid "Keyboard Beep" +#~ msgstr "Piszczenie klawiatury" + +#~ msgid "Simulate Stereo" +#~ msgstr "Symulacja stereo" + +#~ msgid "Stereo" +#~ msgstr "Stereo" + +#~ msgid "Surround Sound" +#~ msgstr "DźwiÄ™k surround" + +#~ msgid "Microphone Gain" +#~ msgstr "Wzmocnienie mikrofonu" + +#~ msgid "Speaker Source" +#~ msgstr "ŹródÅ‚o gÅ‚oÅ›niczka" + +#~ msgid "Microphone Source" +#~ msgstr "ŹródÅ‚o mikrofonu" + +#~ msgid "Jack" +#~ msgstr "Gniazdo jack" + +#~ msgid "Center / LFE" +#~ msgstr "Åšrodek / LFE" + +#~ msgid "Stereo Mix" +#~ msgstr "Miksowanie stereo" + +#~ msgid "Mono Mix" +#~ msgstr "Miksowanie mono" + +#~ msgid "Input Mix" +#~ msgstr "Miksowanie wejÅ›cia" + +#~ msgid "Microphone 1" +#~ msgstr "Mikrofon 1" + +#~ msgid "Microphone 2" +#~ msgstr "Mikrofon 2" + +#~ msgid "Digital Out" +#~ msgstr "WyjÅ›cie cyfrowe" + +#~ msgid "Digital In" +#~ msgstr "WejÅ›cie cyfrowe" + +#~ msgid "HDMI" +#~ msgstr "HDMI" + +#~ msgid "Modem" +#~ msgstr "Modem" + +#~ msgid "Handset" +#~ msgstr "Zestaw sÅ‚uchawkowy" + +#~ msgid "Other" +#~ msgstr "Inne" + +#~ msgid "None" +#~ msgstr "Brak" + +#~ msgid "On" +#~ msgstr "WÅ‚Ä…czone" + +#~ msgid "Off" +#~ msgstr "WyÅ‚Ä…czone" + +#~ msgid "Mute" +#~ msgstr "Wyciszenie" + +#~ msgid "Fast" +#~ msgstr "Szybko" + +#~ msgid "Very Low" +#~ msgstr "Bardzo maÅ‚e" + +#~ msgid "Low" +#~ msgstr "MaÅ‚e" + +#~ msgid "Medium" +#~ msgstr "Åšrednie" + +#~ msgid "High" +#~ msgstr "Duże" + +#~ msgid "Very High" +#~ msgstr "Bardzo duże" + +#~ msgid "Production" +#~ msgstr "Produkcja" + +#~ msgid "Front Panel Microphone" +#~ msgstr "Mikrofon na panelu przednim" + +#~ msgid "Front Panel Line In" +#~ msgstr "WejÅ›cie linii na panelu przednim" + +#~ msgid "Front Panel Headphones" +#~ msgstr "SÅ‚uchawki na panelu przednim" + +#~ msgid "Front Panel Line Out" +#~ msgstr "Wyjśćie linii na panelu przednim" + +#~ msgid "Green Connector" +#~ msgstr "ZÅ‚Ä…cze zielone" + +#~ msgid "Pink Connector" +#~ msgstr "ZÅ‚Ä…cze różowe" + +#~ msgid "Blue Connector" +#~ msgstr "ZÅ‚Ä…cze niebieskie" + +#~ msgid "White Connector" +#~ msgstr "ZÅ‚Ä…cze biaÅ‚e" + +#~ msgid "Black Connector" +#~ msgstr "ZÅ‚Ä…cze czarne" + +#~ msgid "Gray Connector" +#~ msgstr "ZÅ‚Ä…cze szare" + +#~ msgid "Orange Connector" +#~ msgstr "ZÅ‚Ä…cze pomaraÅ„czowe" + +#~ msgid "Red Connector" +#~ msgstr "ZÅ‚Ä…cze czerwone" + +#~ msgid "Yellow Connector" +#~ msgstr "ZÅ‚Ä…cze żółte" + +#~ msgid "Green Front Panel Connector" +#~ msgstr "ZÅ‚Ä…cze zielone na panelu przednim" + +#~ msgid "Pink Front Panel Connector" +#~ msgstr "ZÅ‚Ä…cze różowe na panelu przednim" + +#~ msgid "Blue Front Panel Connector" +#~ msgstr "ZÅ‚Ä…cze niebieskie na panelu przednim" + +#~ msgid "White Front Panel Connector" +#~ msgstr "ZÅ‚Ä…cze biaÅ‚e na panelu przednim" + +#~ msgid "Black Front Panel Connector" +#~ msgstr "ZÅ‚Ä…cze czarne na panelu przednim" + +#~ msgid "Gray Front Panel Connector" +#~ msgstr "ZÅ‚Ä…cze szare na panelu przednim" + +#~ msgid "Orange Front Panel Connector" +#~ msgstr "ZÅ‚Ä…cze pomaraÅ„czowe na panelu przednim" + +#~ msgid "Red Front Panel Connector" +#~ msgstr "ZÅ‚Ä…cze czerwone na panelu przednim" + +#~ msgid "Yellow Front Panel Connector" +#~ msgstr "ZÅ‚Ä…cze żółte na panelu przednim" + +#~ msgid "Spread Output" +#~ msgstr "Rozprowadzenie wyjÅ›cia" + +#~ msgid "Downmix" +#~ msgstr "Miksowanie w dół" + +#~ msgid "Virtual Mixer Input" +#~ msgstr "WejÅ›cie miksera wirtualnego" + +#~ msgid "Virtual Mixer Output" +#~ msgstr "WyjÅ›cie miksera wirtualnego" + +#~ msgid "Virtual Mixer Channels" +#~ msgstr "KanaÅ‚y miksera wirtualnego" + +#~ msgid "%s %d Function" +#~ msgstr "Funkcja %s %d" + +#~ msgid "%s Function" +#~ msgstr "Funkcja %s" + +#~ msgid "Error reading %d bytes on device '%s'." +#~ msgstr "BÅ‚Ä…d odczytu %d bajtów z urzÄ…dzenia '%s'." + +#~ msgid "Could not enqueue buffers in device '%s'." +#~ msgstr "Nie udaÅ‚o siÄ™ skolejkować buforów urzÄ…dzenia '%s'." + +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Nie udaÅ‚o siÄ™ nawiÄ…zać poÅ‚Ä…czenia z serwerem dźwiÄ™ku" + +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Nie udaÅ‚o siÄ™ odpytać o możliwoÅ›ci serwera dźwiÄ™ku" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index 76cc75cbad06eee29e342cc4095a791385d403e6..9fb0bdf9827a12899be83948de6d240e765e7ae5 100644 Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ diff --git a/po/pt_BR.po b/po/pt_BR.po index 2ad42db4623db365c1248ddfe3e365fd08da6b20..3beabc4ebbc62aba4e18f10e81009f828ad256f3 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-01-08 01:28-0300\n" "Last-Translator: FabrÃcio Godoy <skarllot@gmail.com>\n" "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n" @@ -21,17 +21,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Falha ao decodificar a imagem JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "\"%s\" por \"%s\"" -msgid "Failed to decode JPEG image" -msgstr "Falha ao decodificar a imagem JPEG" - msgid "Could not connect to server" msgstr "Não foi possÃvel conectar ao servidor" +msgid "No URL set." +msgstr "Nenhum URL definido." + msgid "Server does not support seeking." msgstr "Nâo há suporte a busca pelo servidor." @@ -52,9 +58,6 @@ msgstr "" msgid "Server sent bad data." msgstr "O servidor enviou dados ruins." -msgid "No URL set." -msgstr "Nenhum URL definido." - msgid "Internal data stream error." msgstr "Erro interno no fluxo de dados." @@ -67,6 +70,9 @@ msgstr "Este arquivo não contêm fluxos reproduzÃveis." msgid "This file is invalid and cannot be played." msgstr "Este arquivo é inválido e não pôde ser reproduzido." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Este arquivo está corrompido e não pôde ser reproduzido." @@ -119,16 +125,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Não foi possÃvel abrir o dispositivo de áudio para reprodução." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Não foi possÃvel abrir o dispositivo de áudio para gravação. Você não tem " -"permissão para abrir o dispositivo." - -msgid "Could not open audio device for recording." -msgstr "Não foi possÃvel abrir o dispositivo de áudio para gravação." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -148,6 +144,45 @@ msgstr "Não há suporte a gravação por este dispositivo de áudio." msgid "Error recording from audio device." msgstr "Erro ao gravar do dispositivo de áudio." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Não foi possÃvel abrir o dispositivo de áudio para gravação. Você não tem " +"permissão para abrir o dispositivo." + +msgid "Could not open audio device for recording." +msgstr "Não foi possÃvel abrir o dispositivo de áudio para gravação." + +msgid "Record Source" +msgstr "Origem de gravação" + +msgid "Microphone" +msgstr "Microfone" + +msgid "Line In" +msgstr "Entrada de linha" + +msgid "Internal CD" +msgstr "CD interno" + +msgid "SPDIF In" +msgstr "Entrada SPDIF" + +msgid "AUX 1 In" +msgstr "Entrada aux. 1" + +msgid "AUX 2 In" +msgstr "Entrada aux. 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Loopback" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Loopback" + msgid "Volume" msgstr "Volume" @@ -252,6 +287,10 @@ msgstr "Falha ao definir a entrada %d no dispositivo %s." msgid "Failed to change mute state for device '%s'." msgstr "Falha ao obter a força do sinal para o dispositivo \"%s\"." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "O dispositivo \"%s\" não pôde ser identificado." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -276,10 +315,6 @@ msgstr "Falha ao examinar as normas no dispositivo \"%s\"." msgid "Failed getting controls attributes on device '%s'." msgstr "Falha ao obter atributos de controle no dispositivo \"%s\"." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "O dispositivo \"%s\" não pôde ser identificado." - #, c-format msgid "This isn't a device '%s'." msgstr "\"%s\" não é um dispositivo." @@ -372,9 +407,6 @@ msgstr "Não é possÃvel operar sem um temporizador" #~ msgid "Line-in" #~ msgstr "Entrada de linha" -#~ msgid "Microphone" -#~ msgstr "Microfone" - #~ msgid "CD" #~ msgstr "CD" @@ -475,21 +507,9 @@ msgstr "Não é possÃvel operar sem um temporizador" #~ msgid "Telephone" #~ msgstr "Telefone" -#~ msgid "Line In" -#~ msgstr "Entrada de linha" - -#~ msgid "Internal CD" -#~ msgstr "CD interno" - #~ msgid "Video In" #~ msgstr "Entrada de vÃdeo" -#~ msgid "AUX 1 In" -#~ msgstr "Entrada aux. 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Entrada aux. 2" - #~ msgid "AUX In" #~ msgstr "Entrada aux." @@ -502,9 +522,6 @@ msgstr "Não é possÃvel operar sem um temporizador" #~ msgid "Microphone Boost" #~ msgstr "Aumento do microfone" -#~ msgid "Loopback" -#~ msgstr "Loopback" - #~ msgid "Diagnostic" #~ msgstr "Diagnóstico" @@ -517,9 +534,6 @@ msgstr "Não é possÃvel operar sem um temporizador" #~ msgid "Input" #~ msgstr "Entrada" -#~ msgid "Record Source" -#~ msgstr "Origem de gravação" - #~ msgid "Monitor Source" #~ msgstr "Origem de monitoração" @@ -559,9 +573,6 @@ msgstr "Não é possÃvel operar sem um temporizador" #~ msgid "Input Mix" #~ msgstr "Mixagem de entrada" -#~ msgid "SPDIF In" -#~ msgstr "Entrada SPDIF" - #~ msgid "Microphone 1" #~ msgstr "Microfone 1" diff --git a/po/ro.gmo b/po/ro.gmo index dcfd5923c7b3e1382f13d800480d233318d72e90..d58785afb95d4c6dc754c23bbfa3e6ec82bd5593 100644 Binary files a/po/ro.gmo and b/po/ro.gmo differ diff --git a/po/ro.po b/po/ro.po index 5827443e0896699707dff3cce4bf209a94b8c016..8dd3fae6922b1220bf1e764351c183a291e304d1 100644 --- a/po/ro.po +++ b/po/ro.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.23.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2010-08-16 03:22+0300\n" "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n" "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n" @@ -18,17 +18,23 @@ msgstr "" "X-Generator: Virtaal 0.6.1\n" "X-Launchpad-Export-Date: 2010-08-16 00:08+0000\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Nu s-a putut decoda imaginea JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "„%s†de „%sâ€" -msgid "Failed to decode JPEG image" -msgstr "Nu s-a putut decoda imaginea JPEG" - msgid "Could not connect to server" msgstr "Nu se poate stabili o conexiune la server" +msgid "No URL set." +msgstr "" + msgid "Server does not support seeking." msgstr "" @@ -50,9 +56,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "Eroare internă a fluxului de date." @@ -66,6 +69,9 @@ msgstr "Acest fiÈ™ier nu conÈ›ine fluxuri ce pot fi redate." msgid "This file is invalid and cannot be played." msgstr "FiÈ™ierul nu este valid È™i nu poate fi redat." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Acest fiÈ™ier este corupt È™i nu poate fi redat." @@ -118,16 +124,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Nu s-a putut deschide dispozitivul audio pentru redare." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Nu s-a putut deschide dispozitivul audio pentru înregistrare Nu aveÈ›i " -"permisiunea de a deschide dispozitivul." - -msgid "Could not open audio device for recording." -msgstr "Nu s-a putut deschide dispozitivul audio pentru înregistrare." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -147,6 +143,45 @@ msgstr "ÃŽnregistrarea nu este suportată de acest dispozitiv audio." msgid "Error recording from audio device." msgstr "Eroare la înregistrarea de la dispozitivul audio." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Nu s-a putut deschide dispozitivul audio pentru înregistrare Nu aveÈ›i " +"permisiunea de a deschide dispozitivul." + +msgid "Could not open audio device for recording." +msgstr "Nu s-a putut deschide dispozitivul audio pentru înregistrare." + +msgid "Record Source" +msgstr "Sursă înregistrare" + +msgid "Microphone" +msgstr "Microfon" + +msgid "Line In" +msgstr "Linie intrare" + +msgid "Internal CD" +msgstr "CD intern" + +msgid "SPDIF In" +msgstr "Intrare SPDIF" + +msgid "AUX 1 In" +msgstr "Intrare AUX 1" + +msgid "AUX 2 In" +msgstr "Intrare AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Buclă" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Buclă" + msgid "Volume" msgstr "Volum" @@ -251,6 +286,10 @@ msgstr "Definirea valorii %d pentru dispozitivul „%s†a eÈ™uat." msgid "Failed to change mute state for device '%s'." msgstr "ObÈ›inerea nivelului semnalului pentru dispozitivul „%s†a eÈ™uat." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Dispozitivul „%s†nu poate fi identificat." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -276,10 +315,6 @@ msgstr "Interogarea normei pentru dispozitivul „%s†a eÈ™uat." msgid "Failed getting controls attributes on device '%s'." msgstr "ObÈ›inerea atributelor de control pentru dispozitivul „%s†a eÈ™uat." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Dispozitivul „%s†nu poate fi identificat." - #, c-format msgid "This isn't a device '%s'." msgstr "Acesta nu este un dispozitiv „%sâ€." @@ -373,9 +408,6 @@ msgstr "Nu se poate opera fără un ceas" #~ msgid "Line-in" #~ msgstr "Linie intrare" -#~ msgid "Microphone" -#~ msgstr "Microfon" - #~ msgid "CD" #~ msgstr "CD" @@ -476,21 +508,9 @@ msgstr "Nu se poate opera fără un ceas" #~ msgid "Telephone" #~ msgstr "Telefon" -#~ msgid "Line In" -#~ msgstr "Linie intrare" - -#~ msgid "Internal CD" -#~ msgstr "CD intern" - #~ msgid "Video In" #~ msgstr "Intrare video" -#~ msgid "AUX 1 In" -#~ msgstr "Intrare AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Intrare AUX 2" - #~ msgid "AUX In" #~ msgstr "Intrare AUX" @@ -503,9 +523,6 @@ msgstr "Nu se poate opera fără un ceas" #~ msgid "Microphone Boost" #~ msgstr "Amplificare microfon" -#~ msgid "Loopback" -#~ msgstr "Buclă" - #~ msgid "Diagnostic" #~ msgstr "Diagnostic" @@ -518,9 +535,6 @@ msgstr "Nu se poate opera fără un ceas" #~ msgid "Input" #~ msgstr "Intrare" -#~ msgid "Record Source" -#~ msgstr "Sursă înregistrare" - #~ msgid "Monitor Source" #~ msgstr "Sursă monitor" @@ -560,9 +574,6 @@ msgstr "Nu se poate opera fără un ceas" #~ msgid "Input Mix" #~ msgstr "Mix intrare" -#~ msgid "SPDIF In" -#~ msgstr "Intrare SPDIF" - #~ msgid "Microphone 1" #~ msgstr "Microfon 1" diff --git a/po/ru.gmo b/po/ru.gmo index 283495d35a6733d5c5534ef1925d8a14c65ea603..f980b1781ade0c64f24953a169cb9774d9c0c193 100644 Binary files a/po/ru.gmo and b/po/ru.gmo differ diff --git a/po/ru.po b/po/ru.po index 52a34d23180845382c80078564c30df4f04f4f4e..df3351baf19b667eae59001d72edbfca2db63895 100644 --- a/po/ru.po +++ b/po/ru.po @@ -3,34 +3,40 @@ # # Ðртём Попов <artfwo@gmail.com>, 2009. # Pavel Maryanov <acid_jack@ukr.net>, 2009. -# Yuri Kozlov <yuray@komyakino.ru>, 2011, 2012. +# Yuri Kozlov <yuray@komyakino.ru>, 2011. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-12-01 13:23+0400\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2011-04-26 21:13+0400\n" "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" "Language-Team: Russian <gnu@mx.ru>\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.4\n" +"X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Ðе удалоÑÑŒ декодировать JPEG-изображение" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "«%s» иÑполнÑет «%s»" -msgid "Failed to decode JPEG image" -msgstr "Ðе удалоÑÑŒ декодировать JPEG-изображение" - msgid "Could not connect to server" msgstr "Ðе удалоÑÑŒ ÑоединитьÑÑ Ñ Ñервером" +msgid "No URL set." +msgstr "URL не задан." + msgid "Server does not support seeking." msgstr "Сервер не поддерживает поиÑк." @@ -50,9 +56,6 @@ msgstr "Произошла ÑÐµÑ‚ÐµÐ²Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° или Ñервер не msgid "Server sent bad data." msgstr "Сервер приÑлал некорректные данные." -msgid "No URL set." -msgstr "URL не задан." - msgid "Internal data stream error." msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° потока данных." @@ -67,6 +70,9 @@ msgstr "Файл не Ñодержит воÑпроизводимых поток msgid "This file is invalid and cannot be played." msgstr "Файл некорректен и не может быть воÑпроизведён." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Файл повреждён и не может быть воÑпроизведён." @@ -119,16 +125,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Ðе удалоÑÑŒ открыть аудио-уÑтройÑтво Ð´Ð»Ñ Ð²Ð¾ÑпроизведениÑ." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Ðе удалоÑÑŒ открыть аудио-уÑтройÑтво Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи. ОтÑутÑтвуют права доÑтупа к " -"уÑтройÑтву." - -msgid "Could not open audio device for recording." -msgstr "Ðе удалоÑÑŒ открыть аудио-уÑтройÑтво Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -148,6 +144,45 @@ msgstr "ЗапиÑÑŒ не поддерживаетÑÑ Ð´Ð°Ð½Ð½Ñ‹Ð¼ аудио- msgid "Error recording from audio device." msgstr "Ошибка запиÑи Ñ Ð°ÑƒÐ´Ð¸Ð¾-уÑтройÑтва." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Ðе удалоÑÑŒ открыть аудио-уÑтройÑтво Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи. ОтÑутÑтвуют права доÑтупа к " +"уÑтройÑтву." + +msgid "Could not open audio device for recording." +msgstr "Ðе удалоÑÑŒ открыть аудио-уÑтройÑтво Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи." + +msgid "Record Source" +msgstr "УÑтройÑтво запиÑи" + +msgid "Microphone" +msgstr "Микрофон" + +msgid "Line In" +msgstr "Линейный вход" + +msgid "Internal CD" +msgstr "Внутренний CD" + +msgid "SPDIF In" +msgstr "Вход SPDIF" + +msgid "AUX 1 In" +msgstr "Вход AUX 1" + +msgid "AUX 2 In" +msgstr "Вход AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "ПетлÑ" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "ПетлÑ" + msgid "Volume" msgstr "Уровень" @@ -189,23 +224,23 @@ msgstr "" msgid "Could not map buffers from device '%s'" msgstr "Ðе удалоÑÑŒ раÑпределить буферы уÑтройÑтва «%s»" -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "Драйвер уÑтройÑтва «%s» не поддерживает метод ввода-вывода %d" +msgstr "" +"Драйвер уÑтройÑтва «%s» не поддерживает ни один из извеÑтных методов захвата." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." msgstr "" -"Драйвер уÑтройÑтва «%s» не поддерживает ни один из извеÑтных методов ввода-" -"вывода." +"Драйвер уÑтройÑтва «%s» не поддерживает ни один из извеÑтных методов захвата." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "УÑтройÑтво «%s» не поддерживает захват видео" +msgstr "УÑтройÑтво «%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом вывода." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "УÑтройÑтво «%s» занÑто" +msgstr "УÑтройÑтво «%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом вывода." #, c-format msgid "Device '%s' cannot capture at %dx%d" @@ -219,35 +254,40 @@ msgstr "УÑтройÑтво «%s» не может оÑущеÑтвлÑÑ‚ÑŒ з msgid "Could not get parameters on device '%s'" msgstr "Ðе удалоÑÑŒ получить параметры уÑтройÑтва «%s»" +#, fuzzy msgid "Video device did not accept new frame rate setting." -msgstr "Видео-уÑтройÑтво не принÑло новое значение наÑтройки кадровой чаÑтоты." +msgstr "УÑтройÑтво видео-захвата не принÑло новый параметр кадровой чаÑтоты." msgid "Video device could not create buffer pool." -msgstr "Видео-уÑтройÑтво не может Ñоздать буферный пул." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." -msgstr "Ðе удалоÑÑŒ получить наÑтройки тюнера %d уÑтройÑтва «%s»." +msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑƒÑтановок тюнера %d уÑтройÑтва «%s»." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Ошибка при получении ÑпиÑка возможноÑтей уÑтройÑтва «%s»." +msgstr "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ %d байт из уÑтройÑтва «%s»." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "УÑтройÑтво «%s» не ÑвлÑетÑÑ Ñ‚ÑŽÐ½ÐµÑ€Ð¾Ð¼." +msgstr "УÑтройÑтво «%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом вывода." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Ðе удалоÑÑŒ выбрать радио-вход на уÑтройÑтве «%s»." +msgstr "Ðе удалоÑÑŒ выбрать вход %d Ð´Ð»Ñ ÑƒÑтройÑтва %s." #, c-format msgid "Failed to set input %d on device %s." msgstr "Ðе удалоÑÑŒ выбрать вход %d Ð´Ð»Ñ ÑƒÑтройÑтва %s." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "Ðе удалоÑÑŒ изменить ÑоÑтоÑние Ð¿Ñ€Ð¸Ð³Ð»ÑƒÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑƒÑтройÑтва «%s»." +msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ñ‰Ð½Ð¾Ñти Ñигнала Ð´Ð»Ñ ÑƒÑтройÑтва «%s»." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Ðе удаётÑÑ Ñ€Ð°Ñпознать уÑтройÑтво «%s»." #, c-format msgid "" @@ -273,10 +313,6 @@ msgstr "Ошибка запроÑа Ñтандарта уÑтройÑтва «%s msgid "Failed getting controls attributes on device '%s'." msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð² ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑтройÑтва «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ðе удаётÑÑ Ñ€Ð°Ñпознать уÑтройÑтво «%s»." - #, c-format msgid "This isn't a device '%s'." msgstr "«%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом." @@ -343,11 +379,14 @@ msgstr "" msgid "Cannot operate without a clock" msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð° без чаÑов" -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Ðе удалоÑÑŒ уÑтановить Ñоединение Ñ Ñервером звука" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Получен неожиданный размер кадра: %u вмеÑто %u." -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Ошибка при запроÑе возможноÑтей Ñервера звука" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Ошибка при попытке Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÐºÐ°Ð´Ñ€Ð¾Ð² видео Ñ ÑƒÑтройÑтва «%s»." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "Ошибка поÑле %d попыток. УÑтройÑтво: %s. СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %s" #~ msgid "Bass" #~ msgstr "Ðизкие" @@ -367,9 +406,6 @@ msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð° без чаÑов" #~ msgid "Line-in" #~ msgstr "Линейный вход" -#~ msgid "Microphone" -#~ msgstr "Микрофон" - #~ msgid "CD" #~ msgstr "CD" @@ -468,21 +504,9 @@ msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð° без чаÑов" #~ msgid "Telephone" #~ msgstr "Телефон" -#~ msgid "Line In" -#~ msgstr "Линейный вход" - -#~ msgid "Internal CD" -#~ msgstr "Внутренний CD" - #~ msgid "Video In" #~ msgstr "Видео вход" -#~ msgid "AUX 1 In" -#~ msgstr "Вход AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Вход AUX 2" - #~ msgid "AUX In" #~ msgstr "Вход AUX" @@ -495,9 +519,6 @@ msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð° без чаÑов" #~ msgid "Microphone Boost" #~ msgstr "Микрофонный уÑилитель" -#~ msgid "Loopback" -#~ msgstr "ПетлÑ" - #~ msgid "Diagnostic" #~ msgstr "ДиагноÑтика" @@ -510,9 +531,6 @@ msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð° без чаÑов" #~ msgid "Input" #~ msgstr "Вход" -#~ msgid "Record Source" -#~ msgstr "УÑтройÑтво запиÑи" - #~ msgid "Monitor Source" #~ msgstr "УÑтройÑтво вывода" @@ -552,9 +570,6 @@ msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð° без чаÑов" #~ msgid "Input Mix" #~ msgstr "Микширование входа" -#~ msgid "SPDIF In" -#~ msgstr "Вход SPDIF" - #~ msgid "Microphone 1" #~ msgstr "Микрофон 1" @@ -699,20 +714,17 @@ msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð° без чаÑов" #~ msgid "%s Function" #~ msgstr "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ %s" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Получен неожиданный размер кадра: %u вмеÑто %u." - #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ %d байт из уÑтройÑтва «%s»." #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "Ðе удалоÑÑŒ добавить в очередь буферы уÑтройÑтва «%s»" -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Ошибка при попытке Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÐºÐ°Ð´Ñ€Ð¾Ð² видео Ñ ÑƒÑтройÑтва «%s»." +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Ðе удалоÑÑŒ уÑтановить Ñоединение Ñ Ñервером звука" -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "Ошибка поÑле %d попыток. УÑтройÑтво: %s. СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %s" +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Ошибка при запроÑе возможноÑтей Ñервера звука" #~ msgid "" #~ "The buffer type is not supported, or the index is out of bounds, or no " diff --git a/po/sk.gmo b/po/sk.gmo index 49c7487b275f4001ddef6cf30d6f2ea5ef5ef698..3c6753c4a1bd57ef2f5fc91610971a0d0966b1d0 100644 Binary files a/po/sk.gmo and b/po/sk.gmo differ diff --git a/po/sk.po b/po/sk.po index dad8b673a3d216b5d1ef9194e83660989a0e9088..f94cf9743008af0513f8da3b6a6a79ca25665557 100644 --- a/po/sk.po +++ b/po/sk.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2010-11-08 15:48+0100\n" "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n" "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n" @@ -18,17 +18,23 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "X-Poedit-Country: SLOVAKIA\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Nepodarilo sa dekódovaÅ¥ obrázok JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "'%s' od '%s'" -msgid "Failed to decode JPEG image" -msgstr "Nepodarilo sa dekódovaÅ¥ obrázok JPEG" - msgid "Could not connect to server" msgstr "Nepodarilo sa pripojiÅ¥ k serveru" +msgid "No URL set." +msgstr "Nebolo nastavené URL." + msgid "Server does not support seeking." msgstr "Server nepodporuje zmenu pozÃcie" @@ -48,9 +54,6 @@ msgstr "Vyskytla sa sieÅ¥ová chyba, alebo server neoÄakávane uzavrel spojenie msgid "Server sent bad data." msgstr "Server odoslal chybné údaje." -msgid "No URL set." -msgstr "Nebolo nastavené URL." - msgid "Internal data stream error." msgstr "Vnútorná chyba prúdu údajov." @@ -63,6 +66,9 @@ msgstr "Tento súbor neobsahuje žiadne prehrateľné prúdy údajov." msgid "This file is invalid and cannot be played." msgstr "Tento súbor je chybný a nedá sa prehraÅ¥." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Tento súbor je poÅ¡kodený a nedá sa prehraÅ¥." @@ -115,16 +121,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Nepodarilo sa otvoriÅ¥ zvukové zariadenie vrežime prehrávania." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Nepodarilo sa otvoriÅ¥ zvukové zariadenie v režime záznamu. Nemáte oprávnenie " -"na otvorenie tohto zariadenia." - -msgid "Could not open audio device for recording." -msgstr "Nepodarilo sa otvoriÅ¥ zvukové zariadenie v režime záznamu." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -144,6 +140,45 @@ msgstr "Záznam nie je podporovaný týmto zvukovým zariadenÃm." msgid "Error recording from audio device." msgstr "Chyba pri zázname zo zvukového zariadenia." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Nepodarilo sa otvoriÅ¥ zvukové zariadenie v režime záznamu. Nemáte oprávnenie " +"na otvorenie tohto zariadenia." + +msgid "Could not open audio device for recording." +msgstr "Nepodarilo sa otvoriÅ¥ zvukové zariadenie v režime záznamu." + +msgid "Record Source" +msgstr "Zdroj záznamu" + +msgid "Microphone" +msgstr "Mikrofón" + +msgid "Line In" +msgstr "Linkový vstup" + +msgid "Internal CD" +msgstr "Vnútorne CD" + +msgid "SPDIF In" +msgstr "SPDIF vstup" + +msgid "AUX 1 In" +msgstr "AUX 1 vstup" + +msgid "AUX 2 In" +msgstr "AUX 2 vstup" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Spätná sluÄka" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Spätná sluÄka" + msgid "Volume" msgstr "HlasitosÅ¥" @@ -247,6 +282,10 @@ msgstr "Nepodarilo sa nastaviÅ¥ vstup %d na zariadenà %s." msgid "Failed to change mute state for device '%s'." msgstr "Nepodarilo sa zistiÅ¥ silu signálu pre zariadenie '%s'." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Neviem identifikovaÅ¥ zariadenie '%s'." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -271,10 +310,6 @@ msgstr "Zlyhala požiadavka norm na zariadenà '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "Nepodarilo sa zÃskaÅ¥ atribúty ovládacÃch prvkov na zariadenà '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Neviem identifikovaÅ¥ zariadenie '%s'." - #, c-format msgid "This isn't a device '%s'." msgstr "Toto nie je zariadenie '%s'." @@ -367,9 +402,6 @@ msgstr "Nemôžem fungovaÅ¥ bez hodÃn" #~ msgid "Line-in" #~ msgstr "Linkový vstup" -#~ msgid "Microphone" -#~ msgstr "Mikrofón" - #~ msgid "CD" #~ msgstr "CD" @@ -467,21 +499,9 @@ msgstr "Nemôžem fungovaÅ¥ bez hodÃn" #~ msgid "Telephone" #~ msgstr "Telefón" -#~ msgid "Line In" -#~ msgstr "Linkový vstup" - -#~ msgid "Internal CD" -#~ msgstr "Vnútorne CD" - #~ msgid "Video In" #~ msgstr "Video vstup" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 vstup" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 vstup" - #~ msgid "AUX In" #~ msgstr "AUX vstup" @@ -494,9 +514,6 @@ msgstr "Nemôžem fungovaÅ¥ bez hodÃn" #~ msgid "Microphone Boost" #~ msgstr "Zosilnenie mikrofónu" -#~ msgid "Loopback" -#~ msgstr "Spätná sluÄka" - #~ msgid "Diagnostic" #~ msgstr "Diagnostika" @@ -509,9 +526,6 @@ msgstr "Nemôžem fungovaÅ¥ bez hodÃn" #~ msgid "Input" #~ msgstr "Vstup" -#~ msgid "Record Source" -#~ msgstr "Zdroj záznamu" - #~ msgid "Monitor Source" #~ msgstr "Monitor zdroja" @@ -551,9 +565,6 @@ msgstr "Nemôžem fungovaÅ¥ bez hodÃn" #~ msgid "Input Mix" #~ msgstr "Vstup Mix" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF vstup" - #~ msgid "Microphone 1" #~ msgstr "Mikrofón 1" diff --git a/po/sl.gmo b/po/sl.gmo index 4645a601b3f255af941f7b510c5acfb0210fbc93..5deb5d3bd1dde4bcb2a1d4c7e5dd0e0f597853b4 100644 Binary files a/po/sl.gmo and b/po/sl.gmo differ diff --git a/po/sl.po b/po/sl.po index d349d7f9ebeaeae7d071c4431cc6f73b0602f88d..b827d528773fbb7675da5532c3cae854667b70fe 100644 --- a/po/sl.po +++ b/po/sl.po @@ -1,18 +1,17 @@ # Slovenian translation for gst-plugins-good. +# Copyright (C) 2005 - 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gst-plugins-good package. -# Copyright (C) 2005 - 2013 Free Software Foundation, Inc. -# # Robert Horvat <robi@hipnos.net>, 2010. # Matej UrbanÄiÄ <matej.urban@gmail.com>, 2010 - 2011. -# Klemen KoÅ¡ir <klemen913@gmail.com>, 2012 - 2013. +# Klemen KoÅ¡ir <klemen.kosir@gmx.com>, 2011. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good-1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2013-01-05 10:03+0100\n" -"Last-Translator: Klemen KoÅ¡ir <klemen913@gmail.com>\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2011-03-12 18:35+0100\n" +"Last-Translator: Klemen KoÅ¡ir <klemen.kosir@gmx.com>\n" "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n" "Language: sl\n" "MIME-Version: 1.0\n" @@ -20,26 +19,35 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" +"X-Poedit-Language: Slovenian\n" +"X-Poedit-Country: SLOVENIA\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Odkodiranje slike JPEG je spodletelo" #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" -msgstr "'%s' izvajalca '%s'" - -msgid "Failed to decode JPEG image" -msgstr "Napaka med dekodiranjem JPEG slike" +msgstr "'%s' - '%s'" msgid "Could not connect to server" -msgstr "Ni se mogoÄe povezati s strežnikom" +msgstr "S strežnikom se ni mogoÄe povezati" + +msgid "No URL set." +msgstr "Ni nastavljenega naslova URL." msgid "Server does not support seeking." msgstr "Strežnik ne podpira iskanja." msgid "Could not resolve server name." -msgstr "Ni mogoÄe razreÅ¡iti imena strežnika." +msgstr "Imena strežnika ni mogoÄe razreÅ¡iti." msgid "Could not establish connection to server." -msgstr "Ni mogoÄe vzpostaviti povezave s strežnikom." +msgstr "Povezave s strežnikom ni mogoÄe vzpostaviti" msgid "Secure connection setup failed." msgstr "Nastavitev varne povezave je spodletela." @@ -47,31 +55,31 @@ msgstr "Nastavitev varne povezave je spodletela." msgid "" "A network error occured, or the server closed the connection unexpectedly." msgstr "" -"PriÅ¡lo je do omrežne napake ali pa je povezava nepriÄakovano prekinjena." +"PriÅ¡lo je do omrežne napake ali pa se je povezava nepriÄakovano prekinila." msgid "Server sent bad data." msgstr "Strežnik je poslal slabe podatke." -msgid "No URL set." -msgstr "Ni nastavljenega naslova URL." - msgid "Internal data stream error." msgstr "Notranja napaka pretoka podatkov." msgid "No or invalid input audio, AVI stream will be corrupt." -msgstr "Napaka vhodnega zvoka, AVI pretok bo pokvarjen." +msgstr "Napaka vhodnega zvoka, pretok AVI bo pokvarjen." msgid "This file contains no playable streams." msgstr "Datoteka ne vsebuje pretokov za predvajanje." msgid "This file is invalid and cannot be played." -msgstr "Datoteka je napaÄna, zato je ni mogoÄe predvajati." +msgstr "Datoteka je neveljavna, zato je ni mogoÄe predvajati." + +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" msgid "This file is corrupt and cannot be played." msgstr "Datoteka je pokvarjena, zato je ni mogoÄe predvajati." msgid "Invalid atom size." -msgstr "Neveljavna velikost atoma" +msgstr "Neveljavna velikost atoma." msgid "This file is incomplete and cannot be played." msgstr "Datoteka ni popolna, zato je ni mogoÄe predvajati." @@ -88,64 +96,93 @@ msgid "" "extension plugin for Real media streams." msgstr "" "Ni mogoÄe najti podprtega pretoka. Najverjetneje je treba namestiti vstavek " -"GStreamer RTSP razÅ¡iritve za RealMedia pretoke." +"GStreamer RTSP za pretoke RealMedia." msgid "" "No supported stream was found. You might need to allow more transport " "protocols or may otherwise be missing the right GStreamer RTSP extension " "plugin." msgstr "" -"Ni mogoÄe najti podprtega pretoka. Najverjetneje je treba omogoÄiti veÄ " -"protokolov prenosa, oziroma manjka ustrezen vstavek GStreamer RTSP " -"razÅ¡iritve." +"Podprtega pretoka ni mogoÄe najti. Najverjetneje je treba omogoÄiti veÄ " +"protokolov prenosa ali pa manjka ustrezen vstavek GStreamer RTSP." msgid "Internal data flow error." -msgstr "Notranja napaka pretoka podatkov." +msgstr "Notranja napaka pretoÄnosti podatkov." msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" -"Ni mogoÄe odpreti zvoÄne naprave za predvajanje. Napravo uporablja drug " +"ZvoÄne naprave ni mogoÄe odpreti za predvajanje. Napravo uporablja drug " "program." msgid "" "Could not open audio device for playback. You don't have permission to open " "the device." msgstr "" -"Ni mogoÄe odpreti zvoÄne naprave za predvajanje. Ni ustreznih dovoljenj za " +"ZvoÄne naprave ni mogoÄe odpreti za predvajanje. Nimate dovoljenj za " "odpiranje naprave." msgid "Could not open audio device for playback." -msgstr "Ni mogoÄe odpreti zvoÄne naprave za predvajanje." - -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Ni mogoÄe odpreti zvoÄne naprave za snemanje. Ni ustreznih dovoljenj za " -"odpiranje naprave." - -msgid "Could not open audio device for recording." -msgstr "Ni mogoÄe odpreti zvoÄne naprave za snemanje." +msgstr "ZvoÄne naprave ni mogoÄe odpreti za predvajanje." msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." msgstr "" -"Ni mogoÄe odpreti zvoÄne naprave za predvajanje. Open Sound System ni podprt." +"ZvoÄne naprave ni mogoÄe odpreti za predvajanje. Predmet ne podpira trenutne " +"razliÄice sistema Open Sound System." msgid "Playback is not supported by this audio device." -msgstr "Predvajane s to zvoÄno napravo ni podprto." +msgstr "Ta zvoÄna naprava ne podpira predvajanja." msgid "Audio playback error." -msgstr "Napaka predvajanja zvoka" +msgstr "Napaka med predvajanjem zvoka." msgid "Recording is not supported by this audio device." msgstr "Snemanje s to zvoÄno napravo ni podprto." msgid "Error recording from audio device." -msgstr "Napaka med shranjevanjem preko zvoÄne naprave" +msgstr "Napaka med snemanjem z zvoÄno napravo." + +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"ZvoÄne naprave ni mogoÄe odpreti za snemanje. Nimate dovoljenj za odpiranje " +"naprave." + +msgid "Could not open audio device for recording." +msgstr "ZvoÄne naprave ni mogoÄe odpreti za snemanje." + +msgid "Record Source" +msgstr "Snemaj vir" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "Analogni vhod" + +msgid "Internal CD" +msgstr "Notranji CD" + +msgid "SPDIF In" +msgstr "Vhod SPDIF" + +msgid "AUX 1 In" +msgstr "Vhod AUX 1" + +msgid "AUX 2 In" +msgstr "Vhod AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Povratna zanka" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Povratna zanka" msgid "Volume" msgstr "Glasnost" @@ -157,7 +194,7 @@ msgid "Monitor" msgstr "Zaslon" msgid "Built-in Speaker" -msgstr "Vgrajeni zvoÄnik" +msgstr "Vgrajen zvoÄnik" msgid "Headphone" msgstr "SluÅ¡alke" @@ -169,10 +206,10 @@ msgid "SPDIF Out" msgstr "Izhod SPDIF" msgid "AUX 1 Out" -msgstr "AUX 1 izhod" +msgstr "Izhod AUX 1" msgid "AUX 2 Out" -msgstr "AUX 2 izhod" +msgstr "Izhod AUX 2" #, c-format msgid "Error reading %d bytes from device '%s'." @@ -181,89 +218,90 @@ msgstr "Napaka med branjem %d bajtov iz naprave '%s'." #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" msgstr "" -"Med Å¡tevilÄenjem oblik videa, ki jih podpira naprava \"%s\", je priÅ¡lo do " -"napake." #, c-format msgid "Could not map buffers from device '%s'" -msgstr "Ni mogoÄe preslikati medpomnilnika naprave '%s'" +msgstr "Medpomnilnika naprave '%s' ni mogoÄe preslikati" -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "Gonilnik naprave \"%s\" ne podpira nobenega naÄina I/O %d." +msgstr "Gonilnik naprave '%s' ne podpira nobenega znanega naÄina zajemanja." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." -msgstr "Gonilnik naprave \"%s\" ne podpira nobenega znanega naÄina I/O." +msgstr "Gonilnik naprave '%s' ne podpira nobenega znanega naÄina zajemanja." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "Naprava \"%s\" ne podpira zajemanja videa." +msgstr "Naprava '%s' ni izhodna naprava." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "Naprava \"%s\" je zaposlena." +msgstr "Naprava '%s' ni izhodna naprava." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture at %dx%d" -msgstr "Naprava \"%s\" ne podpira zajemanja v loÄljivosti %dx%d." +msgstr "Naprava '%s' ni naprava za zajemanje." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture in the specified format" -msgstr "Naprava \"%s\" ne podpira zajemanja v izbrani obliki." +msgstr "Naprava '%s' ni naprava za zajemanje." #, c-format msgid "Could not get parameters on device '%s'" -msgstr "Ni mogoÄe pridobiti parametrov na napravi '%s'." +msgstr "Parametrov na napravi '%s' ni mogoÄe pridobiti." +#, fuzzy msgid "Video device did not accept new frame rate setting." -msgstr "Napravi ni mogoÄe doloÄiti novih nastavitev hitrosti sliÄic." +msgstr "" +"Vhodni video napravi ni mogoÄe doloÄiti novih nastavitev hitrosti sliÄic." msgid "Video device could not create buffer pool." -msgstr "Naprava ne more ustvariti zaloge medpomnilnika." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." -msgstr "" -"Med pridobivanjem nastavitev uglaÅ¡evalnika %d na napravi \"%s\" je priÅ¡lo do " -"napake." +msgstr "Napaka med pridobivanjem nastavitev uglaÅ¡evalnika %d naprave '%s'." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Med pridobivanjem lastnosti naprave \"%s\" je priÅ¡lo do napake." +msgstr "Napaka med branjem %d bajtov iz naprave '%s'." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "Naprava \"%s\" ni uglaÅ¡evalnik." +msgstr "Naprava '%s' ni izhodna naprava." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Med pridobivanjem vhoda na napravi \"%s\" je priÅ¡lo do napake." +msgstr "Napaka med nastavljanjem vhoda %d na napravi %s." #, c-format msgid "Failed to set input %d on device %s." -msgstr "Napaka med doloÄanjem vhoda %d naprave %s." +msgstr "Napaka med nastavljanjem vhoda %d na napravi %s." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "" -"Med nastavljanjem stanja glasnosti na napravi \"%s\" je priÅ¡lo do napake." +msgstr "Napaka med pridobivanjem moÄi signala za napravo '%s'." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Naprave '%s' ni mogoÄe doloÄiti." #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" -"Napaka med pridobivanjem zmožnosti naprave '%s': ni pravega gonilnika v4l2. " -"Preverite namestitev." +"Napaka med pridobivanjem zmožnosti naprave '%s': ni gonilnik v4l2. " +"Preverite, Äe je gonilnik v4l1." #, c-format msgid "Failed to query attributes of input %d in device %s" -msgstr "Napaka med pregledovanjem atributov poizvedbe vhoda %d naprave %s" +msgstr "Napaka med poizvedovanjem atributov vhoda %d naprave %s" #, c-format msgid "Failed to get setting of tuner %d on device '%s'." -msgstr "Napaka med pridobivanjem nastavitev uglaÅ¡evalnika %d na napravi '%s'." +msgstr "Napaka med pridobivanjem nastavitev uglaÅ¡evalnika %d naprave '%s'." #, c-format msgid "Failed to query norm on device '%s'." @@ -273,17 +311,13 @@ msgstr "Napaka med poizvedovanjem uravnanosti naprave '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "Napaka med pridobivanjem atributov nadzora naprave '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ni mogoÄe doloÄiti naprave '%s'." - #, c-format msgid "This isn't a device '%s'." msgstr "To ni naprava '%s'." #, c-format msgid "Could not open device '%s' for reading and writing." -msgstr "Ni mogoÄe odpreti naprave '%s' za branje in pisanje." +msgstr "Naprave '%s' ni mogoÄe odpreti za branje in pisanje." #, c-format msgid "Device '%s' is not a capture device." @@ -295,16 +329,17 @@ msgstr "Naprava '%s' ni izhodna naprava." #, c-format msgid "Failed to set norm for device '%s'." -msgstr "Napaka med nastavljanjem naprave '%s'." +msgstr "Napaka med nastavljanjem uravnanosti naprave '%s'." #, c-format msgid "Failed to get current tuner frequency for device '%s'." -msgstr "Napaka med pridobivanjem frekvence uglaÅ¡evalnika naprave '%s'." +msgstr "" +"Napaka med pridobivanjem trenutne frekvence uglaÅ¡evalnika naprave '%s'." #, c-format msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "" -"Napaka med nastavljanjem frekvence uglaÅ¡evalnika naprave '%s' na %lu Hz.." +"Napaka med nastavljanjem frekvence uglaÅ¡evalnika naprave '%s' na %lu Hz." #, c-format msgid "Failed to get signal strength for device '%s'." @@ -312,31 +347,472 @@ msgstr "Napaka med pridobivanjem moÄi signala za napravo '%s'." #, c-format msgid "Failed to get value for control %d on device '%s'." -msgstr "Napaka med pridobivanjem vrednosti %d na napravi '%s'." +msgstr "Napaka med pridobivanjem vrednosti za nadzor %d na napravi '%s'." #, c-format msgid "Failed to set value %d for control %d on device '%s'." -msgstr "Napaka med doloÄanjem vrednosti %d za %d na napravi '%s'." +msgstr "Napaka med nastavljanjem vrednosti %d za nadzor %d na napravi '%s'." #, c-format msgid "Failed to get current input on device '%s'. May be it is a radio device" msgstr "" -"Napaka med pridobivanjem vhodnega signala naprave '%s'. Morda je radijska " +"Napaka med pridobivanjem trenutnega vhoda naprave '%s'. Morda je radijska " "naprava." #, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" -"Napaka med pridobivanjem odvodnega signala naprave '%s'. Morda je radijska " +"Napaka med pridobivanjem trenutnega izhoda naprave '%s'. Morda je radijska " "naprava." #, c-format msgid "Failed to set output %d on device %s." -msgstr "Napaka med doloÄanjem odvoda %d naprave %s." +msgstr "Napaka med nastavljanjem izhoda %d na napravi %s." msgid "Changing resolution at runtime is not yet supported." msgstr "Spreminjanje loÄljivosti med delovanjem Å¡e ni podprto." msgid "Cannot operate without a clock" -msgstr "Izvajanje opravil brez ure ni mogoÄe" +msgstr "Delovanje brez ure ni mogoÄe" + +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "" +#~ "NepriÄakovana vrednost velikosti okvirja (%u). PriÄakovana vrednost je %u." + +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Napaka med poskusom pridobivanja video sliÄic z naprave '%s'." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "" +#~ "NeuspeÅ¡en zagon po %d poskusih na napravi %s. SporoÄilo sistemske napake: " +#~ "%s" + +#~ msgid "Bass" +#~ msgstr "Bas" + +#~ msgid "Treble" +#~ msgstr "Visoki toni" + +#~ msgid "Synth" +#~ msgstr "Sintetizator" + +#~ msgid "PCM" +#~ msgstr "PCM" + +#~ msgid "Speaker" +#~ msgstr "ZvoÄnik" + +#~ msgid "Line-in" +#~ msgstr "Analogni vhod" + +#~ msgid "CD" +#~ msgstr "CD" + +#~ msgid "Mixer" +#~ msgstr "MeÅ¡alnik" + +#~ msgid "PCM-2" +#~ msgstr "PCM-2" + +#~ msgid "Record" +#~ msgstr "Snemanje" + +#~ msgid "In-gain" +#~ msgstr "Vhodna ojaÄitev" + +#~ msgid "Out-gain" +#~ msgstr "Izhodna ojaÄitev" + +#~ msgid "Line-1" +#~ msgstr "Analogni vhod 1" + +#~ msgid "Line-2" +#~ msgstr "Analogni vhod 2" + +#~ msgid "Line-3" +#~ msgstr "Analogni vhod 3" + +#~ msgid "Digital-1" +#~ msgstr "Digitalni vhod 1" + +#~ msgid "Digital-2" +#~ msgstr "Digitalni vhod 2" + +#~ msgid "Digital-3" +#~ msgstr "Digitalni vhod 3" + +#~ msgid "Phone-in" +#~ msgstr "Telefonski vhod" + +#~ msgid "Phone-out" +#~ msgstr "Telefonski izhod" + +#~ msgid "Video" +#~ msgstr "Video" + +#~ msgid "Radio" +#~ msgstr "Radio" + +#~ msgid "Could not open audio device for mixer control handling." +#~ msgstr "ZvoÄne naprave ni mogoÄe odpreti za nadzor meÅ¡alnika." + +#~ msgid "" +#~ "Could not open audio device for mixer control handling. This version of " +#~ "the Open Sound System is not supported by this element." +#~ msgstr "" +#~ "ZvoÄne naprave ni mogoÄe odpreti za nadzor meÅ¡alnika. Predmet ne podpira " +#~ "trenutne razliÄice sistema Open Sound System." + +#~ msgid "Master" +#~ msgstr "Glavni" + +#~ msgid "Front" +#~ msgstr "Sprednji" + +#~ msgid "Rear" +#~ msgstr "Zadnji" + +#~ msgid "Headphones" +#~ msgstr "SluÅ¡alke" + +#~ msgid "Center" +#~ msgstr "Sredinski" + +#~ msgid "LFE" +#~ msgstr "LFE" + +#~ msgid "Surround" +#~ msgstr "Prostorski" + +#~ msgid "Side" +#~ msgstr "Stranski" + +#~ msgid "AUX Out" +#~ msgstr "Izhod AUX" + +#~ msgid "3D Depth" +#~ msgstr "3D globina" + +#~ msgid "3D Center" +#~ msgstr "3D sredina" + +#~ msgid "3D Enhance" +#~ msgstr "3D izboljÅ¡ava" + +#~ msgid "Telephone" +#~ msgstr "Telefon" + +#~ msgid "Video In" +#~ msgstr "Video vhod" + +#~ msgid "AUX In" +#~ msgstr "Vhod AUX" + +#~ msgid "Record Gain" +#~ msgstr "OjaÄitev snemanja" + +#~ msgid "Output Gain" +#~ msgstr "OjaÄitev izhoda" + +#~ msgid "Microphone Boost" +#~ msgstr "OjaÄitev mikrofona" + +#~ msgid "Diagnostic" +#~ msgstr "Diagnostika" + +#~ msgid "Bass Boost" +#~ msgstr "OjaÄitev basov" + +#~ msgid "Playback Ports" +#~ msgstr "Vrata predvajanja" + +#~ msgid "Input" +#~ msgstr "Vhod" + +#~ msgid "Monitor Source" +#~ msgstr "Nadzoruj vir" + +#~ msgid "Keyboard Beep" +#~ msgstr "Pisk tipkovnice" + +#~ msgid "Simulate Stereo" +#~ msgstr "Simuliran stereo" + +#~ msgid "Stereo" +#~ msgstr "Stereo" + +#~ msgid "Surround Sound" +#~ msgstr "Prostorski zvok" + +#~ msgid "Microphone Gain" +#~ msgstr "OjaÄitev mikrofona" + +#~ msgid "Speaker Source" +#~ msgstr "Vir zvoÄnika" + +#~ msgid "Microphone Source" +#~ msgstr "Vir mikrofona" + +#~ msgid "Jack" +#~ msgstr "PrikljuÄek" + +#~ msgid "Center / LFE" +#~ msgstr "Srednji / LFE" + +#~ msgid "Stereo Mix" +#~ msgstr "Stereo meÅ¡anje" + +#~ msgid "Mono Mix" +#~ msgstr "Mono meÅ¡anje" + +#~ msgid "Input Mix" +#~ msgstr "MeÅ¡anje vhoda" + +#~ msgid "Microphone 1" +#~ msgstr "Mikrofon 1" + +#~ msgid "Microphone 2" +#~ msgstr "Mikrofon 2" + +#~ msgid "Digital Out" +#~ msgstr "Digitalni izhod" + +#~ msgid "Digital In" +#~ msgstr "Digitalni vhod" + +#~ msgid "HDMI" +#~ msgstr "HDMI" + +#~ msgid "Modem" +#~ msgstr "Modem" + +#~ msgid "Handset" +#~ msgstr "ProstoroÄna sluÅ¡alka" + +#~ msgid "Other" +#~ msgstr "Drugo" + +#~ msgid "None" +#~ msgstr "Brez" + +#~ msgid "On" +#~ msgstr "VkljuÄeno" + +#~ msgid "Off" +#~ msgstr "IzkljuÄeno" + +#~ msgid "Mute" +#~ msgstr "Nemo" + +#~ msgid "Fast" +#~ msgstr "Hitro" + +#~ msgid "Very Low" +#~ msgstr "Zelo nizko" + +#~ msgid "Low" +#~ msgstr "Nizko" + +#~ msgid "Medium" +#~ msgstr "Srednje" + +#~ msgid "High" +#~ msgstr "Visoko" + +#~ msgid "Very High" +#~ msgstr "Zelo visoko" + +#~ msgid "Production" +#~ msgstr "Proizvodnja" + +#~ msgid "Front Panel Microphone" +#~ msgstr "Mikrofon spredaj" + +#~ msgid "Front Panel Line In" +#~ msgstr "Analogni vhod spredaj" + +#~ msgid "Front Panel Headphones" +#~ msgstr "SluÅ¡alke spredaj" + +#~ msgid "Front Panel Line Out" +#~ msgstr "Analogni izhod spredaj" + +#~ msgid "Green Connector" +#~ msgstr "Zeleni prikljuÄek" + +#~ msgid "Pink Connector" +#~ msgstr "Roza prikljuÄek" + +#~ msgid "Blue Connector" +#~ msgstr "Modri prikljuÄek" + +#~ msgid "White Connector" +#~ msgstr "Beli prikljuÄek" + +#~ msgid "Black Connector" +#~ msgstr "ÄŒrni prikljuÄek" + +#~ msgid "Gray Connector" +#~ msgstr "Sivi prikljuÄek" + +#~ msgid "Orange Connector" +#~ msgstr "Oranžni prikljuÄek" + +#~ msgid "Red Connector" +#~ msgstr "RdeÄi prikljuÄek" + +#~ msgid "Yellow Connector" +#~ msgstr "Rumeni prikljuÄek" + +#~ msgid "Green Front Panel Connector" +#~ msgstr "Zeleni prikljuÄek spredaj" + +#~ msgid "Pink Front Panel Connector" +#~ msgstr "Roza prikljuÄek spredaj" + +#~ msgid "Blue Front Panel Connector" +#~ msgstr "Modri prikljuÄek spredaj" + +#~ msgid "White Front Panel Connector" +#~ msgstr "Beli prikljuÄek spredaj" + +#~ msgid "Black Front Panel Connector" +#~ msgstr "ÄŒrni prikljuÄek spredaj" + +#~ msgid "Gray Front Panel Connector" +#~ msgstr "Sivi prikljuÄek spredaj" + +#~ msgid "Orange Front Panel Connector" +#~ msgstr "Oranžni prikljuÄek spredaj" + +#~ msgid "Red Front Panel Connector" +#~ msgstr "RdeÄi prikljuÄek spredaj" + +#~ msgid "Yellow Front Panel Connector" +#~ msgstr "Rumeni prikljuÄek spredaj" + +#~ msgid "Spread Output" +#~ msgstr "RazÅ¡iri izhod" + +#~ msgid "Downmix" +#~ msgstr "ZmanjÅ¡evanje kanalov" + +#~ msgid "Virtual Mixer Input" +#~ msgstr "Vhod navideznega meÅ¡alnika" + +#~ msgid "Virtual Mixer Output" +#~ msgstr "Izhod navideznega meÅ¡alnika" + +#~ msgid "Virtual Mixer Channels" +#~ msgstr "Kanali navideznega meÅ¡alnika" + +#~ msgid "%s %d Function" +#~ msgstr "Funkcija %s %d" + +#~ msgid "%s Function" +#~ msgstr "Funkcija %s" + +#~ msgid "Error reading %d bytes on device '%s'." +#~ msgstr "Napaka med branjem %d bajtov na napravi '%s'." + +#~ msgid "Could not enqueue buffers in device '%s'." +#~ msgstr "Medpomnilnika na napravi '%s' ni mogoÄe uvrstiti." + +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Povezave z zvoÄnim strežnikom ni mogoÄe vzpostaviti" + +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Poizvedba o zmogljivosti zvoÄnega strežnika je spodletela" + +#~ msgid "Describes the selected input element." +#~ msgstr "Opisuje izbran vnosni predmet." + +#~ msgid "Describes the selected output element for Audio/Video Conferencing." +#~ msgstr "Opisuje izbran izhodni predmet za zvoÄne/video konference." + +#~ msgid "Describes the selected output element for Music and Movies." +#~ msgstr "Opisuje izbran predmet za glasbo in filme." + +#~ msgid "Describes the selected output element." +#~ msgstr "Opisuje izbran izhodni predmet." + +#~ msgid "GStreamer audiosink for Audio/Video Conferencing" +#~ msgstr "GStreamer odvod za zvoÄne/video konference" + +#~ msgid "GStreamer audiosink for Music and Movies" +#~ msgstr "GStreamer odvod glasbe in filmov" + +#~ msgid "" +#~ "GStreamer can play audio using any number of output elements. Some " +#~ "possible choices are osssink, esdsink and alsasink. The audiosink can be " +#~ "a partial pipeline instead of just one element." +#~ msgstr "" +#~ "S programom GStreamer je mogoÄe predvajati zvok z uporabo veÄ izhodnih " +#~ "predmetov. Med razpoložljivi so ossink, edsink in alsasink. Audiosink je " +#~ "lahko delni cevovod namesto enega predmeta." + +#~ msgid "" +#~ "GStreamer can play video using any number of output elements. Some " +#~ "possible choices are xvimagesink, ximagesink, sdlvideosink and aasink. " +#~ "The videosink can be a partial pipeline instead of just one element." +#~ msgstr "" +#~ "S programom GStreamer je mogoÄe predvajati video z uporabo veÄ izhodnih " +#~ "predmetov. Med razpoložljivimi so xvimagesink, ximagesink, sdlvideosink " +#~ "in aasink. Videosink je lahko delni cevovod namesto enega predmeta." + +#~ msgid "" +#~ "GStreamer can put visualization plugins in a pipeline to transform audio " +#~ "stream in video frames. Default is goom but more visualization plugins " +#~ "will be ported soon. The visualization plugin can be a partial pipeline " +#~ "instead of just one element." +#~ msgstr "" +#~ "S programom GStreamer je mogoÄe v cevovod vkljuÄiti vstavek predoÄenja za " +#~ "pretvorbo zvoÄnega pretoka v slikovni uÄinek. Privzeti vstavek je Goom, " +#~ "kmalu pa mu bodo sledili Å¡e drugi. Vstavek predoÄenja je lahko delni " +#~ "cevovod namesto samo enega predmeta." + +#~ msgid "" +#~ "GStreamer can record audio using any number of input elements. Some " +#~ "possible choices are osssrc, esdsrc and alsasrc. The audio source can be " +#~ "a partial pipeline instead of just one element." +#~ msgstr "" +#~ "S programom GStreamer je mogoÄe posneti zvok z uporabo veÄ vhodnih " +#~ "predmetov. Med razpoložljivimi so osssrc, esdsrc in alsasrc. Vir zvoka je " +#~ "lahko delni cevovod namesto samo enega predmeta." + +#~ msgid "" +#~ "GStreamer can record video from any number of input elements. Some " +#~ "possible choices are v4lsrc and videotestsrc. The video source can be a " +#~ "partial pipeline instead of just one element." +#~ msgstr "" +#~ "S programom GStreamer je mogoÄe posneti video z uporabo veÄ vhodnih " +#~ "predmetov. Med razpoložljivimi sta v4lsrc in videotestsrc. Vir videa je " +#~ "lahko delni cevovod namesto samo enega predmeta." + +#~ msgid "default GStreamer audio source" +#~ msgstr "privzeti vir zvoka" + +#~ msgid "default GStreamer audiosink" +#~ msgstr "privzeti zvoÄni ponor" + +#~ msgid "default GStreamer video source" +#~ msgstr "privzeti vir videa" + +#~ msgid "default GStreamer videosink" +#~ msgstr "privzeti video ponor" + +#~ msgid "default GStreamer visualization plugin" +#~ msgstr "privzeti vstavek predoÄenja" + +#~ msgid "description for GStreamer audiosink for Audio/Video Conferencing" +#~ msgstr "opis GStreamer zvoÄnega ponora za zvoÄno/video konferenco" + +#~ msgid "description for GStreamer audiosink for Music and Movies" +#~ msgstr "opis GStreamer zvoÄnega ponora za glasbo in filme" + +#~ msgid "description for default GStreamer audiosink" +#~ msgstr "opis za privzeti GStreamer zvoÄni ponor" + +#~ msgid "description for default GStreamer audiosrc" +#~ msgstr "opis za privzeti GStreamer zvoÄni vir" diff --git a/po/sq.gmo b/po/sq.gmo index 7f98d76b44e70b07b598d2ed1632d4e93bc6ac7b..aab3fa63865b187917cb5693a7fc8a0c1a60aa3f 100644 Binary files a/po/sq.gmo and b/po/sq.gmo differ diff --git a/po/sq.po b/po/sq.po index 0462dd8680bf9a2b837551566750480b22074c3a..ff3b97c393a6e9293471f16b7c9b3a527530daaf 100644 --- a/po/sq.po +++ b/po/sq.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins 0.8.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2004-08-07 20:29+0200\n" "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n" "Language-Team: Albanian <begraj@hotmail.com>\n" @@ -15,18 +15,24 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#. TRANSLATORS: 'song title' by 'artist name' -#, c-format -msgid "'%s' by '%s'" +msgid "Jack server not found" msgstr "" msgid "Failed to decode JPEG image" msgstr "" +#. TRANSLATORS: 'song title' by 'artist name' +#, c-format +msgid "'%s' by '%s'" +msgstr "" + #, fuzzy msgid "Could not connect to server" msgstr "E pamundur mbyllja e dispozitivit të kontrollit \"%s\"." +msgid "No URL set." +msgstr "" + #, fuzzy msgid "Server does not support seeking." msgstr "Dispozitivi juaj OSS mund të mos provohet korrektësisht" @@ -49,9 +55,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "" @@ -64,6 +67,9 @@ msgstr "" msgid "This file is invalid and cannot be played." msgstr "" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "" @@ -108,6 +114,23 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "E pamundur hapja e dispozitivit të zërit \"%s\" për shkrim." +msgid "" +"Could not open audio device for playback. This version of the Open Sound " +"System is not supported by this element." +msgstr "" + +msgid "Playback is not supported by this audio device." +msgstr "" + +msgid "Audio playback error." +msgstr "" + +msgid "Recording is not supported by this audio device." +msgstr "" + +msgid "Error recording from audio device." +msgstr "" + msgid "" "Could not open audio device for recording. You don't have permission to open " "the device." @@ -117,21 +140,33 @@ msgstr "" msgid "Could not open audio device for recording." msgstr "I pamundur hapja e dispozitivit CD për lexim." -msgid "" -"Could not open audio device for playback. This version of the Open Sound " -"System is not supported by this element." +#, fuzzy +msgid "Record Source" +msgstr "Regjistrimi" + +msgid "Microphone" +msgstr "Mikrofoni" + +#, fuzzy +msgid "Line In" +msgstr "Linja-hyrje" + +msgid "Internal CD" msgstr "" -msgid "Playback is not supported by this audio device." +msgid "SPDIF In" msgstr "" -msgid "Audio playback error." +msgid "AUX 1 In" msgstr "" -msgid "Recording is not supported by this audio device." +msgid "AUX 2 In" msgstr "" -msgid "Error recording from audio device." +msgid "Codec Loopback" +msgstr "" + +msgid "SunVTS Loopback" msgstr "" msgid "Volume" @@ -232,6 +267,10 @@ msgstr "E pamundur mbyllja e dispozitivit audio \"%s\"." msgid "Failed to change mute state for device '%s'." msgstr "E pamundur marrja e buffers nga dispozitivi \"%s\"." +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "I pamundur shkrimi në dispozitivin \"%s\"." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -254,10 +293,6 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "I pamundur shkrimi në dispozitivin \"%s\"." - #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -339,9 +374,6 @@ msgstr "" #~ msgid "Line-in" #~ msgstr "Linja-hyrje" -#~ msgid "Microphone" -#~ msgstr "Mikrofoni" - #~ msgid "CD" #~ msgstr "CD" @@ -402,10 +434,6 @@ msgstr "" #~ msgid "Side" #~ msgstr "Video" -#, fuzzy -#~ msgid "Line In" -#~ msgstr "Linja-hyrje" - #, fuzzy #~ msgid "Video In" #~ msgstr "Video" @@ -422,10 +450,6 @@ msgstr "" #~ msgid "Microphone Boost" #~ msgstr "Mikrofoni" -#, fuzzy -#~ msgid "Record Source" -#~ msgstr "Regjistrimi" - #, fuzzy #~ msgid "Monitor Source" #~ msgstr "Ekrani" diff --git a/po/sr.gmo b/po/sr.gmo index b02a2d3c95331f50b0a696646e72b8f321eedd4c..1dbaef9af0c65762163f3f43aab6e077b49ad208 100644 Binary files a/po/sr.gmo and b/po/sr.gmo differ diff --git a/po/sr.po b/po/sr.po index da423ecebc72104979d02e5258f16e9ddb69c579..f5222b29e8da0d1e3abcac5af08d416af2470b89 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-12-04 16:44+0200\n" "Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n" "Language-Team: Serbian <gnu@prevod.org>\n" @@ -20,17 +20,23 @@ msgstr "" "X-Generator: Virtaal 0.7.0\n" "X-Project-Style: gnome\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "ÐиÑам уÑпео да декодирам ЈПЕГ Ñлику" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "„%s“ изводи „%s“" -msgid "Failed to decode JPEG image" -msgstr "ÐиÑам уÑпео да декодирам ЈПЕГ Ñлику" - msgid "Could not connect to server" msgstr "Ðе могу да Ñе повежем Ñа Ñервером" +msgid "No URL set." +msgstr "Ðије подешена адреÑа." + msgid "Server does not support seeking." msgstr "Сервер не подржава позиционирање." @@ -50,9 +56,6 @@ msgstr "Дошло је до грешке на мрежи, или је Ñерв msgid "Server sent bad data." msgstr "Сервер је поÑлао лоше податке." -msgid "No URL set." -msgstr "Ðије подешена адреÑа." - msgid "Internal data stream error." msgstr "Унутрашња грешка тока података." @@ -65,6 +68,9 @@ msgstr "Ова датотека не Ñадржи токове за пуштањ msgid "This file is invalid and cannot be played." msgstr "Ова датотека је неиÑправна и не може бити пуштена." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Ова датотека је оштећена и не може бити пуштена." @@ -117,16 +123,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Ðе могу да покренем звучни уређај ради пуштања." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Ðе могу да покренем аудио уређај ради Ñнимања. Ðемате овлашћење за покретање " -"уређаја." - -msgid "Could not open audio device for recording." -msgstr "Ðе могу да покренем звучни уређај ради Ñнимања." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -146,6 +142,45 @@ msgstr "Снимање није подржано од Ñтране овог зв msgid "Error recording from audio device." msgstr "Грешка приликом Ñнимања Ñа звучног уређаја." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Ðе могу да покренем аудио уређај ради Ñнимања. Ðемате овлашћење за покретање " +"уређаја." + +msgid "Could not open audio device for recording." +msgstr "Ðе могу да покренем звучни уређај ради Ñнимања." + +msgid "Record Source" +msgstr "Извор Ñнимања" + +msgid "Microphone" +msgstr "Микрофон" + +msgid "Line In" +msgstr "ЛинијÑки улаз" + +msgid "Internal CD" +msgstr "Унутрашњи ЦД" + +msgid "SPDIF In" +msgstr "СПДИФ улаз" + +msgid "AUX 1 In" +msgstr "ÐУХ 1 улаз" + +msgid "AUX 2 In" +msgstr "ÐУХ 2 улаз" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Повратна петља" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Повратна петља" + msgid "Volume" msgstr "Јачина звука" @@ -246,6 +281,10 @@ msgstr "ÐиÑам уÑпео да подеÑим улаз %d на уређај msgid "Failed to change mute state for device '%s'." msgstr "ÐиÑам уÑпео да добавим јачину Ñигнала за уређај „%s“." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Ðе могу да раÑпознам уређај „%s“." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -270,10 +309,6 @@ msgstr "ÐиÑам уÑпео да пропитам норму на уређај msgid "Failed getting controls attributes on device '%s'." msgstr "ÐиÑам уÑпео да добавим ÑвојÑтва контрола на уређају „%s“." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ðе могу да раÑпознам уређај „%s“." - #, c-format msgid "This isn't a device '%s'." msgstr "Ово није уређај „%s“." @@ -364,9 +399,6 @@ msgstr "Ðе могу да радим без Ñата" #~ msgid "Line-in" #~ msgstr "ЛинијÑки улаз" -#~ msgid "Microphone" -#~ msgstr "Микрофон" - #~ msgid "CD" #~ msgstr "ЦД" @@ -464,21 +496,9 @@ msgstr "Ðе могу да радим без Ñата" #~ msgid "Telephone" #~ msgstr "Телефон" -#~ msgid "Line In" -#~ msgstr "ЛинијÑки улаз" - -#~ msgid "Internal CD" -#~ msgstr "Унутрашњи ЦД" - #~ msgid "Video In" #~ msgstr "Видео улаз" -#~ msgid "AUX 1 In" -#~ msgstr "ÐУХ 1 улаз" - -#~ msgid "AUX 2 In" -#~ msgstr "ÐУХ 2 улаз" - #~ msgid "AUX In" #~ msgstr "ÐУХ улаз" @@ -491,9 +511,6 @@ msgstr "Ðе могу да радим без Ñата" #~ msgid "Microphone Boost" #~ msgstr "Појачање микрофона" -#~ msgid "Loopback" -#~ msgstr "Повратна петља" - #~ msgid "Diagnostic" #~ msgstr "ДијагноÑтика" @@ -506,9 +523,6 @@ msgstr "Ðе могу да радим без Ñата" #~ msgid "Input" #~ msgstr "Улаз" -#~ msgid "Record Source" -#~ msgstr "Извор Ñнимања" - #~ msgid "Monitor Source" #~ msgstr "Извор праћења" @@ -548,9 +562,6 @@ msgstr "Ðе могу да радим без Ñата" #~ msgid "Input Mix" #~ msgstr "Улазни микÑ" -#~ msgid "SPDIF In" -#~ msgstr "СПДИФ улаз" - #~ msgid "Microphone 1" #~ msgstr "Микрофон 1" diff --git a/po/sv.gmo b/po/sv.gmo index d92a1121eccb99bc99700796055bb6122961f329..a35d49d173b9e3e4ba3432916397573c5c9213bd 100644 Binary files a/po/sv.gmo and b/po/sv.gmo differ diff --git a/po/sv.po b/po/sv.po index cfd5720d756ae69faa2b1233558f3e75bf94b901..39a0bfc5c0ae48881b512a039effcff85c4cd0ef 100644 --- a/po/sv.po +++ b/po/sv.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-01-09 19:36+0100\n" "Last-Translator: Daniel Nylander <po@danielnylander.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" @@ -17,17 +17,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Misslyckades med att avkoda JPEG-bild" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "\"%s\" av \"%s\"" -msgid "Failed to decode JPEG image" -msgstr "Misslyckades med att avkoda JPEG-bild" - msgid "Could not connect to server" msgstr "Kunde inte ansluta till servern" +msgid "No URL set." +msgstr "Ingen URL inställd." + msgid "Server does not support seeking." msgstr "Servern saknar stöd för sökning/spolning." @@ -47,9 +53,6 @@ msgstr "Ett nätverksfel inträfade eller servern stängde anslutningen oväntat msgid "Server sent bad data." msgstr "Servern skickade felaktigt data." -msgid "No URL set." -msgstr "Ingen URL inställd." - msgid "Internal data stream error." msgstr "Internt fel i dataström." @@ -62,6 +65,9 @@ msgstr "Den här filen innehÃ¥ller inga uppspelningsbara strömmar." msgid "This file is invalid and cannot be played." msgstr "Den här filen är ogiltig och kan inte spelas upp." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Den här filen är skadad och kan inte spelas upp." @@ -115,16 +121,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Kunde inte öppna ljudenheten för uppspelning." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Kunde inte öppna ljudenheten för inspelning. Du har inte behörighet att " -"öppna enheten." - -msgid "Could not open audio device for recording." -msgstr "Kunde inte öppna ljudenheten för inspelning." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -144,6 +140,45 @@ msgstr "Inspelning stöds inte av denna ljudenhet." msgid "Error recording from audio device." msgstr "Fel vid inspelning frÃ¥n ljudenheten." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Kunde inte öppna ljudenheten för inspelning. Du har inte behörighet att " +"öppna enheten." + +msgid "Could not open audio device for recording." +msgstr "Kunde inte öppna ljudenheten för inspelning." + +msgid "Record Source" +msgstr "Inspelningskälla" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "Linje-in" + +msgid "Internal CD" +msgstr "Intern cd-spelare" + +msgid "SPDIF In" +msgstr "SPDIF in" + +msgid "AUX 1 In" +msgstr "AUX 1 in" + +msgid "AUX 2 In" +msgstr "AUX 2 in" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Loopback" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Loopback" + msgid "Volume" msgstr "Volym" @@ -246,6 +281,10 @@ msgstr "Kunde inte ställa in ingÃ¥ng %d pÃ¥ enheten %s." msgid "Failed to change mute state for device '%s'." msgstr "Misslyckades med att fÃ¥ tag pÃ¥ signalstyrka för enheten \"%s\"." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Kunde inte identifiera enheten \"%s\"." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -272,10 +311,6 @@ msgstr "Misslyckades med att frÃ¥ga efter norm pÃ¥ enheten \"%s\"." msgid "Failed getting controls attributes on device '%s'." msgstr "Misslyckades med att fÃ¥ tag pÃ¥ kontrollattributen pÃ¥ enheten \"%s\"." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Kunde inte identifiera enheten \"%s\"." - #, c-format msgid "This isn't a device '%s'." msgstr "Det här är inte en enhet \"%s\"." @@ -370,9 +405,6 @@ msgstr "Kan inte fungera utan en klocka" #~ msgid "Line-in" #~ msgstr "Linje-in" -#~ msgid "Microphone" -#~ msgstr "Mikrofon" - #~ msgid "CD" #~ msgstr "Cd" @@ -470,21 +502,9 @@ msgstr "Kan inte fungera utan en klocka" #~ msgid "Telephone" #~ msgstr "Telefon" -#~ msgid "Line In" -#~ msgstr "Linje-in" - -#~ msgid "Internal CD" -#~ msgstr "Intern cd-spelare" - #~ msgid "Video In" #~ msgstr "Video-in" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 in" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 in" - #~ msgid "AUX In" #~ msgstr "AUX in" @@ -497,9 +517,6 @@ msgstr "Kan inte fungera utan en klocka" #~ msgid "Microphone Boost" #~ msgstr "Mikrofonboost" -#~ msgid "Loopback" -#~ msgstr "Loopback" - #~ msgid "Diagnostic" #~ msgstr "Diagnostik" @@ -512,9 +529,6 @@ msgstr "Kan inte fungera utan en klocka" #~ msgid "Input" #~ msgstr "IngÃ¥ng" -#~ msgid "Record Source" -#~ msgstr "Inspelningskälla" - #~ msgid "Monitor Source" #~ msgstr "Monitorkälla" @@ -554,9 +568,6 @@ msgstr "Kan inte fungera utan en klocka" #~ msgid "Input Mix" #~ msgstr "IngÃ¥ngsmix" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF in" - #~ msgid "Microphone 1" #~ msgstr "Mikrofon 1" diff --git a/po/tr.gmo b/po/tr.gmo index 9685993cd565ac733454eca5c7dddb5466dbe576..ceb5cc79885dc43c2bfd74460cee3716bb8037af 100644 Binary files a/po/tr.gmo and b/po/tr.gmo differ diff --git a/po/tr.po b/po/tr.po index cc7dd52a0fcfc86109cc382da02b5c4880e7a9f2..97fc7cc7c007b6edd31f0a8282b1f6422d791b98 100644 --- a/po/tr.po +++ b/po/tr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2011-01-08 00:03+0200\n" "Last-Translator: Server Acim <serveracim@gmail.com>\n" "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n" @@ -15,17 +15,23 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "JPEG görüntüsünü çözümlenemedi" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "'%s' tarafından '%s'" -msgid "Failed to decode JPEG image" -msgstr "JPEG görüntüsünü çözümlenemedi" - msgid "Could not connect to server" msgstr "Sunucuya baÄŸlanamıyor" +msgid "No URL set." +msgstr "Hiç bir URL ayarlanmamış." + msgid "Server does not support seeking." msgstr "Sunucu aramayı desteklemiyor." @@ -47,9 +53,6 @@ msgstr "" msgid "Server sent bad data." msgstr "Sunucu yetersiz veri gönderdi." -msgid "No URL set." -msgstr "Hiç bir URL ayarlanmamış." - msgid "Internal data stream error." msgstr "İç veri akım hatası." @@ -62,6 +65,9 @@ msgstr "Dosya çalınabilir akışlar içermiyor." msgid "This file is invalid and cannot be played." msgstr "Bu dosya geçersiz ve oynatılamaz." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Bu dosya bozuk ve oynatılamaz." @@ -111,14 +117,6 @@ msgstr "Çalmak için ses aygıtı açılamıyor. Aygıtı açma izniniz bulunmu msgid "Could not open audio device for playback." msgstr "Çalmak için ses aygıtı açılamıyor." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "Kayıt için aygıtı açamıyor. Aygıtı açmak için yetkiniz yok." - -msgid "Could not open audio device for recording." -msgstr "Aygıtı kayıt için açamıyor." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -138,6 +136,43 @@ msgstr "Bu ses aygıtı kaydetmeyi desteklemiyor." msgid "Error recording from audio device." msgstr "Ses aygıtından kaydetmekte hata." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "Kayıt için aygıtı açamıyor. Aygıtı açmak için yetkiniz yok." + +msgid "Could not open audio device for recording." +msgstr "Aygıtı kayıt için açamıyor." + +msgid "Record Source" +msgstr "Kayıt Kaynağı" + +msgid "Microphone" +msgstr "Mikrofon" + +msgid "Line In" +msgstr "Hat GiriÅŸi" + +msgid "Internal CD" +msgstr "Dahili CD" + +msgid "SPDIF In" +msgstr "SPDIF GiriÅŸi" + +msgid "AUX 1 In" +msgstr "AUX 1 GiriÅŸ" + +msgid "AUX 2 In" +msgstr "AUX 2 GiriÅŸ" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Geridönüm" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Geridönüm" + msgid "Volume" msgstr "Ses GiriÅŸi" @@ -240,6 +275,10 @@ msgstr "GiriÅŸ deÄŸeri olarak bu %d ÅŸu aygıtta %s ayarlanamadı." msgid "Failed to change mute state for device '%s'." msgstr "Aygıt için '%s' güçlü sinyal alımı gerçekleÅŸemedi." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Aygıt tanımlanamıyor '%s'." + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -264,10 +303,6 @@ msgstr "Åžu aygıtta '%s' sorgu normuna eriÅŸilemedi." msgid "Failed getting controls attributes on device '%s'." msgstr "Denetim davranışları ÅŸu aygıtta '%s' bulunamadı." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Aygıt tanımlanamıyor '%s'." - #, c-format msgid "This isn't a device '%s'." msgstr "Bu bir aygıt deÄŸil'%s'." @@ -329,11 +364,14 @@ msgstr "Çalışırken çözünürlüğü deÄŸiÅŸtirmek henüz desteklenmiyor." msgid "Cannot operate without a clock" msgstr "Saat olmadan çalışamaz" -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Ses sunucusuyla baÄŸlantı kurulumayor" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Beklenmeyen bir çerçevece boyutu %u bunun yerine %u görüntülendi." -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Ses sunucusu olanakları sorgulanamadı" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Aygıttan device '%s' vidyo çerçeveleri alınamadı." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "Åžu denemeden sonra %d baÅŸarılamadı. aygıt %s. sistem hatası: %s" #~ msgid "Bass" #~ msgstr "Bas" @@ -353,9 +391,6 @@ msgstr "Saat olmadan çalışamaz" #~ msgid "Line-in" #~ msgstr "Hat giriÅŸi" -#~ msgid "Microphone" -#~ msgstr "Mikrofon" - #~ msgid "CD" #~ msgstr "CD" @@ -453,21 +488,9 @@ msgstr "Saat olmadan çalışamaz" #~ msgid "Telephone" #~ msgstr "Telefon" -#~ msgid "Line In" -#~ msgstr "Hat GiriÅŸi" - -#~ msgid "Internal CD" -#~ msgstr "Dahili CD" - #~ msgid "Video In" #~ msgstr "Vidyo GiriÅŸi" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 GiriÅŸ" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 GiriÅŸ" - #~ msgid "AUX In" #~ msgstr "AUX GiriÅŸ" @@ -480,9 +503,6 @@ msgstr "Saat olmadan çalışamaz" #~ msgid "Microphone Boost" #~ msgstr "Mikrofon Seviye Yükseltme" -#~ msgid "Loopback" -#~ msgstr "Geridönüm" - #~ msgid "Diagnostic" #~ msgstr "Ayarlar" @@ -495,9 +515,6 @@ msgstr "Saat olmadan çalışamaz" #~ msgid "Input" #~ msgstr "GiriÅŸ" -#~ msgid "Record Source" -#~ msgstr "Kayıt Kaynağı" - #~ msgid "Monitor Source" #~ msgstr "Hoparlör Kaynağı" @@ -537,9 +554,6 @@ msgstr "Saat olmadan çalışamaz" #~ msgid "Input Mix" #~ msgstr "GiriÅŸ Mix" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF GiriÅŸi" - #~ msgid "Microphone 1" #~ msgstr "Mikrofon 1" @@ -684,8 +698,11 @@ msgstr "Saat olmadan çalışamaz" #~ msgid "%s Function" #~ msgstr "%s Ä°ÅŸlev" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Beklenmeyen bir çerçevece boyutu %u bunun yerine %u görüntülendi." +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Ses sunucusuyla baÄŸlantı kurulumayor" + +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Ses sunucusu olanakları sorgulanamadı" #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "%d baytı ÅŸu aygıtta '%s' okumada hata." @@ -693,12 +710,6 @@ msgstr "Saat olmadan çalışamaz" #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "Aygıtta '%s' arabellek kuyruÄŸa sokulamıyor." -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Aygıttan device '%s' vidyo çerçeveleri alınamadı." - -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "Åžu denemeden sonra %d baÅŸarılamadı. aygıt %s. sistem hatası: %s" - #~ msgid "" #~ "The buffer type is not supported, or the index is out of bounds, or no " #~ "buffers have been allocated yet, or the userptr or length are invalid. " diff --git a/po/uk.gmo b/po/uk.gmo index 2cb4fe4d2468aff01bcab2c8896ce19f621151e9..717d2b3f84f8b9529842ed0a4c0897c06072ffc9 100644 Binary files a/po/uk.gmo and b/po/uk.gmo differ diff --git a/po/uk.po b/po/uk.po index d1ca123b0553f864a697465ad919839d04459066..92d1d7bb8a7fa02bef6dea17370dbb2f1f022e7d 100644 --- a/po/uk.po +++ b/po/uk.po @@ -3,33 +3,39 @@ # This file is distributed under the same license as the gst-plugins-good package. # # Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2004-2007. -# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012. +# Yuri Chornoivan <yurchor@ukr.net>, 2011. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-11-28 20:23+0200\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2011-05-01 11:55+0300\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=1; plural=0;\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Помилка при декодуванні Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ JPEG" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "«%s» виконує %s" -msgid "Failed to decode JPEG image" -msgstr "Помилка при декодуванні Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ JPEG" - msgid "Could not connect to server" msgstr "Ðе вдалоÑÑ Ð·'єднатиÑÑŒ з Ñервером" +msgid "No URL set." +msgstr "Ðе вказано адреÑу" + msgid "Server does not support seeking." msgstr "Сервером не підтримуєтьÑÑ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ." @@ -51,9 +57,6 @@ msgstr "" msgid "Server sent bad data." msgstr "Сервером надіÑлано помилкові дані." -msgid "No URL set." -msgstr "Ðе вказано адреÑу" - msgid "Internal data stream error." msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° потоку даних." @@ -68,6 +71,9 @@ msgstr "Файл не міÑтить потоків, Ñкі можна відт msgid "This file is invalid and cannot be played." msgstr "Файл Ñ” некоректним, його не можна відтворити." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Файл пошкоджено, його не можна відтворити." @@ -120,16 +126,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ приÑтрій Ð´Ð»Ñ Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ приÑтрій Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу. У Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтатньо прав Ð´Ð»Ñ " -"Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¸Ñтрою." - -msgid "Could not open audio device for recording." -msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ приÑтрій Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -149,6 +145,45 @@ msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð½Ðµ підтримуєтьÑÑ Ñ†Ð¸Ð¼ звуковим пр msgid "Error recording from audio device." msgstr "Помилка запиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ñ– звукового приÑтрою." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ приÑтрій Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу. У Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтатньо прав Ð´Ð»Ñ " +"Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¸Ñтрою." + +msgid "Could not open audio device for recording." +msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ приÑтрій Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу." + +msgid "Record Source" +msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð°" + +msgid "Microphone" +msgstr "Мікрофон" + +msgid "Line In" +msgstr "Лінійний вхід" + +msgid "Internal CD" +msgstr "Вбудований КД" + +msgid "SPDIF In" +msgstr "Вхід SPDIF" + +msgid "AUX 1 In" +msgstr "Вхід AUX 1" + +msgid "AUX 2 In" +msgstr "Вхід AUX 2" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Заглушка" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Заглушка" + msgid "Volume" msgstr "ГучніÑÑ‚ÑŒ" @@ -190,23 +225,21 @@ msgstr "" msgid "Could not map buffers from device '%s'" msgstr "Ðе вдалоÑÑ Ð¿Ð¾Ð²â€™Ñзати буфери з приÑтрою «%s»." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "Драйвер приÑтрою «%s» не підтримує метод введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… %d" +msgstr "Драйвер приÑтрою «%s» не підтримує жоден відомий метод захопленнÑ." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." -msgstr "" -"Драйвер приÑтрою «%s» не підтримує жоден відомий метод введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ " -"даних." +msgstr "Драйвер приÑтрою «%s» не підтримує жоден відомий метод захопленнÑ." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "ПриÑтрій «%s» не може захоплювати відеодані" +msgstr "ПриÑтрій «%s» не Ñ” приÑтроєм Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "ПриÑтрій «%s» зайнÑто" +msgstr "ПриÑтрій «%s» не Ñ” приÑтроєм Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…." #, c-format msgid "Device '%s' cannot capture at %dx%d" @@ -220,36 +253,41 @@ msgstr "ПриÑтрій \"%s\" не здатний захоплювати ві msgid "Could not get parameters on device '%s'" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ параметри приÑтрою «%s»." +#, fuzzy msgid "Video device did not accept new frame rate setting." msgstr "" -"ВідеоприÑтроєм не підтримуєтьÑÑ Ð½Ð¾Ð²Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° чаÑтоти кадрів." +"ПриÑтроєм відеовходу не підтримуєтьÑÑ Ð½Ð¾Ð²Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° чаÑтоти кадрів." msgid "Video device could not create buffer pool." -msgstr "ВідеоприÑтрою не вдалоÑÑ Ñтворити Ñховище буферизованих даних." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." -msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо приймача %d приÑтрою «%s»." +msgstr "Помилка при вÑтановленні приймача %d приÑтрою «%s»." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо можливоÑтей приÑтрою «%s»." +msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ %d байтів з приÑтрою «%s»." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "ПриÑтрій «%s» не Ñ” приймачем." +msgstr "ПриÑтрій «%s» не Ñ” приÑтроєм Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ прийнÑÑ‚Ñ– радіодані з приÑтрою «%s»." +msgstr "Ðе вдалоÑÑ Ð²Ñтановити ввід %d приÑтрою «%s»." #, c-format msgid "Failed to set input %d on device %s." msgstr "Ðе вдалоÑÑ Ð²Ñтановити ввід %d приÑтрою «%s»." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ñтан Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð·Ð²ÑƒÐºÑƒ на приÑтрої «%s»." +msgstr "Помилка при отриманні Ñили Ñигналу приÑтрою «%s»." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Ðе вдалоÑÑ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÑƒÐ²Ð°Ñ‚Ð¸ приÑтрій «%s»." #, c-format msgid "" @@ -275,10 +313,6 @@ msgstr "Помилка при запиті норми приÑтрою «%s»." msgid "Failed getting controls attributes on device '%s'." msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ атрибути регулÑторів ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтрою «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ðе вдалоÑÑ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÑƒÐ²Ð°Ñ‚Ð¸ приÑтрій «%s»." - #, c-format msgid "This isn't a device '%s'." msgstr "Це не приÑтрій «%s»." @@ -343,11 +377,14 @@ msgstr "Зміна роздільної здатноÑÑ‚Ñ– при відтвор msgid "Cannot operate without a clock" msgstr "Робота без годинника неможлива" -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Ðе вдалоÑÑ Ð²Ñтановити з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ–Ð· звуковим Ñервером." +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Отримано неочікуваний розмір блоку %u заміÑÑ‚ÑŒ %u." -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Помилка при запиті можливоÑтей звукового Ñервера" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ відеокадри з приÑтрою «%s»." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "Помилка піÑÐ»Ñ %d Ñпроб. ПриÑтрій %s. СиÑтемна помилка: %s" #~ msgid "Bass" #~ msgstr "Ðизькі" @@ -367,9 +404,6 @@ msgstr "Робота без годинника неможлива" #~ msgid "Line-in" #~ msgstr "Лінійний вхід" -#~ msgid "Microphone" -#~ msgstr "Мікрофон" - #~ msgid "CD" #~ msgstr "КД" @@ -467,21 +501,9 @@ msgstr "Робота без годинника неможлива" #~ msgid "Telephone" #~ msgstr "Телефон" -#~ msgid "Line In" -#~ msgstr "Лінійний вхід" - -#~ msgid "Internal CD" -#~ msgstr "Вбудований КД" - #~ msgid "Video In" #~ msgstr "Відеовхід" -#~ msgid "AUX 1 In" -#~ msgstr "Вхід AUX 1" - -#~ msgid "AUX 2 In" -#~ msgstr "Вхід AUX 2" - #~ msgid "AUX In" #~ msgstr "Вхід AUX" @@ -494,9 +516,6 @@ msgstr "Робота без годинника неможлива" #~ msgid "Microphone Boost" #~ msgstr "ПідÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð¼Ñ–ÐºÑ€Ð¾Ñ„Ð¾Ð½Ð°" -#~ msgid "Loopback" -#~ msgstr "Заглушка" - #~ msgid "Diagnostic" #~ msgstr "ДіагноÑтика" @@ -509,9 +528,6 @@ msgstr "Робота без годинника неможлива" #~ msgid "Input" #~ msgstr "Вхід" -#~ msgid "Record Source" -#~ msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð°" - #~ msgid "Monitor Source" #~ msgstr "СпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° джерелом" @@ -551,9 +567,6 @@ msgstr "Робота без годинника неможлива" #~ msgid "Input Mix" #~ msgstr "Мікшер вх. даних" -#~ msgid "SPDIF In" -#~ msgstr "Вхід SPDIF" - #~ msgid "Microphone 1" #~ msgstr "Мікрофон 1" @@ -698,20 +711,17 @@ msgstr "Робота без годинника неможлива" #~ msgid "%s Function" #~ msgstr "Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ %s" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Отримано неочікуваний розмір блоку %u заміÑÑ‚ÑŒ %u." - #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ %d байтів на приÑтрої «%s»." #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "Ðе вдалоÑÑ Ð¾Ð¿Ð¸Ñ‚Ð°Ñ‚Ð¸ буфери від приÑтрою «%s»." -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ відеокадри з приÑтрою «%s»." +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Ðе вдалоÑÑ Ð²Ñтановити з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ–Ð· звуковим Ñервером." -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "Помилка піÑÐ»Ñ %d Ñпроб. ПриÑтрій %s. СиÑтемна помилка: %s" +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Помилка при запиті можливоÑтей звукового Ñервера" #~ msgid "Could not read from CD." #~ msgstr "Ðе вдаєтьÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ з компакт-диÑку." diff --git a/po/vi.gmo b/po/vi.gmo index 30920f37e4bd1a8daf3dd9151b06c7b4010438f6..f350bb8eaac614c51323734e91a58de831fb15d9 100644 Binary files a/po/vi.gmo and b/po/vi.gmo differ diff --git a/po/vi.po b/po/vi.po index 2bac9697797a8465119a16c86c89c0ba79e09ce0..d847c83af3539deaaa4012c6e718d3aed46e58c9 100644 --- a/po/vi.po +++ b/po/vi.po @@ -1,58 +1,60 @@ # Vietnamese Translation for GST Plugins Good. -# Copyright © 2012 Free Software Foundation, Inc. +# Copyright © 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gst-plugins-good package. # Clytie Siddall <clytie@riverland.net.au>, 2005-2010. -# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good-1.0.3\n" +"Project-Id-Version: gst-plugins-good 0.10.23.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" -"PO-Revision-Date: 2012-12-02 08:06+0700\n" -"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n" -"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" +"PO-Revision-Date: 2010-10-03 18:48+1030\n" +"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" +"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Team-Website: <http://translationproject.org/team/vi.html>\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.8\n" -"X-Poedit-SourceCharset: UTF-8\n" + +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "Lá»—i giải mã ảnh JPEG" #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" -msgstr "“%s†bởi “%sâ€" - -msgid "Failed to decode JPEG image" -msgstr "Gặp lá»—i khi giải mã ảnh JPEG" +msgstr "« %s » bởi « %s »" msgid "Could not connect to server" msgstr "Không thể kết nối tá»›i máy phục vụ" +msgid "No URL set." +msgstr "" + msgid "Server does not support seeking." -msgstr "Máy phục vụ không há»— trợ di chuyển vị trÃ." +msgstr "" +#, fuzzy msgid "Could not resolve server name." -msgstr "Không thể phân giải tên miá»n." +msgstr "Không thể kết nối tá»›i máy phục vụ" +#, fuzzy msgid "Could not establish connection to server." -msgstr "Không thể thiết láºp kết nối tá»›i máy chủ." +msgstr "Không thể thiết láºp sá»± kết nối tá»›i máy phục vụ âm thanh" msgid "Secure connection setup failed." -msgstr "Cà i đặt kết nối an toà n gặp lá»—i." +msgstr "" msgid "" "A network error occured, or the server closed the connection unexpectedly." -msgstr "Má»™t lá»—i mạng đã xảy ra, hoặc máy chủ đóng kết nối bất ngá»." +msgstr "" msgid "Server sent bad data." -msgstr "Máy chủ gá»i dữ liệu sai." - -msgid "No URL set." -msgstr "Không có URL nà o được đặt." +msgstr "" msgid "Internal data stream error." msgstr "Lá»—i luồng dữ liệu ná»™i bá»™." @@ -68,11 +70,14 @@ msgstr "Táºp tin nà y không chứa luồng có thể phát." msgid "This file is invalid and cannot be played." msgstr "Táºp tin nà y không hợp lệ nên không thể phát được." +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "Táºp tin nà y bị há»ng nên không thể phát." msgid "Invalid atom size." -msgstr "KÃch thÆ°á»›c nguyên tá» (atom) không hợp lệ." +msgstr "" msgid "This file is incomplete and cannot be played." msgstr "Táºp tin nà y chÆ°a hoà n thà nh nên không thể được phát." @@ -119,15 +124,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "Không thể mở thiết bị âm thanh để phát lại." -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" -"Không thể mở thiết bị âm thanh để thu. Bạn không có quyá»n mở thiết bị nà y." - -msgid "Could not open audio device for recording." -msgstr "Không thể mở thiết bị âm thanh để thu." - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -147,6 +143,44 @@ msgstr "Chức năng thu không phải được thiết bị âm thanh nà y há»— msgid "Error recording from audio device." msgstr "Gặp lá»—i khi thu từ thiết bị âm thanh." +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" +"Không thể mở thiết bị âm thanh để thu. Bạn không có quyá»n mở thiết bị nà y." + +msgid "Could not open audio device for recording." +msgstr "Không thể mở thiết bị âm thanh để thu." + +msgid "Record Source" +msgstr "Ghi lÆ°u nguồn" + +msgid "Microphone" +msgstr "Micrô" + +msgid "Line In" +msgstr "Dây Và o" + +msgid "Internal CD" +msgstr "CD ở trong" + +msgid "SPDIF In" +msgstr "SPDIF Và o" + +msgid "AUX 1 In" +msgstr "AUX 1 Và o" + +msgid "AUX 2 In" +msgstr "AUX 2 Và o" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Mạch ná»™i bá»™" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Mạch ná»™i bá»™" + msgid "Volume" msgstr "Âm lượng" @@ -176,84 +210,89 @@ msgstr "AUX 2 Ra" #, c-format msgid "Error reading %d bytes from device '%s'." -msgstr "Gặp lá»—i khi Ä‘á»c %d byte từ thiết bị “%sâ€." +msgstr "Gặp lá»—i khi Ä‘á»c %d byte từ thiết bị « %s »." #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" msgstr "" -"Gặp lá»—i khi đánh số các định dạng video có thể, mà thiết bị “%s†có thể là m " -"việc cùng" #, c-format msgid "Could not map buffers from device '%s'" -msgstr "Không thể ánh xạ các bá»™ đệm từ thiết bị “%sâ€." +msgstr "Không thể ánh xạ các bá»™ đệm từ thiết bị « %s »." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "Trình Ä‘iá»u khiển của thiết bị “%s†không há»— trợ phÆ°Æ¡ng pháp VR %d" +msgstr "" +"Trình Ä‘iá»u khiển của thiết bị « %s » không há»— trợ phÆ°Æ¡ng pháp bắt đã biết " +"nà o." -#, c-format +#, fuzzy, c-format msgid "The driver of device '%s' does not support any known IO method." msgstr "" -"Trình Ä‘iá»u khiển của thiết bị “%s†không há»— trợ phÆ°Æ¡ng pháp VR đã biết nà o." +"Trình Ä‘iá»u khiển của thiết bị « %s » không há»— trợ phÆ°Æ¡ng pháp bắt đã biết " +"nà o." -#, c-format +#, fuzzy, c-format msgid "Device '%s' does not support video capture" -msgstr "Thiết bị “%s†không há»— trợ chức năng quay video" +msgstr "Thiết bị « %s » không phải là thiết bị xuất ra." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is busy" -msgstr "Thiết bị “%s†đang báºn" +msgstr "Thiết bị « %s » không phải là thiết bị xuất ra." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture at %dx%d" -msgstr "Thiết bị “%s†không thể chụp tại %dx%d" +msgstr "Thiết bị « %s » không phải là thiết bị bắt gì." -#, c-format +#, fuzzy, c-format msgid "Device '%s' cannot capture in the specified format" -msgstr "Thiết bị “%s†không thể chụp ở định dạng đã cho" +msgstr "Thiết bị « %s » không phải là thiết bị bắt gì." #, c-format msgid "Could not get parameters on device '%s'" -msgstr "Không thể lấy các tham số vá» thiết bị “%sâ€." +msgstr "Không thể lấy các tham số vá» thiết bị « %s »." +#, fuzzy msgid "Video device did not accept new frame rate setting." -msgstr "Thiết bị video không chấp nháºn cà i đặt vá» tốc Ä‘á»™ khung hình má»›i." +msgstr "Thiết bị nháºp ảnh Ä‘á»™ng và o không chấp nháºn thiết láºp tốc Ä‘á»™ khung má»›i." msgid "Video device could not create buffer pool." -msgstr "Thiết bị video không thể tạo kho đệm." +msgstr "" -#, c-format +#, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." -msgstr "" -"Lá»—i lấy các cà i đặt từ thiết bị Ä‘iá»u chỉnh cá»™ng hưởng %d trên thiết bị “%sâ€." +msgstr "Lá»—i lấy thiết láºp của thiết bị Ä‘iá»u hưởng %d trên thiết bị « %s »." -#, c-format +#, fuzzy, c-format msgid "Error getting capabilities for device '%s'." -msgstr "Gặp lá»—i khi Ä‘á»c dung lượng từ thiết bị “%sâ€." +msgstr "Gặp lá»—i khi Ä‘á»c %d byte từ thiết bị « %s »." -#, c-format +#, fuzzy, c-format msgid "Device '%s' is not a tuner." -msgstr "Thiết bị %s không phải thiết bị Ä‘iá»u chỉnh cá»™ng hưởng." +msgstr "Thiết bị « %s » không phải là thiết bị xuất ra." -#, c-format +#, fuzzy, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "Gặp lá»—i khi lấy đầu và o radio trên thiết bị “%sâ€." +msgstr "Lá»—i đặt dữ liệu nháºp %d và o thiết bị « %s »." #, c-format msgid "Failed to set input %d on device %s." -msgstr "Lá»—i đặt dữ liệu nháºp %d và o thiết bị “%sâ€." +msgstr "Lá»—i đặt dữ liệu nháºp %d và o thiết bị « %s »." -#, c-format +#, fuzzy, c-format msgid "Failed to change mute state for device '%s'." -msgstr "Gặp lá»—i khi thay đổi trạng thái ngắt tiếng cho thiết bị “%sâ€." +msgstr "Lá»—i lấy biên Ä‘á»™ tÃn hiệu cho thiết bị « %s »." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Không thể nháºn diện thiết bị « %s »." #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" -"Gặp lá»—i khi lấy khả năng của thiết bị “%sâ€. Nó không phải là trình Ä‘iá»u " +"Gặp lá»—i khi lấy khả năng của thiết bị « %s ». Nó không phải là trình Ä‘iá»u " "khiển phiên bản 4l2. Kiểm tra nó là trình Ä‘iá»u khiển phiên bản 4l1 không." #, c-format @@ -262,89 +301,87 @@ msgstr "Lá»—i truy vấn khả năng của %d nháºp trong thiết bị %s" #, c-format msgid "Failed to get setting of tuner %d on device '%s'." -msgstr "Lá»—i lấy thiết láºp của thiết bị Ä‘iá»u hưởng %d trên thiết bị “%sâ€." +msgstr "Lá»—i lấy thiết láºp của thiết bị Ä‘iá»u hưởng %d trên thiết bị « %s »." #, c-format msgid "Failed to query norm on device '%s'." -msgstr "Lá»—i truy vấn chỉ tiêu trên thiết bị “%sâ€." +msgstr "Lá»—i truy vấn chỉ tiêu trên thiết bị « %s »." #, c-format msgid "Failed getting controls attributes on device '%s'." -msgstr "Lá»—i lấy các thuá»™c tÃnh của bá»™ Ä‘iá»u khiển trên thiết bị “%sâ€." - -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Không thể nháºn diện thiết bị “%sâ€." +msgstr "Lá»—i lấy các thuá»™c tÃnh của bá»™ Ä‘iá»u khiển trên thiết bị « %s »." #, c-format msgid "This isn't a device '%s'." -msgstr "Không phải là thiết bị “%sâ€." +msgstr "Không phải là thiết bị « %s »." #, c-format msgid "Could not open device '%s' for reading and writing." -msgstr "Không thể mở thiết bị “%s†để Ä‘á»c và ghi." +msgstr "Không thể mở thiết bị « %s » để Ä‘á»c và ghi." #, c-format msgid "Device '%s' is not a capture device." -msgstr "Thiết bị “%s†không phải là thiết bị bắt gì." +msgstr "Thiết bị « %s » không phải là thiết bị bắt gì." #, c-format msgid "Device '%s' is not a output device." -msgstr "Thiết bị “%s†không phải là thiết bị xuất ra." +msgstr "Thiết bị « %s » không phải là thiết bị xuất ra." #, c-format msgid "Failed to set norm for device '%s'." -msgstr "Lá»—i đặt chỉ tiêu cho thiết bị “%sâ€." +msgstr "Lá»—i đặt chỉ tiêu cho thiết bị « %s »." #, c-format msgid "Failed to get current tuner frequency for device '%s'." -msgstr "Lá»—i lấy tần số hiện thá»i của thiết bị Ä‘iá»u hưởng cho thiết bị “%sâ€." +msgstr "Lá»—i lấy tần số hiện thá»i của thiết bị Ä‘iá»u hưởng cho thiết bị « %s »." #, c-format msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "" -"Lá»—i đặt tần số hiện thá»i của thiết bị Ä‘iá»u hưởng cho thiết bị “%s†là %lu Hz." +"Lá»—i đặt tần số hiện thá»i của thiết bị Ä‘iá»u hưởng cho thiết bị « %s » là %lu " +"Hz." #, c-format msgid "Failed to get signal strength for device '%s'." -msgstr "Lá»—i lấy biên Ä‘á»™ tÃn hiệu cho thiết bị “%sâ€." +msgstr "Lá»—i lấy biên Ä‘á»™ tÃn hiệu cho thiết bị « %s »." #, c-format msgid "Failed to get value for control %d on device '%s'." -msgstr "Lá»—i lấy giá trị của bá»™ Ä‘iá»u khiển %d trên thiết bị “%sâ€." +msgstr "Lá»—i lấy giá trị của bá»™ Ä‘iá»u khiển %d trên thiết bị « %s »." #, c-format msgid "Failed to set value %d for control %d on device '%s'." -msgstr "Gặp lá»—i khi đặt giá trị %d của bá»™ Ä‘iá»u khiển %d trên thiết bị “%sâ€." +msgstr "Lá»—i đặt giá trị %d của bá»™ Ä‘iá»u khiển %d trên thiết bị « %s »." #, c-format msgid "Failed to get current input on device '%s'. May be it is a radio device" msgstr "" -"Gặp lá»—i khi lấy kết nháºp hiện thá»i và o thiết bị “%sâ€. Có thể là thiết bị thu " -"thanh." +"Lá»—i lấy kết nháºp hiện thá»i và o thiết bị « %s ». Có thể là thiết bị thu thanh." -#, c-format +#, fuzzy, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" -"Gặp lá»—i khi lấy kết nháºp hiện hà nh trên thiết bị “%sâ€. Có thể là thiết bị vô " -"tuyến." +"Lá»—i lấy kết nháºp hiện thá»i và o thiết bị « %s ». Có thể là thiết bị thu thanh." -#, c-format +#, fuzzy, c-format msgid "Failed to set output %d on device %s." -msgstr "Gặp lá»—i khi đặt dữ liệu nháºp %d trên thiết bị %s." +msgstr "Lá»—i đặt dữ liệu nháºp %d và o thiết bị « %s »." msgid "Changing resolution at runtime is not yet supported." msgstr "ChÆ°a há»— trợ khả năng thay đổi Ä‘á»™ phân giải trong khi chạy." msgid "Cannot operate without a clock" -msgstr "Không thể thao tác khi không có đồng hồ" +msgstr "Không thể thao tác khi không có đồng hồ." -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Không thể thiết láºp sá»± kết nối tá»›i máy phục vụ âm thanh" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Nháºn được kÃch cỡ khung bất thÆ°á»ng %u, thay cho %u." -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "Lá»—i truy vấn khả năng của máy phục vụ âm thanh" +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "Lá»—i khi thá» lấy các khung ảnh Ä‘á»™ng từ thiết bị « %s »." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "Lá»—i sau %d lần thá». Thiết bị %s. Lá»—i hệ thống: %s" #~ msgid "Bass" #~ msgstr "Trầm" @@ -364,9 +401,6 @@ msgstr "Không thể thao tác khi không có đồng hồ" #~ msgid "Line-in" #~ msgstr "Dây-và o" -#~ msgid "Microphone" -#~ msgstr "Micrô" - #~ msgid "CD" #~ msgstr "CD" @@ -464,21 +498,9 @@ msgstr "Không thể thao tác khi không có đồng hồ" #~ msgid "Telephone" #~ msgstr "Äiện thoại" -#~ msgid "Line In" -#~ msgstr "Dây Và o" - -#~ msgid "Internal CD" -#~ msgstr "CD ở trong" - #~ msgid "Video In" #~ msgstr "Ảnh Ä‘á»™ng Và o" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 Và o" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 Và o" - #~ msgid "AUX In" #~ msgstr "AUX Và o" @@ -491,9 +513,6 @@ msgstr "Không thể thao tác khi không có đồng hồ" #~ msgid "Microphone Boost" #~ msgstr "Tăng máy vi âm" -#~ msgid "Loopback" -#~ msgstr "Mạch ná»™i bá»™" - #~ msgid "Diagnostic" #~ msgstr "Chẩn Ä‘oán" @@ -506,9 +525,6 @@ msgstr "Không thể thao tác khi không có đồng hồ" #~ msgid "Input" #~ msgstr "Và o" -#~ msgid "Record Source" -#~ msgstr "Ghi lÆ°u nguồn" - #~ msgid "Monitor Source" #~ msgstr "Theo dõi nguồn" @@ -548,9 +564,6 @@ msgstr "Không thể thao tác khi không có đồng hồ" #~ msgid "Input Mix" #~ msgstr "Hoà tiếng đầu và o" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF Và o" - #~ msgid "Microphone 1" #~ msgstr "Máy vi âm 1" @@ -695,17 +708,14 @@ msgstr "Không thể thao tác khi không có đồng hồ" #~ msgid "%s Function" #~ msgstr "Chức năng %s" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Nháºn được kÃch cỡ khung bất thÆ°á»ng %u, thay cho %u." - #~ msgid "Error reading %d bytes on device '%s'." -#~ msgstr "Gặp lá»—i khi Ä‘á»c %d byte trên thiết bị “%sâ€." +#~ msgstr "Gặp lá»—i khi Ä‘á»c %d byte trên thiết bị « %s »." #~ msgid "Could not enqueue buffers in device '%s'." -#~ msgstr "Không thể phụ thêm các bá»™ đệm và o hà ng đợi trên thiết bị “%sâ€." +#~ msgstr "Không thể phụ thêm các bá»™ đệm và o hà ng đợi trên thiết bị « %s »." -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "Lá»—i khi thá» lấy các khung ảnh Ä‘á»™ng từ thiết bị “%sâ€." +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Không thể thiết láºp sá»± kết nối tá»›i máy phục vụ âm thanh" -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "Lá»—i sau %d lần thá». Thiết bị %s. Lá»—i hệ thống: %s" +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "Lá»—i truy vấn khả năng của máy phục vụ âm thanh" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index 1c8a439f627fee78900cd541c6a7c98ef9b1926b..ac61dc6cbaf5bdb0cbbf3309bbc0407894416723 100644 Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ diff --git a/po/zh_CN.po b/po/zh_CN.po index a1cc5911e491bfe8eabb9411dbc2f5362970c89a..5c1c38c39b3426c002de37e0cd1b5cb7fc2d857a 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.16.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2009-11-13 22:20+0800\n" "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" @@ -16,17 +16,23 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "解ç JPEG 图åƒå‡ºé”™" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "‘%s’ ç”± ‘%s’" -msgid "Failed to decode JPEG image" -msgstr "解ç JPEG 图åƒå‡ºé”™" - msgid "Could not connect to server" msgstr "æ— æ³•è¿žæŽ¥è‡³æœåŠ¡å™¨" +msgid "No URL set." +msgstr "" + #, fuzzy msgid "Server does not support seeking." msgstr "设备‘%s’ä¸æ”¯æŒè§†é¢‘æ•èŽ·" @@ -49,9 +55,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "内部数æ®æµé”™è¯¯ã€‚" @@ -64,6 +67,9 @@ msgstr "æ¤æ–‡ä»¶ä¸åŒ…å«å¯æ’放的æµã€‚" msgid "This file is invalid and cannot be played." msgstr "æ¤æ–‡ä»¶æ— æ•ˆï¼Œæ— æ³•æ’放。" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "æ¤æ–‡ä»¶å·²æŸåï¼Œæ— æ³•æ’放。" @@ -111,14 +117,6 @@ msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘è®¾å¤‡æ’æ”¾éŸ³é¢‘ã€‚æ‚¨æ— æƒä½¿ç”¨è¿™ä¸€è®¾å¤‡ã€‚" msgid "Could not open audio device for playback." msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘è®¾å¤‡æ’放音频。" -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘è®¾å¤‡å½•éŸ³ã€‚æ‚¨æ— æƒä½¿ç”¨è¿™ä¸€è®¾å¤‡ã€‚" - -msgid "Could not open audio device for recording." -msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘è®¾å¤‡å½•éŸ³ã€‚" - #, fuzzy msgid "" "Could not open audio device for playback. This version of the Open Sound " @@ -138,6 +136,46 @@ msgstr "" msgid "Error recording from audio device." msgstr "从设备‘%2$s’ä¸è¯»å– %1$d 个å—节时出错。" +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘è®¾å¤‡å½•éŸ³ã€‚æ‚¨æ— æƒä½¿ç”¨è¿™ä¸€è®¾å¤‡ã€‚" + +msgid "Could not open audio device for recording." +msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘è®¾å¤‡å½•éŸ³ã€‚" + +#, fuzzy +msgid "Record Source" +msgstr "录音" + +msgid "Microphone" +msgstr "è¯ç’" + +#, fuzzy +msgid "Line In" +msgstr "线路输入(Line-in)" + +msgid "Internal CD" +msgstr "" + +#, fuzzy +msgid "SPDIF In" +msgstr "SPDIF 输出" + +#, fuzzy +msgid "AUX 1 In" +msgstr "AUX 1 输出" + +#, fuzzy +msgid "AUX 2 In" +msgstr "AUX 2 输出" + +msgid "Codec Loopback" +msgstr "" + +msgid "SunVTS Loopback" +msgstr "" + msgid "Volume" msgstr "音é‡" @@ -236,6 +274,10 @@ msgstr "设置设备 %2$s 上的输入 %1$d 时出错。" msgid "Failed to change mute state for device '%s'." msgstr "获å–设备‘%s’的信å·é•¿åº¦æ—¶å‡ºé”™ã€‚" +#, c-format +msgid "Cannot identify device '%s'." +msgstr "æ— æ³•ç¡®è®¤è®¾å¤‡â€˜%s’。" + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -258,10 +300,6 @@ msgstr "查寻设备 ‘%s’上的基准时出错。" msgid "Failed getting controls attributes on device '%s'." msgstr "获å–设备‘%s’上的控制属性时出错。" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "æ— æ³•ç¡®è®¤è®¾å¤‡â€˜%s’。" - #, c-format msgid "This isn't a device '%s'." msgstr "ä¸æ˜¯è®¾å¤‡â€˜%s’。" @@ -321,8 +359,14 @@ msgstr "å°šä¸æ”¯æŒåœ¨è¿è¡Œæ—¶æ›´æ”¹åˆ†è¾¨çŽ‡ã€‚" msgid "Cannot operate without a clock" msgstr "没有时钟的è¯æ— 法æ“作" -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "查寻音频æœåŠ¡å™¨çš„æœåŠ¡å¤±è´¥" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "å–得了 %u çš„ä¸éœ€è¦çš„帧大å°ï¼Œè€Œä¸æ˜¯ %u。" + +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "从设备‘%s’上获å–视频的å°è¯•å¤±è´¥äº†ã€‚" + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "在 %d 次å°è¯•åŽå¤±è´¥ã€‚设备 %s。系统错误: %s" #~ msgid "Bass" #~ msgstr "低音(Bass)" @@ -342,9 +386,6 @@ msgstr "没有时钟的è¯æ— 法æ“作" #~ msgid "Line-in" #~ msgstr "线路输入(Line-in)" -#~ msgid "Microphone" -#~ msgstr "è¯ç’" - #~ msgid "CD" #~ msgstr "CD 音频" @@ -393,8 +434,78 @@ msgstr "没有时钟的è¯æ— 法æ“作" #~ msgid "Radio" #~ msgstr "广æ’" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "å–得了 %u çš„ä¸éœ€è¦çš„帧大å°ï¼Œè€Œä¸æ˜¯ %u。" +#, fuzzy +#~ msgid "Could not open audio device for mixer control handling." +#~ msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘è®¾å¤‡å½•éŸ³ã€‚" + +#, fuzzy +#~ msgid "" +#~ "Could not open audio device for mixer control handling. This version of " +#~ "the Open Sound System is not supported by this element." +#~ msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘è®¾å¤‡å½•éŸ³ã€‚æ‚¨æ— æƒä½¿ç”¨è¿™ä¸€è®¾å¤‡ã€‚" + +#, fuzzy +#~ msgid "Headphones" +#~ msgstr "头戴å¼è€³æœº" + +#, fuzzy +#~ msgid "AUX Out" +#~ msgstr "AUX 1 输出" + +#, fuzzy +#~ msgid "Telephone" +#~ msgstr "头戴å¼è€³æœº" + +#, fuzzy +#~ msgid "Video In" +#~ msgstr "视频" + +#, fuzzy +#~ msgid "Record Gain" +#~ msgstr "录音" + +#, fuzzy +#~ msgid "Microphone Boost" +#~ msgstr "è¯ç’" + +#, fuzzy +#~ msgid "Monitor Source" +#~ msgstr "监控器" + +#, fuzzy +#~ msgid "Microphone Gain" +#~ msgstr "è¯ç’" + +#, fuzzy +#~ msgid "Speaker Source" +#~ msgstr "扬声器(Speaker)" + +#, fuzzy +#~ msgid "Microphone Source" +#~ msgstr "è¯ç’" + +#, fuzzy +#~ msgid "Microphone 1" +#~ msgstr "è¯ç’" + +#, fuzzy +#~ msgid "Microphone 2" +#~ msgstr "è¯ç’" + +#, fuzzy +#~ msgid "Digital Out" +#~ msgstr "æ•°å—线路1" + +#, fuzzy +#~ msgid "Digital In" +#~ msgstr "æ•°å—线路1" + +#, fuzzy +#~ msgid "Front Panel Microphone" +#~ msgstr "è¯ç’" + +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "查寻音频æœåŠ¡å™¨çš„æœåŠ¡å¤±è´¥" #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "读å–设备‘%2$s’ä¸çš„ %1$d å—节时出错。" @@ -402,12 +513,6 @@ msgstr "没有时钟的è¯æ— 法æ“作" #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "æ— æ³•å¯¹è®¾å¤‡â€˜%s’ä¸çš„缓冲区进行排åºã€‚" -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "从设备‘%s’上获å–视频的å°è¯•å¤±è´¥äº†ã€‚" - -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "在 %d 次å°è¯•åŽå¤±è´¥ã€‚设备 %s。系统错误: %s" - #~ msgid "" #~ "The buffer type is not supported, or the index is out of bounds, or no " #~ "buffers have been allocated yet, or the userptr or length are invalid. " diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo index e27837b189cf3c1fb25a0a0b6cd78fc67d70a201..efe1efe260a069d8371f397cbab457ae5c51f892 100644 Binary files a/po/zh_HK.gmo and b/po/zh_HK.gmo differ diff --git a/po/zh_HK.po b/po/zh_HK.po index 641e31eb55638aebc6ba3645fcc176332f761c6e..afb4bbb57d8044c4bfaa183f1b017e2bacc2e0f9 100644 --- a/po/zh_HK.po +++ b/po/zh_HK.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2006-08-29 01:08+0800\n" "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n" "Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n" @@ -15,15 +15,21 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "" -msgid "Failed to decode JPEG image" +msgid "Could not connect to server" msgstr "" -msgid "Could not connect to server" +msgid "No URL set." msgstr "" msgid "Server does not support seeking." @@ -45,9 +51,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "內部資料串æµç™¼ç”ŸéŒ¯èª¤ã€‚" @@ -60,6 +63,9 @@ msgstr "" msgid "This file is invalid and cannot be played." msgstr "" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "" @@ -104,14 +110,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "" -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" - -msgid "Could not open audio device for recording." -msgstr "" - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -129,6 +127,44 @@ msgstr "æ¤éŸ³é¢‘设备ä¸æ”¯æŒå½•éŸ³ã€‚" msgid "Error recording from audio device." msgstr "从音频设备录音时å‘生错误。" +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" + +msgid "Could not open audio device for recording." +msgstr "" + +msgid "Record Source" +msgstr "录音æ¥æº" + +#, fuzzy +msgid "Microphone" +msgstr "麦克风 1" + +msgid "Line In" +msgstr "线路输入" + +msgid "Internal CD" +msgstr "内部 CD 音频" + +msgid "SPDIF In" +msgstr "SPDIF 输入" + +msgid "AUX 1 In" +msgstr "AUX 1 输入" + +msgid "AUX 2 In" +msgstr "AUX 2 输入" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Loopback" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Loopback" + msgid "Volume" msgstr "" @@ -226,6 +262,10 @@ msgstr "" msgid "Failed to change mute state for device '%s'." msgstr "" +#, c-format +msgid "Cannot identify device '%s'." +msgstr "" + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -248,10 +288,6 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "" - #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -359,21 +395,9 @@ msgstr "" #~ msgid "Telephone" #~ msgstr "è¯ç’" -#~ msgid "Line In" -#~ msgstr "线路输入" - -#~ msgid "Internal CD" -#~ msgstr "内部 CD 音频" - #~ msgid "Video In" #~ msgstr "视频输入" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 输入" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 输入" - #~ msgid "AUX In" #~ msgstr "AUX 输入" @@ -386,9 +410,6 @@ msgstr "" #~ msgid "Microphone Boost" #~ msgstr "麦克风增益" -#~ msgid "Loopback" -#~ msgstr "Loopback" - #, fuzzy #~ msgid "Diagnostic" #~ msgstr "é‡‡æ ·åˆ†æž" @@ -402,9 +423,6 @@ msgstr "" #~ msgid "Input" #~ msgstr "输入" -#~ msgid "Record Source" -#~ msgstr "录音æ¥æº" - #~ msgid "Monitor Source" #~ msgstr "监视器æ¥æº" @@ -444,12 +462,6 @@ msgstr "" #~ msgid "Input Mix" #~ msgstr "混音输入" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF 输入" - -#~ msgid "Microphone 1" -#~ msgstr "麦克风 1" - #~ msgid "Microphone 2" #~ msgstr "麦克风 2" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo index aab007b44e9ffa35acfdf96bcad959881390b61d..7efd5a57187351f38694dcc0ac6c1c8e1c5f7666 100644 Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ diff --git a/po/zh_TW.po b/po/zh_TW.po index ea13282a31bb88a2d20b34ff86b156384104ee9b..4a3a38fa55a585e2842fa1185247ab601103bea3 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2013-07-11 20:03+0100\n" +"POT-Creation-Date: 2013-07-11 15:56+0200\n" "PO-Revision-Date: 2006-08-29 01:08+0800\n" "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n" "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n" @@ -15,15 +15,21 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Jack server not found" +msgstr "" + +msgid "Failed to decode JPEG image" +msgstr "" + #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" msgstr "" -msgid "Failed to decode JPEG image" +msgid "Could not connect to server" msgstr "" -msgid "Could not connect to server" +msgid "No URL set." msgstr "" msgid "Server does not support seeking." @@ -45,9 +51,6 @@ msgstr "" msgid "Server sent bad data." msgstr "" -msgid "No URL set." -msgstr "" - msgid "Internal data stream error." msgstr "內部資料串æµç™¼ç”ŸéŒ¯èª¤ã€‚" @@ -60,6 +63,9 @@ msgstr "" msgid "This file is invalid and cannot be played." msgstr "" +msgid "Cannot play stream because it is encrypted with PlayReady DRM." +msgstr "" + msgid "This file is corrupt and cannot be played." msgstr "" @@ -104,14 +110,6 @@ msgstr "" msgid "Could not open audio device for playback." msgstr "" -msgid "" -"Could not open audio device for recording. You don't have permission to open " -"the device." -msgstr "" - -msgid "Could not open audio device for recording." -msgstr "" - msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." @@ -129,6 +127,44 @@ msgstr "æ¤éŸ³é¢‘设备ä¸æ”¯æŒå½•éŸ³ã€‚" msgid "Error recording from audio device." msgstr "从音频设备录音时å‘生错误。" +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" + +msgid "Could not open audio device for recording." +msgstr "" + +msgid "Record Source" +msgstr "录音æ¥æº" + +#, fuzzy +msgid "Microphone" +msgstr "麦克风 1" + +msgid "Line In" +msgstr "线路输入" + +msgid "Internal CD" +msgstr "内部 CD 音频" + +msgid "SPDIF In" +msgstr "SPDIF 输入" + +msgid "AUX 1 In" +msgstr "AUX 1 输入" + +msgid "AUX 2 In" +msgstr "AUX 2 输入" + +#, fuzzy +msgid "Codec Loopback" +msgstr "Loopback" + +#, fuzzy +msgid "SunVTS Loopback" +msgstr "Loopback" + msgid "Volume" msgstr "" @@ -226,6 +262,10 @@ msgstr "" msgid "Failed to change mute state for device '%s'." msgstr "" +#, c-format +msgid "Cannot identify device '%s'." +msgstr "" + #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -248,10 +288,6 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "" - #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -359,21 +395,9 @@ msgstr "" #~ msgid "Telephone" #~ msgstr "è¯ç’" -#~ msgid "Line In" -#~ msgstr "线路输入" - -#~ msgid "Internal CD" -#~ msgstr "内部 CD 音频" - #~ msgid "Video In" #~ msgstr "视频输入" -#~ msgid "AUX 1 In" -#~ msgstr "AUX 1 输入" - -#~ msgid "AUX 2 In" -#~ msgstr "AUX 2 输入" - #~ msgid "AUX In" #~ msgstr "AUX 输入" @@ -386,9 +410,6 @@ msgstr "" #~ msgid "Microphone Boost" #~ msgstr "麦克风增益" -#~ msgid "Loopback" -#~ msgstr "Loopback" - #, fuzzy #~ msgid "Diagnostic" #~ msgstr "é‡‡æ ·åˆ†æž" @@ -402,9 +423,6 @@ msgstr "" #~ msgid "Input" #~ msgstr "输入" -#~ msgid "Record Source" -#~ msgstr "录音æ¥æº" - #~ msgid "Monitor Source" #~ msgstr "监视器æ¥æº" @@ -444,12 +462,6 @@ msgstr "" #~ msgid "Input Mix" #~ msgstr "混音输入" -#~ msgid "SPDIF In" -#~ msgstr "SPDIF 输入" - -#~ msgid "Microphone 1" -#~ msgstr "麦克风 1" - #~ msgid "Microphone 2" #~ msgstr "麦克风 2" diff --git a/sys/Makefile.in b/sys/Makefile.in index 8fa64580bc4429270df0636e91123f77bada3b32..c7c6094ab87a401c925656d479a8fa0258e7943b 100644 --- a/sys/Makefile.in +++ b/sys/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -26,23 +25,51 @@ # descending into all subdirectories a second time, but only after the first # (parallel) run has finished, so it should go right through the second time. VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -62,8 +89,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/common/parallel-subdirs.mak +DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \ + $(srcdir)/Makefile.in $(srcdir)/Makefile.am subdir = sys ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -71,7 +98,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -107,21 +133,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -129,9 +162,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -325,6 +378,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -571,22 +625,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -601,57 +658,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -667,12 +679,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -684,15 +691,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -701,6 +704,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -861,22 +879,20 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am .PHONY: independent-subdirs $(SUBDIRS) diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in index 2cee72d43ae76f5c69e097f6b6aba367a29bce47..0b5fa66638c6f68c57631071e2d5cac661ffcb76 100644 --- a/sys/directsound/Makefile.in +++ b/sys/directsound/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = sys/directsound -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -139,10 +165,23 @@ libgstdirectsoundsink_la_OBJECTS = \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstdirectsoundsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstdirectsoundsink_la_CFLAGS) \ $(CFLAGS) $(libgstdirectsoundsink_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -155,20 +194,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstdirectsoundsink_la_SOURCES) DIST_SOURCES = $(libgstdirectsoundsink_la_SOURCES) am__can_run_installinfo = \ @@ -177,6 +212,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -345,6 +397,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -557,6 +610,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -583,12 +637,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstdirectsoundsink.la: $(libgstdirectsoundsink_la_OBJECTS) $(libgstdirectsoundsink_la_DEPENDENCIES) $(EXTRA_libgstdirectsoundsink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdirectsoundsink_la_LINK) -rpath $(plugindir) $(libgstdirectsoundsink_la_OBJECTS) $(libgstdirectsoundsink_la_LIBADD) $(LIBS) @@ -642,26 +699,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -673,15 +719,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -690,6 +732,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -834,19 +891,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/sys/directsound/gstdirectsoundplugin.c b/sys/directsound/gstdirectsoundplugin.c index bc19ce249e1ae51cd414b6157eeef144a56fdcbc..faee215f5af8a7a3f91b24d7c98fae304750c1c4 100644 --- a/sys/directsound/gstdirectsoundplugin.c +++ b/sys/directsound/gstdirectsoundplugin.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the -* Free Software Foundation, Inc., 59 Temple Place - Suite 330, -* Boston, MA 02111-1307, USA. +* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +* Boston, MA 02110-1301, USA. * * * The development of this code was made possible due to the involvement diff --git a/sys/directsound/gstdirectsoundsink.c b/sys/directsound/gstdirectsoundsink.c index 9626e697c1745842402d3c18e43a5c9be7c36ea6..72a02d72667b6c9da0354d833c36d4bbcbfa335e 100644 --- a/sys/directsound/gstdirectsoundsink.c +++ b/sys/directsound/gstdirectsoundsink.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the -* Free Software Foundation, Inc., 59 Temple Place - Suite 330, -* Boston, MA 02111-1307, USA. +* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +* Boston, MA 02110-1301, USA. * * * The development of this code was made possible due to the involvement @@ -53,7 +53,6 @@ #endif #include <gst/base/gstbasesink.h> -#include <gst/audio/streamvolume.h> #include "gstdirectsoundsink.h" #include <gst/audio/gstaudioiec61937.h> @@ -156,8 +155,6 @@ gst_directsound_sink_class_init (GstDirectSoundSinkClass * klass) GST_DEBUG_CATEGORY_INIT (directsoundsink_debug, "directsoundsink", 0, "DirectSound sink"); - parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = gst_directsound_sink_finalize; gobject_class->set_property = gst_directsound_sink_set_property; gobject_class->get_property = gst_directsound_sink_get_property; @@ -261,7 +258,6 @@ gst_directsound_sink_getcaps (GstBaseSink * bsink, GstCaps * filter) GstPadTemplate *pad_template; GstDirectSoundSink *dsoundsink = GST_DIRECTSOUND_SINK (bsink); GstCaps *caps; - gchar *caps_string = NULL; if (dsoundsink->pDS == NULL) { GST_DEBUG_OBJECT (dsoundsink, "device not open, using template caps"); @@ -269,20 +265,23 @@ gst_directsound_sink_getcaps (GstBaseSink * bsink, GstCaps * filter) } if (dsoundsink->cached_caps) { - caps_string = gst_caps_to_string (dsoundsink->cached_caps); - GST_DEBUG_OBJECT (dsoundsink, "Returning cached caps: %s", caps_string); - g_free (caps_string); - return gst_caps_ref (dsoundsink->cached_caps); + caps = gst_caps_ref (dsoundsink->cached_caps); + } else { + element_class = GST_ELEMENT_GET_CLASS (dsoundsink); + pad_template = gst_element_class_get_pad_template (element_class, "sink"); + g_return_val_if_fail (pad_template != NULL, NULL); + + caps = gst_directsound_probe_supported_formats (dsoundsink, + gst_pad_template_get_caps (pad_template)); + if (caps) + dsoundsink->cached_caps = gst_caps_ref (caps); } - element_class = GST_ELEMENT_GET_CLASS (dsoundsink); - pad_template = gst_element_class_get_pad_template (element_class, "sink"); - g_return_val_if_fail (pad_template != NULL, NULL); - - caps = gst_directsound_probe_supported_formats (dsoundsink, - gst_pad_template_get_caps (pad_template)); - if (caps) { - dsoundsink->cached_caps = gst_caps_ref (caps); + if (caps && filter) { + GstCaps *tmp = + gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (caps); + caps = tmp; } if (caps) { @@ -315,10 +314,11 @@ gst_directsound_sink_acceptcaps (GstBaseSink * sink, GstQuery * query) pad_caps = gst_pad_query_caps (pad, NULL); if (pad_caps) { - gboolean cret = gst_caps_can_intersect (pad_caps, caps); + gboolean cret = gst_caps_is_subset (caps, pad_caps); gst_caps_unref (pad_caps); if (!cret) { - GST_DEBUG_OBJECT (dsink, "Can't intersect caps, not accepting caps"); + GST_DEBUG_OBJECT (dsink, + "Caps are not a subset of the pad caps, not accepting caps"); goto done; } } diff --git a/sys/directsound/gstdirectsoundsink.h b/sys/directsound/gstdirectsoundsink.h index 43b2dde1b97a7b3c61620f04f5fc2af98934f59c..3a83181940afa1cf0f1f860c55c4c749262271ae 100644 --- a/sys/directsound/gstdirectsoundsink.h +++ b/sys/directsound/gstdirectsoundsink.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * The development of this code was made possible due to the involvement * of Pioneers of the Inevitable, the creators of the Songbird Music player @@ -30,6 +30,7 @@ #define __GST_DIRECTSOUNDSINK_H__ #include <gst/gst.h> +#include <gst/audio/audio.h> #include <gst/audio/gstaudiosink.h> #include <windows.h> diff --git a/sys/oss/Makefile.in b/sys/oss/Makefile.in index 3bf30839c79680b16312e183d85d9f73e12c0923..1e2cbb14da1295bdcba5f842e279ee52c479a344 100644 --- a/sys/oss/Makefile.in +++ b/sys/oss/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = sys/oss -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstossaudio_la_OBJECTS = $(am_libgstossaudio_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstossaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstossaudio_la_CFLAGS) $(CFLAGS) \ $(libgstossaudio_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstossaudio_la_SOURCES) DIST_SOURCES = $(libgstossaudio_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -558,6 +611,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -584,12 +638,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstossaudio.la: $(libgstossaudio_la_OBJECTS) $(libgstossaudio_la_DEPENDENCIES) $(EXTRA_libgstossaudio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstossaudio_la_LINK) -rpath $(plugindir) $(libgstossaudio_la_OBJECTS) $(libgstossaudio_la_LIBADD) $(LIBS) @@ -659,26 +716,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -690,15 +736,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -707,6 +749,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -851,19 +908,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/sys/oss/common.h b/sys/oss/common.h index 2445c3d8a9f90b3857560ed8aada335435cb3a8a..6c3632f26bc03bb8e57ae9217c08058c55dd709f 100644 --- a/sys/oss/common.h +++ b/sys/oss/common.h @@ -14,10 +14,12 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ +#include <gst/audio/audio.h> + #define SET_PARAM(_oss, _name, _val, _detail) \ G_STMT_START { \ int _tmp = _val; \ diff --git a/sys/oss/gstossaudio.c b/sys/oss/gstossaudio.c index 57fcf0aeac2daa535c90bb0b5d3611754b16ad06..7194e2e84ee4b3180cc3656af55804360b6352cd 100644 --- a/sys/oss/gstossaudio.c +++ b/sys/oss/gstossaudio.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -23,6 +23,7 @@ #include "gst/gst-i18n-plugin.h" +#include "common.h" #include "gstosssink.h" #include "gstosssrc.h" diff --git a/sys/oss/gstossdmabuffer.h b/sys/oss/gstossdmabuffer.h index c38ef6f555bc97191cbac86c6a50f0ae7690a7b4..9143b0351f9c17c5254fe9a0957f22e8e89b05e2 100644 --- a/sys/oss/gstossdmabuffer.h +++ b/sys/oss/gstossdmabuffer.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_OSSDMABUFFER_H__ diff --git a/sys/oss/gstosshelper.c b/sys/oss/gstosshelper.c index ad62990b18e6ca6d1081ae1bfa9748580cbd0572..11e3ff6df82a34364ae711264e21a4758d4c0e4f 100644 --- a/sys/oss/gstosshelper.c +++ b/sys/oss/gstosshelper.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/oss/gstosshelper.h b/sys/oss/gstosshelper.h index aa30b0c245c1e43966df2d2a7d1f767e959e0502..d9f99148f68be600e58cd8121886001ff33976a8 100644 --- a/sys/oss/gstosshelper.h +++ b/sys/oss/gstosshelper.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c index 759f0d375a5c2ec109aa7831f6ea4eb74a4a0c95..3ee3c2a37d0d3105a7201a29b337faeaef320c83 100644 --- a/sys/oss/gstosssink.c +++ b/sys/oss/gstosssink.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/sys/oss/gstosssink.h b/sys/oss/gstosssink.h index bb2ca932e499089011a65fb4c0f733cb42bd9117..3174df169447d41b176ceaa28a6a76566b7cd462 100644 --- a/sys/oss/gstosssink.h +++ b/sys/oss/gstosssink.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c index 4738c22197851185e7316a96f91aa0e628436fd4..742c59dc443298dedce284e0dcdb0bbf9e56d3e0 100644 --- a/sys/oss/gstosssrc.c +++ b/sys/oss/gstosssrc.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -59,8 +59,8 @@ # endif /* HAVE_OSS_INCLUDE_IN_ROOT */ #endif /* HAVE_OSS_INCLUDE_IN_SYS */ -#include "gstosssrc.h" #include "common.h" +#include "gstosssrc.h" #include <gst/gst-i18n-plugin.h> diff --git a/sys/oss/gstosssrc.h b/sys/oss/gstosssrc.h index ec9af4cb097d73e41455cc2e03ed8f35dab65cc1..58995fb22e3807153888c326a82351aa93c2541c 100644 --- a/sys/oss/gstosssrc.h +++ b/sys/oss/gstosssrc.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ diff --git a/sys/oss4/Makefile.in b/sys/oss4/Makefile.in index f1b4e6851b9256b1fcf01302a0afc174596ed17e..fc074d6b4763426ac87816cabfa221cf952a50d0 100644 --- a/sys/oss4/Makefile.in +++ b/sys/oss4/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = sys/oss4 -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -138,10 +164,23 @@ libgstoss4audio_la_OBJECTS = $(am_libgstoss4audio_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstoss4audio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) \ $(libgstoss4audio_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstoss4audio_la_SOURCES) DIST_SOURCES = $(libgstoss4audio_la_SOURCES) am__can_run_installinfo = \ @@ -176,6 +211,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -344,6 +396,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -560,6 +613,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -586,12 +640,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstoss4audio.la: $(libgstoss4audio_la_OBJECTS) $(libgstoss4audio_la_DEPENDENCIES) $(EXTRA_libgstoss4audio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstoss4audio_la_LINK) -rpath $(plugindir) $(libgstoss4audio_la_OBJECTS) $(libgstoss4audio_la_LIBADD) $(LIBS) @@ -661,26 +718,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -692,15 +738,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -709,6 +751,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -853,19 +910,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/sys/oss4/oss4-audio.c b/sys/oss4/oss4-audio.c index 21a963fe5b564c134c14ad87a046e1566889f940..56d12b15e681989605a06ba6ff697bff166d92f9 100644 --- a/sys/oss4/oss4-audio.c +++ b/sys/oss4/oss4-audio.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray diff --git a/sys/oss4/oss4-audio.h b/sys/oss4/oss4-audio.h index fcfbb8e8cc498c957713be52a93351dc381ff087..054ecf92641ad21f5076d44befc77d184909d0d7 100644 --- a/sys/oss4/oss4-audio.h +++ b/sys/oss4/oss4-audio.h @@ -13,15 +13,15 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GST_OSS4_AUDIO_H #define GST_OSS4_AUDIO_H_ #include <gst/gst.h> -#include <gst/audio/gstaudioringbuffer.h> +#include <gst/audio/audio.h> /* This is the minimum version we require */ #define GST_MIN_OSS4_VERSION 0x040003 diff --git a/sys/oss4/oss4-property-probe.c b/sys/oss4/oss4-property-probe.c index c628af81a4b929133340634d8e59e6fa6d457bc3..2e164f2853506431f7ba7b5a2461aa60f5e7658e 100644 --- a/sys/oss4/oss4-property-probe.c +++ b/sys/oss4/oss4-property-probe.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray diff --git a/sys/oss4/oss4-property-probe.h b/sys/oss4/oss4-property-probe.h index 8426bb60478e66f55b89af2fb2ab99a69cb9d61f..1f46f9a874c85abdc7aafd6ca67f4745751606be 100644 --- a/sys/oss4/oss4-property-probe.h +++ b/sys/oss4/oss4-property-probe.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GST_OSS4_PROPERTY_PROBE_H diff --git a/sys/oss4/oss4-sink.c b/sys/oss4/oss4-sink.c index 8d746cdf6f4baf3186f17757d5fcb9421b8e1ce1..eb3ada0fe5afd9137b851c969d14f1bd7bf2f65a 100644 --- a/sys/oss4/oss4-sink.c +++ b/sys/oss4/oss4-sink.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** * SECTION:element-oss4sink @@ -545,7 +545,13 @@ non_block: static gboolean gst_oss4_sink_open_func (GstAudioSink * asink) { - return gst_oss4_sink_open (asink, FALSE); + if (!gst_oss4_sink_open (asink, FALSE)) + return FALSE; + + /* the initial volume might not be the property default, so notify + * application to make it get a reading of the current volume */ + g_object_notify (G_OBJECT (asink), "volume"); + return TRUE; } static gboolean diff --git a/sys/oss4/oss4-sink.h b/sys/oss4/oss4-sink.h index 47221955d8152a0ff3bdae0bc5ad73a28ddaec59..04645fe7f3535448ea9d1532fb4cc752bf2daf32 100644 --- a/sys/oss4/oss4-sink.h +++ b/sys/oss4/oss4-sink.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GST_OSS4_SINK_H diff --git a/sys/oss4/oss4-source.c b/sys/oss4/oss4-source.c index c193616c37c5702033c4fc32c71cd163cc9106bc..e8c667e0999a123914f449a75039b2dc9ffd66f9 100644 --- a/sys/oss4/oss4-source.c +++ b/sys/oss4/oss4-source.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/sys/oss4/oss4-source.h b/sys/oss4/oss4-source.h index f30021ee37372d9ae636faaac4e82a2c471d4c2f..91d8f136904b572bbeaaf7d2a4b039a615f8d55f 100644 --- a/sys/oss4/oss4-source.h +++ b/sys/oss4/oss4-source.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef GST_OSS4_SOURCE_H diff --git a/sys/osxaudio/Makefile.in b/sys/osxaudio/Makefile.in index 0462893d67310c48b92e3f0a29e12ca86058b22e..86300ef005414ca65c69d60804b3eaec2b1c31cb 100644 --- a/sys/osxaudio/Makefile.in +++ b/sys/osxaudio/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,15 +82,14 @@ host_triplet = @host@ target_triplet = @target@ @HAVE_IOS_FALSE@am__append_1 = -Wl,-framework,AudioUnit -Wl,-framework,CoreServices subdir = sys/osxaudio -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -143,10 +169,23 @@ libgstosxaudio_la_OBJECTS = $(am_libgstosxaudio_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstosxaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) \ $(libgstosxaudio_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -159,20 +198,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstosxaudio_la_SOURCES) DIST_SOURCES = $(libgstosxaudio_la_SOURCES) am__can_run_installinfo = \ @@ -181,6 +216,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -349,6 +401,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -574,6 +627,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -600,12 +654,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstosxaudio.la: $(libgstosxaudio_la_OBJECTS) $(libgstosxaudio_la_DEPENDENCIES) $(EXTRA_libgstosxaudio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstosxaudio_la_LINK) -rpath $(plugindir) $(libgstosxaudio_la_OBJECTS) $(libgstosxaudio_la_LIBADD) $(LIBS) @@ -699,26 +756,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -730,15 +776,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -747,6 +789,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -891,19 +948,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/sys/osxaudio/gstosxaudio.c b/sys/osxaudio/gstosxaudio.c index d0019982581f62c84cb8c4e4223431cec799bbc2..c48b03f8f525ad22c71134b6f63f4806eb697abc 100644 --- a/sys/osxaudio/gstosxaudio.c +++ b/sys/osxaudio/gstosxaudio.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * The development of this code was made possible due to the involvement of * Pioneers of the Inevitable, the creators of the Songbird Music player diff --git a/sys/osxaudio/gstosxaudioelement.c b/sys/osxaudio/gstosxaudioelement.c index 0442b1d3dae63b6c66301d3b174d7d544ae825fe..bec24d14926b674fd015d293310c32fe15c14184 100644 --- a/sys/osxaudio/gstosxaudioelement.c +++ b/sys/osxaudio/gstosxaudioelement.c @@ -38,8 +38,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * The development of this code was made possible due to the involvement of * Pioneers of the Inevitable, the creators of the Songbird Music player diff --git a/sys/osxaudio/gstosxaudioelement.h b/sys/osxaudio/gstosxaudioelement.h index 198dc1e4e4c46066b6bfa26fbe31fc05f4ea3f59..3e09dc1bb780a91a795c6d4a2dc009f35969a8a3 100644 --- a/sys/osxaudio/gstosxaudioelement.h +++ b/sys/osxaudio/gstosxaudioelement.h @@ -38,8 +38,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * The development of this code was made possible due to the involvement of * Pioneers of the Inevitable, the creators of the Songbird Music player diff --git a/sys/osxaudio/gstosxaudioringbuffer.c b/sys/osxaudio/gstosxaudioringbuffer.c index ae69319e51bd3f72b75f998e79aef5d5f71beb1f..997ae975cb9d6f42d69e0a8eb89efbcd4ef10198 100644 --- a/sys/osxaudio/gstosxaudioringbuffer.c +++ b/sys/osxaudio/gstosxaudioringbuffer.c @@ -39,8 +39,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/osxaudio/gstosxaudioringbuffer.h b/sys/osxaudio/gstosxaudioringbuffer.h index 533d16a40f3f53813e0fda17f265a3899eeddcfc..5054fd38533a2cf4cfcfb87a26d910abf47de45c 100644 --- a/sys/osxaudio/gstosxaudioringbuffer.h +++ b/sys/osxaudio/gstosxaudioringbuffer.h @@ -38,8 +38,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_OSX_RING_BUFFER_H__ diff --git a/sys/osxaudio/gstosxaudiosink.c b/sys/osxaudio/gstosxaudiosink.c index 2273a347d75c068700f45ce9e16e77c7db88c973..053a87137730581da8d7f0a7065dc12d079979a6 100644 --- a/sys/osxaudio/gstosxaudiosink.c +++ b/sys/osxaudio/gstosxaudiosink.c @@ -39,8 +39,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * The development of this code was made possible due to the involvement of * Pioneers of the Inevitable, the creators of the Songbird Music player @@ -325,15 +325,12 @@ gst_osx_audio_sink_getcaps (GstBaseSink * base, GstCaps * filter) static gboolean gst_osx_audio_sink_acceptcaps (GstOsxAudioSink * sink, GstCaps * caps) { - GstOsxAudioRingBuffer *osxbuf = NULL; GstCaps *pad_caps; GstStructure *st; gboolean ret = FALSE; GstAudioRingBufferSpec spec = { 0 }; gchar *caps_string = NULL; - osxbuf = GST_OSX_AUDIO_RING_BUFFER (GST_AUDIO_BASE_SINK (sink)->ringbuffer); - caps_string = gst_caps_to_string (caps); GST_DEBUG_OBJECT (sink, "acceptcaps called with %s", caps_string); g_free (caps_string); @@ -577,39 +574,30 @@ gst_osx_audio_sink_allowed_caps (GstOsxAudioSink * osxsink) switch (layout->mChannelDescriptions[i].mChannelLabel) { case kAudioChannelLabel_Left: pos[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; - channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_LEFT); break; case kAudioChannelLabel_Right: pos[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; - channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_RIGHT); break; case kAudioChannelLabel_Center: pos[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER; - channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_CENTER); break; case kAudioChannelLabel_LFEScreen: pos[i] = GST_AUDIO_CHANNEL_POSITION_LFE1; - channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (LFE1); break; case kAudioChannelLabel_LeftSurround: pos[i] = GST_AUDIO_CHANNEL_POSITION_REAR_LEFT; - channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (REAR_LEFT); break; case kAudioChannelLabel_RightSurround: pos[i] = GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT; - channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (REAR_RIGHT); break; case kAudioChannelLabel_RearSurroundLeft: pos[i] = GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT; - channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (SIDE_LEFT); break; case kAudioChannelLabel_RearSurroundRight: pos[i] = GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT; - channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (SIDE_RIGHT); break; case kAudioChannelLabel_CenterSurround: pos[i] = GST_AUDIO_CHANNEL_POSITION_REAR_CENTER; - channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (REAR_CENTER); break; default: GST_WARNING_OBJECT (osxsink, "unrecognized channel: %d", @@ -640,6 +628,7 @@ gst_osx_audio_sink_allowed_caps (GstOsxAudioSink * osxsink) gst_caps_append_structure (caps, gst_structure_copy (in_s)); } } + gst_audio_channel_positions_to_mask (pos, channels, false, &channel_mask); out_s = gst_structure_copy (in_s); gst_structure_remove_fields (out_s, "channels", "channel-mask", NULL); gst_structure_set (out_s, "channels", G_TYPE_INT, channels, diff --git a/sys/osxaudio/gstosxaudiosink.h b/sys/osxaudio/gstosxaudiosink.h index 6b1fc29e342820c1d8baa205c8b242d17ad51422..84949b7fc411dca63249bf17d06f8464df8f13b2 100644 --- a/sys/osxaudio/gstosxaudiosink.h +++ b/sys/osxaudio/gstosxaudiosink.h @@ -39,8 +39,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * The development of this code was made possible due to the involvement of * Pioneers of the Inevitable, the creators of the Songbird Music player diff --git a/sys/osxaudio/gstosxaudiosrc.c b/sys/osxaudio/gstosxaudiosrc.c index 5f788c37cfc15388f91b10b6d9ccb8377bf38203..fa5da162f1395afb23948e50a968a78e0398ed6e 100644 --- a/sys/osxaudio/gstosxaudiosrc.c +++ b/sys/osxaudio/gstosxaudiosrc.c @@ -38,8 +38,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/sys/osxaudio/gstosxaudiosrc.h b/sys/osxaudio/gstosxaudiosrc.h index 3d6768a0363537b161a802e6faac9186869139dd..a5f5d841179951790a55d4592e3c0ea8a9be736e 100644 --- a/sys/osxaudio/gstosxaudiosrc.h +++ b/sys/osxaudio/gstosxaudiosrc.h @@ -37,8 +37,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_OSXAUDIOSRC_H__ diff --git a/sys/osxaudio/gstosxcoreaudio.h b/sys/osxaudio/gstosxcoreaudio.h index 71fcfa65c1a8153a438280380fb6d49b0add68de..421ff624540c79e217c5ba9b5ea14cd5727ac48c 100644 --- a/sys/osxaudio/gstosxcoreaudio.h +++ b/sys/osxaudio/gstosxcoreaudio.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * */ diff --git a/sys/osxvideo/Makefile.in b/sys/osxvideo/Makefile.in index c40ae5fadcfc5827977a824dbec85e46ec134ff2..78baa1e815f17fc89410a34e2dc7fcc42e5d73b9 100644 --- a/sys/osxvideo/Makefile.in +++ b/sys/osxvideo/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = sys/osxvideo -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstosxvideosink_la_OBJECTS = $(am_libgstosxvideosink_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstosxvideosink_la_LINK = $(LIBTOOL) $(AM_V_lt) \ $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(OBJCLD) $(libgstosxvideosink_la_OBJCFLAGS) \ $(OBJCFLAGS) $(libgstosxvideosink_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTOBJCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(AM_OBJCFLAGS) $(OBJCFLAGS) AM_V_OBJC = $(am__v_OBJC_@AM_V@) am__v_OBJC_ = $(am__v_OBJC_@AM_DEFAULT_V@) -am__v_OBJC_0 = @echo " OBJC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_OBJC_0 = @echo " OBJC " $@; +am__v_OBJC_1 = OBJCLD = $(OBJC) OBJCLINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_OBJCLD = $(am__v_OBJCLD_@AM_V@) am__v_OBJCLD_ = $(am__v_OBJCLD_@AM_DEFAULT_V@) -am__v_OBJCLD_0 = @echo " OBJCLD" $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_OBJCLD_0 = @echo " OBJCLD " $@; +am__v_OBJCLD_1 = SOURCES = $(libgstosxvideosink_la_SOURCES) DIST_SOURCES = $(libgstosxvideosink_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstosxvideosink.la: $(libgstosxvideosink_la_OBJECTS) $(libgstosxvideosink_la_DEPENDENCIES) $(EXTRA_libgstosxvideosink_la_DEPENDENCIES) $(AM_V_OBJCLD)$(libgstosxvideosink_la_LINK) -rpath $(plugindir) $(libgstosxvideosink_la_OBJECTS) $(libgstosxvideosink_la_LIBADD) $(LIBS) @@ -639,26 +696,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -670,15 +716,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -687,6 +729,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -831,19 +888,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/sys/osxvideo/cocoawindow.h b/sys/osxvideo/cocoawindow.h index 7e69a7bb9a8e5352f54882559a111841861596ca..a896d228b7b73c1743d12787ff1441a7e1662eb8 100644 --- a/sys/osxvideo/cocoawindow.h +++ b/sys/osxvideo/cocoawindow.h @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * The development of this code was made possible due to the involvement of Pioneers * of the Inevitable, the creators of the Songbird Music player diff --git a/sys/osxvideo/cocoawindow.m b/sys/osxvideo/cocoawindow.m index 2b1704b8a5bcf61384dfadb5a52b346a87202a6a..0491ab979ec673e0877848210ec2f50602982bda 100644 --- a/sys/osxvideo/cocoawindow.m +++ b/sys/osxvideo/cocoawindow.m @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * The development of this code was made possible due to the involvement of Pioneers * of the Inevitable, the creators of the Songbird Music player diff --git a/sys/osxvideo/osxvideosink.h b/sys/osxvideo/osxvideosink.h index a842b8c914e5bbfc8365c6b8c535f44720af64d6..da912dfaff1ba519ade90c8c0ab637cc2f625763 100644 --- a/sys/osxvideo/osxvideosink.h +++ b/sys/osxvideo/osxvideosink.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * * The development of this code was made possible due to the involvement of Pioneers diff --git a/sys/osxvideo/osxvideosink.m b/sys/osxvideo/osxvideosink.m index 9d8fbd20e5b8b5244658f50b41a21d487291ad2f..d2555b9522692ea6ab6f712c9b64a83619cb1c84 100644 --- a/sys/osxvideo/osxvideosink.m +++ b/sys/osxvideo/osxvideosink.m @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. * * The development of this code was made possible due to the involvement of * Pioneers of the Inevitable, the creators of the Songbird Music player. diff --git a/sys/sunaudio/Makefile.in b/sys/sunaudio/Makefile.in index 7573827d677f249b12264c85f69957aefc77397c..dd9c10bfaa738a6d20310f0e5c04dfb10c21a701 100644 --- a/sys/sunaudio/Makefile.in +++ b/sys/sunaudio/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = sys/sunaudio -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -141,10 +167,23 @@ libgstsunaudio_la_OBJECTS = $(am_libgstsunaudio_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstsunaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) \ $(libgstsunaudio_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -157,20 +196,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstsunaudio_la_SOURCES) DIST_SOURCES = $(libgstsunaudio_la_SOURCES) am__can_run_installinfo = \ @@ -179,6 +214,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -347,6 +399,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -566,6 +619,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -592,12 +646,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstsunaudio.la: $(libgstsunaudio_la_OBJECTS) $(libgstsunaudio_la_DEPENDENCIES) $(EXTRA_libgstsunaudio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsunaudio_la_LINK) -rpath $(plugindir) $(libgstsunaudio_la_OBJECTS) $(libgstsunaudio_la_LIBADD) $(LIBS) @@ -691,26 +748,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -722,15 +768,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -739,6 +781,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -883,19 +940,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/sys/sunaudio/gstsunaudio.c b/sys/sunaudio/gstsunaudio.c index 67bc0b17432fd625944f63471d1b079b9a235e0d..433fba248ad98bd1387936bd875bd0cdc3901619 100644 --- a/sys/sunaudio/gstsunaudio.c +++ b/sys/sunaudio/gstsunaudio.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/sunaudio/gstsunaudiomixer.c b/sys/sunaudio/gstsunaudiomixer.c index 3966d3a50a01d68638a19d88c457d86a135e96b3..0a431bf19f23d7682a0fc65e182e4054f8bfd1e0 100644 --- a/sys/sunaudio/gstsunaudiomixer.c +++ b/sys/sunaudio/gstsunaudiomixer.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/sys/sunaudio/gstsunaudiomixer.h b/sys/sunaudio/gstsunaudiomixer.h index 7ab6e74587ab7e61645566db228fbc285011e2bb..03292ed962359ef4dde00fed850b62062b84a58b 100644 --- a/sys/sunaudio/gstsunaudiomixer.h +++ b/sys/sunaudio/gstsunaudiomixer.h @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __GST_SUNAUDIO_MIXER_H__ diff --git a/sys/sunaudio/gstsunaudiomixerctrl.c b/sys/sunaudio/gstsunaudiomixerctrl.c index 07231348e47f71491fc086b2d1b4b963a1fa32c3..32fc4e2d9814cf3d83680570b44ca15c75322ba5 100644 --- a/sys/sunaudio/gstsunaudiomixerctrl.c +++ b/sys/sunaudio/gstsunaudiomixerctrl.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/sunaudio/gstsunaudiomixerctrl.h b/sys/sunaudio/gstsunaudiomixerctrl.h index 2ca17f0ed3ae402166e0d6a30fa3f8dd2496337e..f9aa477b9efb89b248cf5937c263b3689551ee3c 100644 --- a/sys/sunaudio/gstsunaudiomixerctrl.h +++ b/sys/sunaudio/gstsunaudiomixerctrl.h @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __GST_SUNAUDIO_MIXER_CTRL_H diff --git a/sys/sunaudio/gstsunaudiomixeroptions.c b/sys/sunaudio/gstsunaudiomixeroptions.c index 1fa025b9e9b72fc0004b7c3c7c7a1e4ca50dcad6..4637d8288ec6ff00fa079dd0d447bf50ebf8326c 100644 --- a/sys/sunaudio/gstsunaudiomixeroptions.c +++ b/sys/sunaudio/gstsunaudiomixeroptions.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/sunaudio/gstsunaudiomixeroptions.h b/sys/sunaudio/gstsunaudiomixeroptions.h index fb02b46e0b1f5a6c598e7b91592f26984243bfad..e27ef21b70ceb123dd3d292db152c1c49e0edc62 100644 --- a/sys/sunaudio/gstsunaudiomixeroptions.h +++ b/sys/sunaudio/gstsunaudiomixeroptions.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, */ #ifndef __GST_SUNAUDIO_MIXER_OPTIONS_H__ diff --git a/sys/sunaudio/gstsunaudiomixertrack.c b/sys/sunaudio/gstsunaudiomixertrack.c index 786ef0d835b2e983cfd4ae009de01633a225a14d..43bf0442a19cbddaee5df4335acad4a65e9d6f12 100644 --- a/sys/sunaudio/gstsunaudiomixertrack.c +++ b/sys/sunaudio/gstsunaudiomixertrack.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/sunaudio/gstsunaudiomixertrack.h b/sys/sunaudio/gstsunaudiomixertrack.h index 83be9fcd2591f5243a58864d20cc153a50429811..278ed81fbf8a6cfd30098637f6fd530347c878d8 100644 --- a/sys/sunaudio/gstsunaudiomixertrack.h +++ b/sys/sunaudio/gstsunaudiomixertrack.h @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_SUNAUDIO_MIXER_TRACK_H__ diff --git a/sys/sunaudio/gstsunaudiosink.c b/sys/sunaudio/gstsunaudiosink.c index 19cdd215a952742b46d5b48802f1937e0bf36df9..99e08eaed0f78bc184d27d91c5ff9146d9d9778a 100644 --- a/sys/sunaudio/gstsunaudiosink.c +++ b/sys/sunaudio/gstsunaudiosink.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/sys/sunaudio/gstsunaudiosink.h b/sys/sunaudio/gstsunaudiosink.h index 94544752cd843b9d9aad13d9908db32848f36d97..fb30e6a80ec6e6f4b0ee4a6c9251a43c471d8866 100644 --- a/sys/sunaudio/gstsunaudiosink.h +++ b/sys/sunaudio/gstsunaudiosink.h @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_SUNAUDIO_SINK_H__ diff --git a/sys/sunaudio/gstsunaudiosrc.c b/sys/sunaudio/gstsunaudiosrc.c index 9d5d60d9cdf7fa4f14d7f140cf0ed48b018bdf39..ec1d7d7a42d2e4e6a73496fa815f519338b8740e 100644 --- a/sys/sunaudio/gstsunaudiosrc.c +++ b/sys/sunaudio/gstsunaudiosrc.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/sys/sunaudio/gstsunaudiosrc.h b/sys/sunaudio/gstsunaudiosrc.h index 95d96134ba70d8274c9ca58f4db7e0264b5858ca..e165f3be9c550d7e80f1b155122c10208916a14d 100644 --- a/sys/sunaudio/gstsunaudiosrc.h +++ b/sys/sunaudio/gstsunaudiosrc.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_SUNAUDIO_SRC_H__ diff --git a/sys/v4l2/Makefile.am b/sys/v4l2/Makefile.am index efdabeb6bb49da1f5ed51356c0ca516ad64c11db..cec939bf2800b73b09e5d62ca6f3f79e3127e79b 100644 --- a/sys/v4l2/Makefile.am +++ b/sys/v4l2/Makefile.am @@ -8,7 +8,6 @@ xv_source = xv_libs = endif - # variables used for enum/marshal generation glib_enum_headers = tuner.h tunernorm.h tunerchannel.h glib_enum_define = GST_INTERFACES @@ -56,15 +55,15 @@ libgstvideo4linux2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ libgstvideo4linux2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstvideo4linux2_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) - libgstvideo4linux2_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ - $(GST_BASE_LIBS) \ - $(GST_PLUGINS_BASE_LIBS) \ + -lgstallocators-$(GST_API_VERSION) \ -lgstvideo-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) \ $(GST_LIBS) \ $(xv_libs) \ $(LIBV4L2_LIBS) \ - $(GUDEV_LIBS) + $(GUDEV_LIBS) \ + $(LIBRT) noinst_HEADERS = \ gstv4l2bufferpool.h \ diff --git a/sys/v4l2/Makefile.in b/sys/v4l2/Makefile.in index 8bb3d1f7227adb69285fa85fc5f7d5281a85f596..53956932afd26740a148fda806fe385aa79abe30 100644 --- a/sys/v4l2/Makefile.in +++ b/sys/v4l2/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -25,23 +24,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -61,8 +88,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(top_srcdir)/common/gst-glib-gen.mak +DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \ + $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) README subdir = sys/v4l2 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -70,7 +98,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -140,7 +167,7 @@ am__DEPENDENCIES_1 = @USE_XVIDEO_TRUE@ $(am__DEPENDENCIES_1) libgstvideo4linux2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ + $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__libgstvideo4linux2_la_SOURCES_DIST = gstv4l2.c \ gstv4l2colorbalance.c gstv4l2object.c gstv4l2bufferpool.c \ @@ -172,10 +199,23 @@ libgstvideo4linux2_la_OBJECTS = $(am_libgstvideo4linux2_la_OBJECTS) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstvideo4linux2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) \ $(libgstvideo4linux2_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -188,20 +228,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstvideo4linux2_la_SOURCES) \ $(nodist_libgstvideo4linux2_la_SOURCES) DIST_SOURCES = $(am__libgstvideo4linux2_la_SOURCES_DIST) @@ -211,6 +247,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -379,6 +432,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -588,13 +642,14 @@ libgstvideo4linux2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ libgstvideo4linux2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstvideo4linux2_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) libgstvideo4linux2_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ - $(GST_BASE_LIBS) \ - $(GST_PLUGINS_BASE_LIBS) \ + -lgstallocators-$(GST_API_VERSION) \ -lgstvideo-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) \ $(GST_LIBS) \ $(xv_libs) \ $(LIBV4L2_LIBS) \ - $(GUDEV_LIBS) + $(GUDEV_LIBS) \ + $(LIBRT) noinst_HEADERS = \ gstv4l2bufferpool.h \ @@ -647,6 +702,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -673,12 +729,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstvideo4linux2.la: $(libgstvideo4linux2_la_OBJECTS) $(libgstvideo4linux2_la_DEPENDENCIES) $(EXTRA_libgstvideo4linux2_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideo4linux2_la_LINK) -rpath $(plugindir) $(libgstvideo4linux2_la_OBJECTS) $(libgstvideo4linux2_la_LIBADD) $(LIBS) @@ -844,26 +903,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -875,15 +923,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -892,6 +936,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1040,19 +1099,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # these are all the rules generating the relevant files diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c index 23a5add47937b67a27257e97cacd945b02b9d202..12b247fb22dc6dd72654a364fa237ce08ae694ac 100644 --- a/sys/v4l2/gstv4l2.c +++ b/sys/v4l2/gstv4l2.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c index c43749e0f98549bac87c4242d87be398fbd0c66d..1e74fc75b741336a5146f90accb2cc5c9a9f10e7 100644 --- a/sys/v4l2/gstv4l2bufferpool.c +++ b/sys/v4l2/gstv4l2bufferpool.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -29,15 +29,17 @@ #include <sys/mman.h> #include <string.h> #include <unistd.h> +#if HAVE_DECL_V4L2_MEMORY_DMABUF +#include <fcntl.h> +#endif #include "gst/video/video.h" #include "gst/video/gstvideometa.h" #include "gst/video/gstvideopool.h" +#include "gst/allocators/gstdmabuf.h" #include <gstv4l2bufferpool.h> -#include "gstv4l2src.h" -#include "gstv4l2sink.h" #include "v4l2_calls.h" #include "gst/gst-i18n-plugin.h" #include <gst/glib-compat-private.h> @@ -104,6 +106,7 @@ gst_v4l2_buffer_pool_free_buffer (GstBufferPool * bpool, GstBuffer * buffer) switch (obj->mode) { case GST_V4L2_IO_RW: + case GST_V4L2_IO_DMABUF: break; case GST_V4L2_IO_MMAP: { @@ -152,7 +155,30 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer, break; } case GST_V4L2_IO_MMAP: + case GST_V4L2_IO_DMABUF: { +#ifdef VIDIOC_CREATE_BUFS + if (pool->num_allocated == pool->num_buffers) { + struct v4l2_create_buffers create_bufs; + + memset (&create_bufs, 0, sizeof (struct v4l2_create_buffers)); + create_bufs.count = 1; + create_bufs.memory = V4L2_MEMORY_MMAP; + create_bufs.format.type = obj->type; + + if (v4l2_ioctl (pool->video_fd, VIDIOC_G_FMT, &create_bufs.format) < 0) + goto g_fmt_failed; + + if (v4l2_ioctl (pool->video_fd, VIDIOC_CREATE_BUFS, &create_bufs) < 0) + goto create_bufs_failed; + + GST_LOG_OBJECT (pool, "created buffer with index: %u", + create_bufs.index); + pool->num_buffers++; + pool->buffers = g_renew (GstBuffer *, pool->buffers, pool->num_buffers); + pool->buffers[pool->num_buffers - 1] = NULL; + } +#endif newbuf = gst_buffer_new (); meta = GST_V4L2_META_ADD (newbuf); @@ -175,19 +201,36 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer, GST_LOG_OBJECT (pool, " memory: %d", meta->vbuffer.memory); if (meta->vbuffer.memory == V4L2_MEMORY_MMAP) GST_LOG_OBJECT (pool, " MMAP offset: %u", meta->vbuffer.m.offset); - GST_LOG_OBJECT (pool, " length: %u", meta->vbuffer.length); - - meta->mem = v4l2_mmap (0, meta->vbuffer.length, - PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, - meta->vbuffer.m.offset); - if (meta->mem == MAP_FAILED) - goto mmap_failed; - - gst_buffer_append_memory (newbuf, - gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE, - meta->mem, meta->vbuffer.length, 0, meta->vbuffer.length, NULL, - NULL)); + if (obj->mode == GST_V4L2_IO_MMAP) { + meta->mem = v4l2_mmap (0, meta->vbuffer.length, + PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, + meta->vbuffer.m.offset); + if (meta->mem == MAP_FAILED) + goto mmap_failed; + + gst_buffer_append_memory (newbuf, + gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE, + meta->mem, meta->vbuffer.length, 0, meta->vbuffer.length, NULL, + NULL)); + } +#if HAVE_DECL_V4L2_MEMORY_DMABUF + if (obj->mode == GST_V4L2_IO_DMABUF) { + struct v4l2_exportbuffer expbuf; + + memset (&expbuf, 0, sizeof (struct v4l2_exportbuffer)); + expbuf.type = meta->vbuffer.type; + expbuf.index = meta->vbuffer.index; + expbuf.flags = O_CLOEXEC; + if (v4l2_ioctl (pool->video_fd, VIDIOC_EXPBUF, &expbuf) < 0) + goto expbuf_failed; + + meta->vbuffer.memory = V4L2_MEMORY_DMABUF; + gst_buffer_append_memory (newbuf, + gst_dmabuf_allocator_alloc (pool->allocator, expbuf.fd, + meta->vbuffer.length)); + } +#endif /* add metadata to raw video buffers */ if (pool->add_videometa && info->finfo) { const GstVideoFormatInfo *finfo = info->finfo; @@ -229,6 +272,24 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer, return GST_FLOW_OK; /* ERRORS */ +#ifdef VIDIOC_CREATE_BUFS +g_fmt_failed: + { + gint errnosave = errno; + + GST_WARNING ("Failed G_FMT: %s", g_strerror (errnosave)); + errno = errnosave; + return GST_FLOW_ERROR; + } +create_bufs_failed: + { + gint errnosave = errno; + + GST_WARNING ("Failed CREATE_BUFS: %s", g_strerror (errnosave)); + errno = errnosave; + return GST_FLOW_ERROR; + } +#endif querybuf_failed: { gint errnosave = errno; @@ -247,6 +308,17 @@ mmap_failed: errno = errnosave; return GST_FLOW_ERROR; } +#if HAVE_DECL_V4L2_MEMORY_DMABUF +expbuf_failed: + { + gint errnosave = errno; + + GST_WARNING ("Failed EXPBUF: %s", g_strerror (errnosave)); + gst_buffer_unref (newbuf); + errno = errnosave; + return GST_FLOW_ERROR; + } +#endif } static gboolean @@ -298,6 +370,7 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config) num_buffers = 1; copy_threshold = 0; break; + case GST_V4L2_IO_DMABUF: case GST_V4L2_IO_MMAP: { /* request a reasonable number of buffers when no max specified. We will @@ -357,6 +430,10 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config) pool->size = size; pool->num_buffers = num_buffers; pool->copy_threshold = copy_threshold; + + if (obj->mode == GST_V4L2_IO_DMABUF) + allocator = gst_dmabuf_allocator_obtain (); + if (pool->allocator) gst_object_unref (pool->allocator); if ((pool->allocator = allocator)) @@ -406,6 +483,7 @@ start_streaming (GstV4l2BufferPool * pool) break; case GST_V4L2_IO_MMAP: case GST_V4L2_IO_USERPTR: + case GST_V4L2_IO_DMABUF: GST_DEBUG_OBJECT (pool, "STREAMON"); if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMON, &obj->type) < 0) goto start_failed; @@ -460,6 +538,23 @@ start_failed: } } +static void +gst_v4l2_buffer_pool_free_buffers (GstV4l2BufferPool * pool) +{ + if (pool->num_buffers > 0) { + struct v4l2_requestbuffers breq; + memset (&breq, 0, sizeof (struct v4l2_requestbuffers)); + breq.type = pool->obj->type; + breq.count = 0; + breq.memory = V4L2_MEMORY_MMAP; + if (v4l2_ioctl (pool->video_fd, VIDIOC_REQBUFS, &breq) < 0) { + GST_ERROR_OBJECT (pool, "error releasing buffers: %s", + g_strerror (errno)); + } + pool->num_buffers = 0; + } +} + static gboolean gst_v4l2_buffer_pool_stop (GstBufferPool * bpool) { @@ -478,6 +573,7 @@ gst_v4l2_buffer_pool_stop (GstBufferPool * bpool) break; case GST_V4L2_IO_MMAP: case GST_V4L2_IO_USERPTR: + case GST_V4L2_IO_DMABUF: /* we actually need to sync on all queued buffers but not * on the non-queued ones */ GST_DEBUG_OBJECT (pool, "STREAMOFF"); @@ -503,6 +599,8 @@ gst_v4l2_buffer_pool_stop (GstBufferPool * bpool) g_free (pool->buffers); pool->buffers = NULL; + gst_v4l2_buffer_pool_free_buffers (pool); + return ret; /* ERRORS */ @@ -566,9 +664,12 @@ gst_v4l2_buffer_pool_qbuf (GstV4l2BufferPool * pool, GstBuffer * buf) } index = meta->vbuffer.index; + meta->vbuffer.bytesused = gst_buffer_get_size (buf); - GST_LOG_OBJECT (pool, "enqueue buffer %p, index:%d, queued:%d, flags:%08x", - buf, index, pool->num_queued, meta->vbuffer.flags); + GST_LOG_OBJECT (pool, + "enqueue buffer %p, index:%d, queued:%d, flags:%08x used:%d", + buf, index, pool->num_queued, meta->vbuffer.flags, + meta->vbuffer.bytesused); if (pool->buffers[index] != NULL) goto already_queued; @@ -605,17 +706,17 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer) GstV4l2Object *obj = pool->obj; GstClockTime timestamp; - if (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { - /* select works for input devices when data is available. According to the - * specs we can also poll to find out when a frame has been displayed but - * that just seems to lock up here */ - if ((res = gst_v4l2_object_poll (obj)) != GST_FLOW_OK) - goto poll_error; - } + if ((res = gst_v4l2_object_poll (obj)) != GST_FLOW_OK) + goto poll_error; memset (&vbuffer, 0x00, sizeof (vbuffer)); vbuffer.type = obj->type; - vbuffer.memory = V4L2_MEMORY_MMAP; +#if HAVE_DECL_V4L2_MEMORY_DMABUF + if (obj->mode == GST_V4L2_IO_DMABUF) + vbuffer.memory = V4L2_MEMORY_DMABUF; + else +#endif + vbuffer.memory = V4L2_MEMORY_MMAP; GST_LOG_OBJECT (pool, "doing DQBUF"); if (v4l2_ioctl (pool->video_fd, VIDIOC_DQBUF, &vbuffer) < 0) @@ -651,8 +752,6 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer) /* this can change at every frame, esp. with jpeg */ if (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) gst_buffer_resize (outbuf, 0, vbuffer.bytesused); - else - gst_buffer_resize (outbuf, 0, vbuffer.length); GST_BUFFER_TIMESTAMP (outbuf) = timestamp; @@ -744,7 +843,7 @@ gst_v4l2_buffer_pool_acquire_buffer (GstBufferPool * bpool, GstBuffer ** buffer, ret = GST_BUFFER_POOL_CLASS (parent_class)->acquire_buffer (bpool, buffer, params); break; - + case GST_V4L2_IO_DMABUF: case GST_V4L2_IO_MMAP: /* just dequeue a buffer, we basically use the queue of v4l2 as the * storage for our buffers. This function does poll first so we can @@ -756,6 +855,17 @@ gst_v4l2_buffer_pool_acquire_buffer (GstBufferPool * bpool, GstBuffer ** buffer, /* start copying buffers when we are running low on buffers */ if (pool->num_queued < pool->copy_threshold) { GstBuffer *copy; +#ifdef VIDIOC_CREATE_BUFS + if (pool->can_alloc) { + if (GST_BUFFER_POOL_CLASS (parent_class)->acquire_buffer (bpool, + ©, params) == GST_FLOW_OK) { + gst_v4l2_buffer_pool_release_buffer (bpool, copy); + break; + } else { + pool->can_alloc = FALSE; + } + } +#endif /* copy the memory */ copy = gst_buffer_copy (*buffer); @@ -832,6 +942,7 @@ gst_v4l2_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer) GST_BUFFER_POOL_CLASS (parent_class)->release_buffer (bpool, buffer); break; + case GST_V4L2_IO_DMABUF: case GST_V4L2_IO_MMAP: /* queue back in the device */ gst_v4l2_buffer_pool_qbuf (pool, buffer); @@ -854,12 +965,20 @@ gst_v4l2_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer) case GST_V4L2_IO_MMAP: { GstV4l2Meta *meta; + guint index; meta = GST_V4L2_META_GET (buffer); g_assert (meta != NULL); - if (pool->buffers[meta->vbuffer.index] == NULL) { - GST_LOG_OBJECT (pool, "buffer not queued, putting on free list"); + index = meta->vbuffer.index; + + if (pool->buffers[index] == NULL) { + GST_LOG_OBJECT (pool, "buffer %u not queued, putting on free list", + index); + + /* reset to the full length, in case it was changed */ + gst_buffer_resize (buffer, 0, meta->vbuffer.length); + /* playback, put the buffer back in the queue to refill later. */ GST_BUFFER_POOL_CLASS (parent_class)->release_buffer (bpool, buffer); @@ -867,7 +986,7 @@ gst_v4l2_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer) /* the buffer is queued in the device but maybe not played yet. We just * leave it there and not make it available for future calls to acquire * for now. The buffer will be dequeued and reused later. */ - GST_LOG_OBJECT (pool, "buffer is queued"); + GST_LOG_OBJECT (pool, "buffer %u is queued", index); } break; } @@ -890,12 +1009,16 @@ gst_v4l2_buffer_pool_finalize (GObject * object) { GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (object); + gst_v4l2_buffer_pool_free_buffers (pool); + if (pool->video_fd >= 0) v4l2_close (pool->video_fd); if (pool->allocator) gst_object_unref (pool->allocator); g_free (pool->buffers); + gst_object_unref (pool->obj->element); + G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -943,11 +1066,14 @@ gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps) pool = (GstV4l2BufferPool *) g_object_new (GST_TYPE_V4L2_BUFFER_POOL, NULL); pool->video_fd = fd; pool->obj = obj; + pool->can_alloc = TRUE; s = gst_buffer_pool_get_config (GST_BUFFER_POOL_CAST (pool)); gst_buffer_pool_config_set_params (s, caps, obj->sizeimage, 2, 0); gst_buffer_pool_set_config (GST_BUFFER_POOL_CAST (pool), s); + gst_object_ref (obj->element); + return GST_BUFFER_POOL (pool); /* ERRORS */ @@ -1084,14 +1210,14 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer * buf) /* FIXME, do write() */ GST_WARNING_OBJECT (pool, "implement write()"); break; - + case GST_V4L2_IO_DMABUF: case GST_V4L2_IO_MMAP: { GstBuffer *to_queue; if (buf->pool == bpool) { /* nothing, we can queue directly */ - to_queue = buf; + to_queue = gst_buffer_ref (buf); GST_LOG_OBJECT (pool, "processing buffer from our pool"); } else { GST_LOG_OBJECT (pool, "alloc buffer from our pool"); @@ -1113,8 +1239,7 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer * buf) /* this can block if all buffers are outstanding which would be * strange because we would expect the upstream element to have * allocated them and returned to us.. */ - ret = GST_BUFFER_POOL_CLASS (parent_class)->acquire_buffer (bpool, - &to_queue, NULL); + ret = gst_buffer_pool_acquire_buffer (bpool, &to_queue, NULL); if (ret != GST_FLOW_OK) goto acquire_failed; @@ -1133,16 +1258,22 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer * buf) goto start_failed; if (pool->num_queued == pool->num_allocated) { + GstBuffer *out; /* all buffers are queued, try to dequeue one and release it back * into the pool so that _acquire can get to it again. */ - ret = gst_v4l2_buffer_pool_dqbuf (pool, &to_queue); - if (ret != GST_FLOW_OK) + ret = gst_v4l2_buffer_pool_dqbuf (pool, &out); + if (ret != GST_FLOW_OK) { + gst_buffer_unref (to_queue); goto done; + } /* release the rendered buffer back into the pool. This wakes up any - * thread waiting for a buffer in _acquire() */ - gst_v4l2_buffer_pool_release_buffer (bpool, to_queue); + * thread waiting for a buffer in _acquire(). If the buffer still has + * a pool then this will happen when the refcount reaches 0 */ + if (!out->pool) + gst_v4l2_buffer_pool_release_buffer (bpool, out); } + gst_buffer_unref (to_queue); break; } diff --git a/sys/v4l2/gstv4l2bufferpool.h b/sys/v4l2/gstv4l2bufferpool.h index a9b022e9aa872fd421fa4355b049c0ae0d84256c..90ccad4319f68f57dafd3ee4077387b2262e8276 100644 --- a/sys/v4l2/gstv4l2bufferpool.h +++ b/sys/v4l2/gstv4l2bufferpool.h @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_V4L2_BUFFER_POOL_H__ @@ -55,6 +55,7 @@ struct _GstV4l2BufferPool GstAllocationParams params; guint size; gboolean add_videometa; + gboolean can_alloc; /* if extra buffers can be allocated */ guint num_buffers; /* number of buffers we use */ guint num_allocated; /* number of buffers allocated by the driver */ diff --git a/sys/v4l2/gstv4l2colorbalance.c b/sys/v4l2/gstv4l2colorbalance.c index a07c9be3168e1999f03871616951e248211f9216..7b369789f527982cc3b3c0abfdf6d15a97f5e7fe 100644 --- a/sys/v4l2/gstv4l2colorbalance.c +++ b/sys/v4l2/gstv4l2colorbalance.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/v4l2/gstv4l2colorbalance.h b/sys/v4l2/gstv4l2colorbalance.h index cd720a4237e1d9ebf3946d351b81d73dc11edf25..e3be0d4902d32352df63f0489c771336376e2418 100644 --- a/sys/v4l2/gstv4l2colorbalance.h +++ b/sys/v4l2/gstv4l2colorbalance.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_V4L2_COLOR_BALANCE_H__ diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index 843f3b425d39946514d34a60077cac34d4ce433f..8de234a2f97dea080f262194cd48cb8f734e50c6 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -14,7 +14,7 @@ * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, * USA. */ @@ -389,6 +389,7 @@ gst_v4l2_io_mode_get_type (void) {GST_V4L2_IO_RW, "GST_V4L2_IO_RW", "rw"}, {GST_V4L2_IO_MMAP, "GST_V4L2_IO_MMAP", "mmap"}, {GST_V4L2_IO_USERPTR, "GST_V4L2_IO_USERPTR", "userptr"}, + {GST_V4L2_IO_DMABUF, "GST_V4L2_IO_DMABUF", "dmabuf"}, {0, NULL, NULL} }; @@ -489,6 +490,47 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, "I/O mode", GST_TYPE_V4L2_IO_MODE, DEFAULT_PROP_IO_MODE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstV4l2Src:extra-controls + * + * Additional v4l2 controls for the device. The controls are identified + * by the control name (lowercase with '_' for any non-alphanumeric + * characters). + * + * Since: 1.2 + */ + g_object_class_install_property (gobject_class, PROP_EXTRA_CONTROLS, + g_param_spec_boxed ("extra-controls", "Extra Controls", + "Extra v4l2 controls (CIDs) for the device", + GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstV4l2Src:pixel-aspect-ratio + * + * The pixel aspect ratio of the device. This overwrites the pixel aspect + * ratio queried from the device. + * + * Since: 1.2 + */ + g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO, + g_param_spec_string ("pixel-aspect-ratio", "Pixel Aspect Ratio", + "Overwrite the pixel aspect ratio of the device", "1/1", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstV4l2Src:force-aspect-ratio + * + * When enabled, the pixel aspect ratio queried from the device or set + * with the pixel-aspect-ratio property will be enforced. + * + * Since: 1.2 + */ + g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO, + g_param_spec_boolean ("force-aspect-ratio", "Force aspect ratio", + "When enabled, the pixel aspect ratio will be enforced", TRUE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + } GstV4l2Object * @@ -525,6 +567,8 @@ gst_v4l2_object_new (GstElement * element, v4l2object->xwindow_id = 0; + v4l2object->keep_aspect = TRUE; + return v4l2object; } @@ -653,6 +697,32 @@ gst_v4l2_object_set_property_helper (GstV4l2Object * v4l2object, case PROP_IO_MODE: v4l2object->req_mode = g_value_get_enum (value); break; + case PROP_EXTRA_CONTROLS:{ + const GstStructure *s = gst_value_get_structure (value); + + if (v4l2object->extra_controls) + gst_structure_free (v4l2object->extra_controls); + + v4l2object->extra_controls = s ? gst_structure_copy (s) : NULL; + if (GST_V4L2_IS_OPEN (v4l2object)) + gst_v4l2_set_controls (v4l2object, v4l2object->extra_controls); + break; + } + case PROP_PIXEL_ASPECT_RATIO: + g_free (v4l2object->par); + v4l2object->par = g_new0 (GValue, 1); + g_value_init (v4l2object->par, GST_TYPE_FRACTION); + if (!g_value_transform (value, v4l2object->par)) { + g_warning ("Could not transform string to aspect ratio"); + gst_value_set_fraction (v4l2object->par, 1, 1); + } + GST_DEBUG_OBJECT (v4l2object->element, "set PAR to %d/%d", + gst_value_get_fraction_numerator (v4l2object->par), + gst_value_get_fraction_denominator (v4l2object->par)); + break; + case PROP_FORCE_ASPECT_RATIO: + v4l2object->keep_aspect = g_value_get_boolean (value); + break; default: return FALSE; break; @@ -729,6 +799,16 @@ gst_v4l2_object_get_property_helper (GstV4l2Object * v4l2object, case PROP_IO_MODE: g_value_set_enum (value, v4l2object->req_mode); break; + case PROP_EXTRA_CONTROLS: + gst_value_set_structure (value, v4l2object->extra_controls); + break; + case PROP_PIXEL_ASPECT_RATIO: + if (v4l2object->par) + g_value_transform (v4l2object->par, value); + break; + case PROP_FORCE_ASPECT_RATIO: + g_value_set_boolean (value, v4l2object->keep_aspect); + break; default: return FALSE; break; @@ -879,7 +959,13 @@ static const GstV4L2FormatDesc gst_v4l2_formats[] = { #endif {V4L2_PIX_FMT_DV, TRUE}, {V4L2_PIX_FMT_MPEG, FALSE}, +#ifdef V4L2_PIX_FMT_MPEG4 + {V4L2_PIX_FMT_MPEG4, TRUE}, +#endif +#ifdef V4L2_PIX_FMT_H263 + {V4L2_PIX_FMT_H263, TRUE}, +#endif #ifdef V4L2_PIX_FMT_H264 {V4L2_PIX_FMT_H264, TRUE}, #endif @@ -1203,6 +1289,19 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc) case V4L2_PIX_FMT_HI240: /* 8 8-bit color */ /* FIXME: get correct fourccs here */ break; +#ifdef V4L2_PIX_FMT_MPEG4 + case V4L2_PIX_FMT_MPEG4: + structure = gst_structure_new ("video/mpeg", + "mpegversion", G_TYPE_INT, 4, "systemstream", + G_TYPE_BOOLEAN, FALSE, NULL); + break; +#endif +#ifdef V4L2_PIX_FMT_H263 + case V4L2_PIX_FMT_H263: + structure = gst_structure_new ("video/x-h263", + "variant", G_TYPE_STRING, "itu", NULL); + break; +#endif #ifdef V4L2_PIX_FMT_H264 case V4L2_PIX_FMT_H264: /* H.264 */ structure = gst_structure_new_empty ("video/x-h264"); @@ -1403,11 +1502,10 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps, mimetype = gst_structure_get_name (structure); - if (g_str_equal (mimetype, "video/x-raw")) { - /* raw caps, parse into video info */ - if (!gst_video_info_from_caps (info, caps)) - goto invalid_format; + if (!gst_video_info_from_caps (info, caps)) + goto invalid_format; + if (g_str_equal (mimetype, "video/x-raw")) { switch (GST_VIDEO_INFO_FORMAT (info)) { case GST_VIDEO_FORMAT_I420: fourcc = V4L2_PIX_FMT_YUV420; @@ -1469,18 +1567,20 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps, break; } } else { - gboolean dimensions = TRUE; - - /* no video caps, construct videoinfo ourselves */ - gst_video_info_init (info); - if (g_str_equal (mimetype, "video/mpegts")) { fourcc = V4L2_PIX_FMT_MPEG; - dimensions = FALSE; } else if (g_str_equal (mimetype, "video/x-dv")) { fourcc = V4L2_PIX_FMT_DV; } else if (g_str_equal (mimetype, "image/jpeg")) { fourcc = V4L2_PIX_FMT_JPEG; +#ifdef V4L2_PIX_FMT_MPEG4 + } else if (g_str_equal (mimetype, "video/mpeg")) { + fourcc = V4L2_PIX_FMT_MPEG4; +#endif +#ifdef V4L2_PIX_FMT_H263 + } else if (g_str_equal (mimetype, "video/x-h263")) { + fourcc = V4L2_PIX_FMT_H263; +#endif #ifdef V4L2_PIX_FMT_H264 } else if (g_str_equal (mimetype, "video/x-h264")) { fourcc = V4L2_PIX_FMT_H264; @@ -1502,26 +1602,6 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps, fourcc = V4L2_PIX_FMT_PWC2; } #endif - - if (dimensions) { - const gchar *interlace_mode; - - if (!gst_structure_get_int (structure, "width", &info->width)) - goto no_width; - - if (!gst_structure_get_int (structure, "height", &info->height)) - goto no_height; - - interlace_mode = gst_structure_get_string (structure, "interlace-mode"); - if (g_str_equal (interlace_mode, "progressive")) { - info->interlace_mode = GST_VIDEO_INTERLACE_MODE_PROGRESSIVE; - } else { - info->interlace_mode = GST_VIDEO_INTERLACE_MODE_MIXED; - } - if (!gst_structure_get_fraction (structure, "framerate", &info->fps_n, - &info->fps_d)) - goto no_framerate; - } } if (fourcc == 0) @@ -1536,21 +1616,6 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps, return TRUE; /* ERRORS */ -no_width: - { - GST_DEBUG_OBJECT (v4l2object, "no width"); - return FALSE; - } -no_height: - { - GST_DEBUG_OBJECT (v4l2object, "no height"); - return FALSE; - } -no_framerate: - { - GST_DEBUG_OBJECT (v4l2object, "no framerate"); - return FALSE; - } invalid_format: { GST_DEBUG_OBJECT (v4l2object, "invalid format"); @@ -1573,6 +1638,43 @@ static gboolean gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object, guint32 pixelformat, gint * width, gint * height, gboolean * interlaced); +static void +gst_v4l2_object_add_aspect_ratio (GstV4l2Object * v4l2object, GstStructure * s) +{ + struct v4l2_cropcap cropcap; + int num = 1, den = 1; + + if (!v4l2object->keep_aspect) + return; + + if (v4l2object->par) { + num = gst_value_get_fraction_numerator (v4l2object->par); + den = gst_value_get_fraction_denominator (v4l2object->par); + goto done; + } + + memset (&cropcap, 0, sizeof (cropcap)); + + cropcap.type = v4l2object->type; + if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_CROPCAP, &cropcap) < 0) + goto cropcap_failed; + + num = cropcap.pixelaspect.numerator; + den = cropcap.pixelaspect.denominator; + +done: + gst_structure_set (s, "pixel-aspect-ratio", GST_TYPE_FRACTION, num, den, + NULL); + return; + +cropcap_failed: + if (errno != ENOTTY) + GST_WARNING_OBJECT (v4l2object->element, + "Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: %s", + g_strerror (errno)); + goto done; +} + /* The frame interval enumeration code first appeared in Linux 2.6.19. */ #ifdef VIDIOC_ENUM_FRAMEINTERVALS @@ -1759,9 +1861,11 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object, return_data: s = gst_structure_copy (template); gst_structure_set (s, "width", G_TYPE_INT, (gint) width, - "height", G_TYPE_INT, (gint) height, - "interlace-mode", G_TYPE_STRING, (interlaced ? "mixed" : "progressive"), - "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, NULL); + "height", G_TYPE_INT, (gint) height, NULL); + gst_v4l2_object_add_aspect_ratio (v4l2object, s); + if (g_str_equal (gst_structure_get_name (s), "video/x-raw")) + gst_structure_set (s, "interlace-mode", G_TYPE_STRING, + (interlaced ? "mixed" : "progressive"), NULL); if (G_IS_VALUE (&rates)) { /* only change the framerate on the template when we have a valid probed new @@ -2021,10 +2125,10 @@ default_frame_sizes: else gst_structure_set (tmp, "height", GST_TYPE_INT_RANGE, min_h, max_h, NULL); - gst_structure_set (tmp, "interlace-mode", G_TYPE_STRING, - (interlaced ? "mixed" : "progressive"), NULL); - gst_structure_set (tmp, "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, - NULL); + if (g_str_equal (gst_structure_get_name (tmp), "video/x-raw")) + gst_structure_set (tmp, "interlace-mode", G_TYPE_STRING, + (interlaced ? "mixed" : "progressive"), NULL); + gst_v4l2_object_add_aspect_ratio (v4l2object, tmp); gst_caps_append_structure (ret, tmp); @@ -2205,12 +2309,6 @@ no_supported_capture_method: } } - -/* Note about fraction simplification - * * n1/d1 == n2/d2 is also written as n1 == ( n2 * d1 ) / d2 - * */ -#define fractions_are_equal(n1,d1,n2,d2) ((n1) == gst_util_uint64_scale_int((n2), (d1), (d2))) - gboolean gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps) { @@ -2439,7 +2537,7 @@ invalid_pixelformat: get_parm_failed: { /* it's possible that this call is not supported */ - if (errno != EINVAL) { + if (errno != EINVAL && errno != ENOTTY) { GST_ELEMENT_WARNING (v4l2object->element, RESOURCE, SETTINGS, (_("Could not get parameters on device '%s'"), v4l2object->videodev), GST_ERROR_SYSTEM); @@ -2461,6 +2559,21 @@ pool_failed: } } +gboolean +gst_v4l2_object_caps_equal (GstV4l2Object * v4l2object, GstCaps * caps) +{ + GstStructure *s; + GstCaps *oldcaps; + + if (!v4l2object->pool) + return FALSE; + + s = gst_buffer_pool_get_config (GST_BUFFER_POOL_CAST (v4l2object->pool)); + gst_buffer_pool_config_get_params (s, &oldcaps, NULL, NULL, NULL); + + return oldcaps && gst_caps_is_equal (caps, oldcaps); +} + gboolean gst_v4l2_object_unlock (GstV4l2Object * v4l2object) { @@ -2506,7 +2619,10 @@ gboolean gst_v4l2_object_copy (GstV4l2Object * v4l2object, GstBuffer * dest, GstBuffer * src) { - if (v4l2object->info.finfo) { + const GstVideoFormatInfo *finfo = v4l2object->info.finfo; + + if (finfo && (finfo->format != GST_VIDEO_FORMAT_UNKNOWN && + finfo->format != GST_VIDEO_FORMAT_ENCODED)) { GstVideoFrame src_frame, dest_frame; GST_DEBUG_OBJECT (v4l2object->element, "copy video frame"); @@ -2530,8 +2646,9 @@ gst_v4l2_object_copy (GstV4l2Object * v4l2object, GstBuffer * dest, GST_DEBUG_OBJECT (v4l2object->element, "copy raw bytes"); gst_buffer_map (src, &map, GST_MAP_READ); - gst_buffer_fill (dest, 0, map.data, map.size); + gst_buffer_fill (dest, 0, map.data, gst_buffer_get_size (src)); gst_buffer_unmap (src, &map); + gst_buffer_resize (dest, 0, gst_buffer_get_size (src)); } GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, v4l2object->element, "slow copy into buffer %p", dest); diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h index 9b3c5d270013ec9f18528ea1569c1a1e0fe6c2eb..1876f5992be2c3fc915a645ab42bfaefa4a20352 100644 --- a/sys/v4l2/gstv4l2object.h +++ b/sys/v4l2/gstv4l2object.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_V4L2_OBJECT_H__ @@ -75,7 +75,8 @@ typedef enum { GST_V4L2_IO_AUTO = 0, GST_V4L2_IO_RW = 1, GST_V4L2_IO_MMAP = 2, - GST_V4L2_IO_USERPTR = 3 + GST_V4L2_IO_USERPTR = 3, + GST_V4L2_IO_DMABUF = 4 } GstV4l2IOMode; typedef gboolean (*GstV4l2GetInOutFunction) (GstV4l2Object * v4l2object, gint * input); @@ -142,11 +143,15 @@ struct _GstV4l2Object { GList *colors; GList *norms; GList *channels; + GData *controls; /* properties */ v4l2_std_id tv_norm; gchar *channel; gulong frequency; + GstStructure *extra_controls; + gboolean keep_aspect; + GValue *par; /* X-overlay */ GstV4l2Xv *xv; @@ -175,7 +180,10 @@ GType gst_v4l2_object_get_type (void); PROP_SATURATION, \ PROP_HUE, \ PROP_TV_NORM, \ - PROP_IO_MODE + PROP_IO_MODE, \ + PROP_EXTRA_CONTROLS, \ + PROP_PIXEL_ASPECT_RATIO, \ + PROP_FORCE_ASPECT_RATIO /* create/destroy */ GstV4l2Object * gst_v4l2_object_new (GstElement * element, @@ -226,6 +234,8 @@ GstStructure* gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc); gboolean gst_v4l2_object_set_format (GstV4l2Object *v4l2object, GstCaps * caps); +gboolean gst_v4l2_object_caps_equal (GstV4l2Object * v4l2object, GstCaps * caps); + gboolean gst_v4l2_object_unlock (GstV4l2Object *v4l2object); gboolean gst_v4l2_object_unlock_stop (GstV4l2Object *v4l2object); diff --git a/sys/v4l2/gstv4l2radio.c b/sys/v4l2/gstv4l2radio.c index 831db61eee1c0270379c645c19f13ecd9e964188..7a6463c1a97738a8f635e19c9378d7d61514937c 100644 --- a/sys/v4l2/gstv4l2radio.c +++ b/sys/v4l2/gstv4l2radio.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** diff --git a/sys/v4l2/gstv4l2radio.h b/sys/v4l2/gstv4l2radio.h index 68b7ec3912597a931fd320d8c30f8f63f26874ca..2fda4fb46523e4a7d3f0b80cc7ae932b9614d706 100644 --- a/sys/v4l2/gstv4l2radio.h +++ b/sys/v4l2/gstv4l2radio.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_V4L2RADIO_H__ diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c index 115f0578ea74901ad2211722f07409e63d220be3..b291aa8895a29f21c406f4ec40f7c24970dd2043 100644 --- a/sys/v4l2/gstv4l2sink.c +++ b/sys/v4l2/gstv4l2sink.c @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -574,6 +574,10 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps) return FALSE; } + /* make sure the caps changed before doing anything */ + if (gst_v4l2_object_caps_equal (obj, caps)) + return TRUE; + if (!gst_v4l2_object_stop (obj)) goto stop_failed; diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h index b461e2c922d79718e4fdbb11b1686904e42357a2..eb31ff7a240df7b8c98021c3f465dd9090224866 100644 --- a/sys/v4l2/gstv4l2sink.h +++ b/sys/v4l2/gstv4l2sink.h @@ -18,8 +18,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GSTV4L2SINK_H__ diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c index ce92d36abe6de2fee997e7065b5e109bc437adce..107ea21ba54e59b508a78840316496b7532e2b89 100644 --- a/sys/v4l2/gstv4l2src.c +++ b/sys/v4l2/gstv4l2src.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -128,7 +128,6 @@ static gboolean gst_v4l2src_decide_allocation (GstBaseSrc * src, GstQuery * query); static GstFlowReturn gst_v4l2src_fill (GstPushSrc * src, GstBuffer * out); static GstCaps *gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps); -static gboolean gst_v4l2src_event (GstBaseSrc * src, GstEvent * event); static gboolean gst_v4l2src_negotiate (GstBaseSrc * basesrc); static void gst_v4l2src_set_property (GObject * object, guint prop_id, @@ -163,9 +162,7 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass) * GstV4l2Src::prepare-format: * @v4l2src: the v4l2src instance * @fd: the file descriptor of the current device - * @fourcc: the fourcc of the format being set - * @width: The width of the video - * @height: The height of the video + * @caps: the caps of the format being set * * This signal gets emitted before calling the v4l2 VIDIOC_S_FMT ioctl * (set format). This allows for any custom configuration of the device to @@ -178,9 +175,7 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass) gst_v4l2_signals[SIGNAL_PRE_SET_FORMAT] = g_signal_new ("prepare-format", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, - 0, - NULL, NULL, - NULL, G_TYPE_NONE, 4, G_TYPE_INT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); + 0, NULL, NULL, NULL, G_TYPE_NONE, 2, G_TYPE_INT, GST_TYPE_CAPS); gst_element_class_set_static_metadata (element_class, "Video (video4linux2) Source", "Source/Video", @@ -201,7 +196,6 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass) basesrc_class->stop = GST_DEBUG_FUNCPTR (gst_v4l2src_stop); basesrc_class->query = GST_DEBUG_FUNCPTR (gst_v4l2src_query); basesrc_class->fixate = GST_DEBUG_FUNCPTR (gst_v4l2src_fixate); - basesrc_class->event = GST_DEBUG_FUNCPTR (gst_v4l2src_event); basesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_v4l2src_negotiate); basesrc_class->decide_allocation = GST_DEBUG_FUNCPTR (gst_v4l2src_decide_allocation); @@ -310,30 +304,23 @@ gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps) } -static gboolean -gst_v4l2src_event (GstBaseSrc * src, GstEvent * event) -{ - GST_DEBUG_OBJECT (src, "handle event %" GST_PTR_FORMAT, event); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_RECONFIGURE: - gst_pad_check_reconfigure (GST_BASE_SRC_PAD (src)); - break; - default: - break; - } - return GST_BASE_SRC_CLASS (parent_class)->event (src, event); -} - - static gboolean gst_v4l2src_negotiate (GstBaseSrc * basesrc) { + GstV4l2Src *v4l2src; + GstV4l2Object *obj; GstCaps *thiscaps; GstCaps *caps = NULL; GstCaps *peercaps = NULL; gboolean result = FALSE; + v4l2src = GST_V4L2SRC (basesrc); + obj = v4l2src->v4l2object; + + /* We don't allow renegotiation, just return TRUE in that case */ + if (GST_V4L2_IS_ACTIVE (obj)) + return TRUE; + /* first see what is possible on our source pad */ thiscaps = gst_pad_query_caps (GST_BASE_SRC_PAD (basesrc), NULL); GST_DEBUG_OBJECT (basesrc, "caps of src: %" GST_PTR_FORMAT, thiscaps); @@ -343,8 +330,8 @@ gst_v4l2src_negotiate (GstBaseSrc * basesrc) if (thiscaps == NULL || gst_caps_is_any (thiscaps)) goto no_nego_needed; - /* get the peer caps */ - peercaps = gst_pad_peer_query_caps (GST_BASE_SRC_PAD (basesrc), thiscaps); + /* get the peer caps without a filter as we'll filter ourselves later on */ + peercaps = gst_pad_peer_query_caps (GST_BASE_SRC_PAD (basesrc), NULL); GST_DEBUG_OBJECT (basesrc, "caps of peer: %" GST_PTR_FORMAT, peercaps); LOG_CAPS (basesrc, peercaps); if (peercaps && !gst_caps_is_any (peercaps)) { @@ -507,10 +494,17 @@ gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps) v4l2src = GST_V4L2SRC (src); obj = v4l2src->v4l2object; + /* make sure the caps changed before doing anything */ + if (gst_v4l2_object_caps_equal (obj, caps)) + return TRUE; + /* make sure we stop capturing and dealloc buffers */ if (!gst_v4l2_object_stop (obj)) return FALSE; + g_signal_emit (v4l2src, gst_v4l2_signals[SIGNAL_PRE_SET_FORMAT], 0, + v4l2src->v4l2object->video_fd, caps); + if (!gst_v4l2_object_set_format (obj, caps)) /* error already posted */ return FALSE; @@ -572,6 +566,7 @@ gst_v4l2src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query) break; case GST_V4L2_IO_MMAP: case GST_V4L2_IO_USERPTR: + case GST_V4L2_IO_DMABUF: /* in streaming mode, prefer our own pool */ pool = GST_BUFFER_POOL_CAST (obj->pool); size = obj->sizeimage; diff --git a/sys/v4l2/gstv4l2src.h b/sys/v4l2/gstv4l2src.h index db5209243af83c4ae7e850670dc264d011292c71..e7cb04e0427e4cd399f8c561a71e04c33414669b 100644 --- a/sys/v4l2/gstv4l2src.h +++ b/sys/v4l2/gstv4l2src.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_V4L2SRC_H__ diff --git a/sys/v4l2/gstv4l2tuner.c b/sys/v4l2/gstv4l2tuner.c index c885dc67400d8d6585bfbc3927740efcf05cc8be..536fbbd7c58a16995621c332be1455baed1cd344 100644 --- a/sys/v4l2/gstv4l2tuner.c +++ b/sys/v4l2/gstv4l2tuner.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/v4l2/gstv4l2tuner.h b/sys/v4l2/gstv4l2tuner.h index 5a6e2f54dca7ef2d78e7079e6681826ec4e93007..3556502b20346b48885ccb8a4d657e474578a72c 100644 --- a/sys/v4l2/gstv4l2tuner.h +++ b/sys/v4l2/gstv4l2tuner.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_V4L2_TUNER_H__ diff --git a/sys/v4l2/gstv4l2videooverlay.c b/sys/v4l2/gstv4l2videooverlay.c index 88ccf5cdfcd337daae0dad1ac219a58f9ec75298..66d2109beaee13ca05328fbc7b8799fc9368c495 100644 --- a/sys/v4l2/gstv4l2videooverlay.c +++ b/sys/v4l2/gstv4l2videooverlay.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/v4l2/gstv4l2videooverlay.h b/sys/v4l2/gstv4l2videooverlay.h index 0f602e75ca758dc677d1ab23aaa5d966923d6f69..cd4091621f0315c2978dba02ff3172a88f972566 100644 --- a/sys/v4l2/gstv4l2videooverlay.h +++ b/sys/v4l2/gstv4l2videooverlay.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_V4L2_VIDEO_OVERLAY_H__ diff --git a/sys/v4l2/gstv4l2vidorient.c b/sys/v4l2/gstv4l2vidorient.c index 4dc0da73f2a306bda02c58612e434e9bb6eac43a..75589470f58153c8b809e08612c64f92c8972cf6 100644 --- a/sys/v4l2/gstv4l2vidorient.c +++ b/sys/v4l2/gstv4l2vidorient.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/v4l2/gstv4l2vidorient.h b/sys/v4l2/gstv4l2vidorient.h index 41da501b39c28729e3c65c9b91317eaaa0941bb9..ab88478524ef8901fe2e611834026db79a9addb1 100644 --- a/sys/v4l2/gstv4l2vidorient.h +++ b/sys/v4l2/gstv4l2vidorient.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_V4L2_VIDORIENT_H__ diff --git a/sys/v4l2/tuner.c b/sys/v4l2/tuner.c index 59cea711d49772a6c1a27068a8b70294165fb1e6..738bd4fd1b7f7ce7468223639663bb50ef8c80d4 100644 --- a/sys/v4l2/tuner.c +++ b/sys/v4l2/tuner.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/v4l2/tuner.h b/sys/v4l2/tuner.h index c7cffe509c416ff5b53a93aca9219d32e55cc3b6..d245a170b91029ccf0a6d86eaa808a7cacfac1b4 100644 --- a/sys/v4l2/tuner.h +++ b/sys/v4l2/tuner.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_TUNER_H__ diff --git a/sys/v4l2/tunerchannel.c b/sys/v4l2/tunerchannel.c index ac2b74e8199d64b428e6f8d250e7c8776e415c30..0911f672be6dc090ab0ebb837ac0157c281effaa 100644 --- a/sys/v4l2/tunerchannel.c +++ b/sys/v4l2/tunerchannel.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/v4l2/tunerchannel.h b/sys/v4l2/tunerchannel.h index 1bbb6cfaae2bcc931d5c0adee85ca4b6b797841b..0080c734c789a52e55d95742eb442bf0914369cc 100644 --- a/sys/v4l2/tunerchannel.h +++ b/sys/v4l2/tunerchannel.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_TUNER_CHANNEL_H__ diff --git a/sys/v4l2/tunernorm.c b/sys/v4l2/tunernorm.c index 47260b0ed1d652c22f9b29d1e8f70a7efd0c69dd..a43fce536b92b96980c7d3086629e84e3da2670d 100644 --- a/sys/v4l2/tunernorm.c +++ b/sys/v4l2/tunernorm.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/v4l2/tunernorm.h b/sys/v4l2/tunernorm.h index 988f4cb5d725212ab89f4354cc063369b9b443fa..94da22ca9c41d4847802679c9db2114b394541fd 100644 --- a/sys/v4l2/tunernorm.h +++ b/sys/v4l2/tunernorm.h @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_TUNER_NORM_H__ diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c index 7c27024695dd280d3f8d8780fc8554b69c70920e..a84ce506bfe4d04108cb54cd7da10e44d673c948 100644 --- a/sys/v4l2/v4l2_calls.c +++ b/sys/v4l2/v4l2_calls.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -109,7 +109,8 @@ cap_failed: static gboolean gst_v4l2_fill_lists (GstV4l2Object * v4l2object) { - gint n; + gint n, next; + struct v4l2_queryctrl control = { 0, }; GstElement *e; @@ -145,7 +146,8 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) GST_LOG_OBJECT (e, " name: '%s'", input.name); GST_LOG_OBJECT (e, " type: %08x", input.type); GST_LOG_OBJECT (e, " audioset: %08x", input.audioset); - GST_LOG_OBJECT (e, " std: %016" G_GINT64_MODIFIER "x", input.std); + GST_LOG_OBJECT (e, " std: %016" G_GINT64_MODIFIER "x", + (guint64) input.std); GST_LOG_OBJECT (e, " status: %08x", input.status); v4l2channel = g_object_new (GST_TYPE_V4L2_TUNER_CHANNEL, NULL); @@ -203,7 +205,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) standard.index = n; if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_ENUMSTD, &standard) < 0) { - if (errno == EINVAL || errno == ENOTTY) + if (errno == EINVAL || errno == ENOTTY || errno == ENODATA) break; /* end of enumeration */ else { GST_ELEMENT_ERROR (e, RESOURCE, SETTINGS, @@ -236,11 +238,21 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) GST_DEBUG_OBJECT (e, " controls+menus"); /* and lastly, controls+menus (if appropriate) */ - for (n = V4L2_CID_BASE;; n++) { - struct v4l2_queryctrl control = { 0, }; +#ifdef V4L2_CTRL_FLAG_NEXT_CTRL + next = V4L2_CTRL_FLAG_NEXT_CTRL; + n = 0; +#else + next = 0; + n = V4L2_CID_BASE; +#endif + control.id = next; + while (TRUE) { GstV4l2ColorBalanceChannel *v4l2channel; GstColorBalanceChannel *channel; + if (!next) + n++; + /* when we reached the last official CID, continue with private CIDs */ if (n == V4L2_CID_LASTP1) { GST_DEBUG_OBJECT (e, "checking private CIDs"); @@ -248,8 +260,19 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) } GST_DEBUG_OBJECT (e, "checking control %08x", n); - control.id = n; + control.id = n | next; if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_QUERYCTRL, &control) < 0) { + if (next) { + if (n > 0) { + GST_DEBUG_OBJECT (e, "controls finished"); + break; + } else { + GST_DEBUG_OBJECT (e, "V4L2_CTRL_FLAG_NEXT_CTRL not supported."); + next = 0; + n = V4L2_CID_BASE; + continue; + } + } if (errno == EINVAL || errno == ENOTTY || errno == EIO || errno == ENOENT) { if (n < V4L2_CID_PRIVATE_BASE) { GST_DEBUG_OBJECT (e, "skipping control %08x", n); @@ -265,10 +288,47 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) continue; } } + n = control.id; if (control.flags & V4L2_CTRL_FLAG_DISABLED) { GST_DEBUG_OBJECT (e, "skipping disabled control"); continue; } +#ifdef V4L2_CTRL_TYPE_CTRL_CLASS + if (control.type == V4L2_CTRL_TYPE_CTRL_CLASS) { + GST_DEBUG_OBJECT (e, "starting control class '%s'", control.name); + continue; + } +#endif + switch (control.type) { + case V4L2_CTRL_TYPE_INTEGER: + case V4L2_CTRL_TYPE_BOOLEAN: + case V4L2_CTRL_TYPE_MENU: +#ifdef V4L2_CTRL_TYPE_INTEGER_MENU + case V4L2_CTRL_TYPE_INTEGER_MENU: +#endif +#ifdef V4L2_CTRL_TYPE_BITMASK + case V4L2_CTRL_TYPE_BITMASK: +#endif + case V4L2_CTRL_TYPE_BUTTON:{ + int i; + control.name[31] = '\0'; + for (i = 0; control.name[i]; ++i) { + control.name[i] = g_ascii_tolower (control.name[i]); + if (!g_ascii_isalnum (control.name[i])) + control.name[i] = '_'; + } + GST_INFO_OBJECT (e, "adding generic controls '%s'", control.name); + g_datalist_id_set_data (&v4l2object->controls, + g_quark_from_string ((const gchar *) control.name), + GINT_TO_POINTER (n)); + break; + } + default: + GST_DEBUG_OBJECT (e, + "Control type for '%s' not suppored for extra controls.", + control.name); + break; + } switch (n) { case V4L2_CID_BRIGHTNESS: @@ -406,6 +466,8 @@ gst_v4l2_empty_lists (GstV4l2Object * v4l2object) g_list_foreach (v4l2object->colors, (GFunc) g_object_unref, NULL); g_list_free (v4l2object->colors); v4l2object->colors = NULL; + + g_datalist_clear (&v4l2object->controls); } /****************************************************** @@ -480,7 +542,13 @@ gst_v4l2_open (GstV4l2Object * v4l2object) pollfd.fd = v4l2object->video_fd; gst_poll_add_fd (v4l2object->poll, &pollfd); - gst_poll_fd_ctl_read (v4l2object->poll, &pollfd, TRUE); + if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) + gst_poll_fd_ctl_read (v4l2object->poll, &pollfd, TRUE); + else + gst_poll_fd_ctl_write (v4l2object->poll, &pollfd, TRUE); + + if (v4l2object->extra_controls) + gst_v4l2_set_controls (v4l2object, v4l2object->extra_controls); return TRUE; @@ -807,6 +875,33 @@ ctrl_failed: } } +static gboolean +set_contol (GQuark field_id, const GValue * value, gpointer user_data) +{ + GstV4l2Object *v4l2object = user_data; + gpointer *d = g_datalist_id_get_data (&v4l2object->controls, field_id); + if (!d) { + GST_WARNING_OBJECT (v4l2object, + "Control '%s' does not exist or has an unsupported type.", + g_quark_to_string (field_id)); + return TRUE; + } + if (!G_VALUE_HOLDS (value, G_TYPE_INT)) { + GST_WARNING_OBJECT (v4l2object, + "'int' value expected for control '%s'.", g_quark_to_string (field_id)); + return TRUE; + } + gst_v4l2_set_attribute (v4l2object, GPOINTER_TO_INT (d), + g_value_get_int (value)); + return TRUE; +} + +gboolean +gst_v4l2_set_controls (GstV4l2Object * v4l2object, GstStructure * controls) +{ + return gst_structure_foreach (controls, set_contol, v4l2object); +} + gboolean gst_v4l2_get_input (GstV4l2Object * v4l2object, gint * input) { diff --git a/sys/v4l2/v4l2_calls.h b/sys/v4l2/v4l2_calls.h index 36cf0f3a94099722ae024ed7548924508d601e66..221d26e075d61dd40dcc85468cf1de24276eecfc 100644 --- a/sys/v4l2/v4l2_calls.h +++ b/sys/v4l2/v4l2_calls.h @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __V4L2_CALLS_H__ @@ -126,6 +126,9 @@ gboolean gst_v4l2_set_attribute (GstV4l2Object *v4l2object, int attribute, const int value); +gboolean gst_v4l2_set_controls (GstV4l2Object * v4l2object, + GstStructure * controls); + gboolean gst_v4l2_get_capabilities (GstV4l2Object * v4l2object); diff --git a/sys/waveform/Makefile.in b/sys/waveform/Makefile.in index e042dfab75def05c3248c8fa9cd9771a9ab8d505..d518ac015950e2bf6470ae3967640122b513bc58 100644 --- a/sys/waveform/Makefile.in +++ b/sys/waveform/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = sys/waveform -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -137,10 +163,23 @@ libgstwaveformsink_la_OBJECTS = $(am_libgstwaveformsink_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstwaveformsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) \ $(libgstwaveformsink_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstwaveformsink_la_SOURCES) DIST_SOURCES = $(libgstwaveformsink_la_SOURCES) am__can_run_installinfo = \ @@ -175,6 +210,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -343,6 +395,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -552,6 +605,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -578,12 +632,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstwaveformsink.la: $(libgstwaveformsink_la_OBJECTS) $(libgstwaveformsink_la_DEPENDENCIES) $(EXTRA_libgstwaveformsink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwaveformsink_la_LINK) -rpath $(plugindir) $(libgstwaveformsink_la_OBJECTS) $(libgstwaveformsink_la_LIBADD) $(LIBS) @@ -637,26 +694,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -668,15 +714,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -685,6 +727,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -829,19 +886,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/sys/waveform/gstwaveformplugin.c b/sys/waveform/gstwaveformplugin.c index a169dd4667d6f2071f14ba8dd607e365e6984226..d00c4c245eb5811b0b6eac305c37af5e4b6de898 100644 --- a/sys/waveform/gstwaveformplugin.c +++ b/sys/waveform/gstwaveformplugin.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the -* Free Software Foundation, Inc., 59 Temple Place - Suite 330, -* Boston, MA 02111-1307, USA. +* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +* Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/waveform/gstwaveformsink.c b/sys/waveform/gstwaveformsink.c index 3056795518525b19185b7f2176792a26ce629e0c..93414755544726868cc0a3c97343411781d91b40 100644 --- a/sys/waveform/gstwaveformsink.c +++ b/sys/waveform/gstwaveformsink.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the -* Free Software Foundation, Inc., 59 Temple Place - Suite 330, -* Boston, MA 02111-1307, USA. +* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +* Boston, MA 02110-1301, USA. */ /** diff --git a/sys/waveform/gstwaveformsink.h b/sys/waveform/gstwaveformsink.h index b23aea145ad86e720f11b36f46103675712af783..340dfc35562793619c2ac5fa7e49671eef6c6d63 100644 --- a/sys/waveform/gstwaveformsink.h +++ b/sys/waveform/gstwaveformsink.h @@ -15,14 +15,15 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_WAVEFORMSINK_H__ #define __GST_WAVEFORMSINK_H__ #include <gst/gst.h> +#include <gst/audio/audio.h> #include <gst/audio/gstaudiosink.h> #include <windows.h> diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in index bda8135eddffe99da8d827a7aad4e0c5ae63a228..96d70137b097c6e35ddfd2f0536be42785078450 100644 --- a/sys/ximage/Makefile.in +++ b/sys/ximage/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,15 +81,14 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = sys/ximage -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -138,10 +164,23 @@ libgstximagesrc_la_OBJECTS = $(am_libgstximagesrc_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libgstximagesrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) \ $(libgstximagesrc_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libgstximagesrc_la_SOURCES) DIST_SOURCES = $(libgstximagesrc_la_SOURCES) am__can_run_installinfo = \ @@ -176,6 +211,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -344,6 +396,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ @@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES: clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libgstximagesrc.la: $(libgstximagesrc_la_OBJECTS) $(libgstximagesrc_la_DEPENDENCIES) $(EXTRA_libgstximagesrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstximagesrc_la_LINK) -rpath $(plugindir) $(libgstximagesrc_la_OBJECTS) $(libgstximagesrc_la_LIBADD) $(LIBS) @@ -639,26 +696,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -670,15 +716,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -687,6 +729,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -831,19 +888,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/sys/ximage/gstximagesrc.c b/sys/ximage/gstximagesrc.c index ff24de9851489f8857caa5e76678226535dbb3b6..644768d8555e5e114f1a22c09e46a4414eb30a68 100644 --- a/sys/ximage/gstximagesrc.c +++ b/sys/ximage/gstximagesrc.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /** @@ -862,7 +862,8 @@ gst_ximage_src_create (GstPushSrc * bs, GstBuffer ** buf) return GST_FLOW_ERROR; *buf = image; - GST_BUFFER_TIMESTAMP (*buf) = next_capture_ts; + GST_BUFFER_DTS (*buf) = GST_CLOCK_TIME_NONE; + GST_BUFFER_PTS (*buf) = next_capture_ts; GST_BUFFER_DURATION (*buf) = dur; return GST_FLOW_OK; diff --git a/sys/ximage/gstximagesrc.h b/sys/ximage/gstximagesrc.h index 7f5275a85a3bff57fa2fde6d77d0ee0c5cc4da78..76506bffc5cd33622106d9d2db9a7fccef358730 100644 --- a/sys/ximage/gstximagesrc.h +++ b/sys/ximage/gstximagesrc.h @@ -12,8 +12,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_XIMAGE_SRC_H__ diff --git a/sys/ximage/ximageutil.c b/sys/ximage/ximageutil.c index 20b2dc2b7cb872e5d7935ff41a20a1710fe49865..76d2866ac0a2d865d4d5308b930bb93fd96d1849 100644 --- a/sys/ximage/ximageutil.c +++ b/sys/ximage/ximageutil.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/sys/ximage/ximageutil.h b/sys/ximage/ximageutil.h index 12f2c1064241355dff14da33b52db21826ddcf7a..d5e88fac8e06feff5042ebc7039dcc76b2333031 100644 --- a/sys/ximage/ximageutil.h +++ b/sys/ximage/ximageutil.h @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_XIMAGEUTIL_H__ diff --git a/test-driver b/test-driver new file mode 100755 index 0000000000000000000000000000000000000000..32bf39e83779d29b4f6aa91eccb386792afaba49 --- /dev/null +++ b/test-driver @@ -0,0 +1,127 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2012-06-27.10; # UTC + +# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <bug-automake@gnu.org> or send patches to +# <automake-patches@gnu.org>. + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <<END +Usage: + test-driver --test-name=NAME --log-file=PATH --trs-file=PATH + [--expect-failure={yes|no}] [--color-tests={yes|no}] + [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT +The '--test-name', '--log-file' and '--trs-file' options are mandatory. +END +} + +# TODO: better error handling in option parsing (in particular, ensure +# TODO: $log_file, $trs_file and $test_name are defined). +test_name= # Used for reporting. +log_file= # Where to save the output of the test script. +trs_file= # Where to save the metadata of the test run. +expect_failure=no +color_tests=no +enable_hard_errors=yes +while test $# -gt 0; do + case $1 in + --help) print_usage; exit $?;; + --version) echo "test-driver $scriptversion"; exit $?;; + --test-name) test_name=$2; shift;; + --log-file) log_file=$2; shift;; + --trs-file) trs_file=$2; shift;; + --color-tests) color_tests=$2; shift;; + --expect-failure) expect_failure=$2; shift;; + --enable-hard-errors) enable_hard_errors=$2; shift;; + --) shift; break;; + -*) usage_error "invalid option: '$1'";; + esac + shift +done + +if test $color_tests = yes; then + # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. + red='[0;31m' # Red. + grn='[0;32m' # Green. + lgn='[1;32m' # Light green. + blu='[1;34m' # Blue. + mgn='[0;35m' # Magenta. + std='[m' # No color. +else + red= grn= lgn= blu= mgn= std= +fi + +do_exit='rm -f $log_file $trs_file; (exit $st); exit $st' +trap "st=129; $do_exit" 1 +trap "st=130; $do_exit" 2 +trap "st=141; $do_exit" 13 +trap "st=143; $do_exit" 15 + +# Test script is run here. +"$@" >$log_file 2>&1 +estatus=$? +if test $enable_hard_errors = no && test $estatus -eq 99; then + estatus=1 +fi + +case $estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/tests/Makefile.in b/tests/Makefile.in index d397a6747b5a59ee5fdb3ab5c493c4600ff006da..462bfe92a9627c045d2fbbef1cf4ad6c10a6ac76 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,14 +79,13 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = tests -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -95,21 +121,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -117,9 +150,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -313,6 +366,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -522,22 +576,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -552,57 +609,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -618,12 +630,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -635,15 +642,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -652,6 +655,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -812,22 +830,20 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 7177d860350335c16ce16ddcc13164fe4bff22e7..c3bacc46ce2754d0eab983776aa327722e42dc0d 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -4,12 +4,12 @@ CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.reg TEST_FILES_DIRECTORY = $(top_srcdir)/tests/files REGISTRY_ENVIRONMENT = \ - GST_REGISTRY=$(CHECK_REGISTRY) + GST_REGISTRY_1_0=$(CHECK_REGISTRY) TESTS_ENVIRONMENT = \ $(REGISTRY_ENVIRONMENT) \ - GST_PLUGIN_SYSTEM_PATH= \ - GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/ext:$(top_builddir)/sys:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR) \ + GST_PLUGIN_SYSTEM_PATH_1_0= \ + GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/ext:$(top_builddir)/sys:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR) \ GST_PLUGIN_LOADING_WHITELIST="gstreamer@$(GST_PLUGINS_DIR):gst-plugins-base@$(GSTPB_PLUGINS_DIR):gst-plugins-good@$(top_builddir)" \ GST_STATE_IGNORE_ELEMENTS="aasink autoaudiosrc autoaudiosink autovideosrc autovideosink \ cacasink cairotextoverlay \ @@ -121,6 +121,7 @@ check_PROGRAMS = \ elements/capssetter \ elements/deinterlace \ elements/deinterleave \ + elements/dtmf \ elements/equalizer \ elements/flacparse \ elements/flvdemux \ @@ -133,6 +134,8 @@ check_PROGRAMS = \ elements/matroskamux \ elements/matroskaparse \ elements/mpegaudioparse \ + elements/mulawdec \ + elements/mulawenc \ elements/multifile \ elements/qtmux \ elements/rganalysis \ @@ -142,6 +145,7 @@ check_PROGRAMS = \ elements/rtpbin \ elements/rtpbin_buffer_list \ elements/rtpjitterbuffer \ + elements/rtpmux \ elements/shapewipe \ elements/spectrum \ elements/udpsink \ @@ -149,7 +153,9 @@ check_PROGRAMS = \ elements/videocrop \ elements/videofilter \ elements/wavpackparse \ + elements/wavparse \ elements/y4menc \ + elements/videomixer \ pipelines/simple-launch-lines \ pipelines/effectv \ pipelines/tagschecking \ @@ -252,6 +258,11 @@ elements_alphacolor_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_deinterlace_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_deinterlace_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD) +elements_dtmf_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) +elements_dtmf_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_API_VERSION@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) + elements_deinterleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_deinterleave_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD) elements_interleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) @@ -285,6 +296,9 @@ elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \ $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c +elements_rtpmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) +elements_rtpmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD) + elements_souphttpsrc_CFLAGS = $(SOUP_CFLAGS) $(AM_CFLAGS) elements_souphttpsrc_LDADD = $(SOUP_LIBS) $(LDADD) @@ -311,6 +325,8 @@ elements_gdkpixbufsink_CFLAGS = \ elements_gdkpixbufsink_LDADD = \ $(LDADD) $(GDK_PIXBUF_LIBS) +elements_videomixer_LDADD = $(LDADD) $(GST_BASE_LIBS) +elements_videomixer_CFLAGS = $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) pipelines_flacdec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) pipelines_flacdec_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD) diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in index 38862b4748cdad78d3e591562c839f678e442127..847352f7c2c4cd9ecdf86ce051a5f19640c915af 100644 --- a/tests/check/Makefile.in +++ b/tests/check/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +79,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/common/check.mak +DIST_COMMON = $(top_srcdir)/common/check.mak $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/depcomp \ + $(top_srcdir)/test-driver check_PROGRAMS = generic/states$(EXEEXT) elements/aacparse$(EXEEXT) \ elements/ac3parse$(EXEEXT) elements/amrparse$(EXEEXT) \ elements/alphacolor$(EXEEXT) elements/aspectratiocrop$(EXEEXT) \ @@ -67,22 +95,25 @@ check_PROGRAMS = generic/states$(EXEEXT) elements/aacparse$(EXEEXT) \ elements/audiowsinclimit$(EXEEXT) elements/autodetect$(EXEEXT) \ elements/avimux$(EXEEXT) elements/avisubtitle$(EXEEXT) \ elements/capssetter$(EXEEXT) elements/deinterlace$(EXEEXT) \ - elements/deinterleave$(EXEEXT) elements/equalizer$(EXEEXT) \ - elements/flacparse$(EXEEXT) elements/flvdemux$(EXEEXT) \ - elements/flvmux$(EXEEXT) elements/icydemux$(EXEEXT) \ - elements/id3demux$(EXEEXT) elements/imagefreeze$(EXEEXT) \ - elements/interleave$(EXEEXT) elements/level$(EXEEXT) \ - elements/matroskamux$(EXEEXT) elements/matroskaparse$(EXEEXT) \ - elements/mpegaudioparse$(EXEEXT) elements/multifile$(EXEEXT) \ + elements/deinterleave$(EXEEXT) elements/dtmf$(EXEEXT) \ + elements/equalizer$(EXEEXT) elements/flacparse$(EXEEXT) \ + elements/flvdemux$(EXEEXT) elements/flvmux$(EXEEXT) \ + elements/icydemux$(EXEEXT) elements/id3demux$(EXEEXT) \ + elements/imagefreeze$(EXEEXT) elements/interleave$(EXEEXT) \ + elements/level$(EXEEXT) elements/matroskamux$(EXEEXT) \ + elements/matroskaparse$(EXEEXT) \ + elements/mpegaudioparse$(EXEEXT) elements/mulawdec$(EXEEXT) \ + elements/mulawenc$(EXEEXT) elements/multifile$(EXEEXT) \ elements/qtmux$(EXEEXT) elements/rganalysis$(EXEEXT) \ elements/rglimiter$(EXEEXT) elements/rgvolume$(EXEEXT) \ elements/rtp-payloading$(EXEEXT) elements/rtpbin$(EXEEXT) \ elements/rtpbin_buffer_list$(EXEEXT) \ - elements/rtpjitterbuffer$(EXEEXT) elements/shapewipe$(EXEEXT) \ - elements/spectrum$(EXEEXT) elements/udpsink$(EXEEXT) \ - elements/udpsrc$(EXEEXT) elements/videocrop$(EXEEXT) \ - elements/videofilter$(EXEEXT) elements/wavpackparse$(EXEEXT) \ - elements/y4menc$(EXEEXT) \ + elements/rtpjitterbuffer$(EXEEXT) elements/rtpmux$(EXEEXT) \ + elements/shapewipe$(EXEEXT) elements/spectrum$(EXEEXT) \ + elements/udpsink$(EXEEXT) elements/udpsrc$(EXEEXT) \ + elements/videocrop$(EXEEXT) elements/videofilter$(EXEEXT) \ + elements/wavpackparse$(EXEEXT) elements/wavparse$(EXEEXT) \ + elements/y4menc$(EXEEXT) elements/videomixer$(EXEEXT) \ pipelines/simple-launch-lines$(EXEEXT) \ pipelines/effectv$(EXEEXT) pipelines/tagschecking$(EXEEXT) \ pipelines/wavenc$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ @@ -96,7 +127,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -139,6 +169,7 @@ libparser_la_OBJECTS = $(am_libparser_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libparser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libparser_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @@ -313,6 +344,14 @@ elements_deinterleave_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_deinterleave_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ +elements_dtmf_SOURCES = elements/dtmf.c +elements_dtmf_OBJECTS = elements_dtmf-dtmf.$(OBJEXT) +elements_dtmf_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +elements_dtmf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(elements_dtmf_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ elements_equalizer_SOURCES = elements/equalizer.c elements_equalizer_OBJECTS = elements_equalizer-equalizer.$(OBJEXT) elements_equalizer_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -408,6 +447,14 @@ elements_mpegaudioparse_SOURCES = elements/mpegaudioparse.c elements_mpegaudioparse_OBJECTS = mpegaudioparse.$(OBJEXT) elements_mpegaudioparse_DEPENDENCIES = libparser.la \ $(am__DEPENDENCIES_2) +elements_mulawdec_SOURCES = elements/mulawdec.c +elements_mulawdec_OBJECTS = mulawdec.$(OBJEXT) +elements_mulawdec_LDADD = $(LDADD) +elements_mulawdec_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_mulawenc_SOURCES = elements/mulawenc.c +elements_mulawenc_OBJECTS = mulawenc.$(OBJEXT) +elements_mulawenc_LDADD = $(LDADD) +elements_mulawenc_DEPENDENCIES = $(am__DEPENDENCIES_1) elements_multifile_SOURCES = elements/multifile.c elements_multifile_OBJECTS = elements_multifile-multifile.$(OBJEXT) elements_multifile_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -474,6 +521,14 @@ elements_rtpjitterbuffer_SOURCES = elements/rtpjitterbuffer.c elements_rtpjitterbuffer_OBJECTS = rtpjitterbuffer.$(OBJEXT) elements_rtpjitterbuffer_LDADD = $(LDADD) elements_rtpjitterbuffer_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_rtpmux_SOURCES = elements/rtpmux.c +elements_rtpmux_OBJECTS = elements_rtpmux-rtpmux.$(OBJEXT) +elements_rtpmux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) +elements_rtpmux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_rtpmux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ elements_shapewipe_SOURCES = elements/shapewipe.c elements_shapewipe_OBJECTS = shapewipe.$(OBJEXT) elements_shapewipe_LDADD = $(LDADD) @@ -532,6 +587,15 @@ elements_videofilter_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_videofilter_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ +elements_videomixer_SOURCES = elements/videomixer.c +elements_videomixer_OBJECTS = \ + elements_videomixer-videomixer.$(OBJEXT) +elements_videomixer_DEPENDENCIES = $(am__DEPENDENCIES_2) \ + $(am__DEPENDENCIES_1) +elements_videomixer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_videomixer_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ elements_vp8dec_SOURCES = elements/vp8dec.c elements_vp8dec_OBJECTS = vp8dec.$(OBJEXT) elements_vp8dec_LDADD = $(LDADD) @@ -552,6 +616,10 @@ elements_wavpackparse_SOURCES = elements/wavpackparse.c elements_wavpackparse_OBJECTS = wavpackparse.$(OBJEXT) elements_wavpackparse_LDADD = $(LDADD) elements_wavpackparse_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_wavparse_SOURCES = elements/wavparse.c +elements_wavparse_OBJECTS = wavparse.$(OBJEXT) +elements_wavparse_LDADD = $(LDADD) +elements_wavparse_DEPENDENCIES = $(am__DEPENDENCIES_1) elements_y4menc_SOURCES = elements/y4menc.c elements_y4menc_OBJECTS = y4menc.$(OBJEXT) elements_y4menc_LDADD = $(LDADD) @@ -618,6 +686,18 @@ pipelines_wavpack_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(pipelines_wavpack_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -630,20 +710,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \ elements/ac3parse.c elements/alphacolor.c elements/amrparse.c \ elements/apev2mux.c elements/aspectratiocrop.c \ @@ -654,24 +730,25 @@ SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \ elements/audiopanorama.c elements/audiowsincband.c \ elements/audiowsinclimit.c elements/autodetect.c \ elements/avimux.c elements/avisubtitle.c elements/capssetter.c \ - elements/deinterlace.c elements/deinterleave.c \ + elements/deinterlace.c elements/deinterleave.c elements/dtmf.c \ elements/equalizer.c elements/flacparse.c elements/flvdemux.c \ elements/flvmux.c elements/gdkpixbufsink.c elements/icydemux.c \ elements/id3demux.c elements/id3v2mux.c elements/imagefreeze.c \ elements/interleave.c elements/jpegdec.c elements/jpegenc.c \ elements/level.c elements/matroskamux.c \ elements/matroskaparse.c elements/mpegaudioparse.c \ - elements/multifile.c elements/qtmux.c elements/rganalysis.c \ - elements/rglimiter.c elements/rgvolume.c \ - elements/rtp-payloading.c elements/rtpbin.c \ - $(elements_rtpbin_buffer_list_SOURCES) \ - elements/rtpjitterbuffer.c elements/shapewipe.c \ - elements/souphttpsrc.c elements/spectrum.c elements/sunaudio.c \ - elements/udpsink.c elements/udpsrc.c elements/videocrop.c \ - elements/videofilter.c elements/vp8dec.c elements/vp8enc.c \ + elements/mulawdec.c elements/mulawenc.c elements/multifile.c \ + elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \ + elements/rgvolume.c elements/rtp-payloading.c \ + elements/rtpbin.c $(elements_rtpbin_buffer_list_SOURCES) \ + elements/rtpjitterbuffer.c elements/rtpmux.c \ + elements/shapewipe.c elements/souphttpsrc.c \ + elements/spectrum.c elements/sunaudio.c elements/udpsink.c \ + elements/udpsrc.c elements/videocrop.c elements/videofilter.c \ + elements/videomixer.c elements/vp8dec.c elements/vp8enc.c \ elements/wavpackdec.c elements/wavpackenc.c \ - elements/wavpackparse.c elements/y4menc.c generic/states.c \ - $(nodist_orc_deinterlace_SOURCES) \ + elements/wavpackparse.c elements/wavparse.c elements/y4menc.c \ + generic/states.c $(nodist_orc_deinterlace_SOURCES) \ $(nodist_orc_videobox_SOURCES) \ $(nodist_orc_videomixer_SOURCES) pipelines/effectv.c \ pipelines/flacdec.c pipelines/simple-launch-lines.c \ @@ -687,24 +764,25 @@ DIST_SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \ elements/audiopanorama.c elements/audiowsincband.c \ elements/audiowsinclimit.c elements/autodetect.c \ elements/avimux.c elements/avisubtitle.c elements/capssetter.c \ - elements/deinterlace.c elements/deinterleave.c \ + elements/deinterlace.c elements/deinterleave.c elements/dtmf.c \ elements/equalizer.c elements/flacparse.c elements/flvdemux.c \ elements/flvmux.c elements/gdkpixbufsink.c elements/icydemux.c \ elements/id3demux.c elements/id3v2mux.c elements/imagefreeze.c \ elements/interleave.c elements/jpegdec.c elements/jpegenc.c \ elements/level.c elements/matroskamux.c \ elements/matroskaparse.c elements/mpegaudioparse.c \ - elements/multifile.c elements/qtmux.c elements/rganalysis.c \ - elements/rglimiter.c elements/rgvolume.c \ - elements/rtp-payloading.c elements/rtpbin.c \ - $(elements_rtpbin_buffer_list_SOURCES) \ - elements/rtpjitterbuffer.c elements/shapewipe.c \ - elements/souphttpsrc.c elements/spectrum.c elements/sunaudio.c \ - elements/udpsink.c elements/udpsrc.c elements/videocrop.c \ - elements/videofilter.c elements/vp8dec.c elements/vp8enc.c \ + elements/mulawdec.c elements/mulawenc.c elements/multifile.c \ + elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \ + elements/rgvolume.c elements/rtp-payloading.c \ + elements/rtpbin.c $(elements_rtpbin_buffer_list_SOURCES) \ + elements/rtpjitterbuffer.c elements/rtpmux.c \ + elements/shapewipe.c elements/souphttpsrc.c \ + elements/spectrum.c elements/sunaudio.c elements/udpsink.c \ + elements/udpsrc.c elements/videocrop.c elements/videofilter.c \ + elements/videomixer.c elements/vp8dec.c elements/vp8enc.c \ elements/wavpackdec.c elements/wavpackenc.c \ - elements/wavpackparse.c elements/y4menc.c generic/states.c \ - pipelines/effectv.c pipelines/flacdec.c \ + elements/wavpackparse.c elements/wavparse.c elements/y4menc.c \ + generic/states.c pipelines/effectv.c pipelines/flacdec.c \ pipelines/simple-launch-lines.c pipelines/tagschecking.c \ pipelines/wavenc.c pipelines/wavpack.c am__can_run_installinfo = \ @@ -712,10 +790,229 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red='[0;31m'; \ + grn='[0;32m'; \ + lgn='[1;32m'; \ + blu='[1;34m'; \ + mgn='[0;35m'; \ + brg='[1m'; \ + std='[m'; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AALIB_CFLAGS = @AALIB_CFLAGS@ AALIB_CONFIG = @AALIB_CONFIG@ @@ -882,6 +1179,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -1042,19 +1340,18 @@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -LOOPS = 10 # inspect every plugin feature GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_API_VERSION) CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.reg TEST_FILES_DIRECTORY = $(top_srcdir)/tests/files REGISTRY_ENVIRONMENT = \ - GST_REGISTRY=$(CHECK_REGISTRY) + GST_REGISTRY_1_0=$(CHECK_REGISTRY) TESTS_ENVIRONMENT = \ $(REGISTRY_ENVIRONMENT) \ - GST_PLUGIN_SYSTEM_PATH= \ - GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/ext:$(top_builddir)/sys:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR) \ + GST_PLUGIN_SYSTEM_PATH_1_0= \ + GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/ext:$(top_builddir)/sys:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR) \ GST_PLUGIN_LOADING_WHITELIST="gstreamer@$(GST_PLUGINS_DIR):gst-plugins-base@$(GSTPB_PLUGINS_DIR):gst-plugins-good@$(top_builddir)" \ GST_STATE_IGNORE_ELEMENTS="aasink autoaudiosrc autoaudiosink autovideosrc autovideosink \ cacasink cairotextoverlay \ @@ -1175,6 +1472,12 @@ elements_spectrum_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) elements_alphacolor_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_deinterlace_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_deinterlace_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD) +elements_dtmf_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + +elements_dtmf_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_API_VERSION@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) + elements_deinterleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_deinterleave_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD) elements_interleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) @@ -1202,6 +1505,8 @@ elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \ $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c +elements_rtpmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) +elements_rtpmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD) elements_souphttpsrc_CFLAGS = $(SOUP_CFLAGS) $(AM_CFLAGS) elements_souphttpsrc_LDADD = $(SOUP_LIBS) $(LDADD) elements_sunaudio_CFLAGS = \ @@ -1227,6 +1532,8 @@ elements_gdkpixbufsink_CFLAGS = \ elements_gdkpixbufsink_LDADD = \ $(LDADD) $(GDK_PIXBUF_LIBS) +elements_videomixer_LDADD = $(LDADD) $(GST_BASE_LIBS) +elements_videomixer_CFLAGS = $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) pipelines_flacdec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) pipelines_flacdec_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD) pipelines_wavenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) @@ -1246,7 +1553,7 @@ EXTRA_DIST = gst-plugins-good.supp all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/check.mak $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -1281,12 +1588,15 @@ $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libparser.la: $(libparser_la_OBJECTS) $(libparser_la_DEPENDENCIES) $(EXTRA_libparser_la_DEPENDENCIES) $(AM_V_CCLD)$(libparser_la_LINK) $(libparser_la_OBJECTS) $(libparser_la_LIBADD) $(LIBS) @@ -1301,228 +1611,324 @@ clean-checkPROGRAMS: elements/$(am__dirstamp): @$(MKDIR_P) elements @: > elements/$(am__dirstamp) + elements/aacparse$(EXEEXT): $(elements_aacparse_OBJECTS) $(elements_aacparse_DEPENDENCIES) $(EXTRA_elements_aacparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/aacparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_aacparse_OBJECTS) $(elements_aacparse_LDADD) $(LIBS) + elements/ac3parse$(EXEEXT): $(elements_ac3parse_OBJECTS) $(elements_ac3parse_DEPENDENCIES) $(EXTRA_elements_ac3parse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/ac3parse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_ac3parse_OBJECTS) $(elements_ac3parse_LDADD) $(LIBS) + elements/alphacolor$(EXEEXT): $(elements_alphacolor_OBJECTS) $(elements_alphacolor_DEPENDENCIES) $(EXTRA_elements_alphacolor_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/alphacolor$(EXEEXT) $(AM_V_CCLD)$(elements_alphacolor_LINK) $(elements_alphacolor_OBJECTS) $(elements_alphacolor_LDADD) $(LIBS) + elements/amrparse$(EXEEXT): $(elements_amrparse_OBJECTS) $(elements_amrparse_DEPENDENCIES) $(EXTRA_elements_amrparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/amrparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_amrparse_OBJECTS) $(elements_amrparse_LDADD) $(LIBS) + elements/apev2mux$(EXEEXT): $(elements_apev2mux_OBJECTS) $(elements_apev2mux_DEPENDENCIES) $(EXTRA_elements_apev2mux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/apev2mux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_apev2mux_OBJECTS) $(elements_apev2mux_LDADD) $(LIBS) + elements/aspectratiocrop$(EXEEXT): $(elements_aspectratiocrop_OBJECTS) $(elements_aspectratiocrop_DEPENDENCIES) $(EXTRA_elements_aspectratiocrop_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/aspectratiocrop$(EXEEXT) $(AM_V_CCLD)$(elements_aspectratiocrop_LINK) $(elements_aspectratiocrop_OBJECTS) $(elements_aspectratiocrop_LDADD) $(LIBS) + elements/audioamplify$(EXEEXT): $(elements_audioamplify_OBJECTS) $(elements_audioamplify_DEPENDENCIES) $(EXTRA_elements_audioamplify_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audioamplify$(EXEEXT) $(AM_V_CCLD)$(elements_audioamplify_LINK) $(elements_audioamplify_OBJECTS) $(elements_audioamplify_LDADD) $(LIBS) + elements/audiochebband$(EXEEXT): $(elements_audiochebband_OBJECTS) $(elements_audiochebband_DEPENDENCIES) $(EXTRA_elements_audiochebband_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiochebband$(EXEEXT) $(AM_V_CCLD)$(elements_audiochebband_LINK) $(elements_audiochebband_OBJECTS) $(elements_audiochebband_LDADD) $(LIBS) + elements/audiocheblimit$(EXEEXT): $(elements_audiocheblimit_OBJECTS) $(elements_audiocheblimit_DEPENDENCIES) $(EXTRA_elements_audiocheblimit_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiocheblimit$(EXEEXT) $(AM_V_CCLD)$(elements_audiocheblimit_LINK) $(elements_audiocheblimit_OBJECTS) $(elements_audiocheblimit_LDADD) $(LIBS) + elements/audiodynamic$(EXEEXT): $(elements_audiodynamic_OBJECTS) $(elements_audiodynamic_DEPENDENCIES) $(EXTRA_elements_audiodynamic_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiodynamic$(EXEEXT) $(AM_V_CCLD)$(elements_audiodynamic_LINK) $(elements_audiodynamic_OBJECTS) $(elements_audiodynamic_LDADD) $(LIBS) + elements/audioecho$(EXEEXT): $(elements_audioecho_OBJECTS) $(elements_audioecho_DEPENDENCIES) $(EXTRA_elements_audioecho_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audioecho$(EXEEXT) $(AM_V_CCLD)$(elements_audioecho_LINK) $(elements_audioecho_OBJECTS) $(elements_audioecho_LDADD) $(LIBS) + elements/audiofirfilter$(EXEEXT): $(elements_audiofirfilter_OBJECTS) $(elements_audiofirfilter_DEPENDENCIES) $(EXTRA_elements_audiofirfilter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiofirfilter$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audiofirfilter_OBJECTS) $(elements_audiofirfilter_LDADD) $(LIBS) + elements/audioiirfilter$(EXEEXT): $(elements_audioiirfilter_OBJECTS) $(elements_audioiirfilter_DEPENDENCIES) $(EXTRA_elements_audioiirfilter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audioiirfilter$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audioiirfilter_OBJECTS) $(elements_audioiirfilter_LDADD) $(LIBS) + elements/audioinvert$(EXEEXT): $(elements_audioinvert_OBJECTS) $(elements_audioinvert_DEPENDENCIES) $(EXTRA_elements_audioinvert_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audioinvert$(EXEEXT) $(AM_V_CCLD)$(elements_audioinvert_LINK) $(elements_audioinvert_OBJECTS) $(elements_audioinvert_LDADD) $(LIBS) + elements/audiopanorama$(EXEEXT): $(elements_audiopanorama_OBJECTS) $(elements_audiopanorama_DEPENDENCIES) $(EXTRA_elements_audiopanorama_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiopanorama$(EXEEXT) $(AM_V_CCLD)$(elements_audiopanorama_LINK) $(elements_audiopanorama_OBJECTS) $(elements_audiopanorama_LDADD) $(LIBS) + elements/audiowsincband$(EXEEXT): $(elements_audiowsincband_OBJECTS) $(elements_audiowsincband_DEPENDENCIES) $(EXTRA_elements_audiowsincband_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiowsincband$(EXEEXT) $(AM_V_CCLD)$(elements_audiowsincband_LINK) $(elements_audiowsincband_OBJECTS) $(elements_audiowsincband_LDADD) $(LIBS) + elements/audiowsinclimit$(EXEEXT): $(elements_audiowsinclimit_OBJECTS) $(elements_audiowsinclimit_DEPENDENCIES) $(EXTRA_elements_audiowsinclimit_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiowsinclimit$(EXEEXT) $(AM_V_CCLD)$(elements_audiowsinclimit_LINK) $(elements_audiowsinclimit_OBJECTS) $(elements_audiowsinclimit_LDADD) $(LIBS) + elements/autodetect$(EXEEXT): $(elements_autodetect_OBJECTS) $(elements_autodetect_DEPENDENCIES) $(EXTRA_elements_autodetect_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/autodetect$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_autodetect_OBJECTS) $(elements_autodetect_LDADD) $(LIBS) + elements/avimux$(EXEEXT): $(elements_avimux_OBJECTS) $(elements_avimux_DEPENDENCIES) $(EXTRA_elements_avimux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/avimux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_avimux_OBJECTS) $(elements_avimux_LDADD) $(LIBS) + elements/avisubtitle$(EXEEXT): $(elements_avisubtitle_OBJECTS) $(elements_avisubtitle_DEPENDENCIES) $(EXTRA_elements_avisubtitle_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/avisubtitle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_avisubtitle_OBJECTS) $(elements_avisubtitle_LDADD) $(LIBS) + elements/capssetter$(EXEEXT): $(elements_capssetter_OBJECTS) $(elements_capssetter_DEPENDENCIES) $(EXTRA_elements_capssetter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/capssetter$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_capssetter_OBJECTS) $(elements_capssetter_LDADD) $(LIBS) + elements/deinterlace$(EXEEXT): $(elements_deinterlace_OBJECTS) $(elements_deinterlace_DEPENDENCIES) $(EXTRA_elements_deinterlace_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/deinterlace$(EXEEXT) $(AM_V_CCLD)$(elements_deinterlace_LINK) $(elements_deinterlace_OBJECTS) $(elements_deinterlace_LDADD) $(LIBS) + elements/deinterleave$(EXEEXT): $(elements_deinterleave_OBJECTS) $(elements_deinterleave_DEPENDENCIES) $(EXTRA_elements_deinterleave_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/deinterleave$(EXEEXT) $(AM_V_CCLD)$(elements_deinterleave_LINK) $(elements_deinterleave_OBJECTS) $(elements_deinterleave_LDADD) $(LIBS) + +elements/dtmf$(EXEEXT): $(elements_dtmf_OBJECTS) $(elements_dtmf_DEPENDENCIES) $(EXTRA_elements_dtmf_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/dtmf$(EXEEXT) + $(AM_V_CCLD)$(elements_dtmf_LINK) $(elements_dtmf_OBJECTS) $(elements_dtmf_LDADD) $(LIBS) + elements/equalizer$(EXEEXT): $(elements_equalizer_OBJECTS) $(elements_equalizer_DEPENDENCIES) $(EXTRA_elements_equalizer_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/equalizer$(EXEEXT) $(AM_V_CCLD)$(elements_equalizer_LINK) $(elements_equalizer_OBJECTS) $(elements_equalizer_LDADD) $(LIBS) + elements/flacparse$(EXEEXT): $(elements_flacparse_OBJECTS) $(elements_flacparse_DEPENDENCIES) $(EXTRA_elements_flacparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/flacparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_flacparse_OBJECTS) $(elements_flacparse_LDADD) $(LIBS) + elements/flvdemux$(EXEEXT): $(elements_flvdemux_OBJECTS) $(elements_flvdemux_DEPENDENCIES) $(EXTRA_elements_flvdemux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/flvdemux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_flvdemux_OBJECTS) $(elements_flvdemux_LDADD) $(LIBS) + elements/flvmux$(EXEEXT): $(elements_flvmux_OBJECTS) $(elements_flvmux_DEPENDENCIES) $(EXTRA_elements_flvmux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/flvmux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_flvmux_OBJECTS) $(elements_flvmux_LDADD) $(LIBS) + elements/gdkpixbufsink$(EXEEXT): $(elements_gdkpixbufsink_OBJECTS) $(elements_gdkpixbufsink_DEPENDENCIES) $(EXTRA_elements_gdkpixbufsink_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/gdkpixbufsink$(EXEEXT) $(AM_V_CCLD)$(elements_gdkpixbufsink_LINK) $(elements_gdkpixbufsink_OBJECTS) $(elements_gdkpixbufsink_LDADD) $(LIBS) + elements/icydemux$(EXEEXT): $(elements_icydemux_OBJECTS) $(elements_icydemux_DEPENDENCIES) $(EXTRA_elements_icydemux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/icydemux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_icydemux_OBJECTS) $(elements_icydemux_LDADD) $(LIBS) + elements/id3demux$(EXEEXT): $(elements_id3demux_OBJECTS) $(elements_id3demux_DEPENDENCIES) $(EXTRA_elements_id3demux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/id3demux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_id3demux_OBJECTS) $(elements_id3demux_LDADD) $(LIBS) + elements/id3v2mux$(EXEEXT): $(elements_id3v2mux_OBJECTS) $(elements_id3v2mux_DEPENDENCIES) $(EXTRA_elements_id3v2mux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/id3v2mux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_id3v2mux_OBJECTS) $(elements_id3v2mux_LDADD) $(LIBS) + elements/imagefreeze$(EXEEXT): $(elements_imagefreeze_OBJECTS) $(elements_imagefreeze_DEPENDENCIES) $(EXTRA_elements_imagefreeze_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/imagefreeze$(EXEEXT) $(AM_V_CCLD)$(elements_imagefreeze_LINK) $(elements_imagefreeze_OBJECTS) $(elements_imagefreeze_LDADD) $(LIBS) + elements/interleave$(EXEEXT): $(elements_interleave_OBJECTS) $(elements_interleave_DEPENDENCIES) $(EXTRA_elements_interleave_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/interleave$(EXEEXT) $(AM_V_CCLD)$(elements_interleave_LINK) $(elements_interleave_OBJECTS) $(elements_interleave_LDADD) $(LIBS) + elements/jpegdec$(EXEEXT): $(elements_jpegdec_OBJECTS) $(elements_jpegdec_DEPENDENCIES) $(EXTRA_elements_jpegdec_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/jpegdec$(EXEEXT) $(AM_V_CCLD)$(elements_jpegdec_LINK) $(elements_jpegdec_OBJECTS) $(elements_jpegdec_LDADD) $(LIBS) + elements/jpegenc$(EXEEXT): $(elements_jpegenc_OBJECTS) $(elements_jpegenc_DEPENDENCIES) $(EXTRA_elements_jpegenc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/jpegenc$(EXEEXT) $(AM_V_CCLD)$(elements_jpegenc_LINK) $(elements_jpegenc_OBJECTS) $(elements_jpegenc_LDADD) $(LIBS) + elements/level$(EXEEXT): $(elements_level_OBJECTS) $(elements_level_DEPENDENCIES) $(EXTRA_elements_level_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/level$(EXEEXT) $(AM_V_CCLD)$(elements_level_LINK) $(elements_level_OBJECTS) $(elements_level_LDADD) $(LIBS) + elements/matroskamux$(EXEEXT): $(elements_matroskamux_OBJECTS) $(elements_matroskamux_DEPENDENCIES) $(EXTRA_elements_matroskamux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/matroskamux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_matroskamux_OBJECTS) $(elements_matroskamux_LDADD) $(LIBS) + elements/matroskaparse$(EXEEXT): $(elements_matroskaparse_OBJECTS) $(elements_matroskaparse_DEPENDENCIES) $(EXTRA_elements_matroskaparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/matroskaparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_matroskaparse_OBJECTS) $(elements_matroskaparse_LDADD) $(LIBS) + elements/mpegaudioparse$(EXEEXT): $(elements_mpegaudioparse_OBJECTS) $(elements_mpegaudioparse_DEPENDENCIES) $(EXTRA_elements_mpegaudioparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/mpegaudioparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_mpegaudioparse_OBJECTS) $(elements_mpegaudioparse_LDADD) $(LIBS) + +elements/mulawdec$(EXEEXT): $(elements_mulawdec_OBJECTS) $(elements_mulawdec_DEPENDENCIES) $(EXTRA_elements_mulawdec_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/mulawdec$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_mulawdec_OBJECTS) $(elements_mulawdec_LDADD) $(LIBS) + +elements/mulawenc$(EXEEXT): $(elements_mulawenc_OBJECTS) $(elements_mulawenc_DEPENDENCIES) $(EXTRA_elements_mulawenc_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/mulawenc$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_mulawenc_OBJECTS) $(elements_mulawenc_LDADD) $(LIBS) + elements/multifile$(EXEEXT): $(elements_multifile_OBJECTS) $(elements_multifile_DEPENDENCIES) $(EXTRA_elements_multifile_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/multifile$(EXEEXT) $(AM_V_CCLD)$(elements_multifile_LINK) $(elements_multifile_OBJECTS) $(elements_multifile_LDADD) $(LIBS) + elements/qtmux$(EXEEXT): $(elements_qtmux_OBJECTS) $(elements_qtmux_DEPENDENCIES) $(EXTRA_elements_qtmux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/qtmux$(EXEEXT) $(AM_V_CCLD)$(elements_qtmux_LINK) $(elements_qtmux_OBJECTS) $(elements_qtmux_LDADD) $(LIBS) + elements/rganalysis$(EXEEXT): $(elements_rganalysis_OBJECTS) $(elements_rganalysis_DEPENDENCIES) $(EXTRA_elements_rganalysis_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rganalysis$(EXEEXT) $(AM_V_CCLD)$(elements_rganalysis_LINK) $(elements_rganalysis_OBJECTS) $(elements_rganalysis_LDADD) $(LIBS) + elements/rglimiter$(EXEEXT): $(elements_rglimiter_OBJECTS) $(elements_rglimiter_DEPENDENCIES) $(EXTRA_elements_rglimiter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rglimiter$(EXEEXT) $(AM_V_CCLD)$(elements_rglimiter_LINK) $(elements_rglimiter_OBJECTS) $(elements_rglimiter_LDADD) $(LIBS) + elements/rgvolume$(EXEEXT): $(elements_rgvolume_OBJECTS) $(elements_rgvolume_DEPENDENCIES) $(EXTRA_elements_rgvolume_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rgvolume$(EXEEXT) $(AM_V_CCLD)$(elements_rgvolume_LINK) $(elements_rgvolume_OBJECTS) $(elements_rgvolume_LDADD) $(LIBS) + elements/rtp-payloading$(EXEEXT): $(elements_rtp_payloading_OBJECTS) $(elements_rtp_payloading_DEPENDENCIES) $(EXTRA_elements_rtp_payloading_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtp-payloading$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rtp_payloading_OBJECTS) $(elements_rtp_payloading_LDADD) $(LIBS) + elements/rtpbin$(EXEEXT): $(elements_rtpbin_OBJECTS) $(elements_rtpbin_DEPENDENCIES) $(EXTRA_elements_rtpbin_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtpbin$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rtpbin_OBJECTS) $(elements_rtpbin_LDADD) $(LIBS) + elements/rtpbin_buffer_list$(EXEEXT): $(elements_rtpbin_buffer_list_OBJECTS) $(elements_rtpbin_buffer_list_DEPENDENCIES) $(EXTRA_elements_rtpbin_buffer_list_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtpbin_buffer_list$(EXEEXT) $(AM_V_CCLD)$(elements_rtpbin_buffer_list_LINK) $(elements_rtpbin_buffer_list_OBJECTS) $(elements_rtpbin_buffer_list_LDADD) $(LIBS) + elements/rtpjitterbuffer$(EXEEXT): $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_DEPENDENCIES) $(EXTRA_elements_rtpjitterbuffer_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtpjitterbuffer$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_LDADD) $(LIBS) + +elements/rtpmux$(EXEEXT): $(elements_rtpmux_OBJECTS) $(elements_rtpmux_DEPENDENCIES) $(EXTRA_elements_rtpmux_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/rtpmux$(EXEEXT) + $(AM_V_CCLD)$(elements_rtpmux_LINK) $(elements_rtpmux_OBJECTS) $(elements_rtpmux_LDADD) $(LIBS) + elements/shapewipe$(EXEEXT): $(elements_shapewipe_OBJECTS) $(elements_shapewipe_DEPENDENCIES) $(EXTRA_elements_shapewipe_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/shapewipe$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_shapewipe_OBJECTS) $(elements_shapewipe_LDADD) $(LIBS) + elements/souphttpsrc$(EXEEXT): $(elements_souphttpsrc_OBJECTS) $(elements_souphttpsrc_DEPENDENCIES) $(EXTRA_elements_souphttpsrc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/souphttpsrc$(EXEEXT) $(AM_V_CCLD)$(elements_souphttpsrc_LINK) $(elements_souphttpsrc_OBJECTS) $(elements_souphttpsrc_LDADD) $(LIBS) + elements/spectrum$(EXEEXT): $(elements_spectrum_OBJECTS) $(elements_spectrum_DEPENDENCIES) $(EXTRA_elements_spectrum_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/spectrum$(EXEEXT) $(AM_V_CCLD)$(elements_spectrum_LINK) $(elements_spectrum_OBJECTS) $(elements_spectrum_LDADD) $(LIBS) + elements/sunaudio$(EXEEXT): $(elements_sunaudio_OBJECTS) $(elements_sunaudio_DEPENDENCIES) $(EXTRA_elements_sunaudio_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/sunaudio$(EXEEXT) $(AM_V_CCLD)$(elements_sunaudio_LINK) $(elements_sunaudio_OBJECTS) $(elements_sunaudio_LDADD) $(LIBS) + elements/udpsink$(EXEEXT): $(elements_udpsink_OBJECTS) $(elements_udpsink_DEPENDENCIES) $(EXTRA_elements_udpsink_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/udpsink$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_udpsink_OBJECTS) $(elements_udpsink_LDADD) $(LIBS) + elements/udpsrc$(EXEEXT): $(elements_udpsrc_OBJECTS) $(elements_udpsrc_DEPENDENCIES) $(EXTRA_elements_udpsrc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/udpsrc$(EXEEXT) $(AM_V_CCLD)$(elements_udpsrc_LINK) $(elements_udpsrc_OBJECTS) $(elements_udpsrc_LDADD) $(LIBS) + elements/videocrop$(EXEEXT): $(elements_videocrop_OBJECTS) $(elements_videocrop_DEPENDENCIES) $(EXTRA_elements_videocrop_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/videocrop$(EXEEXT) $(AM_V_CCLD)$(elements_videocrop_LINK) $(elements_videocrop_OBJECTS) $(elements_videocrop_LDADD) $(LIBS) + elements/videofilter$(EXEEXT): $(elements_videofilter_OBJECTS) $(elements_videofilter_DEPENDENCIES) $(EXTRA_elements_videofilter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/videofilter$(EXEEXT) $(AM_V_CCLD)$(elements_videofilter_LINK) $(elements_videofilter_OBJECTS) $(elements_videofilter_LDADD) $(LIBS) + +elements/videomixer$(EXEEXT): $(elements_videomixer_OBJECTS) $(elements_videomixer_DEPENDENCIES) $(EXTRA_elements_videomixer_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/videomixer$(EXEEXT) + $(AM_V_CCLD)$(elements_videomixer_LINK) $(elements_videomixer_OBJECTS) $(elements_videomixer_LDADD) $(LIBS) + elements/vp8dec$(EXEEXT): $(elements_vp8dec_OBJECTS) $(elements_vp8dec_DEPENDENCIES) $(EXTRA_elements_vp8dec_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/vp8dec$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_vp8dec_OBJECTS) $(elements_vp8dec_LDADD) $(LIBS) + elements/vp8enc$(EXEEXT): $(elements_vp8enc_OBJECTS) $(elements_vp8enc_DEPENDENCIES) $(EXTRA_elements_vp8enc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/vp8enc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_vp8enc_OBJECTS) $(elements_vp8enc_LDADD) $(LIBS) + elements/wavpackdec$(EXEEXT): $(elements_wavpackdec_OBJECTS) $(elements_wavpackdec_DEPENDENCIES) $(EXTRA_elements_wavpackdec_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/wavpackdec$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_wavpackdec_OBJECTS) $(elements_wavpackdec_LDADD) $(LIBS) + elements/wavpackenc$(EXEEXT): $(elements_wavpackenc_OBJECTS) $(elements_wavpackenc_DEPENDENCIES) $(EXTRA_elements_wavpackenc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/wavpackenc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_wavpackenc_OBJECTS) $(elements_wavpackenc_LDADD) $(LIBS) + elements/wavpackparse$(EXEEXT): $(elements_wavpackparse_OBJECTS) $(elements_wavpackparse_DEPENDENCIES) $(EXTRA_elements_wavpackparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/wavpackparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_wavpackparse_OBJECTS) $(elements_wavpackparse_LDADD) $(LIBS) + +elements/wavparse$(EXEEXT): $(elements_wavparse_OBJECTS) $(elements_wavparse_DEPENDENCIES) $(EXTRA_elements_wavparse_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/wavparse$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_wavparse_OBJECTS) $(elements_wavparse_LDADD) $(LIBS) + elements/y4menc$(EXEEXT): $(elements_y4menc_OBJECTS) $(elements_y4menc_DEPENDENCIES) $(EXTRA_elements_y4menc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/y4menc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_y4menc_OBJECTS) $(elements_y4menc_LDADD) $(LIBS) generic/$(am__dirstamp): @$(MKDIR_P) generic @: > generic/$(am__dirstamp) + generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) $(EXTRA_generic_states_DEPENDENCIES) generic/$(am__dirstamp) @rm -f generic/states$(EXEEXT) $(AM_V_CCLD)$(LINK) $(generic_states_OBJECTS) $(generic_states_LDADD) $(LIBS) orc/$(am__dirstamp): @$(MKDIR_P) orc @: > orc/$(am__dirstamp) + orc/deinterlace$(EXEEXT): $(orc_deinterlace_OBJECTS) $(orc_deinterlace_DEPENDENCIES) $(EXTRA_orc_deinterlace_DEPENDENCIES) orc/$(am__dirstamp) @rm -f orc/deinterlace$(EXEEXT) $(AM_V_CCLD)$(orc_deinterlace_LINK) $(orc_deinterlace_OBJECTS) $(orc_deinterlace_LDADD) $(LIBS) + orc/videobox$(EXEEXT): $(orc_videobox_OBJECTS) $(orc_videobox_DEPENDENCIES) $(EXTRA_orc_videobox_DEPENDENCIES) orc/$(am__dirstamp) @rm -f orc/videobox$(EXEEXT) $(AM_V_CCLD)$(orc_videobox_LINK) $(orc_videobox_OBJECTS) $(orc_videobox_LDADD) $(LIBS) + orc/videomixer$(EXEEXT): $(orc_videomixer_OBJECTS) $(orc_videomixer_DEPENDENCIES) $(EXTRA_orc_videomixer_DEPENDENCIES) orc/$(am__dirstamp) @rm -f orc/videomixer$(EXEEXT) $(AM_V_CCLD)$(orc_videomixer_LINK) $(orc_videomixer_OBJECTS) $(orc_videomixer_LDADD) $(LIBS) pipelines/$(am__dirstamp): @$(MKDIR_P) pipelines @: > pipelines/$(am__dirstamp) + pipelines/effectv$(EXEEXT): $(pipelines_effectv_OBJECTS) $(pipelines_effectv_DEPENDENCIES) $(EXTRA_pipelines_effectv_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/effectv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipelines_effectv_OBJECTS) $(pipelines_effectv_LDADD) $(LIBS) + pipelines/flacdec$(EXEEXT): $(pipelines_flacdec_OBJECTS) $(pipelines_flacdec_DEPENDENCIES) $(EXTRA_pipelines_flacdec_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/flacdec$(EXEEXT) $(AM_V_CCLD)$(pipelines_flacdec_LINK) $(pipelines_flacdec_OBJECTS) $(pipelines_flacdec_LDADD) $(LIBS) + pipelines/simple-launch-lines$(EXEEXT): $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_DEPENDENCIES) $(EXTRA_pipelines_simple_launch_lines_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/simple-launch-lines$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_LDADD) $(LIBS) + pipelines/tagschecking$(EXEEXT): $(pipelines_tagschecking_OBJECTS) $(pipelines_tagschecking_DEPENDENCIES) $(EXTRA_pipelines_tagschecking_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/tagschecking$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipelines_tagschecking_OBJECTS) $(pipelines_tagschecking_LDADD) $(LIBS) + pipelines/wavenc$(EXEEXT): $(pipelines_wavenc_OBJECTS) $(pipelines_wavenc_DEPENDENCIES) $(EXTRA_pipelines_wavenc_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/wavenc$(EXEEXT) $(AM_V_CCLD)$(pipelines_wavenc_LINK) $(pipelines_wavenc_OBJECTS) $(pipelines_wavenc_LDADD) $(LIBS) + pipelines/wavpack$(EXEEXT): $(pipelines_wavpack_OBJECTS) $(pipelines_wavpack_DEPENDENCIES) $(EXTRA_pipelines_wavpack_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/wavpack$(EXEEXT) $(AM_V_CCLD)$(pipelines_wavpack_LINK) $(pipelines_wavpack_OBJECTS) $(pipelines_wavpack_LDADD) $(LIBS) @@ -1557,6 +1963,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_audiowsinclimit-audiowsinclimit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_deinterlace-deinterlace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_deinterleave-deinterleave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_dtmf-dtmf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_equalizer-equalizer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_gdkpixbufsink-gdkpixbufsink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_imagefreeze-imagefreeze.Po@am__quote@ @@ -1570,12 +1977,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rglimiter-rglimiter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rgvolume-rgvolume.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rtpmux-rtpmux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_souphttpsrc-souphttpsrc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_spectrum-spectrum.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_sunaudio-sunaudio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_udpsrc-udpsrc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videocrop-videocrop.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videofilter-videofilter.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videomixer-videomixer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flacparse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flvdemux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flvmux.Po@am__quote@ @@ -1586,6 +1995,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matroskamux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matroskaparse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpegaudioparse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mulawdec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mulawenc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_deinterlace-deinterlace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_videobox-videobox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_videomixer-videomixer.Po@am__quote@ @@ -1605,6 +2016,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavpackdec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavpackenc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavpackparse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavparse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/y4menc.Po@am__quote@ .c.o: @@ -1957,6 +2369,20 @@ elements_deinterleave-deinterleave.obj: elements/deinterleave.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterleave_CFLAGS) $(CFLAGS) -c -o elements_deinterleave-deinterleave.obj `if test -f 'elements/deinterleave.c'; then $(CYGPATH_W) 'elements/deinterleave.c'; else $(CYGPATH_W) '$(srcdir)/elements/deinterleave.c'; fi` +elements_dtmf-dtmf.o: elements/dtmf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_dtmf_CFLAGS) $(CFLAGS) -MT elements_dtmf-dtmf.o -MD -MP -MF $(DEPDIR)/elements_dtmf-dtmf.Tpo -c -o elements_dtmf-dtmf.o `test -f 'elements/dtmf.c' || echo '$(srcdir)/'`elements/dtmf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_dtmf-dtmf.Tpo $(DEPDIR)/elements_dtmf-dtmf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/dtmf.c' object='elements_dtmf-dtmf.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_dtmf_CFLAGS) $(CFLAGS) -c -o elements_dtmf-dtmf.o `test -f 'elements/dtmf.c' || echo '$(srcdir)/'`elements/dtmf.c + +elements_dtmf-dtmf.obj: elements/dtmf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_dtmf_CFLAGS) $(CFLAGS) -MT elements_dtmf-dtmf.obj -MD -MP -MF $(DEPDIR)/elements_dtmf-dtmf.Tpo -c -o elements_dtmf-dtmf.obj `if test -f 'elements/dtmf.c'; then $(CYGPATH_W) 'elements/dtmf.c'; else $(CYGPATH_W) '$(srcdir)/elements/dtmf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_dtmf-dtmf.Tpo $(DEPDIR)/elements_dtmf-dtmf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/dtmf.c' object='elements_dtmf-dtmf.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_dtmf_CFLAGS) $(CFLAGS) -c -o elements_dtmf-dtmf.obj `if test -f 'elements/dtmf.c'; then $(CYGPATH_W) 'elements/dtmf.c'; else $(CYGPATH_W) '$(srcdir)/elements/dtmf.c'; fi` + elements_equalizer-equalizer.o: elements/equalizer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_equalizer_CFLAGS) $(CFLAGS) -MT elements_equalizer-equalizer.o -MD -MP -MF $(DEPDIR)/elements_equalizer-equalizer.Tpo -c -o elements_equalizer-equalizer.o `test -f 'elements/equalizer.c' || echo '$(srcdir)/'`elements/equalizer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_equalizer-equalizer.Tpo $(DEPDIR)/elements_equalizer-equalizer.Po @@ -2181,6 +2607,34 @@ mpegaudioparse.obj: elements/mpegaudioparse.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpegaudioparse.obj `if test -f 'elements/mpegaudioparse.c'; then $(CYGPATH_W) 'elements/mpegaudioparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpegaudioparse.c'; fi` +mulawdec.o: elements/mulawdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mulawdec.o -MD -MP -MF $(DEPDIR)/mulawdec.Tpo -c -o mulawdec.o `test -f 'elements/mulawdec.c' || echo '$(srcdir)/'`elements/mulawdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mulawdec.Tpo $(DEPDIR)/mulawdec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mulawdec.c' object='mulawdec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mulawdec.o `test -f 'elements/mulawdec.c' || echo '$(srcdir)/'`elements/mulawdec.c + +mulawdec.obj: elements/mulawdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mulawdec.obj -MD -MP -MF $(DEPDIR)/mulawdec.Tpo -c -o mulawdec.obj `if test -f 'elements/mulawdec.c'; then $(CYGPATH_W) 'elements/mulawdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/mulawdec.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mulawdec.Tpo $(DEPDIR)/mulawdec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mulawdec.c' object='mulawdec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mulawdec.obj `if test -f 'elements/mulawdec.c'; then $(CYGPATH_W) 'elements/mulawdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/mulawdec.c'; fi` + +mulawenc.o: elements/mulawenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mulawenc.o -MD -MP -MF $(DEPDIR)/mulawenc.Tpo -c -o mulawenc.o `test -f 'elements/mulawenc.c' || echo '$(srcdir)/'`elements/mulawenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mulawenc.Tpo $(DEPDIR)/mulawenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mulawenc.c' object='mulawenc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mulawenc.o `test -f 'elements/mulawenc.c' || echo '$(srcdir)/'`elements/mulawenc.c + +mulawenc.obj: elements/mulawenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mulawenc.obj -MD -MP -MF $(DEPDIR)/mulawenc.Tpo -c -o mulawenc.obj `if test -f 'elements/mulawenc.c'; then $(CYGPATH_W) 'elements/mulawenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/mulawenc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mulawenc.Tpo $(DEPDIR)/mulawenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mulawenc.c' object='mulawenc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mulawenc.obj `if test -f 'elements/mulawenc.c'; then $(CYGPATH_W) 'elements/mulawenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/mulawenc.c'; fi` + elements_multifile-multifile.o: elements/multifile.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multifile_CFLAGS) $(CFLAGS) -MT elements_multifile-multifile.o -MD -MP -MF $(DEPDIR)/elements_multifile-multifile.Tpo -c -o elements_multifile-multifile.o `test -f 'elements/multifile.c' || echo '$(srcdir)/'`elements/multifile.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_multifile-multifile.Tpo $(DEPDIR)/elements_multifile-multifile.Po @@ -2307,6 +2761,20 @@ rtpjitterbuffer.obj: elements/rtpjitterbuffer.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtpjitterbuffer.obj `if test -f 'elements/rtpjitterbuffer.c'; then $(CYGPATH_W) 'elements/rtpjitterbuffer.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpjitterbuffer.c'; fi` +elements_rtpmux-rtpmux.o: elements/rtpmux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -MT elements_rtpmux-rtpmux.o -MD -MP -MF $(DEPDIR)/elements_rtpmux-rtpmux.Tpo -c -o elements_rtpmux-rtpmux.o `test -f 'elements/rtpmux.c' || echo '$(srcdir)/'`elements/rtpmux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_rtpmux-rtpmux.Tpo $(DEPDIR)/elements_rtpmux-rtpmux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpmux.c' object='elements_rtpmux-rtpmux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -c -o elements_rtpmux-rtpmux.o `test -f 'elements/rtpmux.c' || echo '$(srcdir)/'`elements/rtpmux.c + +elements_rtpmux-rtpmux.obj: elements/rtpmux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -MT elements_rtpmux-rtpmux.obj -MD -MP -MF $(DEPDIR)/elements_rtpmux-rtpmux.Tpo -c -o elements_rtpmux-rtpmux.obj `if test -f 'elements/rtpmux.c'; then $(CYGPATH_W) 'elements/rtpmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpmux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_rtpmux-rtpmux.Tpo $(DEPDIR)/elements_rtpmux-rtpmux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpmux.c' object='elements_rtpmux-rtpmux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -c -o elements_rtpmux-rtpmux.obj `if test -f 'elements/rtpmux.c'; then $(CYGPATH_W) 'elements/rtpmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpmux.c'; fi` + shapewipe.o: elements/shapewipe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapewipe.o -MD -MP -MF $(DEPDIR)/shapewipe.Tpo -c -o shapewipe.o `test -f 'elements/shapewipe.c' || echo '$(srcdir)/'`elements/shapewipe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shapewipe.Tpo $(DEPDIR)/shapewipe.Po @@ -2419,6 +2887,20 @@ elements_videofilter-videofilter.obj: elements/videofilter.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videofilter_CFLAGS) $(CFLAGS) -c -o elements_videofilter-videofilter.obj `if test -f 'elements/videofilter.c'; then $(CYGPATH_W) 'elements/videofilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/videofilter.c'; fi` +elements_videomixer-videomixer.o: elements/videomixer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videomixer_CFLAGS) $(CFLAGS) -MT elements_videomixer-videomixer.o -MD -MP -MF $(DEPDIR)/elements_videomixer-videomixer.Tpo -c -o elements_videomixer-videomixer.o `test -f 'elements/videomixer.c' || echo '$(srcdir)/'`elements/videomixer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videomixer-videomixer.Tpo $(DEPDIR)/elements_videomixer-videomixer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videomixer.c' object='elements_videomixer-videomixer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videomixer_CFLAGS) $(CFLAGS) -c -o elements_videomixer-videomixer.o `test -f 'elements/videomixer.c' || echo '$(srcdir)/'`elements/videomixer.c + +elements_videomixer-videomixer.obj: elements/videomixer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videomixer_CFLAGS) $(CFLAGS) -MT elements_videomixer-videomixer.obj -MD -MP -MF $(DEPDIR)/elements_videomixer-videomixer.Tpo -c -o elements_videomixer-videomixer.obj `if test -f 'elements/videomixer.c'; then $(CYGPATH_W) 'elements/videomixer.c'; else $(CYGPATH_W) '$(srcdir)/elements/videomixer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videomixer-videomixer.Tpo $(DEPDIR)/elements_videomixer-videomixer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videomixer.c' object='elements_videomixer-videomixer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videomixer_CFLAGS) $(CFLAGS) -c -o elements_videomixer-videomixer.obj `if test -f 'elements/videomixer.c'; then $(CYGPATH_W) 'elements/videomixer.c'; else $(CYGPATH_W) '$(srcdir)/elements/videomixer.c'; fi` + vp8dec.o: elements/vp8dec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vp8dec.o -MD -MP -MF $(DEPDIR)/vp8dec.Tpo -c -o vp8dec.o `test -f 'elements/vp8dec.c' || echo '$(srcdir)/'`elements/vp8dec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vp8dec.Tpo $(DEPDIR)/vp8dec.Po @@ -2489,6 +2971,20 @@ wavpackparse.obj: elements/wavpackparse.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackparse.obj `if test -f 'elements/wavpackparse.c'; then $(CYGPATH_W) 'elements/wavpackparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackparse.c'; fi` +wavparse.o: elements/wavparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavparse.o -MD -MP -MF $(DEPDIR)/wavparse.Tpo -c -o wavparse.o `test -f 'elements/wavparse.c' || echo '$(srcdir)/'`elements/wavparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wavparse.Tpo $(DEPDIR)/wavparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/wavparse.c' object='wavparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavparse.o `test -f 'elements/wavparse.c' || echo '$(srcdir)/'`elements/wavparse.c + +wavparse.obj: elements/wavparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavparse.obj -MD -MP -MF $(DEPDIR)/wavparse.Tpo -c -o wavparse.obj `if test -f 'elements/wavparse.c'; then $(CYGPATH_W) 'elements/wavparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wavparse.Tpo $(DEPDIR)/wavparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/wavparse.c' object='wavparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavparse.obj `if test -f 'elements/wavparse.c'; then $(CYGPATH_W) 'elements/wavparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavparse.c'; fi` + y4menc.o: elements/y4menc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT y4menc.o -MD -MP -MF $(DEPDIR)/y4menc.Tpo -c -o y4menc.o `test -f 'elements/y4menc.c' || echo '$(srcdir)/'`elements/y4menc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/y4menc.Tpo $(DEPDIR)/y4menc.Po @@ -2653,26 +3149,15 @@ clean-libtool: -rm -rf orc/.libs orc/_libs -rm -rf pipelines/.libs pipelines/_libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -2684,15 +3169,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -2701,102 +3182,726 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + color_start= color_end=; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ - else \ - skipped="($$skip tests were not run)"; \ - fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - fi; \ - echo "$${col}$$dashes$${std}"; \ - echo "$${col}$$banner$${std}"; \ - test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ - test -z "$$report" || echo "$${col}$$report$${std}"; \ - echo "$${col}$$dashes$${std}"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +generic/states.log: generic/states$(EXEEXT) + @p='generic/states$(EXEEXT)'; \ + b='generic/states'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/aacparse.log: elements/aacparse$(EXEEXT) + @p='elements/aacparse$(EXEEXT)'; \ + b='elements/aacparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/ac3parse.log: elements/ac3parse$(EXEEXT) + @p='elements/ac3parse$(EXEEXT)'; \ + b='elements/ac3parse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/amrparse.log: elements/amrparse$(EXEEXT) + @p='elements/amrparse$(EXEEXT)'; \ + b='elements/amrparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/alphacolor.log: elements/alphacolor$(EXEEXT) + @p='elements/alphacolor$(EXEEXT)'; \ + b='elements/alphacolor'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/aspectratiocrop.log: elements/aspectratiocrop$(EXEEXT) + @p='elements/aspectratiocrop$(EXEEXT)'; \ + b='elements/aspectratiocrop'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audioamplify.log: elements/audioamplify$(EXEEXT) + @p='elements/audioamplify$(EXEEXT)'; \ + b='elements/audioamplify'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audiochebband.log: elements/audiochebband$(EXEEXT) + @p='elements/audiochebband$(EXEEXT)'; \ + b='elements/audiochebband'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audiocheblimit.log: elements/audiocheblimit$(EXEEXT) + @p='elements/audiocheblimit$(EXEEXT)'; \ + b='elements/audiocheblimit'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audiodynamic.log: elements/audiodynamic$(EXEEXT) + @p='elements/audiodynamic$(EXEEXT)'; \ + b='elements/audiodynamic'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audioecho.log: elements/audioecho$(EXEEXT) + @p='elements/audioecho$(EXEEXT)'; \ + b='elements/audioecho'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audiofirfilter.log: elements/audiofirfilter$(EXEEXT) + @p='elements/audiofirfilter$(EXEEXT)'; \ + b='elements/audiofirfilter'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audioiirfilter.log: elements/audioiirfilter$(EXEEXT) + @p='elements/audioiirfilter$(EXEEXT)'; \ + b='elements/audioiirfilter'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audioinvert.log: elements/audioinvert$(EXEEXT) + @p='elements/audioinvert$(EXEEXT)'; \ + b='elements/audioinvert'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audiopanorama.log: elements/audiopanorama$(EXEEXT) + @p='elements/audiopanorama$(EXEEXT)'; \ + b='elements/audiopanorama'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audiowsincband.log: elements/audiowsincband$(EXEEXT) + @p='elements/audiowsincband$(EXEEXT)'; \ + b='elements/audiowsincband'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/audiowsinclimit.log: elements/audiowsinclimit$(EXEEXT) + @p='elements/audiowsinclimit$(EXEEXT)'; \ + b='elements/audiowsinclimit'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/autodetect.log: elements/autodetect$(EXEEXT) + @p='elements/autodetect$(EXEEXT)'; \ + b='elements/autodetect'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/avimux.log: elements/avimux$(EXEEXT) + @p='elements/avimux$(EXEEXT)'; \ + b='elements/avimux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/avisubtitle.log: elements/avisubtitle$(EXEEXT) + @p='elements/avisubtitle$(EXEEXT)'; \ + b='elements/avisubtitle'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/capssetter.log: elements/capssetter$(EXEEXT) + @p='elements/capssetter$(EXEEXT)'; \ + b='elements/capssetter'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/deinterlace.log: elements/deinterlace$(EXEEXT) + @p='elements/deinterlace$(EXEEXT)'; \ + b='elements/deinterlace'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/deinterleave.log: elements/deinterleave$(EXEEXT) + @p='elements/deinterleave$(EXEEXT)'; \ + b='elements/deinterleave'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/dtmf.log: elements/dtmf$(EXEEXT) + @p='elements/dtmf$(EXEEXT)'; \ + b='elements/dtmf'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/equalizer.log: elements/equalizer$(EXEEXT) + @p='elements/equalizer$(EXEEXT)'; \ + b='elements/equalizer'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/flacparse.log: elements/flacparse$(EXEEXT) + @p='elements/flacparse$(EXEEXT)'; \ + b='elements/flacparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/flvdemux.log: elements/flvdemux$(EXEEXT) + @p='elements/flvdemux$(EXEEXT)'; \ + b='elements/flvdemux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/flvmux.log: elements/flvmux$(EXEEXT) + @p='elements/flvmux$(EXEEXT)'; \ + b='elements/flvmux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/icydemux.log: elements/icydemux$(EXEEXT) + @p='elements/icydemux$(EXEEXT)'; \ + b='elements/icydemux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/id3demux.log: elements/id3demux$(EXEEXT) + @p='elements/id3demux$(EXEEXT)'; \ + b='elements/id3demux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/imagefreeze.log: elements/imagefreeze$(EXEEXT) + @p='elements/imagefreeze$(EXEEXT)'; \ + b='elements/imagefreeze'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/interleave.log: elements/interleave$(EXEEXT) + @p='elements/interleave$(EXEEXT)'; \ + b='elements/interleave'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/level.log: elements/level$(EXEEXT) + @p='elements/level$(EXEEXT)'; \ + b='elements/level'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/matroskamux.log: elements/matroskamux$(EXEEXT) + @p='elements/matroskamux$(EXEEXT)'; \ + b='elements/matroskamux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/matroskaparse.log: elements/matroskaparse$(EXEEXT) + @p='elements/matroskaparse$(EXEEXT)'; \ + b='elements/matroskaparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/mpegaudioparse.log: elements/mpegaudioparse$(EXEEXT) + @p='elements/mpegaudioparse$(EXEEXT)'; \ + b='elements/mpegaudioparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/mulawdec.log: elements/mulawdec$(EXEEXT) + @p='elements/mulawdec$(EXEEXT)'; \ + b='elements/mulawdec'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/mulawenc.log: elements/mulawenc$(EXEEXT) + @p='elements/mulawenc$(EXEEXT)'; \ + b='elements/mulawenc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/multifile.log: elements/multifile$(EXEEXT) + @p='elements/multifile$(EXEEXT)'; \ + b='elements/multifile'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/qtmux.log: elements/qtmux$(EXEEXT) + @p='elements/qtmux$(EXEEXT)'; \ + b='elements/qtmux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rganalysis.log: elements/rganalysis$(EXEEXT) + @p='elements/rganalysis$(EXEEXT)'; \ + b='elements/rganalysis'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rglimiter.log: elements/rglimiter$(EXEEXT) + @p='elements/rglimiter$(EXEEXT)'; \ + b='elements/rglimiter'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rgvolume.log: elements/rgvolume$(EXEEXT) + @p='elements/rgvolume$(EXEEXT)'; \ + b='elements/rgvolume'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rtp-payloading.log: elements/rtp-payloading$(EXEEXT) + @p='elements/rtp-payloading$(EXEEXT)'; \ + b='elements/rtp-payloading'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rtpbin.log: elements/rtpbin$(EXEEXT) + @p='elements/rtpbin$(EXEEXT)'; \ + b='elements/rtpbin'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rtpbin_buffer_list.log: elements/rtpbin_buffer_list$(EXEEXT) + @p='elements/rtpbin_buffer_list$(EXEEXT)'; \ + b='elements/rtpbin_buffer_list'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rtpjitterbuffer.log: elements/rtpjitterbuffer$(EXEEXT) + @p='elements/rtpjitterbuffer$(EXEEXT)'; \ + b='elements/rtpjitterbuffer'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rtpmux.log: elements/rtpmux$(EXEEXT) + @p='elements/rtpmux$(EXEEXT)'; \ + b='elements/rtpmux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/shapewipe.log: elements/shapewipe$(EXEEXT) + @p='elements/shapewipe$(EXEEXT)'; \ + b='elements/shapewipe'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/spectrum.log: elements/spectrum$(EXEEXT) + @p='elements/spectrum$(EXEEXT)'; \ + b='elements/spectrum'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/udpsink.log: elements/udpsink$(EXEEXT) + @p='elements/udpsink$(EXEEXT)'; \ + b='elements/udpsink'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/udpsrc.log: elements/udpsrc$(EXEEXT) + @p='elements/udpsrc$(EXEEXT)'; \ + b='elements/udpsrc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/videocrop.log: elements/videocrop$(EXEEXT) + @p='elements/videocrop$(EXEEXT)'; \ + b='elements/videocrop'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/videofilter.log: elements/videofilter$(EXEEXT) + @p='elements/videofilter$(EXEEXT)'; \ + b='elements/videofilter'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/wavpackparse.log: elements/wavpackparse$(EXEEXT) + @p='elements/wavpackparse$(EXEEXT)'; \ + b='elements/wavpackparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/wavparse.log: elements/wavparse$(EXEEXT) + @p='elements/wavparse$(EXEEXT)'; \ + b='elements/wavparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/y4menc.log: elements/y4menc$(EXEEXT) + @p='elements/y4menc$(EXEEXT)'; \ + b='elements/y4menc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/videomixer.log: elements/videomixer$(EXEEXT) + @p='elements/videomixer$(EXEEXT)'; \ + b='elements/videomixer'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +pipelines/simple-launch-lines.log: pipelines/simple-launch-lines$(EXEEXT) + @p='pipelines/simple-launch-lines$(EXEEXT)'; \ + b='pipelines/simple-launch-lines'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +pipelines/effectv.log: pipelines/effectv$(EXEEXT) + @p='pipelines/effectv$(EXEEXT)'; \ + b='pipelines/effectv'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +pipelines/tagschecking.log: pipelines/tagschecking$(EXEEXT) + @p='pipelines/tagschecking$(EXEEXT)'; \ + b='pipelines/tagschecking'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +pipelines/wavenc.log: pipelines/wavenc$(EXEEXT) + @p='pipelines/wavenc$(EXEEXT)'; \ + b='pipelines/wavenc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +pipelines/flacdec.log: pipelines/flacdec$(EXEEXT) + @p='pipelines/flacdec$(EXEEXT)'; \ + b='pipelines/flacdec'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/gdkpixbufsink.log: elements/gdkpixbufsink$(EXEEXT) + @p='elements/gdkpixbufsink$(EXEEXT)'; \ + b='elements/gdkpixbufsink'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/jpegdec.log: elements/jpegdec$(EXEEXT) + @p='elements/jpegdec$(EXEEXT)'; \ + b='elements/jpegdec'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/jpegenc.log: elements/jpegenc$(EXEEXT) + @p='elements/jpegenc$(EXEEXT)'; \ + b='elements/jpegenc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/souphttpsrc.log: elements/souphttpsrc$(EXEEXT) + @p='elements/souphttpsrc$(EXEEXT)'; \ + b='elements/souphttpsrc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/sunaudio.log: elements/sunaudio$(EXEEXT) + @p='elements/sunaudio$(EXEEXT)'; \ + b='elements/sunaudio'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/id3v2mux.log: elements/id3v2mux$(EXEEXT) + @p='elements/id3v2mux$(EXEEXT)'; \ + b='elements/id3v2mux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/apev2mux.log: elements/apev2mux$(EXEEXT) + @p='elements/apev2mux$(EXEEXT)'; \ + b='elements/apev2mux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/vp8enc.log: elements/vp8enc$(EXEEXT) + @p='elements/vp8enc$(EXEEXT)'; \ + b='elements/vp8enc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/vp8dec.log: elements/vp8dec$(EXEEXT) + @p='elements/vp8dec$(EXEEXT)'; \ + b='elements/vp8dec'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/wavpackdec.log: elements/wavpackdec$(EXEEXT) + @p='elements/wavpackdec$(EXEEXT)'; \ + b='elements/wavpackdec'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/wavpackenc.log: elements/wavpackenc$(EXEEXT) + @p='elements/wavpackenc$(EXEEXT)'; \ + b='elements/wavpackenc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +pipelines/wavpack.log: pipelines/wavpack$(EXEEXT) + @p='pipelines/wavpack$(EXEEXT)'; \ + b='pipelines/wavpack'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +orc/deinterlace.log: orc/deinterlace$(EXEEXT) + @p='orc/deinterlace$(EXEEXT)'; \ + b='orc/deinterlace'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +orc/videomixer.log: orc/videomixer$(EXEEXT) + @p='orc/videomixer$(EXEEXT)'; \ + b='orc/videomixer'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +orc/videobox.log: orc/videobox$(EXEEXT) + @p='orc/videobox$(EXEEXT)'; \ + b='orc/videobox'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -2854,6 +3959,9 @@ install-strip: "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -2942,19 +4050,20 @@ uninstall-am: .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool clean-local \ - clean-noinstLTLIBRARIES ctags distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am recheck tags tags-am uninstall \ + uninstall-am # keep target around, since it's referenced in the modules' Makefiles @@ -2967,6 +4076,8 @@ clean-local-check: @HAVE_VALGRIND_FALSE@check-valgrind: @HAVE_VALGRIND_FALSE@ @true +LOOPS ?= 10 + # run any given test by running make test.check # if the test fails, run it again at at least debug level 2 %.check: % @@ -3028,6 +4139,17 @@ clean-local-check: --gen-suppressions=all \ ./$* 2>&1 | tee suppressions.log +# valgrind torture any given test +%.valgrind-torture: % + @for i in `seq 1 $(LOOPS)`; do \ + $(MAKE) $*.valgrind || \ + (echo "Failure after $$i runs"; exit 1) || \ + exit 1; \ + done + @banner="All $(LOOPS) loops passed"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo $$dashes; echo $$banner; echo $$dashes + # valgrind any given test until failure by running make test.valgrind-forever %.valgrind-forever: % @while $(MAKE) $*.valgrind; do \ @@ -3040,9 +4162,31 @@ clean-local-check: $(LIBTOOL) --mode=execute \ gdb $* +%.lcov-reset: + $(MAKE) $*.lcov-run + $(MAKE) $*.lcov-report + +%.lcov: % + $(MAKE) $*.lcov-reset + +@GST_GCOV_ENABLED_TRUE@%.lcov-clean: +@GST_GCOV_ENABLED_TRUE@ $(MAKE) -C $(top_builddir) lcov-clean + +@GST_GCOV_ENABLED_TRUE@%.lcov-run: +@GST_GCOV_ENABLED_TRUE@ $(MAKE) $*.lcov-clean +@GST_GCOV_ENABLED_TRUE@ $(MAKE) $*.check + +@GST_GCOV_ENABLED_TRUE@%.lcov-report: +@GST_GCOV_ENABLED_TRUE@ $(MAKE) -C $(top_builddir) lcov-report +@GST_GCOV_ENABLED_FALSE@%.lcov-run: +@GST_GCOV_ENABLED_FALSE@ echo "Need to reconfigure with --enable-gcov" + +@GST_GCOV_ENABLED_FALSE@%.lcov-report: +@GST_GCOV_ENABLED_FALSE@ echo "Need to reconfigure with --enable-gcov" + # torture tests torture: $(TESTS) - -rm test-registry.xml + -rm test-registry.* @echo "Torturing tests ..." @for i in `seq 1 $(LOOPS)`; do \ $(MAKE) check || \ @@ -3055,7 +4199,7 @@ torture: $(TESTS) # forever tests forever: $(TESTS) - -rm test-registry.xml + -rm test-registry.* @echo "Forever tests ..." @while true; do \ $(MAKE) check || \ @@ -3081,6 +4225,29 @@ valgrind: $(TESTS) false; \ fi +# valgrind all tests until failure +valgrind-forever: $(TESTS) + -rm test-registry.* + @echo "Forever valgrinding tests ..." + @while true; do \ + $(MAKE) valgrind || \ + (echo "Failure"; exit 1) || \ + exit 1; \ + done + +# valgrind torture all tests +valgrind-torture: $(TESTS) + -rm test-registry.* + @echo "Torturing and valgrinding tests ..." + @for i in `seq 1 $(LOOPS)`; do \ + $(MAKE) valgrind || \ + (echo "Failure after $$i runs"; exit 1) || \ + exit 1; \ + done + @banner="All $(LOOPS) loops passed"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo $$dashes; echo $$banner; echo $$dashes + # valgrind all tests and generate suppressions valgrind.gen-suppressions: $(TESTS) @echo "Valgrinding tests ..." @@ -3117,10 +4284,13 @@ help: @echo "make (dir)/(test).gdb -- start up gdb for the given test" @echo @echo "make valgrind -- valgrind all tests" + @echo "make valgrind-forever -- valgrind all tests forever" + @echo "make valgrind-torture -- valgrind all tests $(LOOPS) times" @echo "make valgrind.gen-suppressions -- generate suppressions for all tests" @echo " and save to suppressions.log" @echo "make (dir)/(test).valgrind -- valgrind the given test" @echo "make (dir)/(test).valgrind-forever -- valgrind the given test forever" + @echo "make (dir)/(test).valgrind-torture -- valgrind the given test $(LOOPS) times" @echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions" @echo " and save to suppressions.log" @echo "make inspect -- inspect all plugin features" diff --git a/tests/check/elements/aacparse.c b/tests/check/elements/aacparse.c index 1b72479deab01fcb8e8e0eaf10c747b7d269da7b..b6112971a5596c04ccb3d7763c1cd933910baec1 100644 --- a/tests/check/elements/aacparse.c +++ b/tests/check/elements/aacparse.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/ac3parse.c b/tests/check/elements/ac3parse.c index eb25004971356fd90255f53ed2fcdba1950aa4c5..7877cd08facc1d0c4a327f077dca4e4b7ab26ff3 100644 --- a/tests/check/elements/ac3parse.c +++ b/tests/check/elements/ac3parse.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/alphacolor.c b/tests/check/elements/alphacolor.c index ff2cc93ab8a8bb21f267c27338e1dfe09d073736..15496d81bbe94da6640f2509f48f601d30daa502 100644 --- a/tests/check/elements/alphacolor.c +++ b/tests/check/elements/alphacolor.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -95,13 +95,6 @@ create_caps_rgba32 (void) return caps; } -static void -push_caps (GstCaps * caps) -{ - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); -} - static GstBuffer * create_buffer_rgb24_3x4 (void) { @@ -167,7 +160,7 @@ GST_START_TEST (test_rgb24) fail_unless_equals_int (gst_element_set_state (alphacolor, GST_STATE_PLAYING), GST_STATE_CHANGE_SUCCESS); - push_caps (create_caps_rgb24 ()); + gst_check_setup_events (mysrcpad, alphacolor, incaps, GST_FORMAT_TIME); inbuffer = create_buffer_rgb24_3x4 (); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -218,10 +211,11 @@ GST_START_TEST (test_rgba32) fail_unless_equals_int (gst_element_set_state (alphacolor, GST_STATE_PLAYING), GST_STATE_CHANGE_SUCCESS); - push_caps (create_caps_rgba32 ()); + gst_check_setup_events (mysrcpad, alphacolor, incaps, GST_FORMAT_TIME); inbuffer = create_buffer_rgba32_3x4 (); - GST_DEBUG ("Created buffer of %d bytes", gst_buffer_get_size (inbuffer)); + GST_DEBUG ("Created buffer of %" G_GSIZE_FORMAT " bytes", + gst_buffer_get_size (inbuffer)); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); /* pushing gives away reference */ diff --git a/tests/check/elements/amrparse.c b/tests/check/elements/amrparse.c index e5d64ca57c3c7061e5a5f5b2950b075224fdfdc3..ee5b4551649728ce1a8dd8ec115b65bb7e393a91 100644 --- a/tests/check/elements/amrparse.c +++ b/tests/check/elements/amrparse.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/apev2mux.c b/tests/check/elements/apev2mux.c index 8fecc664bff74ff51ca6e58731831e6525411083..88f9e3ecb03f1b81c47a5ea1651d655574675dd5 100644 --- a/tests/check/elements/apev2mux.c +++ b/tests/check/elements/apev2mux.c @@ -17,8 +17,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -209,7 +209,7 @@ got_buffer (GstElement * fakesink, GstBuffer * buf, GstPad * pad, gst_buffer_map (buf, &map, GST_MAP_READ); - GST_LOG ("got buffer, size=%u, offset=%" G_GINT64_FORMAT, map.size, off); + GST_LOG ("size=%" G_GSIZE_FORMAT ", offset=%" G_GINT64_FORMAT, map.size, off); fail_unless (GST_BUFFER_OFFSET_IS_VALID (buf)); diff --git a/tests/check/elements/aspectratiocrop.c b/tests/check/elements/aspectratiocrop.c index f02c6f9ba1c9979950a498621444fe574a9706c7..1728afd6e9e388673ec6e7010bcba0cba65bb516 100644 --- a/tests/check/elements/aspectratiocrop.c +++ b/tests/check/elements/aspectratiocrop.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -69,8 +69,7 @@ check_aspectratiocrop (const gchar * in_string, const gchar * out_string, src_pad = gst_pad_new (NULL, GST_PAD_SRC); gst_pad_set_active (src_pad, TRUE); GST_DEBUG ("setting caps %s %" GST_PTR_FORMAT, in_string, incaps); - fail_unless (gst_pad_set_caps (src_pad, incaps), - "Couldn't set input caps %" GST_PTR_FORMAT, incaps); + gst_check_setup_events (src_pad, element, incaps, GST_FORMAT_TIME); pad_peer = gst_element_get_static_pad (element, "sink"); fail_if (pad_peer == NULL); diff --git a/tests/check/elements/audioamplify.c b/tests/check/elements/audioamplify.c index ed3e15e086c98c207f7a11a8fd0d6fbab501489c..bebb004508ddfe7ff23d9120f17512f40a1c5091 100644 --- a/tests/check/elements/audioamplify.c +++ b/tests/check/elements/audioamplify.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -106,7 +106,7 @@ GST_START_TEST (test_passthrough) "could not set to playing"); caps = gst_caps_from_string (AMPLIFY_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = @@ -150,7 +150,7 @@ GST_START_TEST (test_zero) "could not set to playing"); caps = gst_caps_from_string (AMPLIFY_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = @@ -194,7 +194,7 @@ GST_START_TEST (test_050_clip) "could not set to playing"); caps = gst_caps_from_string (AMPLIFY_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = @@ -238,7 +238,7 @@ GST_START_TEST (test_200_clip) "could not set to playing"); caps = gst_caps_from_string (AMPLIFY_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = @@ -283,7 +283,7 @@ GST_START_TEST (test_050_wrap_negative) "could not set to playing"); caps = gst_caps_from_string (AMPLIFY_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = @@ -328,7 +328,7 @@ GST_START_TEST (test_200_wrap_negative) "could not set to playing"); caps = gst_caps_from_string (AMPLIFY_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = @@ -373,7 +373,7 @@ GST_START_TEST (test_050_wrap_positive) "could not set to playing"); caps = gst_caps_from_string (AMPLIFY_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = @@ -418,7 +418,7 @@ GST_START_TEST (test_200_wrap_positive) "could not set to playing"); caps = gst_caps_from_string (AMPLIFY_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = diff --git a/tests/check/elements/audiochebband.c b/tests/check/elements/audiochebband.c index 5f6148514c96cde184f196ece65a90b1bb41ee4e..70218223aa91e0e6b1b8477a9333cd16285ffeec 100644 --- a/tests/check/elements/audiochebband.c +++ b/tests/check/elements/audiochebband.c @@ -131,7 +131,7 @@ GST_START_TEST (test_type1_32_bp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -197,7 +197,7 @@ GST_START_TEST (test_type1_32_bp_11025hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -261,7 +261,7 @@ GST_START_TEST (test_type1_32_bp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -323,7 +323,7 @@ GST_START_TEST (test_type1_32_br_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -389,7 +389,7 @@ GST_START_TEST (test_type1_32_br_11025hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -453,7 +453,7 @@ GST_START_TEST (test_type1_32_br_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -515,7 +515,7 @@ GST_START_TEST (test_type1_64_bp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -581,7 +581,7 @@ GST_START_TEST (test_type1_64_bp_11025hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -645,7 +645,7 @@ GST_START_TEST (test_type1_64_bp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -707,7 +707,7 @@ GST_START_TEST (test_type1_64_br_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -773,7 +773,7 @@ GST_START_TEST (test_type1_64_br_11025hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -837,7 +837,7 @@ GST_START_TEST (test_type1_64_br_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -899,7 +899,7 @@ GST_START_TEST (test_type2_32_bp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -965,7 +965,7 @@ GST_START_TEST (test_type2_32_bp_11025hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1029,7 +1029,7 @@ GST_START_TEST (test_type2_32_bp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1091,7 +1091,7 @@ GST_START_TEST (test_type2_32_br_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1157,7 +1157,7 @@ GST_START_TEST (test_type2_32_br_11025hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1221,7 +1221,7 @@ GST_START_TEST (test_type2_32_br_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1283,7 +1283,7 @@ GST_START_TEST (test_type2_64_bp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1349,7 +1349,7 @@ GST_START_TEST (test_type2_64_bp_11025hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1413,7 +1413,7 @@ GST_START_TEST (test_type2_64_bp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1475,7 +1475,7 @@ GST_START_TEST (test_type2_64_br_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1541,7 +1541,7 @@ GST_START_TEST (test_type2_64_br_11025hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1605,7 +1605,7 @@ GST_START_TEST (test_type2_64_br_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); diff --git a/tests/check/elements/audiocheblimit.c b/tests/check/elements/audiocheblimit.c index 0a137f46c6e42933b5d3d3fb9f528847e7222c0d..c155b202fc4168b208f5e3007ce2646e8396f485 100644 --- a/tests/check/elements/audiocheblimit.c +++ b/tests/check/elements/audiocheblimit.c @@ -128,7 +128,7 @@ GST_START_TEST (test_type1_32_lp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -189,7 +189,7 @@ GST_START_TEST (test_type1_32_lp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -248,7 +248,7 @@ GST_START_TEST (test_type1_32_hp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -309,7 +309,7 @@ GST_START_TEST (test_type1_32_hp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -368,7 +368,7 @@ GST_START_TEST (test_type1_64_lp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -429,7 +429,7 @@ GST_START_TEST (test_type1_64_lp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -488,7 +488,7 @@ GST_START_TEST (test_type1_64_hp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -549,7 +549,7 @@ GST_START_TEST (test_type1_64_hp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -608,7 +608,7 @@ GST_START_TEST (test_type2_32_lp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -669,7 +669,7 @@ GST_START_TEST (test_type2_32_lp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -728,7 +728,7 @@ GST_START_TEST (test_type2_32_hp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -789,7 +789,7 @@ GST_START_TEST (test_type2_32_hp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -848,7 +848,7 @@ GST_START_TEST (test_type2_64_lp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -909,7 +909,7 @@ GST_START_TEST (test_type2_64_lp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -968,7 +968,7 @@ GST_START_TEST (test_type2_64_hp_0hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -1029,7 +1029,7 @@ GST_START_TEST (test_type2_64_hp_22050hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (BUFFER_CAPS_STRING_64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); diff --git a/tests/check/elements/audiodynamic.c b/tests/check/elements/audiodynamic.c index 63602b05a6e22dd1bc51363b651d0c537f7471cf..779f8e94715dc194b0875deeaa94a3ca1ebd625e 100644 --- a/tests/check/elements/audiodynamic.c +++ b/tests/check/elements/audiodynamic.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -110,7 +110,7 @@ GST_START_TEST (test_passthrough) NULL, NULL); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 12) == 0); caps = gst_caps_from_string (DYNAMIC_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -154,7 +154,7 @@ GST_START_TEST (test_compress_hard_50_50) gst_buffer_fill (inbuffer, 0, in, 16); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0); caps = gst_caps_from_string (DYNAMIC_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -202,7 +202,7 @@ GST_START_TEST (test_compress_soft_50_50) gst_buffer_fill (inbuffer, 0, in, 16); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0); caps = gst_caps_from_string (DYNAMIC_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -250,7 +250,7 @@ GST_START_TEST (test_compress_hard_100_50) gst_buffer_fill (inbuffer, 0, in, 16); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0); caps = gst_caps_from_string (DYNAMIC_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -299,7 +299,7 @@ GST_START_TEST (test_expand_hard_50_200) gst_buffer_fill (inbuffer, 0, in, 16); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0); caps = gst_caps_from_string (DYNAMIC_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -347,7 +347,7 @@ GST_START_TEST (test_expand_soft_50_200) gst_buffer_fill (inbuffer, 0, in, 16); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0); caps = gst_caps_from_string (DYNAMIC_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -395,7 +395,7 @@ GST_START_TEST (test_expand_hard_0_200) gst_buffer_fill (inbuffer, 0, in, 16); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0); caps = gst_caps_from_string (DYNAMIC_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); diff --git a/tests/check/elements/audioecho.c b/tests/check/elements/audioecho.c index 3c39a9910dfa0ab8f7a143c519ce3a0be6e033f9..025b710c09446c3a5526a18a8569ad8005f91ecb 100644 --- a/tests/check/elements/audioecho.c +++ b/tests/check/elements/audioecho.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -100,7 +100,7 @@ GST_START_TEST (test_passthrough) "could not set to playing"); caps = gst_caps_from_string (ECHO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, echo, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = @@ -146,7 +146,7 @@ GST_START_TEST (test_echo) "could not set to playing"); caps = gst_caps_from_string (ECHO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, echo, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = @@ -193,7 +193,7 @@ GST_START_TEST (test_feedback) "could not set to playing"); caps = gst_caps_from_string (ECHO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, echo, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = diff --git a/tests/check/elements/audioinvert.c b/tests/check/elements/audioinvert.c index 9d80baad7f0a27a6c8d340bd92920438c323cf2d..50981d7af250e516751c5d570a19d759a7f129d2 100644 --- a/tests/check/elements/audioinvert.c +++ b/tests/check/elements/audioinvert.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -110,7 +110,7 @@ GST_START_TEST (test_passthrough) gst_buffer_fill (inbuffer, 0, in, 8); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0); caps = gst_caps_from_string (INVERT_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, invert, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -154,7 +154,7 @@ GST_START_TEST (test_zero) gst_buffer_fill (inbuffer, 0, in, 8); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0); caps = gst_caps_from_string (INVERT_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, invert, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -198,7 +198,7 @@ GST_START_TEST (test_full_inverse) gst_buffer_fill (inbuffer, 0, in, 8); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0); caps = gst_caps_from_string (INVERT_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, invert, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -242,7 +242,7 @@ GST_START_TEST (test_25_inverse) gst_buffer_fill (inbuffer, 0, in, 8); fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0); caps = gst_caps_from_string (INVERT_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, invert, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); diff --git a/tests/check/elements/audiopanorama.c b/tests/check/elements/audiopanorama.c index 7f80ce8bb45633aa6fd8af78768ad2b02f670bdd..3857119b058504a4a12da3adcdf8c4820f96f4d6 100644 --- a/tests/check/elements/audiopanorama.c +++ b/tests/check/elements/audiopanorama.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -34,14 +34,14 @@ gboolean have_eos = FALSE; GstPad *mysrcpad, *mysinkpad; -#define PANORAMA_MONO_CAPS_STRING \ +#define PANORAMA_S16_MONO_CAPS_STRING \ "audio/x-raw, " \ "channels = (int) 1, " \ "rate = (int) 44100, " \ "layout = (string) interleaved, " \ "format = (string) " GST_AUDIO_NE(S16) -#define PANORAMA_STEREO_CAPS_STRING \ +#define PANORAMA_S16_STEREO_CAPS_STRING \ "audio/x-raw, " \ "channels = (int) 2, " \ "channel-mask = (bitmask) 3, " \ @@ -49,6 +49,21 @@ GstPad *mysrcpad, *mysinkpad; "layout = (string) interleaved, " \ "format = (string) " GST_AUDIO_NE(S16) +#define PANORAMA_F32_MONO_CAPS_STRING \ + "audio/x-raw, " \ + "channels = (int) 1, " \ + "rate = (int) 44100, " \ + "layout = (string) interleaved, " \ + "format = (string) " GST_AUDIO_NE(F32) + +#define PANORAMA_F32_STEREO_CAPS_STRING \ + "audio/x-raw, " \ + "channels = (int) 2, " \ + "channel-mask = (bitmask) 3, " \ + "rate = (int) 44100, " \ + "layout = (string) interleaved, " \ + "format = (string) " GST_AUDIO_NE(F32) + #define PANORAMA_WRONG_CAPS_STRING \ "audio/x-raw, " \ "channels = (int) 5, " \ @@ -57,60 +72,134 @@ GstPad *mysrcpad, *mysinkpad; "format = (string) " GST_AUDIO_NE(U16) -static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-raw, " - "channels = (int) 2, " - "rate = (int) [ 1, MAX ], " - "layout = (string) interleaved, " - "format = (string) " GST_AUDIO_NE (S16)) - ); -static GstStaticPadTemplate msrctemplate = GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-raw, " - "channels = (int) 1, " - "rate = (int) [ 1, MAX ], " - "layout = (string) interleaved, " - "format = (string) " GST_AUDIO_NE (S16)) - ); -static GstStaticPadTemplate ssrctemplate = GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-raw, " - "channels = (int) 2, " - "rate = (int) [ 1, MAX ], " - "layout = (string) interleaved, " - "format = (string) " GST_AUDIO_NE (S16)) - ); +static GstStaticPadTemplate sinktemplate[2] = { + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "channels = (int) 2, " + "rate = (int) [ 1, MAX ], " + "layout = (string) interleaved, " + "format = (string) " GST_AUDIO_NE (S16)) + ), + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "channels = (int) 2, " + "rate = (int) [ 1, MAX ], " + "layout = (string) interleaved, " + "format = (string) " GST_AUDIO_NE (F32)) + ), +}; + +static GstStaticPadTemplate msrctemplate[2] = { + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "channels = (int) 1, " + "rate = (int) [ 1, MAX ], " + "layout = (string) interleaved, " + "format = (string) " GST_AUDIO_NE (S16)) + ), + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "channels = (int) 1, " + "rate = (int) [ 1, MAX ], " + "layout = (string) interleaved, " + "format = (string) " GST_AUDIO_NE (F32)) + ), +}; + +static GstStaticPadTemplate ssrctemplate[2] = { + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "channels = (int) 2, " + "rate = (int) [ 1, MAX ], " + "layout = (string) interleaved, " + "format = (string) " GST_AUDIO_NE (S16)) + ), + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "channels = (int) 2, " + "rate = (int) [ 1, MAX ], " + "layout = (string) interleaved, " + "format = (string) " GST_AUDIO_NE (F32)) + ), +}; static GstElement * -setup_panorama_m (void) +setup_panorama (GstStaticPadTemplate * srctemplate, gint fmt, + const gchar * caps_str) { GstElement *panorama; GST_DEBUG ("setup_panorama"); panorama = gst_check_setup_element ("audiopanorama"); - mysrcpad = gst_check_setup_src_pad (panorama, &msrctemplate); - mysinkpad = gst_check_setup_sink_pad (panorama, &sinktemplate); + mysrcpad = gst_check_setup_src_pad (panorama, &srctemplate[fmt]); + mysinkpad = gst_check_setup_sink_pad (panorama, &sinktemplate[fmt]); gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); + if (caps_str) { + GstCaps *caps = gst_caps_from_string (caps_str); + gst_check_setup_events (mysrcpad, panorama, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + } return panorama; } static GstElement * -setup_panorama_s (void) +setup_panorama_s16_m (gint method, gfloat pan) { GstElement *panorama; + panorama = setup_panorama (msrctemplate, 0, PANORAMA_S16_MONO_CAPS_STRING); + g_object_set (G_OBJECT (panorama), "method", method, "panorama", pan, NULL); + gst_element_set_state (panorama, GST_STATE_PLAYING); + GST_DEBUG ("panorama(mono) ready"); - GST_DEBUG ("setup_panorama"); - panorama = gst_check_setup_element ("audiopanorama"); - mysrcpad = gst_check_setup_src_pad (panorama, &ssrctemplate); - mysinkpad = gst_check_setup_sink_pad (panorama, &sinktemplate); - gst_pad_set_active (mysrcpad, TRUE); - gst_pad_set_active (mysinkpad, TRUE); + return panorama; +} + +static GstElement * +setup_panorama_f32_m (gint method, gfloat pan) +{ + GstElement *panorama; + panorama = setup_panorama (msrctemplate, 1, PANORAMA_F32_MONO_CAPS_STRING); + g_object_set (G_OBJECT (panorama), "method", method, "panorama", pan, NULL); + gst_element_set_state (panorama, GST_STATE_PLAYING); + GST_DEBUG ("panorama(mono) ready"); + + return panorama; +} + +static GstElement * +setup_panorama_s16_s (gint method, gfloat pan) +{ + GstElement *panorama; + panorama = setup_panorama (ssrctemplate, 0, PANORAMA_S16_STEREO_CAPS_STRING); + g_object_set (G_OBJECT (panorama), "method", method, "panorama", pan, NULL); + gst_element_set_state (panorama, GST_STATE_PLAYING); + GST_DEBUG ("panorama(stereo) ready"); + + return panorama; +} + +static GstElement * +setup_panorama_f32_s (gint method, gfloat pan) +{ + GstElement *panorama; + panorama = setup_panorama (ssrctemplate, 1, PANORAMA_F32_STEREO_CAPS_STRING); + g_object_set (G_OBJECT (panorama), "method", method, "panorama", pan, NULL); + gst_element_set_state (panorama, GST_STATE_PLAYING); + GST_DEBUG ("panorama(stereo) ready"); return panorama; } @@ -118,7 +207,8 @@ setup_panorama_s (void) static void cleanup_panorama (GstElement * panorama) { - GST_DEBUG ("cleanup_panorama"); + GST_DEBUG ("cleaning up"); + gst_element_set_state (panorama, GST_STATE_NULL); g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); g_list_free (buffers); @@ -131,27 +221,39 @@ cleanup_panorama (GstElement * panorama) gst_check_teardown_element (panorama); } -GST_START_TEST (test_mono_middle) +static GstBuffer * +setup_buffer (gpointer data, gsize size) +{ + return gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, data, size, 0, + size, NULL, NULL); +} + +static void +do_panorama (gpointer in_data, gsize in_size, gpointer out_data, gsize out_size) +{ + GstBuffer *in, *out; + + in = setup_buffer (in_data, in_size); + fail_unless (gst_pad_push (mysrcpad, in) == GST_FLOW_OK); + fail_unless_equals_int (g_list_length (buffers), 1); + fail_if ((out = (GstBuffer *) buffers->data) == NULL); + fail_unless (gst_buffer_extract (out, 0, out_data, out_size) == out_size); +} + +/* the tests */ + +GST_START_TEST (test_ref_counts) { GstElement *panorama; GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; gint16 in[2] = { 16384, -256 }; - gint16 out[4] = { 8192, 8192, -128, -128 }; - gint16 res[4]; - panorama = setup_panorama_m (); + panorama = setup_panorama (msrctemplate, 0, PANORAMA_S16_MONO_CAPS_STRING); fail_unless (gst_element_set_state (panorama, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); - caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); - - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); + inbuffer = setup_buffer (in, sizeof (in)); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); /* pushing gives away my reference ... */ @@ -159,517 +261,515 @@ GST_START_TEST (test_mono_middle) /* ... but it ends up being collected on the global buffer list */ fail_unless_equals_int (g_list_length (buffers), 1); fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); - - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); + fail_if (inbuffer == outbuffer); /* cleanup */ + fail_unless (gst_element_set_state (panorama, + GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null"); + ASSERT_OBJECT_REFCOUNT (panorama, "panorama", 1); cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_mono_left) +GST_START_TEST (test_wrong_caps) { GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; + GstBuffer *inbuffer; gint16 in[2] = { 16384, -256 }; - gint16 out[4] = { 16384, 0, -256, 0 }; - gint16 res[4]; + GstBus *bus; + GstMessage *message; + GstCaps *caps; - panorama = setup_panorama_m (); - g_object_set (G_OBJECT (panorama), "panorama", -1.0, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + panorama = setup_panorama (msrctemplate, 0, NULL); + bus = gst_bus_new (); + gst_element_set_state (panorama, GST_STATE_PLAYING); + + inbuffer = setup_buffer (in, sizeof (in)); + gst_buffer_ref (inbuffer); - caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + /* set a bus here so we avoid getting state change messages */ + gst_element_set_bus (panorama, bus); + + caps = gst_caps_from_string (PANORAMA_WRONG_CAPS_STRING); + /* this actually succeeds, because the caps event is sticky */ + gst_check_setup_events (mysrcpad, panorama, caps, GST_FORMAT_TIME); gst_caps_unref (caps); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 4) == 0); + /* pushing gives an error because it can't negotiate with wrong caps */ + fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer), + GST_FLOW_NOT_NEGOTIATED); + /* ... and the buffer would have been lost if we didn't ref it ourselves */ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + gst_buffer_unref (inbuffer); + fail_unless_equals_int (g_list_length (buffers), 0); - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... and puts a new buffer on the global list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); - - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); + /* panorama_set_caps should not have been called since basetransform caught + * the negotiation problem */ + fail_if ((message = gst_bus_pop (bus)) != NULL); /* cleanup */ + gst_element_set_bus (panorama, NULL); + gst_object_unref (GST_OBJECT (bus)); + gst_element_set_state (panorama, GST_STATE_NULL); cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_mono_right) +/* processing for method=psy */ + +GST_START_TEST (test_s16_mono_middle) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; gint16 in[2] = { 16384, -256 }; - gint16 out[4] = { 0, 16384, 0, -256 }; + gint16 out[4] = { 8192, 8192, -128, -128 }; gint16 res[4]; + GstElement *panorama = setup_panorama_s16_m (0, 0.0); - panorama = setup_panorama_m (); - g_object_set (G_OBJECT (panorama), "panorama", 1.0, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + do_panorama (in, sizeof (in), res, sizeof (res)); - caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 4) == 0); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + cleanup_panorama (panorama); +} - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... and puts a new buffer on the global list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); +GST_END_TEST; + +GST_START_TEST (test_s16_mono_left) +{ + gint16 in[2] = { 16384, -256 }; + gint16 out[4] = { 16384, 0, -256, 0 }; + gint16 res[4]; + GstElement *panorama = setup_panorama_s16_m (0, -1.0); - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_stereo_middle) +GST_START_TEST (test_s16_mono_right) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; - gint16 in[4] = { 16384, -256, 8192, 128 }; + gint16 in[2] = { 16384, -256 }; + gint16 out[4] = { 0, 16384, 0, -256 }; gint16 res[4]; + GstElement *panorama = setup_panorama_s16_m (0, 1.0); - panorama = setup_panorama_s (); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + do_panorama (in, sizeof (in), res, sizeof (res)); - caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + cleanup_panorama (panorama); +} - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... but it ends up being collected on the global buffer list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); +GST_END_TEST; + +GST_START_TEST (test_s16_stereo_middle) +{ + gint16 in[4] = { 16384, -256, 8192, 128 }; + gint16 res[4]; + GstElement *panorama = setup_panorama_s16_s (0, 0.0); - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - in[0], in[1], in[2], in[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, in, 8) == 0); + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+5d %+5d %+5d %+5d", in[0], in[1], in[2], in[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, in, sizeof (res)) == 0); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_stereo_left) +GST_START_TEST (test_s16_stereo_left) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; gint16 in[4] = { 16384, -256, 8192, 128 }; gint16 out[4] = { 16384 - 256, 0, 8192 + 128, 0 }; gint16 res[4]; + GstElement *panorama = setup_panorama_s16_s (0, -1.0); - panorama = setup_panorama_s (); - g_object_set (G_OBJECT (panorama), "panorama", -1.0, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); - - caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); - - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); - - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... and puts a new buffer on the global list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + do_panorama (in, sizeof (in), res, sizeof (res)); - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_stereo_right) +GST_START_TEST (test_s16_stereo_right) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; gint16 in[4] = { 16384, -256, 8192, 128 }; gint16 out[4] = { 0, -256 + 16384, 0, 128 + 8192 }; gint16 res[4]; + GstElement *panorama = setup_panorama_s16_s (0, 1.0); - panorama = setup_panorama_s (); - g_object_set (G_OBJECT (panorama), "panorama", 1.0, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + do_panorama (in, sizeof (in), res, sizeof (res)); - caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + cleanup_panorama (panorama); +} - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... and puts a new buffer on the global list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); +GST_END_TEST; - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8)); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); +GST_START_TEST (test_f32_mono_middle) +{ + gfloat in[2] = { 0.5, -0.2 }; + gfloat out[4] = { 0.25, 0.25, -0.1, -0.1 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_m (0, 0.0); + gint i; + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_mono_middle_simple) +GST_START_TEST (test_f32_mono_left) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; - gint16 in[2] = { 16384, -256 }; - gint16 out[4] = { 16384, 16384, -256, -256 }; - gint16 res[4]; + gfloat in[2] = { 0.5, -0.2 }; + gfloat out[4] = { 0.5, 0.0, -0.2, 0.0 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_m (0, -1.0); + gint i; - panorama = setup_panorama_m (); - g_object_set (G_OBJECT (panorama), "method", 1, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + do_panorama (in, sizeof (in), res, sizeof (res)); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... but it ends up being collected on the global buffer list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + cleanup_panorama (panorama); +} - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); +GST_END_TEST; + +GST_START_TEST (test_f32_mono_right) +{ + gfloat in[2] = { 0.5, -0.2 }; + gfloat out[4] = { 0.0, 0.5, 0.0, -0.2 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_m (0, 1.0); + gint i; + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_mono_left_simple) +GST_START_TEST (test_f32_stereo_middle) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; - gint16 in[2] = { 16384, -256 }; - gint16 out[4] = { 16384, 0, -256, 0 }; - gint16 res[4]; + gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_s (0, 0.0); + gint i; - panorama = setup_panorama_m (); - g_object_set (G_OBJECT (panorama), "method", 1, NULL); - g_object_set (G_OBJECT (panorama), "panorama", -1.0, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + do_panorama (in, sizeof (in), res, sizeof (res)); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 4) == 0); - caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", in[0], in[1], in[2], in[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == in[i], "difference at pos=%d", i); - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... and puts a new buffer on the global list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + cleanup_panorama (panorama); +} - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); +GST_END_TEST; + +GST_START_TEST (test_f32_stereo_left) +{ + gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 }; + gfloat out[4] = { 0.5 - 0.2, 0.0, 0.25 + 0.1, 0.0 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_s (0, -1.0); + gint i; + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_mono_right_simple) +GST_START_TEST (test_f32_stereo_right) +{ + gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 }; + gfloat out[4] = { 0.0, -0.2 + 0.5, 0.0, 0.1 + 0.25 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_s (0, 1.0); + gint i; + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); + + cleanup_panorama (panorama); +} + +GST_END_TEST; + +/* processing for method=simple */ + +GST_START_TEST (test_s16_mono_middle_simple) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; gint16 in[2] = { 16384, -256 }; - gint16 out[4] = { 0, 16384, 0, -256 }; + gint16 out[4] = { 16384, 16384, -256, -256 }; gint16 res[4]; + GstElement *panorama = setup_panorama_s16_m (1, 0.0); - panorama = setup_panorama_m (); - g_object_set (G_OBJECT (panorama), "method", 1, NULL); - g_object_set (G_OBJECT (panorama), "panorama", 1.0, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + do_panorama (in, sizeof (in), res, sizeof (res)); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 4) == 0); - caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... and puts a new buffer on the global list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + cleanup_panorama (panorama); +} + +GST_END_TEST; - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); +GST_START_TEST (test_s16_mono_left_simple) +{ + gint16 in[2] = { 16384, -256 }; + gint16 out[4] = { 16384, 0, -256, 0 }; + gint16 res[4]; + GstElement *panorama = setup_panorama_s16_m (1, -1.0); + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_stereo_middle_simple) +GST_START_TEST (test_s16_mono_right_simple) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; - gint16 in[4] = { 16384, -256, 8192, 128 }; + gint16 in[2] = { 16384, -256 }; + gint16 out[4] = { 0, 16384, 0, -256 }; gint16 res[4]; + GstElement *panorama = setup_panorama_s16_m (1, 1.0); - panorama = setup_panorama_s (); - g_object_set (G_OBJECT (panorama), "method", 1, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + do_panorama (in, sizeof (in), res, sizeof (res)); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... but it ends up being collected on the global buffer list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + cleanup_panorama (panorama); +} - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - in[0], in[1], in[2], in[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, in, 8) == 0); +GST_END_TEST; + +GST_START_TEST (test_s16_stereo_middle_simple) +{ + gint16 in[4] = { 16384, -256, 8192, 128 }; + gint16 res[4]; + GstElement *panorama = setup_panorama_s16_s (1, 0.0); + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+5d %+5d %+5d %+5d", in[0], in[1], in[2], in[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, in, sizeof (res)) == 0); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_stereo_left_simple) +GST_START_TEST (test_s16_stereo_left_simple) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; gint16 in[4] = { 16384, -256, 8192, 128 }; gint16 out[4] = { 16384, 0, 8192, 0 }; gint16 res[4]; + GstElement *panorama = setup_panorama_s16_s (1, -1.0); - panorama = setup_panorama_s (); - g_object_set (G_OBJECT (panorama), "method", 1, NULL); - g_object_set (G_OBJECT (panorama), "panorama", -1.0, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); - - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0); - caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); - - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... and puts a new buffer on the global list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + do_panorama (in, sizeof (in), res, sizeof (res)); - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_stereo_right_simple) +GST_START_TEST (test_s16_stereo_right_simple) { - GstElement *panorama; - GstBuffer *inbuffer, *outbuffer; - GstCaps *caps; gint16 in[4] = { 16384, -256, 8192, 128 }; gint16 out[4] = { 0, -256, 0, 128 }; gint16 res[4]; + GstElement *panorama = setup_panorama_s16_s (1, 1.0); - panorama = setup_panorama_s (); - g_object_set (G_OBJECT (panorama), "method", 1, NULL); - g_object_set (G_OBJECT (panorama), "panorama", 1.0, NULL); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + do_panorama (in, sizeof (in), res, sizeof (res)); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0); - caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]); + fail_unless (memcmp (res, out, sizeof (res)) == 0); - /* pushing gives away my reference ... */ - fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... and puts a new buffer on the global list */ - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + cleanup_panorama (panorama); +} - fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8); - GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d", - out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]); - fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0); +GST_END_TEST; + +//----------------------------------------------------------------------------- + +GST_START_TEST (test_f32_mono_middle_simple) +{ + gfloat in[2] = { 0.5, -0.2 }; + gfloat out[4] = { 0.5, 0.5, -0.2, -0.2 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_m (1, 0.0); + gint i; + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); - /* cleanup */ cleanup_panorama (panorama); } GST_END_TEST; -GST_START_TEST (test_wrong_caps) +GST_START_TEST (test_f32_mono_left_simple) { - GstElement *panorama; - GstBuffer *inbuffer; - gint16 in[2] = { 16384, -256 }; - GstBus *bus; - GstMessage *message; - GstCaps *caps; + gfloat in[2] = { 0.5, -0.2 }; + gfloat out[4] = { 0.5, 0.0, -0.2, 0.0 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_m (1, -1.0); + gint i; - panorama = setup_panorama_m (); - bus = gst_bus_new (); + do_panorama (in, sizeof (in), res, sizeof (res)); - fail_unless (gst_element_set_state (panorama, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); - inbuffer = - gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0, - sizeof (in), NULL, NULL); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); - gst_buffer_ref (inbuffer); + cleanup_panorama (panorama); +} - /* set a bus here so we avoid getting state change messages */ - gst_element_set_bus (panorama, bus); +GST_END_TEST; - caps = gst_caps_from_string (PANORAMA_WRONG_CAPS_STRING); - /* this actually succeeds, because the caps event is sticky */ - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); +GST_START_TEST (test_f32_mono_right_simple) +{ + gfloat in[2] = { 0.5, -0.2 }; + gfloat out[4] = { 0.0, 0.5, 0.0, -0.2 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_m (1, 1.0); + gint i; - /* pushing gives an error because it can't negotiate with wrong caps */ - fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer), - GST_FLOW_NOT_NEGOTIATED); - /* ... and the buffer would have been lost if we didn't ref it ourselves */ - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); - gst_buffer_unref (inbuffer); - fail_unless_equals_int (g_list_length (buffers), 0); + do_panorama (in, sizeof (in), res, sizeof (res)); - /* panorama_set_caps should not have been called since basetransform caught - * the negotiation problem */ - fail_if ((message = gst_bus_pop (bus)) != NULL); + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); + + cleanup_panorama (panorama); +} + +GST_END_TEST; + +GST_START_TEST (test_f32_stereo_middle_simple) +{ + gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_s (1, 0.0); + gint i; + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", in[0], in[1], in[2], in[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == in[i], "difference at pos=%d", i); + + cleanup_panorama (panorama); +} + +GST_END_TEST; + +GST_START_TEST (test_f32_stereo_left_simple) +{ + gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 }; + gfloat out[4] = { 0.5, 0.0, 0.25, 0.0 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_s (1, -1.0); + gint i; + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); + + cleanup_panorama (panorama); +} + +GST_END_TEST; + +GST_START_TEST (test_f32_stereo_right_simple) +{ + gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 }; + gfloat out[4] = { 0.0, -0.2, 0.0, 0.1 }; + gfloat res[4]; + GstElement *panorama = setup_panorama_f32_s (1, 1.0); + gint i; + + do_panorama (in, sizeof (in), res, sizeof (res)); + + GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]); + GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]); + for (i = 0; i < 4; i++) + fail_unless (res[i] == out[i], "difference at pos=%d", i); - /* cleanup */ - gst_element_set_bus (panorama, NULL); - gst_object_unref (GST_OBJECT (bus)); cleanup_panorama (panorama); } @@ -683,36 +783,36 @@ panorama_suite (void) TCase *tc_chain = tcase_create ("general"); suite_add_tcase (s, tc_chain); - tcase_add_test (tc_chain, test_mono_middle); - tcase_add_test (tc_chain, test_mono_left); - tcase_add_test (tc_chain, test_mono_right); - tcase_add_test (tc_chain, test_stereo_middle); - tcase_add_test (tc_chain, test_stereo_left); - tcase_add_test (tc_chain, test_stereo_right); - tcase_add_test (tc_chain, test_mono_middle_simple); - tcase_add_test (tc_chain, test_mono_left_simple); - tcase_add_test (tc_chain, test_mono_right_simple); - tcase_add_test (tc_chain, test_stereo_middle_simple); - tcase_add_test (tc_chain, test_stereo_left_simple); - tcase_add_test (tc_chain, test_stereo_right_simple); + tcase_add_test (tc_chain, test_ref_counts); tcase_add_test (tc_chain, test_wrong_caps); + /* processing for method=psy */ + tcase_add_test (tc_chain, test_s16_mono_middle); + tcase_add_test (tc_chain, test_s16_mono_left); + tcase_add_test (tc_chain, test_s16_mono_right); + tcase_add_test (tc_chain, test_s16_stereo_middle); + tcase_add_test (tc_chain, test_s16_stereo_left); + tcase_add_test (tc_chain, test_s16_stereo_right); + tcase_add_test (tc_chain, test_f32_mono_middle); + tcase_add_test (tc_chain, test_f32_mono_left); + tcase_add_test (tc_chain, test_f32_mono_right); + tcase_add_test (tc_chain, test_f32_stereo_middle); + tcase_add_test (tc_chain, test_f32_stereo_left); + tcase_add_test (tc_chain, test_f32_stereo_right); + /* processing for method=simple */ + tcase_add_test (tc_chain, test_s16_mono_middle_simple); + tcase_add_test (tc_chain, test_s16_mono_left_simple); + tcase_add_test (tc_chain, test_s16_mono_right_simple); + tcase_add_test (tc_chain, test_s16_stereo_middle_simple); + tcase_add_test (tc_chain, test_s16_stereo_left_simple); + tcase_add_test (tc_chain, test_s16_stereo_right_simple); + tcase_add_test (tc_chain, test_f32_mono_middle_simple); + tcase_add_test (tc_chain, test_f32_mono_left_simple); + tcase_add_test (tc_chain, test_f32_mono_right_simple); + tcase_add_test (tc_chain, test_f32_stereo_middle_simple); + tcase_add_test (tc_chain, test_f32_stereo_left_simple); + tcase_add_test (tc_chain, test_f32_stereo_right_simple); return s; } -int -main (int argc, char **argv) -{ - int nf; - - Suite *s = panorama_suite (); - SRunner *sr = srunner_create (s); - - gst_check_init (&argc, &argv); - - srunner_run_all (sr, CK_NORMAL); - nf = srunner_ntests_failed (sr); - srunner_free (sr); - - return nf; -} +GST_CHECK_MAIN (panorama); diff --git a/tests/check/elements/audiowsincband.c b/tests/check/elements/audiowsincband.c index 76c8664aa7404e9dd182ba090de98a51dff2ffd1..0a5b9c1282ed32ea68801e8a9a2cde5611ca882f 100644 --- a/tests/check/elements/audiowsincband.c +++ b/tests/check/elements/audiowsincband.c @@ -132,15 +132,15 @@ GST_START_TEST (test_32_bp_0hz) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -211,7 +211,7 @@ GST_START_TEST (test_32_bp_11025hz) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -285,15 +285,15 @@ GST_START_TEST (test_32_bp_22050hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -357,15 +357,15 @@ GST_START_TEST (test_32_br_0hz) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -434,15 +434,15 @@ GST_START_TEST (test_32_br_11025hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -509,15 +509,15 @@ GST_START_TEST (test_32_br_22050hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -579,15 +579,15 @@ GST_START_TEST (test_32_small_buffer) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -643,15 +643,15 @@ GST_START_TEST (test_64_bp_0hz) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -719,15 +719,15 @@ GST_START_TEST (test_64_bp_11025hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -794,15 +794,15 @@ GST_START_TEST (test_64_bp_22050hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -866,15 +866,15 @@ GST_START_TEST (test_64_br_0hz) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -943,15 +943,15 @@ GST_START_TEST (test_64_br_11025hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -1018,15 +1018,15 @@ GST_START_TEST (test_64_br_22050hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -1088,15 +1088,15 @@ GST_START_TEST (test_64_small_buffer) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); diff --git a/tests/check/elements/audiowsinclimit.c b/tests/check/elements/audiowsinclimit.c index bee834c175b6928f5879a87e6e5709ebb2dcb213..de80451a5309939dc75ad35944cd836c6169f18a 100644 --- a/tests/check/elements/audiowsinclimit.c +++ b/tests/check/elements/audiowsinclimit.c @@ -129,15 +129,15 @@ GST_START_TEST (test_32_lp_0hz) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -200,15 +200,15 @@ GST_START_TEST (test_32_lp_22050hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -269,15 +269,15 @@ GST_START_TEST (test_32_hp_0hz) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -340,15 +340,15 @@ GST_START_TEST (test_32_hp_22050hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -408,15 +408,15 @@ GST_START_TEST (test_32_small_buffer) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -463,15 +463,15 @@ GST_START_TEST (test_64_lp_0hz) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -534,15 +534,15 @@ GST_START_TEST (test_64_lp_22050hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -603,15 +603,15 @@ GST_START_TEST (test_64_hp_0hz) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -674,15 +674,15 @@ GST_START_TEST (test_64_hp_22050hz) } gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); @@ -742,15 +742,15 @@ GST_START_TEST (test_64_small_buffer) in[i] = 1.0; gst_buffer_unmap (inbuffer, &map); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* ensure segment (format) properly setup */ + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ())); diff --git a/tests/check/elements/autodetect.c b/tests/check/elements/autodetect.c index 03a7ee95bf4af6659cc4d6bb79b7dab6118b0302..c1ee314dd8648ac5aef5daa47ca007cdfbe21a1b 100644 --- a/tests/check/elements/autodetect.c +++ b/tests/check/elements/autodetect.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -29,6 +29,7 @@ GST_START_TEST (test_autovideosink_ghostpad_error_case) GstStateChangeReturn state_ret; GstElement *pipeline, *src, *filter, *sink; GstCaps *caps; + GstElement *fakesink; pipeline = gst_pipeline_new ("pipeline"); src = gst_element_factory_make ("fakesrc", NULL); @@ -55,12 +56,21 @@ GST_START_TEST (test_autovideosink_ghostpad_error_case) state_ret = gst_element_get_state (pipeline, &state, &state, GST_CLOCK_TIME_NONE); } - fail_unless (state_ret == GST_STATE_CHANGE_FAILURE, - "pipeline _set_state() to PAUSED succeeded but should have failed"); - - /* so, we hit an error and try to shut down the pipeline; this shouldn't - * deadlock or block anywhere when autovideosink resets the ghostpad - * targets etc. */ + fakesink = gst_bin_get_by_name (GST_BIN (sink), "fake-video-sink"); + if (fakesink != NULL) { + /* no real video sink available */ + fail_unless (state_ret == GST_STATE_CHANGE_SUCCESS, + "pipeline _set_state() to PAUSED failed"); + gst_object_unref (fakesink); + } else { + /* autovideosink contains a real video sink */ + fail_unless (state_ret == GST_STATE_CHANGE_FAILURE, + "pipeline _set_state() to PAUSED succeeded but should have failed"); + + /* so, we hit an error and try to shut down the pipeline; this shouldn't + * deadlock or block anywhere when autovideosink resets the ghostpad + * targets etc. */ + } state_ret = gst_element_set_state (pipeline, GST_STATE_NULL); fail_unless (state_ret == GST_STATE_CHANGE_SUCCESS, "State change on pipeline failed"); diff --git a/tests/check/elements/avimux.c b/tests/check/elements/avimux.c index 77441258f9f4551855d576d3d7a62aeef00f4c87..47c155fd9b24bba01ebd40064b4dc06986fd6b5e 100644 --- a/tests/check/elements/avimux.c +++ b/tests/check/elements/avimux.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -161,21 +161,17 @@ check_avimux_pad (GstStaticPadTemplate * srctemplate, guint8 data5[4] = "strf"; guint8 data6[4] = "LIST"; guint8 data7[4] = "movi"; - GstSegment segment; avimux = setup_avimux (srctemplate, sinkname); fail_unless (gst_element_set_state (avimux, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); - /* ensure segment (format) properly setup */ - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - inbuffer = gst_buffer_new_and_alloc (1); caps = gst_caps_from_string (src_caps_string); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, avimux, caps, GST_FORMAT_TIME); gst_caps_unref (caps); + GST_BUFFER_TIMESTAMP (inbuffer) = 0; ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); diff --git a/tests/check/elements/avisubtitle.c b/tests/check/elements/avisubtitle.c index 781c0e6d12d6062aeaa0401358c822307c3079dd..1b00b15e402fd4d1a271bc19fc455a520583875e 100644 --- a/tests/check/elements/avisubtitle.c +++ b/tests/check/elements/avisubtitle.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* Element-Checklist-Version: 5 */ @@ -70,19 +70,16 @@ static GstElement * setup_avisubtitle (void) { GstElement *avisubtitle; - GstCaps *sinkcaps, *srccaps; + GstCaps *srccaps; GST_DEBUG ("setup_avisubtitle"); avisubtitle = gst_check_setup_element ("avisubtitle"); - sinkcaps = gst_caps_new_empty_simple ("application/x-subtitle"); mysinkpad = gst_check_setup_sink_pad (avisubtitle, &sink_template); - srccaps = gst_caps_new_empty_simple ("application/x-subtitle-avi"); mysrcpad = gst_check_setup_src_pad (avisubtitle, &src_template); gst_pad_set_active (mysinkpad, TRUE); gst_pad_set_active (mysrcpad, TRUE); - fail_unless (gst_pad_set_caps (mysinkpad, sinkcaps)); - fail_unless (gst_pad_set_caps (mysrcpad, srccaps)); - gst_caps_unref (sinkcaps); + srccaps = gst_caps_new_empty_simple ("application/x-subtitle-avi"); + gst_check_setup_events (mysrcpad, avisubtitle, srccaps, GST_FORMAT_TIME); gst_caps_unref (srccaps); return avisubtitle; } diff --git a/tests/check/elements/capssetter.c b/tests/check/elements/capssetter.c index e1eec8d8ee1c3893004e8097f56aed0599594246..17e563b513e2ceb47046af2c728bb879e166b0ab 100644 --- a/tests/check/elements/capssetter.c +++ b/tests/check/elements/capssetter.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -90,7 +90,7 @@ push_and_test (GstCaps * prop_caps, gboolean join, gboolean replace, ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1); gst_buffer_fill (buffer, 0, "data", 4); - gst_pad_set_caps (mysrcpad, in_caps); + gst_check_setup_events (mysrcpad, capssetter, in_caps, GST_FORMAT_TIME); gst_caps_unref (in_caps); /* pushing gives away my reference ... */ diff --git a/tests/check/elements/deinterlace.c b/tests/check/elements/deinterlace.c index cc5634d20ddf92d3381dbd4fec8c8b4fec7b44a6..c9da2dd823fadbf7538c063f96b642af2535ee67 100644 --- a/tests/check/elements/deinterlace.c +++ b/tests/check/elements/deinterlace.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -276,8 +276,13 @@ static void deinterlace_set_caps_and_check (GstCaps * input, gboolean must_deinterlace) { GstCaps *othercaps = NULL; + GstSegment segment; + gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test")); fail_unless (gst_pad_set_caps (sinkpad, input)); + gst_segment_init (&segment, GST_FORMAT_TIME); + gst_pad_send_event (sinkpad, gst_event_new_segment (&segment)); + g_object_get (srcpad, "caps", &othercaps, NULL); if (must_deinterlace) { diff --git a/tests/check/elements/deinterleave.c b/tests/check/elements/deinterleave.c index a76024a97160f7d3278ae964f323cb7204e182de..2ad17b3ac3646911816b2979ef73f2b5bc8a9672 100644 --- a/tests/check/elements/deinterleave.c +++ b/tests/check/elements/deinterleave.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -154,8 +154,7 @@ GST_START_TEST (test_2_channels) gst_caps_set_simple (caps, "channel-mask", GST_TYPE_BITMASK, channel_mask, NULL); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_pad_use_fixed_caps (mysrcpad); + gst_check_setup_events (mysrcpad, deinterleave, caps, GST_FORMAT_TIME); sinkpad = gst_element_get_static_pad (deinterleave, "sink"); fail_unless (sinkpad != NULL); @@ -180,7 +179,6 @@ GST_START_TEST (test_2_channels) indata[i + 1] = 1.0; } gst_buffer_unmap (inbuf, &map); - gst_pad_set_caps (mysrcpad, caps); fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK); @@ -227,8 +225,7 @@ GST_START_TEST (test_2_channels_1_linked) gst_caps_set_simple (caps, "channel-mask", GST_TYPE_BITMASK, channel_mask, NULL); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_pad_use_fixed_caps (mysrcpad); + gst_check_setup_events (mysrcpad, deinterleave, caps, GST_FORMAT_TIME); sinkpad = gst_element_get_static_pad (deinterleave, "sink"); fail_unless (sinkpad != NULL); @@ -253,7 +250,6 @@ GST_START_TEST (test_2_channels_1_linked) indata[i + 1] = 1.0; } gst_buffer_unmap (inbuf, &map); - gst_pad_set_caps (mysrcpad, caps); fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK); @@ -301,8 +297,7 @@ GST_START_TEST (test_2_channels_caps_change) G_GUINT64_CONSTANT (1) << GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; gst_caps_set_simple (caps, "channel-mask", GST_TYPE_BITMASK, channel_mask, NULL); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_pad_use_fixed_caps (mysrcpad); + gst_check_setup_events (mysrcpad, deinterleave, caps, GST_FORMAT_TIME); sinkpad = gst_element_get_static_pad (deinterleave, "sink"); fail_unless (sinkpad != NULL); @@ -327,7 +322,6 @@ GST_START_TEST (test_2_channels_caps_change) indata[i + 1] = 1.0; } gst_buffer_unmap (inbuf, &map); - gst_pad_set_caps (mysrcpad, caps); fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK); @@ -350,7 +344,6 @@ GST_START_TEST (test_2_channels_caps_change) indata[i + 1] = 1.0; } gst_buffer_unmap (inbuf, &map); - gst_pad_set_caps (mysrcpad, caps2); /* Should work fine because the caps changed in a compatible way */ fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK); @@ -379,7 +372,6 @@ GST_START_TEST (test_2_channels_caps_change) indata[i + 2] = 0.0; } gst_buffer_unmap (inbuf, &map); - gst_pad_set_caps (mysrcpad, caps2); /* Should break because the caps changed in an incompatible way */ fail_if (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK); @@ -427,21 +419,6 @@ src_handoff_float32_8ch (GstElement * src, GstBuffer * buf, GstPad * pad, { gfloat *data, *p; guint size, i, c; - GstAudioChannelPosition layout[NUM_CHANNELS]; - GstCaps *caps; - - caps = gst_caps_new_simple ("audio/x-raw", - "format", G_TYPE_STRING, GST_AUDIO_NE (F32), - "channels", G_TYPE_INT, NUM_CHANNELS, - "layout", G_TYPE_STRING, "interleaved", - "rate", G_TYPE_INT, SAMPLE_RATE, NULL); - - for (i = 0; i < NUM_CHANNELS; ++i) - layout[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT + i; - - set_channel_positions (caps, NUM_CHANNELS, layout); - gst_pad_set_caps (pad, caps); - gst_caps_unref (caps); size = sizeof (gfloat) * SAMPLES_PER_BUFFER * NUM_CHANNELS; data = p = (gfloat *) g_malloc (size); @@ -464,6 +441,34 @@ src_handoff_float32_8ch (GstElement * src, GstBuffer * buf, GstPad * pad, GST_BUFFER_TIMESTAMP (buf) = 0; } +static GstPadProbeReturn +src_event_probe (GstPad * pad, GstPadProbeInfo * info, gpointer userdata) +{ + GstAudioChannelPosition layout[NUM_CHANNELS]; + GstCaps *caps; + guint i; + + if ((info->type & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) + && GST_EVENT_TYPE (info->data) == GST_EVENT_STREAM_START) { + gst_pad_remove_probe (pad, info->id); + + caps = gst_caps_new_simple ("audio/x-raw", + "format", G_TYPE_STRING, GST_AUDIO_NE (F32), + "channels", G_TYPE_INT, NUM_CHANNELS, + "layout", G_TYPE_STRING, "interleaved", + "rate", G_TYPE_INT, SAMPLE_RATE, NULL); + + for (i = 0; i < NUM_CHANNELS; ++i) + layout[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT + i; + + set_channel_positions (caps, NUM_CHANNELS, layout); + gst_pad_set_caps (pad, caps); + gst_caps_unref (caps); + } + + return GST_PAD_PROBE_OK; +} + static GstPadProbeReturn float_buffer_check_probe (GstPad * pad, GstPadProbeInfo * info, gpointer userdata) @@ -543,7 +548,6 @@ pad_added_setup_data_check_float32_8ch_cb (GstElement * deinterleave, fail_unless_equals_int (gst_pad_link (pad, sinkpad), GST_PAD_LINK_OK); gst_object_unref (sinkpad); - gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER, float_buffer_check_probe, GUINT_TO_POINTER (pads_created), NULL); @@ -558,6 +562,7 @@ static GstElement * make_fake_src_8chans_float32 (void) { GstElement *src; + GstPad *pad; src = gst_element_factory_make ("fakesrc", "src"); fail_unless (src != NULL, "failed to create fakesrc element"); @@ -567,6 +572,11 @@ make_fake_src_8chans_float32 (void) g_signal_connect (src, "handoff", G_CALLBACK (src_handoff_float32_8ch), NULL); + pad = gst_element_get_static_pad (src, "src"); + gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, src_event_probe, + NULL, NULL); + gst_object_unref (pad); + return src; } diff --git a/tests/check/elements/dtmf.c b/tests/check/elements/dtmf.c new file mode 100644 index 0000000000000000000000000000000000000000..8b295da0674dcc51b64d5ad050e2a90fdfc6bc36 --- /dev/null +++ b/tests/check/elements/dtmf.c @@ -0,0 +1,588 @@ +/* GStreamer + * + * unit test for dtmf elements + * Copyright (C) 2013 Collabora Ltd + * @author: Olivier Crete <olivier.crete@collabora.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/gst.h> +#include <gst/audio/audio.h> +#include <gst/check/gstcheck.h> +#include <gst/check/gsttestclock.h> +#include <gst/rtp/gstrtpbuffer.h> + + +/* Include this from the plugin to get the defines */ + +#include "../../gst/dtmf/gstdtmfcommon.h" + +#define END_BIT (1<<7) + +static GstStaticPadTemplate audio_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "format = (string) \"" GST_AUDIO_NE (S16) "\", " + "rate = " GST_AUDIO_RATE_RANGE ", " "channels = (int) 1") + ); + +static GstStaticPadTemplate rtp_dtmf_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "media = (string) \"audio\", " + "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " + "clock-rate = (int) [ 0, MAX ], " + "encoding-name = (string) \"TELEPHONE-EVENT\"") + ); + + +static void +check_get_dtmf_event_message (GstBus * bus, gint number, gint volume) +{ + GstMessage *message; + gboolean have_message = FALSE; + + while (!have_message && + (message = gst_bus_pop_filtered (bus, GST_MESSAGE_ELEMENT)) != NULL) { + if (gst_message_has_name (message, "dtmf-event")) { + const GstStructure *s = gst_message_get_structure (message); + gint stype, snumber, smethod, svolume; + + fail_unless (gst_structure_get (s, + "type", G_TYPE_INT, &stype, + "number", G_TYPE_INT, &snumber, + "method", G_TYPE_INT, &smethod, + "volume", G_TYPE_INT, &svolume, NULL)); + + fail_unless (stype == 1); + fail_unless (smethod == 1); + fail_unless (snumber == number); + fail_unless (svolume == volume); + have_message = TRUE; + } + gst_message_unref (message); + } + + fail_unless (have_message); +} + +static void +check_no_dtmf_event_message (GstBus * bus) +{ + GstMessage *message; + gboolean have_message = FALSE; + + while (!have_message && + (message = gst_bus_pop_filtered (bus, GST_MESSAGE_ELEMENT)) != NULL) { + if (gst_message_has_name (message, "dtmf-event") || + gst_message_has_name (message, "dtmf-event-processed") || + gst_message_has_name (message, "dtmf-event-dropped")) { + have_message = TRUE; + } + gst_message_unref (message); + } + + fail_unless (!have_message); +} + +static void +check_buffers_duration (GstClockTime expected_duration) +{ + GstClockTime duration = 0; + + while (buffers) { + GstBuffer *buf = buffers->data; + + buffers = g_list_delete_link (buffers, buffers); + + fail_unless (GST_BUFFER_DURATION_IS_VALID (buf)); + duration += GST_BUFFER_DURATION (buf); + gst_buffer_unref (buf); + } + + fail_unless (duration == expected_duration); +} + +static void +send_rtp_packet (GstPad * src, guint timestamp, gboolean marker, gboolean end, + guint number, guint volume, guint duration) +{ + GstBuffer *buf; + GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT; + gchar *payload; + static guint seqnum = 1; + + buf = gst_rtp_buffer_new_allocate (4, 0, 0); + fail_unless (gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtpbuf)); + gst_rtp_buffer_set_seq (&rtpbuf, seqnum++); + gst_rtp_buffer_set_timestamp (&rtpbuf, timestamp); + gst_rtp_buffer_set_marker (&rtpbuf, marker); + payload = gst_rtp_buffer_get_payload (&rtpbuf); + payload[0] = number; + payload[1] = volume | (end ? END_BIT : 0); + GST_WRITE_UINT16_BE (payload + 2, duration); + gst_rtp_buffer_unmap (&rtpbuf); + fail_unless (gst_pad_push (src, buf) == GST_FLOW_OK); +} + +GST_START_TEST (test_rtpdtmfdepay) +{ + GstElement *dtmfdepay; + GstPad *src, *sink; + GstBus *bus; + GstCaps *caps_in; + GstCaps *expected_caps_out; + GstCaps *caps_out; + + dtmfdepay = gst_check_setup_element ("rtpdtmfdepay"); + sink = gst_check_setup_sink_pad (dtmfdepay, &audio_sink_template); + src = gst_check_setup_src_pad (dtmfdepay, &rtp_dtmf_src_template); + + bus = gst_bus_new (); + gst_element_set_bus (dtmfdepay, bus); + + gst_pad_set_active (src, TRUE); + gst_pad_set_active (sink, TRUE); + gst_element_set_state (dtmfdepay, GST_STATE_PLAYING); + + + caps_in = gst_caps_new_simple ("application/x-rtp", + "encoding-name", G_TYPE_STRING, "TELEPHONE-EVENT", + "media", G_TYPE_STRING, "audio", + "clock-rate", G_TYPE_INT, 1000, "payload", G_TYPE_INT, 99, NULL); + gst_check_setup_events (src, dtmfdepay, caps_in, GST_FORMAT_TIME); + gst_caps_unref (caps_in); + + caps_out = gst_pad_get_current_caps (sink); + expected_caps_out = gst_caps_new_simple ("audio/x-raw", + "format", G_TYPE_STRING, GST_AUDIO_NE (S16), + "rate", G_TYPE_INT, 1000, "channels", G_TYPE_INT, 1, NULL); + fail_unless (gst_caps_is_equal_fixed (caps_out, expected_caps_out)); + gst_caps_unref (expected_caps_out); + gst_caps_unref (caps_out); + + /* Single packet DTMF */ + send_rtp_packet (src, 200, TRUE, TRUE, 1, 5, 250); + check_get_dtmf_event_message (bus, 1, 5); + check_buffers_duration (250 * GST_MSECOND); + + /* Two packet DTMF */ + send_rtp_packet (src, 800, TRUE, FALSE, 1, 5, 200); + send_rtp_packet (src, 800, FALSE, TRUE, 1, 5, 400); + check_buffers_duration (400 * GST_MSECOND); + check_get_dtmf_event_message (bus, 1, 5); + + /* Long DTMF */ + send_rtp_packet (src, 3000, TRUE, FALSE, 1, 5, 200); + check_get_dtmf_event_message (bus, 1, 5); + check_buffers_duration (200 * GST_MSECOND); + send_rtp_packet (src, 3000, FALSE, FALSE, 1, 5, 400); + check_no_dtmf_event_message (bus); + check_buffers_duration (200 * GST_MSECOND); + send_rtp_packet (src, 3000, FALSE, FALSE, 1, 5, 600); + check_no_dtmf_event_message (bus); + check_buffers_duration (200 * GST_MSECOND); + + /* New without end to last */ + send_rtp_packet (src, 4000, TRUE, TRUE, 1, 5, 250); + check_get_dtmf_event_message (bus, 1, 5); + check_buffers_duration (250 * GST_MSECOND); + + check_no_dtmf_event_message (bus); + fail_unless (buffers == NULL); + gst_element_set_bus (dtmfdepay, NULL); + gst_object_unref (bus); + + gst_pad_set_active (src, FALSE); + gst_pad_set_active (sink, FALSE); + gst_check_teardown_sink_pad (dtmfdepay); + gst_check_teardown_src_pad (dtmfdepay); + gst_check_teardown_element (dtmfdepay); +} + +GST_END_TEST; + + +static GstStaticPadTemplate rtp_dtmf_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "media = (string) \"audio\", " + "payload = (int) 99, " + "clock-rate = (int) 1000, " + "seqnum-base = (uint) 333, " + "clock-base = (uint) 666, " + "ssrc = (uint) 999, " + "maxptime = (uint) 20, encoding-name = (string) \"TELEPHONE-EVENT\"") + ); + +GstElement *dtmfsrc; +GstPad *sink; +GstClock *testclock; +GstBus *bus; + +static void +check_message_structure (GstStructure * expected_s) +{ + GstMessage *message; + gboolean have_message = FALSE; + + while (!have_message && + (message = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, + GST_MESSAGE_ELEMENT)) != NULL) { + if (gst_message_has_name (message, gst_structure_get_name (expected_s))) { + const GstStructure *s = gst_message_get_structure (message); + + fail_unless (gst_structure_is_equal (s, expected_s)); + have_message = TRUE; + } + gst_message_unref (message); + } + + fail_unless (have_message); + + gst_structure_free (expected_s); +} + +static void +check_rtp_buffer (GstClockTime ts, GstClockTime duration, gboolean start, + gboolean end, guint rtpts, guint ssrc, guint volume, guint number, + guint rtpduration) +{ + GstBuffer *buffer; + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + gchar *payload; + + g_mutex_lock (&check_mutex); + while (buffers == NULL) + g_cond_wait (&check_cond, &check_mutex); + g_mutex_unlock (&check_mutex); + fail_unless (buffers != NULL); + + buffer = buffers->data; + buffers = g_list_delete_link (buffers, buffers); + + fail_unless (GST_BUFFER_PTS (buffer) == ts); + fail_unless (GST_BUFFER_DURATION (buffer) == duration); + + fail_unless (gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtpbuffer)); + fail_unless (gst_rtp_buffer_get_marker (&rtpbuffer) == start); + fail_unless (gst_rtp_buffer_get_timestamp (&rtpbuffer) == rtpts); + payload = gst_rtp_buffer_get_payload (&rtpbuffer); + + fail_unless (payload[0] == number); + fail_unless ((payload[1] & 0x7F) == volume); + fail_unless (! !(payload[1] & 0x80) == end); + fail_unless (GST_READ_UINT16_BE (payload + 2) == rtpduration); + + gst_rtp_buffer_unmap (&rtpbuffer); + gst_buffer_unref (buffer); +} + +gint method; + +static void +setup_rtpdtmfsrc (void) +{ + testclock = gst_test_clock_new (); + bus = gst_bus_new (); + + method = 1; + dtmfsrc = gst_check_setup_element ("rtpdtmfsrc"); + sink = gst_check_setup_sink_pad (dtmfsrc, &rtp_dtmf_sink_template); + gst_element_set_bus (dtmfsrc, bus); + fail_unless (gst_element_set_clock (dtmfsrc, testclock)); + + gst_pad_set_active (sink, TRUE); + fail_unless (gst_element_set_state (dtmfsrc, GST_STATE_PLAYING) == + GST_STATE_CHANGE_SUCCESS); +} + +static void +teardown_dtmfsrc (void) +{ + gst_object_unref (testclock); + gst_pad_set_active (sink, FALSE); + gst_element_set_bus (dtmfsrc, NULL); + gst_object_unref (bus); + gst_check_teardown_sink_pad (dtmfsrc); + gst_check_teardown_element (dtmfsrc); +} + +GST_START_TEST (test_dtmfsrc_invalid_events) +{ + GstStructure *s; + + /* Missing start */ + s = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3, + "method", G_TYPE_INT, method, "volume", G_TYPE_INT, 8, NULL); + fail_unless (gst_pad_push_event (sink, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE); + + /* Missing volume */ + s = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3, + "method", G_TYPE_INT, method, "start", G_TYPE_BOOLEAN, TRUE, NULL); + fail_unless (gst_pad_push_event (sink, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE); + + /* Missing number */ + s = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, "method", G_TYPE_INT, method, + "volume", G_TYPE_INT, 8, "start", G_TYPE_BOOLEAN, TRUE, NULL); + fail_unless (gst_pad_push_event (sink, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE); + + /* Missing type */ + s = gst_structure_new ("dtmf-event", + "number", G_TYPE_INT, 3, "method", G_TYPE_INT, method, + "volume", G_TYPE_INT, 8, "start", G_TYPE_BOOLEAN, TRUE, NULL); + fail_unless (gst_pad_push_event (sink, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE); + + /* Stop before start */ + s = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3, + "method", G_TYPE_INT, method, "volume", G_TYPE_INT, 8, + "start", G_TYPE_BOOLEAN, FALSE, NULL); + fail_unless (gst_pad_push_event (sink, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE); + + gst_element_set_state (dtmfsrc, GST_STATE_NULL); +} + +GST_END_TEST; + +GST_START_TEST (test_rtpdtmfsrc_min_duration) +{ + GstStructure *s; + GstClockID id; + guint timestamp = 0; + GstCaps *expected_caps, *caps; + + /* Minimum duration dtmf */ + + s = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3, + "method", G_TYPE_INT, 1, "volume", G_TYPE_INT, 8, + "start", G_TYPE_BOOLEAN, TRUE, NULL); + fail_unless (gst_pad_push_event (sink, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_copy (s)))); + check_no_dtmf_event_message (bus); + gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (testclock), NULL); + fail_unless (buffers == NULL); + id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (testclock)); + fail_unless (gst_clock_id_get_time (id) == 0); + gst_clock_id_unref (id); + gst_structure_set_name (s, "dtmf-event-processed"); + check_message_structure (s); + + s = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 1, + "start", G_TYPE_BOOLEAN, FALSE, NULL); + fail_unless (gst_pad_push_event (sink, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_copy (s)))); + + check_rtp_buffer (0, 20 * GST_MSECOND, TRUE, FALSE, 666, 999, 8, 3, 20); + + for (timestamp = 20; timestamp < MIN_PULSE_DURATION + 20; timestamp += 20) { + gst_test_clock_advance_time (GST_TEST_CLOCK (testclock), + 20 * GST_MSECOND + 1); + gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (testclock), NULL); + fail_unless (buffers == NULL); + id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (testclock)); + fail_unless (gst_clock_id_get_time (id) == timestamp * GST_MSECOND); + gst_clock_id_unref (id); + + if (timestamp < MIN_PULSE_DURATION) { + check_rtp_buffer (timestamp * GST_MSECOND, 20 * GST_MSECOND, FALSE, + FALSE, 666, 999, 8, 3, timestamp + 20); + check_no_dtmf_event_message (bus); + } else { + gst_structure_set_name (s, "dtmf-event-processed"); + check_message_structure (s); + check_rtp_buffer (timestamp * GST_MSECOND, + (20 + MIN_INTER_DIGIT_INTERVAL) * GST_MSECOND, FALSE, TRUE, 666, + 999, 8, 3, timestamp + 20); + } + + fail_unless (buffers == NULL); + } + + + fail_unless (gst_test_clock_peek_id_count (GST_TEST_CLOCK (testclock)) == 0); + + /* caps check */ + + expected_caps = gst_caps_new_simple ("application/x-rtp", + "encoding-name", G_TYPE_STRING, "TELEPHONE-EVENT", + "media", G_TYPE_STRING, "audio", + "clock-rate", G_TYPE_INT, 1000, "payload", G_TYPE_INT, 99, + "seqnum-base", G_TYPE_UINT, 333, + "clock-base", G_TYPE_UINT, 666, + "ssrc", G_TYPE_UINT, 999, "ptime", G_TYPE_UINT, 20, NULL); + caps = gst_pad_get_current_caps (sink); + fail_unless (gst_caps_can_intersect (caps, expected_caps)); + gst_caps_unref (caps); + gst_caps_unref (expected_caps); + + gst_element_set_state (dtmfsrc, GST_STATE_NULL); + + check_no_dtmf_event_message (bus); +} + +GST_END_TEST; + +static GstStaticPadTemplate audio_dtmfsrc_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw, " + "format = (string) \"" GST_AUDIO_NE (S16) "\", " + "rate = (int) 8003, " "channels = (int) 1") + ); +static void +setup_dtmfsrc (void) +{ + testclock = gst_test_clock_new (); + bus = gst_bus_new (); + + method = 2; + dtmfsrc = gst_check_setup_element ("dtmfsrc"); + sink = gst_check_setup_sink_pad (dtmfsrc, &audio_dtmfsrc_sink_template); + gst_element_set_bus (dtmfsrc, bus); + fail_unless (gst_element_set_clock (dtmfsrc, testclock)); + + gst_pad_set_active (sink, TRUE); + fail_unless (gst_element_set_state (dtmfsrc, GST_STATE_PLAYING) == + GST_STATE_CHANGE_SUCCESS); +} + + +GST_START_TEST (test_dtmfsrc_min_duration) +{ + GstStructure *s; + GstClockID id; + GstClockTime timestamp = 0; + GstCaps *expected_caps, *caps; + guint interval; + + g_object_get (dtmfsrc, "interval", &interval, NULL); + fail_unless (interval == 50); + + /* Minimum duration dtmf */ + gst_test_clock_set_time (GST_TEST_CLOCK (testclock), 0); + + s = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3, + "method", G_TYPE_INT, 2, "volume", G_TYPE_INT, 8, + "start", G_TYPE_BOOLEAN, TRUE, NULL); + fail_unless (gst_pad_push_event (sink, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_copy (s)))); + + gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (testclock), NULL); + id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (testclock)); + fail_unless (gst_clock_id_get_time (id) == 0); + gst_clock_id_unref (id); + + gst_structure_set_name (s, "dtmf-event-processed"); + check_message_structure (s); + + s = gst_structure_new ("dtmf-event", + "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 2, + "start", G_TYPE_BOOLEAN, FALSE, NULL); + fail_unless (gst_pad_push_event (sink, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_copy (s)))); + + for (timestamp = interval * GST_MSECOND; + timestamp < (MIN_PULSE_DURATION + MIN_INTER_DIGIT_INTERVAL) * + GST_MSECOND; timestamp += GST_MSECOND * interval) { + gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (testclock), NULL); + gst_test_clock_advance_time (GST_TEST_CLOCK (testclock), + interval * GST_MSECOND); + + id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (testclock)); + fail_unless (gst_clock_id_get_time (id) == timestamp); + gst_clock_id_unref (id); + } + + gst_structure_set_name (s, "dtmf-event-processed"); + check_message_structure (s); + + check_buffers_duration ((MIN_PULSE_DURATION + MIN_INTER_DIGIT_INTERVAL) * + GST_MSECOND); + + fail_unless (gst_test_clock_peek_id_count (GST_TEST_CLOCK (testclock)) == 0); + + /* caps check */ + + expected_caps = gst_caps_new_simple ("audio/x-raw", + "format", G_TYPE_STRING, GST_AUDIO_NE (S16), + "rate", G_TYPE_INT, 8003, "channels", G_TYPE_INT, 1, NULL); + caps = gst_pad_get_current_caps (sink); + fail_unless (gst_caps_can_intersect (caps, expected_caps)); + gst_caps_unref (caps); + gst_caps_unref (expected_caps); + + gst_element_set_state (dtmfsrc, GST_STATE_NULL); + + check_no_dtmf_event_message (bus); +} + +GST_END_TEST; + +static Suite * +dtmf_suite (void) +{ + Suite *s = suite_create ("dtmf"); + TCase *tc; + + tc = tcase_create ("rtpdtmfdepay"); + tcase_add_test (tc, test_rtpdtmfdepay); + suite_add_tcase (s, tc); + + tc = tcase_create ("rtpdtmfsrc"); + tcase_add_checked_fixture (tc, setup_rtpdtmfsrc, teardown_dtmfsrc); + tcase_add_test (tc, test_dtmfsrc_invalid_events); + tcase_add_test (tc, test_rtpdtmfsrc_min_duration); + suite_add_tcase (s, tc); + + tc = tcase_create ("dtmfsrc"); + tcase_add_checked_fixture (tc, setup_dtmfsrc, teardown_dtmfsrc); + tcase_add_test (tc, test_dtmfsrc_invalid_events); + tcase_add_test (tc, test_dtmfsrc_min_duration); + suite_add_tcase (s, tc); + + return s; +} + + +GST_CHECK_MAIN (dtmf); diff --git a/tests/check/elements/equalizer.c b/tests/check/elements/equalizer.c index a43268e7d24de9f4740578f3b382dcd23926b9f7..491e0394d9519ab7dc780889a83eac7d50243dfa 100644 --- a/tests/check/elements/equalizer.c +++ b/tests/check/elements/equalizer.c @@ -114,7 +114,7 @@ GST_START_TEST (test_equalizer_5bands_passthrough) gst_buffer_unmap (inbuffer, &map); caps = gst_caps_from_string (EQUALIZER_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, equalizer, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -178,7 +178,7 @@ GST_START_TEST (test_equalizer_5bands_minus_24) rms_in = sqrt (rms_in / 1024); caps = gst_caps_from_string (EQUALIZER_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, equalizer, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -246,7 +246,7 @@ GST_START_TEST (test_equalizer_5bands_plus_12) rms_in = sqrt (rms_in / 1024); caps = gst_caps_from_string (EQUALIZER_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, equalizer, caps, GST_FORMAT_TIME); gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); diff --git a/tests/check/elements/flacparse.c b/tests/check/elements/flacparse.c index 497a98a68ba2e08b649dc8abf765e1f9cd37417c..306f0109b1d40502f830a9086c42e7db9997d90e 100644 --- a/tests/check/elements/flacparse.c +++ b/tests/check/elements/flacparse.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/flvdemux.c b/tests/check/elements/flvdemux.c index efc30618515ab0fb378fca7b6daf779c216b2e14..c9d156dda71ebe81244dd79ecbac77e7de592f3d 100644 --- a/tests/check/elements/flvdemux.c +++ b/tests/check/elements/flvdemux.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/flvmux.c b/tests/check/elements/flvmux.c index e6085359a990979d48f559ac8b855c7260eedd8e..1df2efe423c3b071b4459992ca3a3f40136933a2 100644 --- a/tests/check/elements/flvmux.c +++ b/tests/check/elements/flvmux.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/tests/check/elements/gdkpixbufsink.c b/tests/check/elements/gdkpixbufsink.c index 6f8018ba4111fd210111c308256532605e0ab14d..1183ccb4636fc7557274b6b694ff9b73e354c473 100644 --- a/tests/check/elements/gdkpixbufsink.c +++ b/tests/check/elements/gdkpixbufsink.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/tests/check/elements/icydemux.c b/tests/check/elements/icydemux.c index ae63a80a68133c90f833167554d89f69081c44e9..525e309fc8263eb1fd36543d66f525baa6a877ff 100644 --- a/tests/check/elements/icydemux.c +++ b/tests/check/elements/icydemux.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -159,7 +159,7 @@ cleanup_icydemux (void) } static void -push_data (const guint8 * data, int len, GstCaps * caps, gint64 offset) +push_data (const guint8 * data, int len, gint64 offset) { GstFlowReturn res; GstBuffer *buffer = gst_buffer_new_and_alloc (len); @@ -168,7 +168,6 @@ push_data (const guint8 * data, int len, GstCaps * caps, gint64 offset) GST_BUFFER_OFFSET (buffer) = offset; - gst_pad_set_caps (srcpad, caps); res = gst_pad_push (srcpad, buffer); fail_unless (res == GST_FLOW_OK, "Failed pushing buffer: %d", res); @@ -191,8 +190,9 @@ GST_START_TEST (test_demux) caps = gst_caps_from_string (ICYCAPS); create_icydemux (); + gst_check_setup_events (srcpad, icydemux, caps, GST_FORMAT_TIME); - push_data ((guint8 *) ICY_DATA, sizeof (ICY_DATA), caps, -1); + push_data ((guint8 *) ICY_DATA, sizeof (ICY_DATA), -1); message = gst_bus_poll (bus, GST_MESSAGE_TAG, -1); fail_unless (message != NULL); @@ -235,12 +235,14 @@ GST_START_TEST (test_first_buf_offset_when_merged_for_typefinding) icy_caps = gst_caps_from_string (ICYCAPS); - push_data (buf1, G_N_ELEMENTS (buf1), icy_caps, 0); + gst_check_setup_events (srcpad, icydemux, icy_caps, GST_FORMAT_TIME); + + push_data (buf1, G_N_ELEMENTS (buf1), 0); /* one byte isn't really enough for typefinding, can't have a srcpad yet */ fail_unless (gst_element_get_static_pad (icydemux, "src") == NULL); - push_data (buf2, G_N_ELEMENTS (buf2), icy_caps, -1); + push_data (buf2, G_N_ELEMENTS (buf2), -1); /* should have been enough to create a audio/x-musepack source pad .. */ icy_srcpad = gst_element_get_static_pad (icydemux, "src"); @@ -262,9 +264,14 @@ GST_END_TEST; GST_START_TEST (test_not_negotiated) { GstBuffer *buf; + GstSegment segment; create_icydemux (); + gst_segment_init (&segment, GST_FORMAT_BYTES); + gst_pad_push_event (srcpad, gst_event_new_stream_start ("test")); + gst_pad_push_event (srcpad, gst_event_new_segment (&segment)); + buf = gst_buffer_new_and_alloc (0); GST_BUFFER_OFFSET (buf) = 0; diff --git a/tests/check/elements/id3demux.c b/tests/check/elements/id3demux.c index bb0cb85ada15c1fc9e6e9f042159cebd98e68264..17b524d0c96fa1d00465704a231efd9180e1d166 100644 --- a/tests/check/elements/id3demux.c +++ b/tests/check/elements/id3demux.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/id3v2mux.c b/tests/check/elements/id3v2mux.c index 9c9beeaefc6f249072a2585041baf78ab08a1c0e..21869e6b719266add5c8a799d57226b9d6c587a0 100644 --- a/tests/check/elements/id3v2mux.c +++ b/tests/check/elements/id3v2mux.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -294,7 +294,7 @@ got_buffer (GstElement * fakesink, GstBuffer * buf, GstPad * pad, gst_buffer_map (buf, &map, GST_MAP_READ); - GST_LOG ("got buffer, size=%u, offset=%" G_GINT64_FORMAT, map.size, off); + GST_LOG ("size=%" G_GSIZE_FORMAT ", offset=%" G_GINT64_FORMAT, map.size, off); fail_unless (GST_BUFFER_OFFSET_IS_VALID (buf)); diff --git a/tests/check/elements/imagefreeze.c b/tests/check/elements/imagefreeze.c index a5f172e3b53f94722f7e86e4dd2a61651614af03..cfeff37340a35ff5880c140678725a487548e9e7 100644 --- a/tests/check/elements/imagefreeze.c +++ b/tests/check/elements/imagefreeze.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> diff --git a/tests/check/elements/interleave.c b/tests/check/elements/interleave.c index 1c8c71fe7df5cbb39d582c912ad2a14e1b0d7dde..be0a4b6badbf0e9a6492e83a1827b0c183feecf7 100644 --- a/tests/check/elements/interleave.c +++ b/tests/check/elements/interleave.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray @@ -34,6 +34,21 @@ #include <gst/audio/audio.h> #include <gst/audio/audio-enumtypes.h> +static void +gst_check_setup_events_interleave (GstPad * srcpad, GstElement * element, + GstCaps * caps, GstFormat format, const gchar * stream_id) +{ + GstSegment segment; + + gst_segment_init (&segment, format); + + fail_unless (gst_pad_push_event (srcpad, + gst_event_new_stream_start (stream_id))); + if (caps) + fail_unless (gst_pad_push_event (srcpad, gst_event_new_caps (caps))); + fail_unless (gst_pad_push_event (srcpad, gst_event_new_segment (&segment))); +} + GST_START_TEST (test_create_and_unref) { GstElement *interleave; @@ -161,14 +176,16 @@ GST_START_TEST (test_interleave_2ch) caps = gst_caps_from_string (CAPS_48khz); gst_pad_set_active (mysrcpads[0], TRUE); - fail_unless (gst_pad_set_caps (mysrcpads[0], caps)); + gst_check_setup_events_interleave (mysrcpads[0], interleave, caps, + GST_FORMAT_TIME, "0"); gst_pad_use_fixed_caps (mysrcpads[0]); mysrcpads[1] = gst_pad_new_from_static_template (&srctemplate, "src1"); fail_unless (mysrcpads[1] != NULL); gst_pad_set_active (mysrcpads[1], TRUE); - fail_unless (gst_pad_set_caps (mysrcpads[1], caps)); + gst_check_setup_events_interleave (mysrcpads[1], interleave, caps, + GST_FORMAT_TIME, "1"); gst_pad_use_fixed_caps (mysrcpads[1]); tmp = gst_element_get_static_pad (queue, "sink"); @@ -205,7 +222,6 @@ GST_START_TEST (test_interleave_2ch) for (i = 0; i < 48000; i++) indata[i] = -1.0; gst_buffer_unmap (inbuf, &map); - gst_pad_set_caps (mysrcpads[0], caps); fail_unless (gst_pad_push (mysrcpads[0], inbuf) == GST_FLOW_OK); input[1] = 1.0; @@ -215,7 +231,6 @@ GST_START_TEST (test_interleave_2ch) for (i = 0; i < 48000; i++) indata[i] = 1.0; gst_buffer_unmap (inbuf, &map); - gst_pad_set_caps (mysrcpads[1], caps); fail_unless (gst_pad_push (mysrcpads[1], inbuf) == GST_FLOW_OK); inbuf = gst_buffer_new_and_alloc (48000 * sizeof (gfloat)); @@ -291,14 +306,16 @@ GST_START_TEST (test_interleave_2ch_1eos) caps = gst_caps_from_string (CAPS_48khz); gst_pad_set_active (mysrcpads[0], TRUE); - fail_unless (gst_pad_set_caps (mysrcpads[0], caps)); + gst_check_setup_events_interleave (mysrcpads[0], interleave, caps, + GST_FORMAT_TIME, "0"); gst_pad_use_fixed_caps (mysrcpads[0]); mysrcpads[1] = gst_pad_new_from_static_template (&srctemplate, "src1"); fail_unless (mysrcpads[1] != NULL); gst_pad_set_active (mysrcpads[1], TRUE); - fail_unless (gst_pad_set_caps (mysrcpads[1], caps)); + gst_check_setup_events_interleave (mysrcpads[1], interleave, caps, + GST_FORMAT_TIME, "1"); gst_pad_use_fixed_caps (mysrcpads[1]); tmp = gst_element_get_static_pad (queue, "sink"); @@ -335,7 +352,6 @@ GST_START_TEST (test_interleave_2ch_1eos) for (i = 0; i < 48000; i++) indata[i] = -1.0; gst_buffer_unmap (inbuf, &map); - gst_pad_set_caps (mysrcpads[0], caps); fail_unless (gst_pad_push (mysrcpads[0], inbuf) == GST_FLOW_OK); input[1] = 1.0; @@ -345,7 +361,6 @@ GST_START_TEST (test_interleave_2ch_1eos) for (i = 0; i < 48000; i++) indata[i] = 1.0; gst_buffer_unmap (inbuf, &map); - gst_pad_set_caps (mysrcpads[1], caps); fail_unless (gst_pad_push (mysrcpads[1], inbuf) == GST_FLOW_OK); input[0] = 0.0; diff --git a/tests/check/elements/jpegdec.c b/tests/check/elements/jpegdec.c index 070ccdd3da0431a9e7c91fe1bf98602846c8431c..81b8b910596f050c3f2f01fc0ac122b6bc54b17f 100644 --- a/tests/check/elements/jpegdec.c +++ b/tests/check/elements/jpegdec.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> diff --git a/tests/check/elements/jpegenc.c b/tests/check/elements/jpegenc.c index 1044b4e209026c11be88e9d4e95d6752e08d05fb..fe55fb29141b65bf2986a2699a853c96ce53225f 100644 --- a/tests/check/elements/jpegenc.c +++ b/tests/check/elements/jpegenc.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -195,7 +195,7 @@ GST_START_TEST (test_jpegenc_different_caps) caps = gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT, 800, "height", G_TYPE_INT, 600, "framerate", GST_TYPE_FRACTION, 1, 1, "format", G_TYPE_STRING, "I420", NULL); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, jpegenc, caps, GST_FORMAT_TIME); fail_unless ((buffer = create_video_buffer (caps)) != NULL); gst_caps_unref (caps); fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK); diff --git a/tests/check/elements/level.c b/tests/check/elements/level.c index 6b721b140cfe68716efa467ff64b808cdb5e89ec..73f0340913865c906d1b2c9b34526cb49e5760b8 100644 --- a/tests/check/elements/level.c +++ b/tests/check/elements/level.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -33,22 +33,31 @@ /* For ease of programming we use globals to keep refs for our floating * src and sink pads we create; otherwise we always have to do get_pad, * get_peer, and then remove references in every test function */ -GstPad *mysrcpad, *mysinkpad; +static GstPad *mysrcpad, *mysinkpad; #define LEVEL_CAPS_TEMPLATE_STRING \ "audio/x-raw, " \ - "format = (string) { S8, "GST_AUDIO_NE(S16)" }, " \ + "format = (string) { "GST_AUDIO_NE(S16)", "GST_AUDIO_NE(F32)" }, " \ "layout = (string) interleaved, " \ "rate = (int) [ 1, MAX ], " \ "channels = (int) [ 1, 8 ]" -#define LEVEL_CAPS_STRING \ +/* we use rate = 1000 here for easy buffer size calculations */ +#define LEVEL_S16_CAPS_STRING \ "audio/x-raw, " \ "format = (string) "GST_AUDIO_NE(S16)", " \ "layout = (string) interleaved, " \ "rate = (int) 1000, " \ "channels = (int) 2, " \ - "channel-mask = (bitmask) 3" \ + "channel-mask = (bitmask) 3" + +#define LEVEL_F32_CAPS_STRING \ + "audio/x-raw, " \ + "format = (string) "GST_AUDIO_NE(F32)", " \ + "layout = (string) interleaved, " \ + "rate = (int) 1000, " \ + "channels = (int) 2, " \ + "channel-mask = (bitmask) 3" static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, @@ -63,9 +72,10 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", /* takes over reference for outcaps */ static GstElement * -setup_level (void) +setup_level (const gchar * caps_str) { GstElement *level; + GstCaps *caps; GST_DEBUG ("setup_level"); level = gst_check_setup_element ("level"); @@ -74,6 +84,10 @@ setup_level (void) gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); + caps = gst_caps_from_string (caps_str); + gst_check_setup_events (mysrcpad, level, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + return level; } @@ -89,49 +103,69 @@ cleanup_level (GstElement * level) gst_check_teardown_element (level); } +/* create a 0.1 sec buffer stereo buffer */ +static GstBuffer * +create_s16_buffer (gint16 val_l, gint16 val_r) +{ + GstBuffer *buf = gst_buffer_new_and_alloc (2 * 100 * sizeof (gint16)); + GstMapInfo map; + gint j; + gint16 *data; -GST_START_TEST (test_int16) + gst_buffer_map (buf, &map, GST_MAP_WRITE); + data = (gint16 *) map.data; + for (j = 0; j < 100; ++j) { + *(data++) = val_l; + *(data++) = val_r; + } + gst_buffer_unmap (buf, &map); + GST_BUFFER_TIMESTAMP (buf) = G_GUINT64_CONSTANT (0); + return buf; +} + +static GstBuffer * +create_f32_buffer (gfloat val_l, gfloat val_r) +{ + GstBuffer *buf = gst_buffer_new_and_alloc (2 * 100 * sizeof (gfloat)); + GstMapInfo map; + gint j; + gfloat *data; + + gst_buffer_map (buf, &map, GST_MAP_WRITE); + data = (gfloat *) map.data; + for (j = 0; j < 100; ++j) { + *(data++) = val_l; + *(data++) = val_r; + } + gst_buffer_unmap (buf, &map); + GST_BUFFER_TIMESTAMP (buf) = G_GUINT64_CONSTANT (0); + return buf; +} + +/* tests */ + +GST_START_TEST (test_ref_counts) { GstElement *level; GstBuffer *inbuffer, *outbuffer; GstBus *bus; - GstCaps *caps; GstMessage *message; - const GstStructure *structure; - int i, j; - GstMapInfo map; - gint16 *data; - const GValue *list, *value; - GstClockTime endtime; - gdouble dB; - level = setup_level (); + level = setup_level (LEVEL_S16_CAPS_STRING); g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL); - fail_unless (gst_element_set_state (level, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); - - /* create a fake 0.1 sec buffer with a half-amplitude block signal */ - inbuffer = gst_buffer_new_and_alloc (400); - gst_buffer_map (inbuffer, &map, GST_MAP_WRITE); - data = (gint16 *) map.data; - for (j = 0; j < 200; ++j) { - *data = 16536; - ++data; - } - gst_buffer_unmap (inbuffer, &map); - caps = gst_caps_from_string (LEVEL_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); - /* create a bus to get the level message on */ bus = gst_bus_new (); ASSERT_OBJECT_REFCOUNT (bus, "bus", 1); gst_element_set_bus (level, bus); ASSERT_OBJECT_REFCOUNT (bus, "bus", 2); + /* create a fake 0.1 sec buffer with a half-amplitude block signal */ + inbuffer = create_s16_buffer (16536, 16536); + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + /* pushing gives away my reference ... */ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); /* ... but it ends up being collected on the global buffer list */ @@ -146,15 +180,101 @@ GST_START_TEST (test_int16) fail_unless (message != NULL); fail_unless (GST_MESSAGE_SRC (message) == GST_OBJECT (level)); fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT); + + /* clean up */ + /* flush current messages,and future state change messages */ + gst_bus_set_flushing (bus, TRUE); + + /* message has a ref to the element */ + ASSERT_OBJECT_REFCOUNT (level, "level", 2); + gst_message_unref (message); + ASSERT_OBJECT_REFCOUNT (level, "level", 1); + + gst_element_set_bus (level, NULL); + ASSERT_OBJECT_REFCOUNT (bus, "bus", 1); + gst_object_unref (bus); + gst_buffer_unref (outbuffer); + fail_unless (gst_element_set_state (level, + GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null"); + ASSERT_OBJECT_REFCOUNT (level, "level", 1); + cleanup_level (level); +} + +GST_END_TEST; + +GST_START_TEST (test_message_is_valid) +{ + GstElement *level; + GstBuffer *inbuffer; + GstBus *bus; + GstMessage *message; + const GstStructure *structure; + GstClockTime endtime, ts, duration; + + level = setup_level (LEVEL_S16_CAPS_STRING); + g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL); + gst_element_set_state (level, GST_STATE_PLAYING); + /* create a bus to get the level message on */ + bus = gst_bus_new (); + gst_element_set_bus (level, bus); + + /* create a fake 0.1 sec buffer with a half-amplitude block signal and push */ + inbuffer = create_s16_buffer (16536, 16536); + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); + + message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1); + fail_unless (message != NULL); structure = gst_message_get_structure (message); fail_if (structure == NULL); - fail_unless_equals_string ((char *) gst_structure_get_name (structure), - "level"); + fail_unless_equals_string (gst_structure_get_name (structure), "level"); fail_unless (gst_structure_get_clock_time (structure, "endtime", &endtime)); + fail_unless (gst_structure_get_clock_time (structure, "timestamp", &ts)); + fail_unless (gst_structure_get_clock_time (structure, "duration", &duration)); + + /* clean up */ + /* flush current messages,and future state change messages */ + gst_bus_set_flushing (bus, TRUE); + gst_message_unref (message); + gst_element_set_bus (level, NULL); + gst_object_unref (bus); + gst_element_set_state (level, GST_STATE_NULL); + cleanup_level (level); +} + +GST_END_TEST; + +GST_START_TEST (test_int16) +{ + GstElement *level; + GstBuffer *inbuffer, *outbuffer; + GstBus *bus; + GstMessage *message; + const GstStructure *structure; + gint i, j; + const GValue *list, *value; + gdouble dB; + const gchar *fields[3] = { "rms", "peak", "decay" }; + + level = setup_level (LEVEL_S16_CAPS_STRING); + g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL); + gst_element_set_state (level, GST_STATE_PLAYING); + /* create a bus to get the level message on */ + bus = gst_bus_new (); + gst_element_set_bus (level, bus); + + /* create a fake 0.1 sec buffer with a half-amplitude block signal */ + inbuffer = create_s16_buffer (16536, 16536); + + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); + fail_unless_equals_int (g_list_length (buffers), 1); + fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + fail_unless (inbuffer == outbuffer); + + message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1); + structure = gst_message_get_structure (message); /* block wave of half amplitude has -5.94 dB for rms, peak and decay */ for (i = 0; i < 2; ++i) { - const gchar *fields[3] = { "rms", "peak", "decay" }; for (j = 0; j < 3; ++j) { GValueArray *arr; @@ -163,30 +283,19 @@ GST_START_TEST (test_int16) value = g_value_array_get_nth (arr, i); dB = g_value_get_double (value); GST_DEBUG ("%s is %lf", fields[j], dB); - fail_if (dB < -6.0); + fail_if (dB < -6.1); fail_if (dB > -5.9); } } - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); - fail_unless (inbuffer == outbuffer); /* clean up */ /* flush current messages,and future state change messages */ gst_bus_set_flushing (bus, TRUE); - - /* message has a ref to the element */ - ASSERT_OBJECT_REFCOUNT (level, "level", 2); gst_message_unref (message); - ASSERT_OBJECT_REFCOUNT (level, "level", 1); - gst_element_set_bus (level, NULL); - ASSERT_OBJECT_REFCOUNT (bus, "bus", 1); gst_object_unref (bus); gst_buffer_unref (outbuffer); - fail_unless (gst_element_set_state (level, - GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null"); - ASSERT_OBJECT_REFCOUNT (level, "level", 1); + gst_element_set_state (level, GST_STATE_NULL); cleanup_level (level); } @@ -197,65 +306,30 @@ GST_START_TEST (test_int16_panned) GstElement *level; GstBuffer *inbuffer, *outbuffer; GstBus *bus; - GstCaps *caps; GstMessage *message; const GstStructure *structure; - int j; - gint16 *data; - GstMapInfo map; + gint j; const GValue *list, *value; - GstClockTime endtime; gdouble dB; const gchar *fields[3] = { "rms", "peak", "decay" }; - level = setup_level (); + level = setup_level (LEVEL_S16_CAPS_STRING); g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL); - - fail_unless (gst_element_set_state (level, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); - - /* create a fake 0.1 sec buffer with a half-amplitude block signal */ - inbuffer = gst_buffer_new_and_alloc (400); - gst_buffer_map (inbuffer, &map, GST_MAP_WRITE); - data = (gint16 *) map.data; - for (j = 0; j < 100; ++j) { - *data = 0; - ++data; - *data = 16536; - ++data; - } - gst_buffer_unmap (inbuffer, &map); - caps = gst_caps_from_string (LEVEL_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); - + gst_element_set_state (level, GST_STATE_PLAYING); /* create a bus to get the level message on */ bus = gst_bus_new (); - ASSERT_OBJECT_REFCOUNT (bus, "bus", 1); gst_element_set_bus (level, bus); - ASSERT_OBJECT_REFCOUNT (bus, "bus", 2); - /* pushing gives away my reference ... */ + /* create a fake 0.1 sec buffer with a half-amplitude block signal */ + inbuffer = create_s16_buffer (0, 16536); + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... but it ends up being collected on the global buffer list */ - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); fail_unless_equals_int (g_list_length (buffers), 1); fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); fail_unless (inbuffer == outbuffer); message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1); - ASSERT_OBJECT_REFCOUNT (message, "message", 1); - - fail_unless (message != NULL); - fail_unless (GST_MESSAGE_SRC (message) == GST_OBJECT (level)); - fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT); structure = gst_message_get_structure (message); - fail_if (structure == NULL); - fail_unless_equals_string ((char *) gst_structure_get_name (structure), - "level"); - fail_unless (gst_structure_get_clock_time (structure, "endtime", &endtime)); /* silence has 0 dB for rms, peak and decay */ for (j = 0; j < 3; ++j) { @@ -281,29 +355,76 @@ GST_START_TEST (test_int16_panned) value = g_value_array_get_nth (arr, 1); dB = g_value_get_double (value); GST_DEBUG ("%s[1] is %lf", fields[j], dB); - fail_if (dB < -6.0); + fail_if (dB < -6.1); fail_if (dB > -5.9); } + + /* clean up */ + /* flush current messages,and future state change messages */ + gst_bus_set_flushing (bus, TRUE); + gst_message_unref (message); + gst_element_set_bus (level, NULL); + gst_object_unref (bus); + gst_buffer_unref (outbuffer); + gst_element_set_state (level, GST_STATE_NULL); + cleanup_level (level); +} + +GST_END_TEST; + +GST_START_TEST (test_float) +{ + GstElement *level; + GstBuffer *inbuffer, *outbuffer; + GstBus *bus; + GstMessage *message; + const GstStructure *structure; + gint i, j; + const GValue *list, *value; + gdouble dB; + const gchar *fields[3] = { "rms", "peak", "decay" }; + + level = setup_level (LEVEL_F32_CAPS_STRING); + g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL); + gst_element_set_state (level, GST_STATE_PLAYING); + /* create a bus to get the level message on */ + bus = gst_bus_new (); + gst_element_set_bus (level, bus); + + /* create a fake 0.1 sec buffer with a half-amplitude block signal */ + inbuffer = create_f32_buffer (0.5, 0.5); + + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); fail_unless_equals_int (g_list_length (buffers), 1); fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); fail_unless (inbuffer == outbuffer); + message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1); + structure = gst_message_get_structure (message); + + /* block wave of half amplitude has -5.94 dB for rms, peak and decay */ + for (i = 0; i < 2; ++i) { + for (j = 0; j < 3; ++j) { + GValueArray *arr; + + list = gst_structure_get_value (structure, fields[j]); + arr = g_value_get_boxed (list); + value = g_value_array_get_nth (arr, i); + dB = g_value_get_double (value); + GST_DEBUG ("%s is %lf", fields[j], dB); + fail_if (dB < -6.1); + fail_if (dB > -5.9); + } + } + /* clean up */ /* flush current messages,and future state change messages */ gst_bus_set_flushing (bus, TRUE); - - /* message has a ref to the element */ - ASSERT_OBJECT_REFCOUNT (level, "level", 2); gst_message_unref (message); - ASSERT_OBJECT_REFCOUNT (level, "level", 1); - gst_element_set_bus (level, NULL); - ASSERT_OBJECT_REFCOUNT (bus, "bus", 1); gst_object_unref (bus); gst_buffer_unref (outbuffer); - fail_unless (gst_element_set_state (level, - GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null"); - ASSERT_OBJECT_REFCOUNT (level, "level", 1); + gst_element_set_state (level, GST_STATE_NULL); cleanup_level (level); } @@ -315,70 +436,36 @@ GST_START_TEST (test_message_on_eos) GstBuffer *inbuffer, *outbuffer; GstEvent *event; GstBus *bus; - GstCaps *caps; GstMessage *message; const GstStructure *structure; - int i, j; - GstMapInfo map; - gint16 *data; + gint i, j; const GValue *list, *value; - GstClockTime endtime; gdouble dB; - level = setup_level (); + level = setup_level (LEVEL_S16_CAPS_STRING); g_object_set (level, "message", TRUE, "interval", GST_SECOND / 5, NULL); - - fail_unless (gst_element_set_state (level, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); - - /* create a fake 0.1 sec buffer with a half-amplitude block signal */ - inbuffer = gst_buffer_new_and_alloc (400); - gst_buffer_map (inbuffer, &map, GST_MAP_WRITE); - data = (gint16 *) map.data; - for (j = 0; j < 200; ++j) { - *data = 16536; - ++data; - } - gst_buffer_unmap (inbuffer, &map); - caps = gst_caps_from_string (LEVEL_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); - + gst_element_set_state (level, GST_STATE_PLAYING); /* create a bus to get the level message on */ bus = gst_bus_new (); - ASSERT_OBJECT_REFCOUNT (bus, "bus", 1); gst_element_set_bus (level, bus); - ASSERT_OBJECT_REFCOUNT (bus, "bus", 2); - /* pushing gives away my reference ... */ + /* create a fake 0.1 sec buffer with a half-amplitude block signal */ + inbuffer = create_s16_buffer (16536, 16536); + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); - /* ... but it ends up being collected on the global buffer list */ - ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); fail_unless_equals_int (g_list_length (buffers), 1); fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); fail_unless (inbuffer == outbuffer); message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, 0); - fail_unless (message == NULL); event = gst_event_new_eos (); fail_unless (gst_pad_push_event (mysrcpad, event) == TRUE); message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, 0); - fail_if (message == NULL); - - ASSERT_OBJECT_REFCOUNT (message, "message", 1); - fail_unless (message != NULL); - fail_unless (GST_MESSAGE_SRC (message) == GST_OBJECT (level)); - fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT); structure = gst_message_get_structure (message); - fail_if (structure == NULL); - fail_unless_equals_string ((char *) gst_structure_get_name (structure), - "level"); - fail_unless (gst_structure_get_clock_time (structure, "endtime", &endtime)); + fail_unless_equals_string (gst_structure_get_name (structure), "level"); /* block wave of half amplitude has -5.94 dB for rms, peak and decay */ for (i = 0; i < 2; ++i) { @@ -391,35 +478,109 @@ GST_START_TEST (test_message_on_eos) value = g_value_array_get_nth (arr, i); dB = g_value_get_double (value); GST_DEBUG ("%s is %lf", fields[j], dB); - fail_if (dB < -6.0); + fail_if (dB < -6.1); fail_if (dB > -5.9); } } - fail_unless_equals_int (g_list_length (buffers), 1); - fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); - fail_unless (inbuffer == outbuffer); /* clean up */ /* flush current messages,and future state change messages */ gst_bus_set_flushing (bus, TRUE); + gst_message_unref (message); + gst_element_set_bus (level, NULL); + gst_object_unref (bus); + gst_buffer_unref (outbuffer); + gst_element_set_state (level, GST_STATE_NULL); + cleanup_level (level); +} - /* message has a ref to the element */ - ASSERT_OBJECT_REFCOUNT (level, "level", 2); +GST_END_TEST; + +GST_START_TEST (test_message_count) +{ + GstElement *level; + GstBuffer *inbuffer, *outbuffer; + GstBus *bus; + GstMessage *message; + + level = setup_level (LEVEL_S16_CAPS_STRING); + g_object_set (level, "message", TRUE, "interval", GST_SECOND / 20, NULL); + gst_element_set_state (level, GST_STATE_PLAYING); + /* create a bus to get the level message on */ + bus = gst_bus_new (); + gst_element_set_bus (level, bus); + + /* create a fake 0.1 sec buffer with a half-amplitude block signal */ + inbuffer = create_s16_buffer (16536, 16536); + + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); + fail_unless_equals_int (g_list_length (buffers), 1); + fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + fail_unless (inbuffer == outbuffer); + + /* we should get two messages per buffer */ + message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1); + fail_unless (message != NULL); + gst_message_unref (message); + message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1); + fail_unless (message != NULL); gst_message_unref (message); - ASSERT_OBJECT_REFCOUNT (level, "level", 1); gst_element_set_bus (level, NULL); - ASSERT_OBJECT_REFCOUNT (bus, "bus", 1); gst_object_unref (bus); gst_buffer_unref (outbuffer); - fail_unless (gst_element_set_state (level, - GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null"); - ASSERT_OBJECT_REFCOUNT (level, "level", 1); + gst_element_set_state (level, GST_STATE_NULL); cleanup_level (level); } GST_END_TEST; +GST_START_TEST (test_message_timestamps) +{ + GstElement *level; + GstBuffer *inbuffer, *outbuffer; + GstBus *bus; + GstMessage *message; + const GstStructure *structure; + GstClockTime ts1, dur1, ts2; + + level = setup_level (LEVEL_S16_CAPS_STRING); + g_object_set (level, "message", TRUE, "interval", GST_SECOND / 20, NULL); + gst_element_set_state (level, GST_STATE_PLAYING); + /* create a bus to get the level message on */ + bus = gst_bus_new (); + gst_element_set_bus (level, bus); + + /* create a fake 0.1 sec buffer with a half-amplitude block signal */ + inbuffer = create_s16_buffer (16536, 16536); + + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); + fail_unless_equals_int (g_list_length (buffers), 1); + fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL); + fail_unless (inbuffer == outbuffer); + + /* check that timestamp + duration is contigous to the next timestamp */ + message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1); + structure = gst_message_get_structure (message); + gst_structure_get_clock_time (structure, "timestamp", &ts1); + gst_structure_get_clock_time (structure, "duration", &dur1); + gst_message_unref (message); + + message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1); + structure = gst_message_get_structure (message); + gst_structure_get_clock_time (structure, "timestamp", &ts2); + gst_message_unref (message); + + fail_unless_equals_int64 (ts1 + dur1, ts2); + + gst_element_set_bus (level, NULL); + gst_object_unref (bus); + gst_buffer_unref (outbuffer); + gst_element_set_state (level, GST_STATE_NULL); + cleanup_level (level); +} + +GST_END_TEST; static Suite * level_suite (void) @@ -428,26 +589,16 @@ level_suite (void) TCase *tc_chain = tcase_create ("general"); suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_ref_counts); + tcase_add_test (tc_chain, test_message_is_valid); tcase_add_test (tc_chain, test_int16); tcase_add_test (tc_chain, test_int16_panned); + tcase_add_test (tc_chain, test_float); tcase_add_test (tc_chain, test_message_on_eos); + tcase_add_test (tc_chain, test_message_count); + tcase_add_test (tc_chain, test_message_timestamps); return s; } -int -main (int argc, char **argv) -{ - int nf; - - Suite *s = level_suite (); - SRunner *sr = srunner_create (s); - - gst_check_init (&argc, &argv); - - srunner_run_all (sr, CK_NORMAL); - nf = srunner_ntests_failed (sr); - srunner_free (sr); - - return nf; -} +GST_CHECK_MAIN (level); diff --git a/tests/check/elements/matroskamux.c b/tests/check/elements/matroskamux.c index 26ed7f0f18786aa6b9a4989fe1cc759209eb63c0..1c18e75ecc1d5b71989e8883acc5f52f9cd7b277 100644 --- a/tests/check/elements/matroskamux.c +++ b/tests/check/elements/matroskamux.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -54,8 +54,7 @@ static GstStaticPadTemplate srcac3template = GST_STATIC_PAD_TEMPLATE ("src", static GstPad * -setup_src_pad (GstElement * element, - GstStaticPadTemplate * template, GstCaps * caps) +setup_src_pad (GstElement * element, GstStaticPadTemplate * template) { GstPad *srcpad, *sinkpad; @@ -72,8 +71,6 @@ setup_src_pad (GstElement * element, GST_ELEMENT_NAME (element)); /* references are owned by: 1) us, 2) matroskamux, 3) collect pads */ ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 3); - if (caps) - fail_unless (gst_pad_set_caps (srcpad, caps)); fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK, "Could not link source and %s sink pads", GST_ELEMENT_NAME (element)); gst_object_unref (sinkpad); /* because we got it higher up */ @@ -110,8 +107,7 @@ teardown_src_pad (GstElement * element) } static GstPad * -setup_sink_pad (GstElement * element, GstStaticPadTemplate * template, - GstCaps * caps) +setup_sink_pad (GstElement * element, GstStaticPadTemplate * template) { GstPad *srcpad, *sinkpad; @@ -125,8 +121,6 @@ setup_sink_pad (GstElement * element, GstStaticPadTemplate * template, srcpad = gst_element_get_static_pad (element, "src"); fail_if (srcpad == NULL, "Could not get source pad from %s", GST_ELEMENT_NAME (element)); - if (caps) - fail_unless (gst_pad_set_caps (sinkpad, caps)); gst_pad_set_chain_function (sinkpad, gst_check_chain_func); fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK, @@ -163,22 +157,17 @@ static GstElement * setup_matroskamux (GstStaticPadTemplate * srctemplate) { GstElement *matroskamux; - GstSegment segment; GST_DEBUG ("setup_matroskamux"); matroskamux = gst_check_setup_element ("matroskamux"); g_object_set (matroskamux, "version", 1, NULL); - mysrcpad = setup_src_pad (matroskamux, srctemplate, NULL); - mysinkpad = setup_sink_pad (matroskamux, &sinktemplate, NULL); + mysrcpad = setup_src_pad (matroskamux, srctemplate); + mysinkpad = setup_sink_pad (matroskamux, &sinktemplate); fail_unless (gst_element_set_state (matroskamux, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); - gst_segment_init (&segment, GST_FORMAT_TIME); - fail_unless (gst_pad_push_event (mysrcpad, - gst_event_new_segment (&segment)), "Segment event rejected"); - return matroskamux; } @@ -208,6 +197,7 @@ GST_START_TEST (test_ebml_header) int num_buffers; int i; gint available; + GstCaps *caps; guint8 data[] = { 0x1a, 0x45, 0xdf, 0xa3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x42, 0x82, 0x89, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61, 0x00, @@ -217,6 +207,10 @@ GST_START_TEST (test_ebml_header) matroskamux = setup_matroskamux (&srcac3template); + caps = gst_caps_from_string (srcac3template.static_caps.string); + gst_check_setup_events (mysrcpad, matroskamux, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + inbuffer = gst_buffer_new_allocate (NULL, 1, 0); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); @@ -267,7 +261,7 @@ GST_START_TEST (test_vorbis_header) matroskamux = setup_matroskamux (&srcvorbistemplate); caps = gst_caps_from_string (VORBIS_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, matroskamux, caps, GST_FORMAT_TIME); gst_caps_unref (caps); inbuffer = gst_buffer_new_allocate (NULL, 1, 0); @@ -326,7 +320,7 @@ GST_START_TEST (test_block_group) matroskamux = setup_matroskamux (&srcac3template); caps = gst_caps_from_string (AC3_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, matroskamux, caps, GST_FORMAT_TIME); gst_caps_unref (caps); /* Generate the header */ @@ -397,9 +391,14 @@ GST_START_TEST (test_reset) GstBuffer *outbuffer; int num_buffers; int i; + GstCaps *caps; matroskamux = setup_matroskamux (&srcac3template); + caps = gst_caps_from_string (srcac3template.static_caps.string); + gst_check_setup_events (mysrcpad, matroskamux, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + inbuffer = gst_buffer_new_allocate (NULL, 1, 0); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); @@ -447,7 +446,7 @@ GST_START_TEST (test_link_webmmux_webm_sink) GstElement *mux; mux = gst_check_setup_element ("webmmux"); - mysinkpad = setup_sink_pad (mux, &webm_sinktemplate, NULL); + mysinkpad = setup_sink_pad (mux, &webm_sinktemplate); fail_unless (mysinkpad != NULL); fail_unless (gst_element_set_state (mux, diff --git a/tests/check/elements/matroskaparse.c b/tests/check/elements/matroskaparse.c index e1d5e411ac12086ede03f75abe746d8c977770bb..8c2482c4f7a73eb269e5370814878251798d4902 100644 --- a/tests/check/elements/matroskaparse.c +++ b/tests/check/elements/matroskaparse.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/mpegaudioparse.c b/tests/check/elements/mpegaudioparse.c index 2bb26991eb48acb23fbc5ebacc7da8dd6268e9eb..dfe4735c14bdbceaf30293468342fb7bbe813114 100644 --- a/tests/check/elements/mpegaudioparse.c +++ b/tests/check/elements/mpegaudioparse.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/mulawdec.c b/tests/check/elements/mulawdec.c new file mode 100644 index 0000000000000000000000000000000000000000..94c6339a53864c4b665675d453a77b0302fc5138 --- /dev/null +++ b/tests/check/elements/mulawdec.c @@ -0,0 +1,125 @@ +/* GStreamer MulawDec unit tests + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/check/gstcheck.h> +#include <string.h> + +static GstPad *mysrcpad, *mysinkpad; +static GstElement *mulawdec = NULL; + +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw," + "format = (string) S16LE, " + "rate = (int) 8000, " + "channels = (int) 1, " "layout = (string)interleaved") + ); + +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-mulaw," "rate = (int) 8000," "channels = (int) 1") + ); + +static void +mulawdec_setup (void) +{ + GstCaps *src_caps; + + src_caps = + gst_caps_from_string ("audio/x-mulaw," "rate = (int) 8000," + "channels = (int) 1"); + + GST_DEBUG ("%s", __FUNCTION__); + + mulawdec = gst_check_setup_element ("mulawdec"); + + mysrcpad = gst_check_setup_src_pad (mulawdec, &srctemplate); + mysinkpad = gst_check_setup_sink_pad (mulawdec, &sinktemplate); + + gst_pad_set_active (mysrcpad, TRUE); + gst_pad_set_active (mysinkpad, TRUE); + + gst_check_setup_events (mysrcpad, mulawdec, src_caps, GST_FORMAT_TIME); + + gst_caps_unref (src_caps); +} + +static void +buffer_unref (void *buffer, void *user_data) +{ + gst_buffer_unref (GST_BUFFER (buffer)); +} + +static void +mulawdec_teardown (void) +{ + /* free decoded buffers */ + g_list_foreach (buffers, buffer_unref, NULL); + g_list_free (buffers); + buffers = NULL; + + gst_pad_set_active (mysrcpad, FALSE); + gst_pad_set_active (mysinkpad, FALSE); + gst_check_teardown_src_pad (mulawdec); + gst_check_teardown_sink_pad (mulawdec); + gst_check_teardown_element (mulawdec); + mulawdec = NULL; +} + +GST_START_TEST (test_one_buffer) +{ + GstBuffer *buffer; + gint buf_size = 4096; + guint8 *dp; + + fail_unless (gst_element_set_state (mulawdec, GST_STATE_PLAYING) == + GST_STATE_CHANGE_SUCCESS, "could not change state to playing"); + + buffer = gst_buffer_new (); + dp = g_malloc0 (buf_size); + gst_buffer_append_memory (buffer, + gst_memory_new_wrapped (0, dp, buf_size, 0, buf_size, dp, g_free)); + ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1); + + fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK); + + fail_unless (g_list_length (buffers) == 1); + fail_unless (gst_buffer_get_size (GST_BUFFER (g_list_first (buffers)->data))); +} + +GST_END_TEST; + +static Suite * +mulawdec_suite (void) +{ + Suite *s = suite_create ("mulawdec"); + TCase *tc_chain = tcase_create ("mulawdec"); + + tcase_add_checked_fixture (tc_chain, mulawdec_setup, mulawdec_teardown); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_one_buffer); + return s; +} + +GST_CHECK_MAIN (mulawdec) diff --git a/tests/check/elements/mulawenc.c b/tests/check/elements/mulawenc.c new file mode 100644 index 0000000000000000000000000000000000000000..372218647f1c5b4f8eeb6dae96e83451cdfb1a94 --- /dev/null +++ b/tests/check/elements/mulawenc.c @@ -0,0 +1,175 @@ +/* GStreamer MulawEnc unit tests + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/check/gstcheck.h> +#include <string.h> + +static GstPad *mysrcpad, *mysinkpad; +static GstElement *mulawenc = NULL; + +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-mulaw," "rate = (int) 8000," "channels = (int) 1") + ); + +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw," + "format = (string) S16LE, " + "rate = (int) 8000, " + "channels = (int) 1, " "layout = (string)interleaved") + ); + +static void +mulawenc_setup (void) +{ + GstCaps *src_caps; + + src_caps = gst_caps_from_string ("audio/x-raw," + "format = (string) S16LE, " + "rate = (int) 8000, " + "channels = (int) 1, " "layout = (string)interleaved"); + + GST_DEBUG ("%s", __FUNCTION__); + + mulawenc = gst_check_setup_element ("mulawenc"); + + mysrcpad = gst_check_setup_src_pad (mulawenc, &srctemplate); + mysinkpad = gst_check_setup_sink_pad (mulawenc, &sinktemplate); + + gst_pad_set_active (mysrcpad, TRUE); + gst_pad_set_active (mysinkpad, TRUE); + + gst_check_setup_events (mysrcpad, mulawenc, src_caps, GST_FORMAT_TIME); + gst_caps_unref (src_caps); +} + +static void +buffer_unref (void *buffer, void *user_data) +{ + gst_buffer_unref (GST_BUFFER (buffer)); +} + +static void +mulawenc_teardown (void) +{ + /* free encoded buffers */ + g_list_foreach (buffers, buffer_unref, NULL); + g_list_free (buffers); + buffers = NULL; + + gst_pad_set_active (mysrcpad, FALSE); + gst_pad_set_active (mysinkpad, FALSE); + gst_check_teardown_src_pad (mulawenc); + gst_check_teardown_sink_pad (mulawenc); + gst_check_teardown_element (mulawenc); + mulawenc = NULL; +} + +static gboolean +check_for_maximum_bitrate (GstPad * pad, GstEvent ** eventp, gpointer user_data) +{ + gboolean *found_maximum_bitrate = (gboolean *) user_data; + GstEvent *event = *eventp; + + if (event->type == GST_EVENT_TAG) { + GstTagList *taglist = NULL; + guint value = 0; + gst_event_parse_tag (event, &taglist); + + fail_unless (taglist != NULL); + + fail_unless (gst_tag_list_get_uint (taglist, GST_TAG_MAXIMUM_BITRATE, + &value)); + + /* bitrate needs to be exactly sample rate * channels * 8 */ + fail_unless (value == 8000 * 1 * 8); + + *found_maximum_bitrate = TRUE; + } + + return TRUE; +} + +GST_START_TEST (test_one_buffer) +{ + GstBuffer *buffer; + gint buf_size = 4096; + guint8 *dp; + + fail_unless (gst_element_set_state (mulawenc, GST_STATE_PLAYING) == + GST_STATE_CHANGE_SUCCESS, "could not change state to playing"); + + buffer = gst_buffer_new (); + dp = g_malloc0 (buf_size); + gst_buffer_append_memory (buffer, + gst_memory_new_wrapped (0, dp, buf_size, 0, buf_size, dp, g_free)); + ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1); + + fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK); + + fail_unless (g_list_length (buffers) == 1); + fail_unless (gst_buffer_get_size (GST_BUFFER (g_list_first (buffers)->data))); +} + +GST_END_TEST; + +GST_START_TEST (test_tags) +{ + GstBuffer *buffer; + gint buf_size = 4096; + guint8 *dp; + gboolean found_maximum_bitrate = FALSE; + + fail_unless (gst_element_set_state (mulawenc, GST_STATE_PLAYING) == + GST_STATE_CHANGE_SUCCESS, "could not change state to playing"); + + buffer = gst_buffer_new (); + dp = g_malloc0 (buf_size); + gst_buffer_append_memory (buffer, + gst_memory_new_wrapped (0, dp, buf_size, 0, buf_size, dp, g_free)); + ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1); + + fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK); + gst_pad_sticky_events_foreach (mysinkpad, check_for_maximum_bitrate, + &found_maximum_bitrate); + fail_unless (found_maximum_bitrate); +} + +GST_END_TEST; + +static Suite * +mulawenc_suite (void) +{ + Suite *s = suite_create ("mulawenc"); + TCase *tc_chain = tcase_create ("mulawenc"); + + tcase_add_checked_fixture (tc_chain, mulawenc_setup, mulawenc_teardown); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_one_buffer); + tcase_add_test (tc_chain, test_tags); + return s; +} + +GST_CHECK_MAIN (mulawenc) diff --git a/tests/check/elements/multifile.c b/tests/check/elements/multifile.c index 9679f93af5b51d7c7954a7efa777cd16f4f0b580..20770bb8fd49ee7959be0cb47dd298415bd4b4f5 100644 --- a/tests/check/elements/multifile.c +++ b/tests/check/elements/multifile.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -144,6 +144,7 @@ GST_START_TEST (test_multifilesink_key_unit) gchar *mfs_pattern; GstBuffer *buf; GstPad *sink; + GstSegment segment; tmpdir = g_get_tmp_dir (); template = g_build_filename (tmpdir, "multifile-test-XXXXXX", NULL); @@ -158,6 +159,11 @@ GST_START_TEST (test_multifilesink_key_unit) GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); sink = gst_element_get_static_pad (mfs, "sink"); + + gst_pad_send_event (sink, gst_event_new_stream_start ("test")); + gst_segment_init (&segment, GST_FORMAT_TIME); + gst_pad_send_event (sink, gst_event_new_segment (&segment)); + buf = gst_buffer_new_and_alloc (4); gst_buffer_fill (buf, 0, "foo", 4); @@ -250,8 +256,57 @@ GST_START_TEST (test_multifilesrc) GST_END_TEST; +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +/* make sure stop_index is honoured even if the next target file exists */ +GST_START_TEST (test_multifilesrc_stop_index) +{ + GstElement *src; + GstEvent *event; + GstPad *sinkpad; + gchar *fn; + + src = gst_check_setup_element ("multifilesrc"); + fail_unless (src != NULL); + + fn = g_build_filename (GST_TEST_FILES_PATH, "image.jpg", NULL); + g_object_set (src, "location", fn, NULL); + g_free (fn); + + g_object_set (src, "stop-index", 5, NULL); + + sinkpad = gst_check_setup_sink_pad_by_name (src, &sinktemplate, "src"); + fail_unless (sinkpad != NULL); + gst_pad_set_active (sinkpad, TRUE); + + gst_element_set_state (src, GST_STATE_PLAYING); + + gst_element_get_state (src, NULL, NULL, -1); + + /* busy-loop for EOS */ + do { + g_usleep (G_USEC_PER_SEC / 10); + event = gst_pad_get_sticky_event (sinkpad, GST_EVENT_EOS, 0); + } while (event == NULL); + gst_event_unref (event); + + /* Range appears to be [ start, stop ] */ + fail_unless_equals_int (g_list_length (buffers), 5 + 1); + + gst_element_set_state (src, GST_STATE_NULL); + + gst_check_teardown_pad_by_name (src, "src"); + gst_check_teardown_element (src); +} + +GST_END_TEST; + + static Suite * -libvisual_suite (void) +multifile_suite (void) { Suite *s = suite_create ("multifile"); TCase *tc_chain = tcase_create ("general"); @@ -262,8 +317,9 @@ libvisual_suite (void) tcase_add_test (tc_chain, test_multifilesink_max_files); tcase_add_test (tc_chain, test_multifilesink_key_unit); tcase_add_test (tc_chain, test_multifilesrc); + tcase_add_test (tc_chain, test_multifilesrc_stop_index); return s; } -GST_CHECK_MAIN (libvisual); +GST_CHECK_MAIN (multifile); diff --git a/tests/check/elements/parser.c b/tests/check/elements/parser.c index 8b2ab42d4663c002865d70c4c5c6af0bdbceaa24..52ffed8aa9536983907bc3a991131379259a53af 100644 --- a/tests/check/elements/parser.c +++ b/tests/check/elements/parser.c @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -147,16 +147,18 @@ setup_element (const gchar * factory, GstStaticPadTemplate * sink_template, { GstElement *element; GstBus *bus; + gchar *caps_str = NULL; element = gst_check_setup_element (factory); srcpad = gst_check_setup_src_pad (element, src_template); + if (sink_caps) { + caps_str = gst_caps_to_string (sink_caps); + sink_template->static_caps.string = caps_str; + } sinkpad = gst_check_setup_sink_pad (element, sink_template); gst_pad_set_active (srcpad, TRUE); + gst_check_setup_events (srcpad, element, src_caps, GST_FORMAT_BYTES); gst_pad_set_active (sinkpad, TRUE); - if (src_caps) - fail_unless (gst_pad_set_caps (srcpad, src_caps)); - if (sink_caps) - fail_unless (gst_pad_set_caps (sinkpad, sink_caps)); bus = gst_bus_new (); gst_element_set_bus (element, bus); @@ -167,6 +169,7 @@ setup_element (const gchar * factory, GstStaticPadTemplate * sink_template, ts_counter = offset_counter = buffer_counter = 0; buffers = NULL; + g_free (caps_str); return element; } diff --git a/tests/check/elements/parser.h b/tests/check/elements/parser.h index 470f59421ac03f519c88cf979a2c270bc9ddd05b..c4867cd10364feb6a4e2260e3c0bdcd373d23729 100644 --- a/tests/check/elements/parser.h +++ b/tests/check/elements/parser.h @@ -19,8 +19,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/qtmux.c b/tests/check/elements/qtmux.c index c32a4c5c685516c36dc8a1ba8e2bdfb3e1a319c1..fe215565193449ace875472f9b0b903b92042df4 100644 --- a/tests/check/elements/qtmux.c +++ b/tests/check/elements/qtmux.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -103,7 +103,7 @@ GST_STATIC_PAD_TEMPLATE ("src", /* setup and teardown needs some special handling for muxer */ static GstPad * setup_src_pad (GstElement * element, - GstStaticPadTemplate * template, GstCaps * caps, const gchar * sinkname) + GstStaticPadTemplate * template, const gchar * sinkname) { GstPad *srcpad, *sinkpad; @@ -119,8 +119,6 @@ setup_src_pad (GstElement * element, GST_ELEMENT_NAME (element)); /* references are owned by: 1) us, 2) qtmux, 3) collect pads */ ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 3); - if (caps) - fail_unless (gst_pad_set_caps (srcpad, caps)); fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK, "Could not link source and %s sink pads", GST_ELEMENT_NAME (element)); gst_object_unref (sinkpad); /* because we got it higher up */ @@ -162,7 +160,7 @@ setup_qtmux (GstStaticPadTemplate * srctemplate, const gchar * sinkname) GST_DEBUG ("setup_qtmux"); qtmux = gst_check_setup_element ("qtmux"); - mysrcpad = setup_src_pad (qtmux, srctemplate, NULL, sinkname); + mysrcpad = setup_src_pad (qtmux, srctemplate, sinkname); mysinkpad = gst_check_setup_sink_pad (qtmux, &sinktemplate); gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); @@ -203,15 +201,18 @@ check_qtmux_pad (GstStaticPadTemplate * srctemplate, const gchar * sinkname, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); + gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test")); + + caps = gst_pad_get_pad_template_caps (mysrcpad); + gst_pad_set_caps (mysrcpad, caps); + gst_caps_unref (caps); + /* ensure segment (format) properly setup */ gst_segment_init (&segment, GST_FORMAT_TIME); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); inbuffer = gst_buffer_new_and_alloc (1); gst_buffer_memset (inbuffer, 0, 0, 1); - caps = gst_pad_get_pad_template_caps (mysrcpad); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); GST_BUFFER_TIMESTAMP (inbuffer) = 0; GST_BUFFER_DURATION (inbuffer) = 40 * GST_MSECOND; ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -292,15 +293,18 @@ check_qtmux_pad_fragmented (GstStaticPadTemplate * srctemplate, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); + gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test")); + + caps = gst_pad_get_pad_template_caps (mysrcpad); + gst_pad_set_caps (mysrcpad, caps); + gst_caps_unref (caps); + /* ensure segment (format) properly setup */ gst_segment_init (&segment, GST_FORMAT_TIME); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); inbuffer = gst_buffer_new_and_alloc (1); gst_buffer_memset (inbuffer, 0, 0, 1); - caps = gst_pad_get_pad_template_caps (mysrcpad); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); GST_BUFFER_TIMESTAMP (inbuffer) = 0; GST_BUFFER_DURATION (inbuffer) = 40 * GST_MSECOND; ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -522,6 +526,12 @@ GST_START_TEST (test_reuse) gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); + gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test")); + + caps = gst_pad_get_pad_template_caps (mysrcpad); + gst_pad_set_caps (mysrcpad, caps); + gst_caps_unref (caps); + /* ensure segment (format) properly setup */ gst_segment_init (&segment, GST_FORMAT_TIME); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); @@ -529,9 +539,6 @@ GST_START_TEST (test_reuse) inbuffer = gst_buffer_new_and_alloc (1); fail_unless (inbuffer != NULL); gst_buffer_memset (inbuffer, 0, 0, 1); - caps = gst_pad_get_pad_template_caps (mysrcpad); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); GST_BUFFER_TIMESTAMP (inbuffer) = 0; GST_BUFFER_DURATION (inbuffer) = 40 * GST_MSECOND; ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); @@ -803,10 +810,11 @@ test_average_bitrate_custom (const gchar * elementname, filesink = gst_element_factory_make ("filesink", NULL); g_object_set (filesink, "location", location, NULL); gst_element_link (qtmux, filesink); - mysrcpad = setup_src_pad (qtmux, tmpl, NULL, sinkpadname); + mysrcpad = setup_src_pad (qtmux, tmpl, sinkpadname); fail_unless (mysrcpad != NULL); gst_pad_set_active (mysrcpad, TRUE); + fail_unless (gst_element_set_state (filesink, GST_STATE_PLAYING) != GST_STATE_CHANGE_FAILURE, "could not set filesink to playing"); @@ -814,6 +822,12 @@ test_average_bitrate_custom (const gchar * elementname, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); + gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test")); + + caps = gst_pad_get_pad_template_caps (mysrcpad); + gst_pad_set_caps (mysrcpad, caps); + gst_caps_unref (caps); + /* ensure segment (format) properly setup */ gst_segment_init (&segment, GST_FORMAT_TIME); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); @@ -821,9 +835,6 @@ test_average_bitrate_custom (const gchar * elementname, for (i = 0; i < 3; i++) { inbuffer = gst_buffer_new_and_alloc (bytes[i]); gst_buffer_memset (inbuffer, 0, 0, bytes[i]); - caps = gst_pad_get_pad_template_caps (mysrcpad); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); GST_BUFFER_TIMESTAMP (inbuffer) = total_duration; GST_BUFFER_DURATION (inbuffer) = (GstClockTime) durations[i]; ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); diff --git a/tests/check/elements/rganalysis.c b/tests/check/elements/rganalysis.c index 5f19caf140ed06747def7c737b1a871a12eff3a8..ba2669ac149a877e23aa7716ecb6e82be9186eea 100644 --- a/tests/check/elements/rganalysis.c +++ b/tests/check/elements/rganalysis.c @@ -226,12 +226,40 @@ send_flush_events (GstElement * element) gboolean res; GstPad *pad; - pad = gst_element_get_static_pad (element, "sink"); - res = gst_pad_send_event (pad, gst_event_new_flush_start ()); + pad = mysrcpad; + res = gst_pad_push_event (pad, gst_event_new_flush_start ()); fail_unless (res, "flush-start even not handledt"); - res = gst_pad_send_event (pad, gst_event_new_flush_stop (TRUE)); + res = gst_pad_push_event (pad, gst_event_new_flush_stop (TRUE)); fail_unless (res, "flush-stop event not handled"); - gst_object_unref (pad); +} + +static void +send_stream_start_event (GstElement * element) +{ + gboolean res; + GstPad *pad; + + pad = mysrcpad; + res = gst_pad_push_event (pad, gst_event_new_stream_start ("test")); + fail_unless (res, "STREAM_START event not handled"); +} + +static void +send_caps_event (const gchar * format, gint sample_rate, gint channels) +{ + GstCaps *caps; + + caps = gst_caps_new_simple ("audio/x-raw", + "format", G_TYPE_STRING, format, + "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, channels, + "layout", G_TYPE_STRING, "interleaved", NULL); + if (channels == 2) { + gst_caps_set_simple (caps, + "channel-mask", GST_TYPE_BITMASK, + G_GUINT64_CONSTANT (0x0000000000000003), NULL); + } + gst_pad_set_caps (mysrcpad, caps); + gst_caps_unref (caps); } static void @@ -241,21 +269,20 @@ send_segment_event (GstElement * element) gboolean res; GstPad *pad; - pad = gst_element_get_static_pad (element, "sink"); + pad = mysrcpad; gst_segment_init (&segment, GST_FORMAT_TIME); - res = gst_pad_send_event (pad, gst_event_new_segment (&segment)); + res = gst_pad_push_event (pad, gst_event_new_segment (&segment)); fail_unless (res, "SEGMENT event not handled"); - gst_object_unref (pad); } static void send_eos_event (GstElement * element) { GstBus *bus = gst_element_get_bus (element); - GstPad *pad = gst_element_get_static_pad (element, "sink"); + GstPad *pad = mysrcpad; gboolean res; - res = gst_pad_send_event (pad, gst_event_new_eos ()); + res = gst_pad_push_event (pad, gst_event_new_eos ()); fail_unless (res, "EOS event not handled"); /* There is no sink element, so _we_ post the EOS message on the bus here. Of @@ -265,19 +292,16 @@ send_eos_event (GstElement * element) fail_unless (gst_bus_post (bus, gst_message_new_eos (NULL))); gst_object_unref (bus); - gst_object_unref (pad); } static void send_tag_event (GstElement * element, GstTagList * tag_list) { - GstPad *pad = gst_element_get_static_pad (element, "sink"); + GstPad *pad = mysrcpad; GstEvent *event = gst_event_new_tag (tag_list); - fail_unless (gst_pad_send_event (pad, event), + fail_unless (gst_pad_push_event (pad, event), "Cannot send TAG event: Not handled."); - - gst_object_unref (pad); } static void @@ -407,7 +431,6 @@ test_buffer_const_float_mono (gint sample_rate, gsize n_frames, gfloat value) GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gfloat)); GstMapInfo map; gfloat *data; - GstCaps *caps; gint i; gst_buffer_map (buf, &map, GST_MAP_WRITE); @@ -416,13 +439,6 @@ test_buffer_const_float_mono (gint sample_rate, gsize n_frames, gfloat value) *data++ = value; gst_buffer_unmap (buf, &map); - caps = gst_caps_new_simple ("audio/x-raw", - "format", G_TYPE_STRING, GST_AUDIO_NE (F32), - "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 1, - "layout", G_TYPE_STRING, "interleaved", NULL); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (buf, "buf", 1); return buf; @@ -435,7 +451,6 @@ test_buffer_const_float_stereo (gint sample_rate, gsize n_frames, GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gfloat) * 2); GstMapInfo map; gfloat *data; - GstCaps *caps; gint i; gst_buffer_map (buf, &map, GST_MAP_WRITE); @@ -446,15 +461,6 @@ test_buffer_const_float_stereo (gint sample_rate, gsize n_frames, } gst_buffer_unmap (buf, &map); - caps = gst_caps_new_simple ("audio/x-raw", - "format", G_TYPE_STRING, GST_AUDIO_NE (F32), - "layout", G_TYPE_STRING, "interleaved", - "rate", G_TYPE_INT, sample_rate, - "channels", G_TYPE_INT, 2, - "channel-mask", GST_TYPE_BITMASK, (gint64) 0x3, NULL); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (buf, "buf", 1); return buf; @@ -467,7 +473,6 @@ test_buffer_const_int16_mono (gint sample_rate, gint depth, gsize n_frames, GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gint16)); gint16 *data; GstMapInfo map; - GstCaps *caps; gint i; gst_buffer_map (buf, &map, GST_MAP_WRITE); @@ -476,13 +481,6 @@ test_buffer_const_int16_mono (gint sample_rate, gint depth, gsize n_frames, *data++ = value; gst_buffer_unmap (buf, &map); - caps = gst_caps_new_simple ("audio/x-raw", - "format", G_TYPE_STRING, GST_AUDIO_NE (S16), - "layout", G_TYPE_STRING, "interleaved", - "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 1, NULL); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (buf, "buf", 1); return buf; @@ -495,7 +493,6 @@ test_buffer_const_int16_stereo (gint sample_rate, gint depth, gsize n_frames, GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gint16) * 2); gint16 *data; GstMapInfo map; - GstCaps *caps; gint i; gst_buffer_map (buf, &map, GST_MAP_WRITE); @@ -506,14 +503,6 @@ test_buffer_const_int16_stereo (gint sample_rate, gint depth, gsize n_frames, } gst_buffer_unmap (buf, &map); - caps = gst_caps_new_simple ("audio/x-raw", - "format", G_TYPE_STRING, GST_AUDIO_NE (S16), - "layout", G_TYPE_STRING, "interleaved", - "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 2, - "channel-mask", GST_TYPE_BITMASK, (gint64) 0x3, NULL); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (buf, "buf", 1); return buf; @@ -529,7 +518,6 @@ test_buffer_square_float_mono (gint * accumulator, gint sample_rate, GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gfloat)); gfloat *data; GstMapInfo map; - GstCaps *caps; gint i; gst_buffer_map (buf, &map, GST_MAP_WRITE); @@ -545,13 +533,6 @@ test_buffer_square_float_mono (gint * accumulator, gint sample_rate, } gst_buffer_unmap (buf, &map); - caps = gst_caps_new_simple ("audio/x-raw", - "format", G_TYPE_STRING, GST_AUDIO_NE (F32), - "layout", G_TYPE_STRING, "interleaved", - "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 1, NULL); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (buf, "buf", 1); return buf; @@ -564,7 +545,6 @@ test_buffer_square_float_stereo (gint * accumulator, gint sample_rate, GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gfloat) * 2); gfloat *data; GstMapInfo map; - GstCaps *caps; gint i; gst_buffer_map (buf, &map, GST_MAP_WRITE); @@ -583,14 +563,6 @@ test_buffer_square_float_stereo (gint * accumulator, gint sample_rate, } gst_buffer_unmap (buf, &map); - caps = gst_caps_new_simple ("audio/x-raw", - "format", G_TYPE_STRING, GST_AUDIO_NE (F32), - "layout", G_TYPE_STRING, "interleaved", - "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 2, - "channel-mask", GST_TYPE_BITMASK, (gint64) 0x3, NULL); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (buf, "buf", 1); return buf; @@ -603,7 +575,6 @@ test_buffer_square_int16_mono (gint * accumulator, gint sample_rate, GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gint16)); gint16 *data; GstMapInfo map; - GstCaps *caps; gint i; gst_buffer_map (buf, &map, GST_MAP_WRITE); @@ -619,13 +590,6 @@ test_buffer_square_int16_mono (gint * accumulator, gint sample_rate, } gst_buffer_unmap (buf, &map); - caps = gst_caps_new_simple ("audio/x-raw", - "format", G_TYPE_STRING, GST_AUDIO_NE (S16), - "layout", G_TYPE_STRING, "interleaved", - "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 1, NULL); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (buf, "buf", 1); return buf; @@ -638,7 +602,6 @@ test_buffer_square_int16_stereo (gint * accumulator, gint sample_rate, GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gint16) * 2); gint16 *data; GstMapInfo map; - GstCaps *caps; gint i; gst_buffer_map (buf, &map, GST_MAP_WRITE); @@ -657,14 +620,6 @@ test_buffer_square_int16_stereo (gint * accumulator, gint sample_rate, } gst_buffer_unmap (buf, &map); - caps = gst_caps_new_simple ("audio/x-raw", - "format", G_TYPE_STRING, GST_AUDIO_NE (S16), - "layout", G_TYPE_STRING, "interleaved", - "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 2, - "channel-mask", GST_TYPE_BITMASK, (gint64) 0x3, NULL); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - ASSERT_BUFFER_REFCOUNT (buf, "buf", 1); return buf; @@ -703,6 +658,7 @@ GST_START_TEST (test_no_buffer_album_1) set_playing_state (element); /* Single track: */ + send_stream_start_event (element); send_segment_event (element); send_eos_event (element); poll_eos (element); @@ -766,7 +722,7 @@ GST_START_TEST (test_no_buffer_album_2) set_playing_state (element); /* No buffer for the first track. */ - + send_stream_start_event (element); send_segment_event (element); send_eos_event (element); /* No tags should be posted, there was nothing to analyze: */ @@ -776,6 +732,7 @@ GST_START_TEST (test_no_buffer_album_2) /* A test waveform with known gain result as second track: */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (F32), 44100, 1); send_segment_event (element); for (i = 20; i--;) push_buffer (test_buffer_square_float_mono (&accumulator, 44100, 512, @@ -815,6 +772,8 @@ GST_START_TEST (test_empty_buffers) set_playing_state (element); /* Single track: */ + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 44100, 2); send_segment_event (element); push_buffer (test_buffer_const_float_stereo (44100, 0, 0.0, 0.0)); send_eos_event (element); @@ -875,6 +834,8 @@ GST_START_TEST (test_peak_float) GstTagList *tag_list; set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_float_stereo (8000, 512, -1.369, 0.0)); send_eos_event (element); @@ -893,6 +854,7 @@ GST_START_TEST (test_peak_float) /* Mono. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (F32), 8000, 1); send_segment_event (element); push_buffer (test_buffer_const_float_mono (8000, 512, -1.369)); send_eos_event (element); @@ -913,6 +875,8 @@ GST_START_TEST (test_peak_int16_16) set_playing_state (element); /* Half amplitude. */ + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 1 << 14, 0)); send_eos_event (element); @@ -922,6 +886,7 @@ GST_START_TEST (test_peak_int16_16) /* Swapped channels. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, 1 << 14)); send_eos_event (element); @@ -931,6 +896,7 @@ GST_START_TEST (test_peak_int16_16) /* Mono. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 1); send_segment_event (element); push_buffer (test_buffer_const_int16_mono (8000, 16, 512, 1 << 14)); send_eos_event (element); @@ -940,6 +906,7 @@ GST_START_TEST (test_peak_int16_16) /* Half amplitude, negative variant. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, -1 << 14, 0)); send_eos_event (element); @@ -949,6 +916,7 @@ GST_START_TEST (test_peak_int16_16) /* Swapped channels. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, -1 << 14)); send_eos_event (element); @@ -958,6 +926,7 @@ GST_START_TEST (test_peak_int16_16) /* Mono. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 1); send_segment_event (element); push_buffer (test_buffer_const_int16_mono (8000, 16, 512, -1 << 14)); send_eos_event (element); @@ -972,6 +941,7 @@ GST_START_TEST (test_peak_int16_16) * -32768! */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 32767, 0)); send_eos_event (element); @@ -981,6 +951,7 @@ GST_START_TEST (test_peak_int16_16) /* Swapped channels. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, 32767)); send_eos_event (element); @@ -990,6 +961,7 @@ GST_START_TEST (test_peak_int16_16) /* Mono. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 1); send_segment_event (element); push_buffer (test_buffer_const_int16_mono (8000, 16, 512, 32767)); send_eos_event (element); @@ -1000,6 +972,7 @@ GST_START_TEST (test_peak_int16_16) /* Negative variant, reaching 1.0. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, -32768, 0)); send_eos_event (element); @@ -1009,6 +982,7 @@ GST_START_TEST (test_peak_int16_16) /* Swapped channels. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, -32768)); send_eos_event (element); @@ -1018,6 +992,7 @@ GST_START_TEST (test_peak_int16_16) /* Mono. */ send_flush_events (element); + send_caps_event (GST_AUDIO_NE (S16), 8000, 1); send_segment_event (element); push_buffer (test_buffer_const_int16_mono (8000, 16, 512, -32768)); send_eos_event (element); @@ -1038,6 +1013,8 @@ GST_START_TEST (test_peak_album) g_object_set (element, "num-tracks", 2, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_float_stereo (8000, 1024, 1.0, 0.0)); send_eos_event (element); @@ -1115,6 +1092,8 @@ GST_START_TEST (test_peak_track_album) set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 8000, 1); send_segment_event (element); push_buffer (test_buffer_const_float_mono (8000, 1024, 1.0)); send_eos_event (element); @@ -1152,6 +1131,8 @@ GST_START_TEST (test_peak_album_abort_to_track) g_object_set (element, "num-tracks", 2, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 8000, 2); send_segment_event (element); push_buffer (test_buffer_const_float_stereo (8000, 1024, 1.0, 0.0)); send_eos_event (element); @@ -1189,6 +1170,8 @@ GST_START_TEST (test_gain_album) /* The three tracks are constructed such that if any of these is in fact * ignored for the album gain, the album gain will differ. */ + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 44100, 2); send_segment_event (element); accumulator = 0; for (i = 8; i--;) @@ -1248,6 +1231,8 @@ GST_START_TEST (test_forced) g_object_set (element, "forced", FALSE, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 44100, 2); send_segment_event (element); tag_list = gst_tag_list_new_empty (); /* Provided values are totally arbitrary. */ @@ -1290,6 +1275,8 @@ GST_START_TEST (test_forced_separate) g_object_set (element, "forced", FALSE, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 44100, 2); send_segment_event (element); tag_list = gst_tag_list_new_empty (); gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, GST_TAG_TRACK_GAIN, 2.21, @@ -1343,6 +1330,8 @@ GST_START_TEST (test_forced_after_data) g_object_set (element, "forced", FALSE, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 8000, 2); send_segment_event (element); for (i = 20; i--;) push_buffer (test_buffer_const_float_stereo (8000, 512, 0.5, 0.5)); @@ -1385,6 +1374,8 @@ GST_START_TEST (test_forced_album) g_object_set (element, "forced", FALSE, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 44100, 2); send_segment_event (element); tag_list = gst_tag_list_new_empty (); /* Provided values are totally arbitrary. */ @@ -1447,6 +1438,8 @@ GST_START_TEST (test_forced_album_skip) g_object_set (element, "forced", FALSE, "num-tracks", 2, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 8000, 2); send_segment_event (element); tag_list = gst_tag_list_new_empty (); /* Provided values are totally arbitrary. */ @@ -1501,6 +1494,8 @@ GST_START_TEST (test_forced_album_no_skip) g_object_set (element, "forced", FALSE, "num-tracks", 2, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 8000, 2); send_segment_event (element); for (i = 20; i--;) push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25, @@ -1553,6 +1548,8 @@ GST_START_TEST (test_forced_abort_album_no_skip) g_object_set (element, "forced", FALSE, "num-tracks", 2, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 8000, 2); send_segment_event (element); for (i = 20; i--;) push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25, @@ -1598,6 +1595,8 @@ GST_START_TEST (test_reference_level) set_playing_state (element); + send_stream_start_event (element); + send_caps_event (GST_AUDIO_NE (F32), 44100, 2); send_segment_event (element); for (i = 20; i--;) push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512, @@ -1661,19 +1660,24 @@ GST_START_TEST (test_all_formats) gint i, j; set_playing_state (element); + send_stream_start_event (element); for (i = G_N_ELEMENTS (supported_rates); i--;) { send_flush_events (element); + send_caps_event (GST_AUDIO_NE (F32), supported_rates[i].sample_rate, 2); send_segment_event (element); accumulator = 0; for (j = 0; j < 4; j++) push_buffer (test_buffer_square_float_stereo (&accumulator, supported_rates[i].sample_rate, 512, 0.25, 0.25)); + send_caps_event (GST_AUDIO_NE (F32), supported_rates[i].sample_rate, 1); for (j = 0; j < 3; j++) push_buffer (test_buffer_square_float_mono (&accumulator, supported_rates[i].sample_rate, 512, 0.25)); + send_caps_event (GST_AUDIO_NE (S16), supported_rates[i].sample_rate, 2); for (j = 0; j < 4; j++) push_buffer (test_buffer_square_int16_stereo (&accumulator, supported_rates[i].sample_rate, 16, 512, 1 << 13, 1 << 13)); + send_caps_event (GST_AUDIO_NE (S16), supported_rates[i].sample_rate, 1); for (j = 0; j < 3; j++) push_buffer (test_buffer_square_int16_mono (&accumulator, supported_rates[i].sample_rate, 16, 512, 1 << 13)); @@ -1703,6 +1707,9 @@ GST_END_TEST; gint i; \ \ set_playing_state (element); \ + send_stream_start_event (element); \ + send_caps_event (GST_AUDIO_NE (F32), sample_rate, 1); \ + send_segment_event (element); \ \ for (i = 0; i < 20; i++) \ push_buffer (test_buffer_square_float_mono (&accumulator, \ @@ -1728,6 +1735,9 @@ GST_END_TEST; gint i; \ \ set_playing_state (element); \ + send_stream_start_event (element); \ + send_caps_event (GST_AUDIO_NE (F32), sample_rate, 2); \ + send_segment_event (element); \ \ for (i = 0; i < 20; i++) \ push_buffer (test_buffer_square_float_stereo (&accumulator, \ @@ -1753,6 +1763,9 @@ GST_END_TEST; gint i; \ \ set_playing_state (element); \ + send_stream_start_event (element); \ + send_caps_event (GST_AUDIO_NE (S16), sample_rate, 1); \ + send_segment_event (element); \ \ for (i = 0; i < 20; i++) \ push_buffer (test_buffer_square_int16_mono (&accumulator, \ @@ -1779,6 +1792,9 @@ GST_END_TEST; gint i; \ \ set_playing_state (element); \ + send_stream_start_event (element); \ + send_caps_event (GST_AUDIO_NE (S16), sample_rate, 2); \ + send_segment_event (element); \ \ for (i = 0; i < 20; i++) \ push_buffer (test_buffer_square_int16_stereo (&accumulator, \ diff --git a/tests/check/elements/rglimiter.c b/tests/check/elements/rglimiter.c index 104df22585943b5bba4ddff075018c373ac81a71..926ca33dfee245cc861684647414b5444e72ddcb 100644 --- a/tests/check/elements/rglimiter.c +++ b/tests/check/elements/rglimiter.c @@ -99,20 +99,26 @@ static const gfloat test_output[] = { 0.99752737684336523, /* 2.0 */ }; -static GstBuffer * -create_test_buffer (void) +static void +setup_events (GstElement * element) { - GstBuffer *buf = gst_buffer_new_and_alloc (sizeof (test_input)); GstCaps *caps; - gst_buffer_fill (buf, 0, test_input, sizeof (test_input)); - caps = gst_caps_new_simple ("audio/x-raw", "rate", G_TYPE_INT, 44100, "channels", G_TYPE_INT, 1, "format", G_TYPE_STRING, GST_AUDIO_NE (F32), "layout", G_TYPE_STRING, "interleaved", NULL); - gst_pad_set_caps (mysrcpad, caps); + + gst_check_setup_events (mysrcpad, element, caps, GST_FORMAT_TIME); gst_caps_unref (caps); +} + +static GstBuffer * +create_test_buffer (void) +{ + GstBuffer *buf = gst_buffer_new_and_alloc (sizeof (test_input)); + + gst_buffer_fill (buf, 0, test_input, sizeof (test_input)); ASSERT_BUFFER_REFCOUNT (buf, "buf", 1); @@ -158,6 +164,7 @@ GST_START_TEST (test_disabled) g_object_set (element, "enabled", FALSE, NULL); set_playing_state (element); + setup_events (element); buf = create_test_buffer (); fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK); @@ -180,6 +187,7 @@ GST_START_TEST (test_limiting) GstBuffer *buf, *out_buf; set_playing_state (element); + setup_events (element); /* Mutable variant. */ buf = create_test_buffer (); @@ -220,6 +228,7 @@ GST_START_TEST (test_gap) GstMapInfo m1, m2; set_playing_state (element); + setup_events (element); buf = create_test_buffer (); GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_GAP); diff --git a/tests/check/elements/rgvolume.c b/tests/check/elements/rgvolume.c index 4c09d553ad93ab8ce46d5b01db18c57f2eed4796..47ed3b3438b40f84dd1cf6669918708fe1657e94 100644 --- a/tests/check/elements/rgvolume.c +++ b/tests/check/elements/rgvolume.c @@ -57,14 +57,8 @@ static GstBuffer *test_buffer_new (gfloat value); static gboolean event_func (GstPad * pad, GstObject * parent, GstEvent * event) { - GST_DEBUG ("received event %p", event); - /* not interested in caps event */ - if (GST_EVENT_TYPE (event) == GST_EVENT_CAPS) { - GST_DEBUG ("dropping caps event"); - gst_event_unref (event); - } else { - events = g_list_append (events, event); - } + GST_DEBUG ("received event %p (%s)", event, GST_EVENT_TYPE_NAME (event)); + events = g_list_append (events, event); return TRUE; } @@ -73,7 +67,6 @@ static GstElement * setup_rgvolume (void) { GstElement *element; - GstCaps *caps; GST_DEBUG ("setup_rgvolume"); element = gst_check_setup_element ("rgvolume"); @@ -86,41 +79,20 @@ setup_rgvolume (void) gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); - caps = gst_caps_from_string ("audio/x-raw, format = F32LE, " - "layout = interleaved, rate = 8000, channels = 1"); - gst_pad_set_caps (mysrcpad, caps); - gst_caps_unref (caps); - return element; } static void -send_newsegment_and_empty_buffer (void) +send_empty_buffer (void) { GstBuffer *buf; - GstEvent *ev; - GstSegment segment; - - fail_unless (g_list_length (events) == 0); - - gst_segment_init (&segment, GST_FORMAT_TIME); - ev = gst_event_new_segment (&segment); - fail_unless (gst_pad_push_event (mysrcpad, ev), - "Pushing newsegment event failed"); - /* makes caps event */ buf = test_buffer_new (0.0); gst_buffer_resize (buf, 0, 0); GST_BUFFER_DURATION (buf) = 0; GST_BUFFER_OFFSET_END (buf) = GST_BUFFER_OFFSET (buf); fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK); - fail_unless (g_list_length (events) == 1); - fail_unless (events->data == ev); - gst_mini_object_unref ((GstMiniObject *) events->data); - events = g_list_remove (events, ev); - fail_unless (g_list_length (events) == 0); - fail_unless (g_list_length (buffers) == 1); fail_unless (buffers->data == buf); gst_mini_object_unref ((GstMiniObject *) buffers->data); @@ -163,17 +135,6 @@ set_null_state (GstElement * element) "Could not set state to NULL"); } -static void -clear_last_event (GstEventType type) -{ - GList *last = g_list_last (events); - - fail_unless (last != NULL); - fail_unless_equals_int (GST_EVENT_TYPE (last->data), type); - gst_event_unref (GST_EVENT (last->data)); - events = g_list_delete_link (events, last); -} - static void send_flush_events (GstElement * element) { @@ -181,11 +142,31 @@ send_flush_events (GstElement * element) res = gst_pad_push_event (mysrcpad, gst_event_new_flush_start ()); fail_unless (res, "flush-start even not handled"); - clear_last_event (GST_EVENT_FLUSH_START); res = gst_pad_push_event (mysrcpad, gst_event_new_flush_stop (TRUE)); fail_unless (res, "flush-stop event not handled"); - clear_last_event (GST_EVENT_FLUSH_STOP); +} + +static void +send_stream_start_event (GstElement * element) +{ + gboolean res; + + res = gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test")); + fail_unless (res, "STREAM_START event not handled"); +} + +static void +send_caps_event (GstElement * element) +{ + GstCaps *caps; + gboolean res; + + caps = gst_caps_from_string ("audio/x-raw, format = F32LE, " + "layout = interleaved, rate = 8000, channels = 1"); + res = gst_pad_push_event (mysrcpad, gst_event_new_caps (caps)); + fail_unless (res, "CAPS event not handled"); + gst_caps_unref (caps); } static void @@ -197,7 +178,6 @@ send_segment_event (GstElement * element) gst_segment_init (&segment, GST_FORMAT_TIME); res = gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)); fail_unless (res, "SEGMENT event not handled"); - clear_last_event (GST_EVENT_SEGMENT); } static void @@ -205,50 +185,49 @@ send_eos_event (GstElement * element) { GstEvent *event = gst_event_new_eos (); - GST_DEBUG ("events : %d", g_list_length (events)); - - fail_unless (g_list_length (events) == 0); fail_unless (gst_pad_push_event (mysrcpad, event), "Pushing EOS event failed"); - fail_unless (g_list_length (events) == 1); - fail_unless (events->data == event); - gst_mini_object_unref ((GstMiniObject *) events->data); - events = g_list_remove (events, event); } static GstEvent * send_tag_event (GstElement * element, GstEvent * event) { + GList *l; + GstTagList *tag_list; + gdouble dummy; + g_return_val_if_fail (event->type == GST_EVENT_TAG, NULL); - fail_unless (g_list_length (events) == 0); fail_unless (gst_pad_push_event (mysrcpad, event), "Pushing tag event failed"); - if (g_list_length (events) == 0) { - /* Event got filtered out. */ - event = NULL; - } else { - GstTagList *tag_list; - gdouble dummy; - - event = events->data; - events = g_list_remove (events, event); - - fail_unless (event->type == GST_EVENT_TAG); - gst_event_parse_tag (event, &tag_list); - - /* The element is supposed to filter out ReplayGain related tags. */ - fail_if (gst_tag_list_get_double (tag_list, GST_TAG_TRACK_GAIN, &dummy), - "tag event still contains track gain tag"); - fail_if (gst_tag_list_get_double (tag_list, GST_TAG_TRACK_PEAK, &dummy), - "tag event still contains track peak tag"); - fail_if (gst_tag_list_get_double (tag_list, GST_TAG_ALBUM_GAIN, &dummy), - "tag event still contains album gain tag"); - fail_if (gst_tag_list_get_double (tag_list, GST_TAG_ALBUM_PEAK, &dummy), - "tag event still contains album peak tag"); + event = NULL; + + for (l = g_list_last (events); l; l = l->prev) { + if (GST_EVENT_TYPE (l->data) == GST_EVENT_TAG) { + event = l->data; + events = g_list_delete_link (events, l); + break; + } } + /* Event got filtered out */ + if (event == NULL) + return NULL; + + fail_unless (event->type == GST_EVENT_TAG); + gst_event_parse_tag (event, &tag_list); + + /* The element is supposed to filter out ReplayGain related tags. */ + fail_if (gst_tag_list_get_double (tag_list, GST_TAG_TRACK_GAIN, &dummy), + "tag event still contains track gain tag"); + fail_if (gst_tag_list_get_double (tag_list, GST_TAG_TRACK_PEAK, &dummy), + "tag event still contains track peak tag"); + fail_if (gst_tag_list_get_double (tag_list, GST_TAG_ALBUM_GAIN, &dummy), + "tag event still contains album gain tag"); + fail_if (gst_tag_list_get_double (tag_list, GST_TAG_ALBUM_PEAK, &dummy), + "tag event still contains album peak tag"); + return event; } @@ -378,8 +357,11 @@ GST_START_TEST (test_events) gchar *artist; set_playing_state (element); + send_stream_start_event (element); + send_caps_event (element); + send_segment_event (element); - send_newsegment_and_empty_buffer (); + send_empty_buffer (); tag_list = gst_tag_list_new_empty (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, @@ -422,8 +404,11 @@ GST_START_TEST (test_simple) g_object_set (element, "album-mode", FALSE, "headroom", +0.00, "pre-amp", -6.00, "fallback-gain", +1.23, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (element); + send_segment_event (element); - send_newsegment_and_empty_buffer (); + send_empty_buffer (); tag_list = gst_tag_list_new_empty (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, @@ -467,8 +452,11 @@ GST_START_TEST (test_fallback_gain) g_object_set (element, "album-mode", FALSE, "headroom", 10.00, "pre-amp", -6.00, "fallback-gain", -3.00, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (element); + send_segment_event (element); - send_newsegment_and_empty_buffer (); + send_empty_buffer (); tag_list = gst_tag_list_new_empty (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, @@ -516,8 +504,11 @@ GST_START_TEST (test_fallback_track) g_object_set (element, "album-mode", TRUE, "headroom", +0.00, "pre-amp", -6.00, "fallback-gain", +1.23, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (element); + send_segment_event (element); - send_newsegment_and_empty_buffer (); + send_empty_buffer (); tag_list = gst_tag_list_new_empty (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, @@ -543,8 +534,11 @@ GST_START_TEST (test_fallback_album) g_object_set (element, "album-mode", FALSE, "headroom", +0.00, "pre-amp", -6.00, "fallback-gain", +1.23, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (element); + send_segment_event (element); - send_newsegment_and_empty_buffer (); + send_empty_buffer (); tag_list = gst_tag_list_new_empty (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, @@ -567,8 +561,11 @@ GST_START_TEST (test_headroom) g_object_set (element, "album-mode", FALSE, "headroom", +0.00, "pre-amp", +0.00, "fallback-gain", +1.23, NULL); set_playing_state (element); + send_stream_start_event (element); + send_caps_event (element); + send_segment_event (element); - send_newsegment_and_empty_buffer (); + send_empty_buffer (); tag_list = gst_tag_list_new_empty (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, @@ -618,7 +615,11 @@ GST_START_TEST (test_reference_level) "headroom", +0.00, "pre-amp", +0.00, "fallback-gain", +1.23, NULL); set_playing_state (element); - send_newsegment_and_empty_buffer (); + send_stream_start_event (element); + send_caps_event (element); + send_segment_event (element); + + send_empty_buffer (); tag_list = gst_tag_list_new_empty (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, diff --git a/tests/check/elements/rtp-payloading.c b/tests/check/elements/rtp-payloading.c index 99e8e5f200a48303dc4c52232fc576cf4c328616..e5c1c8d8fd4cf949db69fcb1b929e2dd40867036 100644 --- a/tests/check/elements/rtp-payloading.c +++ b/tests/check/elements/rtp-payloading.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> #include <stdlib.h> @@ -98,13 +98,14 @@ rtp_bus_callback (GstBus * bus, GstMessage * message, gpointer data) element_name = (message->src) ? gst_object_get_name (message->src) : NULL; gst_message_parse_error (message, &err, &debug); - /* FIXME: should we fail the test here? */ g_print ("\nError from element %s: %s\n%s\n\n", GST_STR_NULL (element_name), err->message, (debug) ? debug : ""); g_error_free (err); g_free (debug); g_free (element_name); + fail_if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ERROR); + g_main_loop_quit (mainloop); } break; @@ -783,6 +784,34 @@ GST_START_TEST (rtp_jpeg) } GST_END_TEST; + +GST_START_TEST (rtp_jpeg_width_greater_than_2040) +{ + rtp_pipeline_test (rtp_jpeg_frame_data, rtp_jpeg_frame_data_size, + rtp_jpeg_frame_count, "video/x-jpeg,height=2048,width=480", "rtpjpegpay", + "rtpjpegdepay", 0, 0, FALSE); +} + +GST_END_TEST; + +GST_START_TEST (rtp_jpeg_height_greater_than_2040) +{ + rtp_pipeline_test (rtp_jpeg_frame_data, rtp_jpeg_frame_data_size, + rtp_jpeg_frame_count, "video/x-jpeg,height=640,width=2048", "rtpjpegpay", + "rtpjpegdepay", 0, 0, FALSE); +} + +GST_END_TEST; + +GST_START_TEST (rtp_jpeg_width_and_height_greater_than_2040) +{ + rtp_pipeline_test (rtp_jpeg_frame_data, rtp_jpeg_frame_data_size, + rtp_jpeg_frame_count, "video/x-jpeg,height=2048,width=2048", "rtpjpegpay", + "rtpjpegdepay", 0, 0, FALSE); +} + +GST_END_TEST; + static const guint8 rtp_jpeg_list_frame_data[] = { /* SOF */ 0xFF, 0xC0, 0x00, 0x11, 0x08, 0x00, 0x08, 0x00, 0x08, 0x03, 0x00, 0x21, 0x08, 0x01, 0x11, 0x08, 0x02, 0x11, 0x08, @@ -812,6 +841,34 @@ GST_START_TEST (rtp_jpeg_list) } GST_END_TEST; + +GST_START_TEST (rtp_jpeg_list_width_greater_than_2040) +{ + rtp_pipeline_test (rtp_jpeg_list_frame_data, rtp_jpeg_list_frame_data_size, + rtp_jpeg_list_frame_count, "video/x-jpeg,height=2048,width=480", + "rtpjpegpay", "rtpjpegdepay", rtp_jpeg_list_bytes_sent, 0, TRUE); +} + +GST_END_TEST; + +GST_START_TEST (rtp_jpeg_list_height_greater_than_2040) +{ + rtp_pipeline_test (rtp_jpeg_list_frame_data, rtp_jpeg_list_frame_data_size, + rtp_jpeg_list_frame_count, "video/x-jpeg,height=640,width=2048", + "rtpjpegpay", "rtpjpegdepay", rtp_jpeg_list_bytes_sent, 0, TRUE); +} + +GST_END_TEST; + +GST_START_TEST (rtp_jpeg_list_width_and_height_greater_than_2040) +{ + rtp_pipeline_test (rtp_jpeg_list_frame_data, rtp_jpeg_list_frame_data_size, + rtp_jpeg_list_frame_count, "video/x-jpeg,height=2048,width=2048", + "rtpjpegpay", "rtpjpegdepay", rtp_jpeg_list_bytes_sent, 0, TRUE); +} + +GST_END_TEST; + static const guint8 rtp_g729_frame_data[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @@ -867,7 +924,13 @@ rtp_payloading_suite (void) tcase_add_test (tc_chain, rtp_theora); tcase_add_test (tc_chain, rtp_vorbis); tcase_add_test (tc_chain, rtp_jpeg); + tcase_add_test (tc_chain, rtp_jpeg_width_greater_than_2040); + tcase_add_test (tc_chain, rtp_jpeg_height_greater_than_2040); + tcase_add_test (tc_chain, rtp_jpeg_width_and_height_greater_than_2040); tcase_add_test (tc_chain, rtp_jpeg_list); + tcase_add_test (tc_chain, rtp_jpeg_list_width_greater_than_2040); + tcase_add_test (tc_chain, rtp_jpeg_list_height_greater_than_2040); + tcase_add_test (tc_chain, rtp_jpeg_list_width_and_height_greater_than_2040); tcase_add_test (tc_chain, rtp_g729); return s; } diff --git a/tests/check/elements/rtpbin.c b/tests/check/elements/rtpbin.c index 9626b9633aaace3f7dc5c55dc252b76abf54ad6c..389d3330b1b2b57e78877dc92156d352dd95f2ea 100644 --- a/tests/check/elements/rtpbin.c +++ b/tests/check/elements/rtpbin.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -143,6 +143,7 @@ chain_rtp_packet (GstPad * pad, CleanupData * data) { GstFlowReturn res; static GstCaps *caps = NULL; + GstSegment segment; GstBuffer *buffer; GstMapInfo map; @@ -153,7 +154,10 @@ chain_rtp_packet (GstPad * pad, CleanupData * data) data->seqnum = 0; } - gst_pad_set_caps (pad, caps); + gst_pad_send_event (pad, gst_event_new_stream_start (gst_pad_get_name (pad))); + gst_pad_send_event (pad, gst_event_new_caps (caps)); + gst_segment_init (&segment, GST_FORMAT_TIME); + gst_pad_send_event (pad, gst_event_new_segment (&segment)); buffer = gst_buffer_new_and_alloc (sizeof (rtp_packet)); gst_buffer_map (buffer, &map, GST_MAP_WRITE); diff --git a/tests/check/elements/rtpbin_buffer_list.c b/tests/check/elements/rtpbin_buffer_list.c index e11c227dbdde9489589a5b8c94e426b814602317..b6a7793b0e69019c288adb1bb9b0a6db70233251 100644 --- a/tests/check/elements/rtpbin_buffer_list.c +++ b/tests/check/elements/rtpbin_buffer_list.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/rtpjitterbuffer.c b/tests/check/elements/rtpjitterbuffer.c index f10e15cd690c8bf84a2cdf201ddf8864fa1ce83b..dfc9a2bdd4fabbe6eb0e1460df47a5a5a335125a 100644 --- a/tests/check/elements/rtpjitterbuffer.c +++ b/tests/check/elements/rtpjitterbuffer.c @@ -2,6 +2,9 @@ * * Copyright (C) 2009 Nokia Corporation and its subsidary(-ies) * contact: <stefan.kost@nokia.com> + * Copyright (C) 2012 Cisco Systems, Inc + * Authors: Kelley Rogers <kelro@cisco.com> + * Havard Graff <hgraff@cisco.com> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -15,11 +18,12 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> +#include <gst/check/gsttestclock.h> /* For ease of programming we use globals to keep refs for our floating * src and sink pads we create; otherwise we always have to do get_pad, @@ -98,7 +102,7 @@ setup_jitterbuffer (gint num_buffers) /* create n buffers */ caps = gst_caps_from_string (RTP_CAPS_STRING); - gst_pad_set_caps (mysrcpad, caps); + gst_check_setup_events (mysrcpad, jitterbuffer, caps, GST_FORMAT_TIME); gst_caps_unref (caps); for (i = 0; i < num_buffers; i++) { @@ -319,6 +323,511 @@ GST_START_TEST (test_basetime) GST_END_TEST; +#if 0 +static const guint payload_size = 160; +static const guint clock_rate = 8000; +static const guint pcmu_payload_type = 0; +static const guint test_ssrc = 0x01BADBAD; + +typedef struct +{ + GstElement *jitter_buffer; + GstPad *test_sink_pad, *test_src_pad; + GstClock *clock; + GAsyncQueue *buf_queue; + GAsyncQueue *event_queue; + gint lost_event_count; +} TestData; + +static GstCaps * +generate_caps (void) +{ + return gst_caps_new_simple ("application/x-rtp", + "media", G_TYPE_STRING, "audio", + "clock-rate", G_TYPE_INT, clock_rate, + "encoding-name", G_TYPE_STRING, "PCMU", + "payload", G_TYPE_INT, pcmu_payload_type, + "ssrc", G_TYPE_UINT, test_ssrc, NULL); +} + +static GstBuffer * +generate_test_buffer (GstClockTime gst_ts, + gboolean marker_bit, guint seq_num, guint32 rtp_ts) +{ + GstBuffer *buf; + guint8 *payload; + guint i; + + buf = gst_rtp_buffer_new_allocate (payload_size, 0, 0); + GST_BUFFER_TIMESTAMP (buf) = gst_ts; + GST_BUFFER_CAPS (buf) = generate_caps (); + gst_rtp_buffer_set_payload_type (buf, pcmu_payload_type); + gst_rtp_buffer_set_marker (buf, marker_bit); + gst_rtp_buffer_set_seq (buf, seq_num); + gst_rtp_buffer_set_timestamp (buf, rtp_ts); + gst_rtp_buffer_set_ssrc (buf, test_ssrc); + + payload = gst_rtp_buffer_get_payload (buf); + for (i = 0; i < payload_size; i++) + payload[i] = 0xff; + + return buf; +} + +static GstFlowReturn +test_sink_pad_chain_cb (GstPad * pad, GstBuffer * buffer) +{ + TestData *data = gst_pad_get_element_private (pad); + g_async_queue_push (data->buf_queue, buffer); + return GST_FLOW_OK; +} + +static gboolean +test_sink_pad_event_cb (GstPad * pad, GstEvent * event) +{ + TestData *data = gst_pad_get_element_private (pad); + const GstStructure *structure = gst_event_get_structure (event); + if (strcmp (gst_structure_get_name (structure), "GstRTPPacketLost") == 0) + data->lost_event_count++; + + g_async_queue_push (data->event_queue, event); + return TRUE; +} + +static void +setup_testharness (TestData * data) +{ + GstPad *jb_sink_pad, *jb_src_pad; + + // create the testclock + data->clock = gst_test_clock_new (); + g_assert (data->clock); + gst_test_clock_set_time (GST_TEST_CLOCK (data->clock), 0); + + // rig up the jitter buffer + data->jitter_buffer = gst_element_factory_make ("gstrtpjitterbuffer", NULL); + g_assert (data->jitter_buffer); + gst_element_set_clock (data->jitter_buffer, data->clock); + g_object_set (data->jitter_buffer, "do-lost", TRUE, NULL); + g_assert_cmpint (gst_element_set_state (data->jitter_buffer, + GST_STATE_PLAYING), !=, GST_STATE_CHANGE_FAILURE); + + // link in the test source-pad + data->test_src_pad = gst_pad_new ("src", GST_PAD_SRC); + gst_pad_set_caps (data->test_src_pad, generate_caps ()); + jb_sink_pad = gst_element_get_pad (data->jitter_buffer, "sink"); + g_assert_cmpint (gst_pad_link (data->test_src_pad, jb_sink_pad), ==, + GST_PAD_LINK_OK); + g_assert (gst_pad_set_active (data->test_src_pad, TRUE)); + gst_object_unref (jb_sink_pad); + + // link in the test sink-pad + data->test_sink_pad = gst_pad_new ("sink", GST_PAD_SINK); + gst_pad_set_caps (data->test_sink_pad, generate_caps ()); + gst_pad_set_chain_function (data->test_sink_pad, test_sink_pad_chain_cb); + gst_pad_set_event_function (data->test_sink_pad, test_sink_pad_event_cb); + jb_src_pad = gst_element_get_pad (data->jitter_buffer, "src"); + g_assert_cmpint (gst_pad_link (jb_src_pad, data->test_sink_pad), ==, + GST_PAD_LINK_OK); + g_assert (gst_pad_set_active (data->test_sink_pad, TRUE)); + gst_object_unref (jb_src_pad); + + // set up the buf and event queues + data->buf_queue = + g_async_queue_new_full ((GDestroyNotify) gst_mini_object_unref); + data->event_queue = + g_async_queue_new_full ((GDestroyNotify) gst_mini_object_unref); + + data->lost_event_count = 0; + gst_pad_set_element_private (data->test_sink_pad, data); +} + +static void +destroy_testharness (TestData * data) +{ + // clean up + g_assert_cmpint (gst_element_set_state (data->jitter_buffer, GST_STATE_NULL), + ==, GST_STATE_CHANGE_SUCCESS); + gst_object_unref (data->jitter_buffer); + data->jitter_buffer = NULL; + + gst_object_unref (data->test_src_pad); + data->test_src_pad = NULL; + + gst_object_unref (data->test_sink_pad); + data->test_sink_pad = NULL; + + gst_object_unref (data->clock); + data->clock = NULL; + + g_async_queue_unref (data->buf_queue); + data->buf_queue = NULL; + + g_async_queue_unref (data->event_queue); + data->event_queue = NULL; + + data->lost_event_count = 0; +} + +static void +verify_lost_event (GstEvent * event, guint32 expected_seqnum, + GstClockTime expected_timestamp, GstClockTime expected_duration, + gboolean expected_late) +{ + const GstStructure *s = gst_event_get_structure (event); + const GValue *value; + guint32 seqnum; + GstClockTime timestamp; + GstClockTime duration; + gboolean late; + g_assert (gst_structure_get_uint (s, "seqnum", &seqnum)); + + value = gst_structure_get_value (s, "timestamp"); + g_assert (value && G_VALUE_HOLDS_UINT64 (value)); + timestamp = g_value_get_uint64 (value); + + value = gst_structure_get_value (s, "duration"); + g_assert (value && G_VALUE_HOLDS_UINT64 (value)); + duration = g_value_get_uint64 (value); + + g_assert (gst_structure_get_boolean (s, "late", &late)); + + g_assert_cmpint (seqnum, ==, expected_seqnum); + g_assert_cmpint (timestamp, ==, expected_timestamp); + g_assert_cmpint (duration, ==, expected_duration); + g_assert (late == expected_late); +} + +GST_START_TEST (test_only_one_lost_event_on_large_gaps) +{ + TestData data; + GstTestClockPendingID id; + guint64 timeout; + GstBuffer *in_buf, *out_buf; + GstEvent *out_event; + gint jb_latency_ms = 200; + guint buffer_size_ms = (payload_size * 1000) / clock_rate; + + setup_testharness (&data); + timeout = 20 * G_USEC_PER_SEC; + + g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL); + + // push the first buffer in + in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0); + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + // wait for the first buffer to be synced to timestamp + latency + g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK + (data.clock), &id)); + + // increase the time to timestamp + latency and release the wait + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), + jb_latency_ms * GST_MSECOND); + g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) + == id.clock_id); + + // check for the buffer coming out that was pushed in + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, 0); + + // move time ahead 10 seconds + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND); + + // wait a bit + g_usleep (G_USEC_PER_SEC / 10); + + // check that no buffers have been pushed out and no pending waits + g_assert_cmpint (g_async_queue_length (data.buf_queue), ==, 0); + g_assert (gst_test_clock_peek_next_pending_id (GST_TEST_CLOCK (data.clock), + &id) == FALSE); + + // a buffer now arrives perfectly on time + in_buf = generate_test_buffer (10 * GST_SECOND, FALSE, 500, 500 * 160); + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + // release the wait + g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK + (data.clock), &id)); + g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) + == id.clock_id); + + // we should now receive a packet-lost-event for buffers 1 through 489 + out_event = g_async_queue_timeout_pop (data.event_queue, timeout); + g_assert (out_event != NULL); + g_assert_cmpint (data.lost_event_count, ==, 1); + verify_lost_event (out_event, 1, 1 * GST_MSECOND * 20, GST_MSECOND * 20 * 489, + TRUE); + + // churn through sync_times until the new buffer gets pushed out + while (g_async_queue_length (data.buf_queue) < 1) { + if (gst_test_clock_peek_next_pending_id (GST_TEST_CLOCK (data.clock), &id)) { + if (id.time > gst_clock_get_time (data.clock)) { + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), id.time); + g_print ("setting time to %" GST_TIME_FORMAT "\n", + GST_TIME_ARGS (id.time)); + } + gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + } + } + + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT)); + g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 500); + g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, (10 * GST_SECOND)); + + // we get as many lost events as the the number of buffers the jitterbuffer + // is able to wait for (+ the one we already got) + g_assert_cmpint (data.lost_event_count, ==, + jb_latency_ms / buffer_size_ms + 1); + + destroy_testharness (&data); +} + +GST_END_TEST; + +GST_START_TEST (test_two_lost_one_arrives_in_time) +{ + TestData data; + GstTestClockPendingID id; + guint64 timeout; + GstBuffer *in_buf, *out_buf; + GstEvent *out_event; + gint jb_latency_ms = 10; + GstClockTime buffer_time; + gint b; + + setup_testharness (&data); + timeout = 20 * G_USEC_PER_SEC; + + g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL); + + // push the first buffer in + in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0); + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK + (data.clock), &id)); + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), + jb_latency_ms * GST_MSECOND); + g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) + == id.clock_id); + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + + // push some buffers arriving in perfect time! + for (b = 1; b < 3; b++) { + buffer_time = b * GST_MSECOND * 20; + in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160); + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), buffer_time); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + // check for the buffer coming out that was pushed in + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, buffer_time); + } + + // hop over 2 packets and make another one (gap of 2) + b = 5; + buffer_time = b * GST_MSECOND * 20; + in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + // verify that the jitterbuffer now wait for the latest moment it can push + // the first lost buffer (buffer 3) out on (buffer-timestamp (60) + latency (10) = 70) + g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK + (data.clock), &id)); + g_assert_cmpint (id.time, ==, + (3 * GST_MSECOND * 20) + (jb_latency_ms * GST_MSECOND)); + + // let the time expire... + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), id.time); + g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) + == id.clock_id); + + // we should now receive a packet-lost-event for buffer 3 + out_event = g_async_queue_timeout_pop (data.event_queue, timeout); + g_assert (out_event != NULL); + g_assert_cmpint (data.lost_event_count, ==, 1); + verify_lost_event (out_event, 3, 3 * GST_MSECOND * 20, GST_MSECOND * 20, + FALSE); + + // buffer 4 now arrives just in time (time is 70, buffer 4 expires at 90) + b = 4; + buffer_time = b * GST_MSECOND * 20; + in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + // verify that buffer 4 made it through! + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT)); + g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 4); + + // and see that buffer 5 now arrives in a normal fashion + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + g_assert (!GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT)); + g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 5); + + // should still have only seen 1 packet lost event + g_assert_cmpint (data.lost_event_count, ==, 1); + + destroy_testharness (&data); +} + +GST_END_TEST; + +GST_START_TEST (test_late_packets_still_makes_lost_events) +{ + TestData data; + GstTestClockPendingID id; + guint64 timeout; + GstBuffer *in_buf, *out_buf; + GstEvent *out_event; + gint jb_latency_ms = 10; + GstClockTime buffer_time; + gint b; + + setup_testharness (&data); + timeout = 20 * G_USEC_PER_SEC; + + g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL); + + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND); + + // push the first buffer in + in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK + (data.clock), &id)); + g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) + == id.clock_id); + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + + // push some buffers in! + for (b = 1; b < 3; b++) { + buffer_time = b * GST_MSECOND * 20; + in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + // check for the buffer coming out that was pushed in + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, buffer_time); + } + + // hop over 2 packets and make another one (gap of 2) + b = 5; + buffer_time = b * GST_MSECOND * 20; + in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + // release the wait + g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK + (data.clock), &id)); + g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) + == id.clock_id); + + // we should now receive a packet-lost-event for buffer 3 and 4 + out_event = g_async_queue_timeout_pop (data.event_queue, timeout); + g_assert (out_event != NULL); + g_assert_cmpint (data.lost_event_count, ==, 1); + verify_lost_event (out_event, 3, 3 * GST_MSECOND * 20, GST_MSECOND * 20 * 2, + TRUE); + + // verify that buffer 5 made it through! + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT)); + g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 5); + + // should still have only seen 1 packet lost event + g_assert_cmpint (data.lost_event_count, ==, 1); + + destroy_testharness (&data); +} + +GST_END_TEST; + +GST_START_TEST (test_all_packets_are_timestamped_zero) +{ + TestData data; + GstTestClockPendingID id; + guint64 timeout; + GstBuffer *in_buf, *out_buf; + GstEvent *out_event; + gint jb_latency_ms = 10; + GstClockTime buffer_time; + gint b; + + setup_testharness (&data); + timeout = 20 * G_USEC_PER_SEC; + + g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL); + + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND); + + // push the first buffer in + in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK + (data.clock), &id)); + g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) + == id.clock_id); + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + + // push some buffers in! + for (b = 1; b < 3; b++) { + in_buf = generate_test_buffer (0, TRUE, b, 0); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + // check for the buffer coming out that was pushed in + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, 0); + } + + // hop over 2 packets and make another one (gap of 2) + b = 5; + in_buf = generate_test_buffer (0, TRUE, b, 0); + g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); + + // release the wait + g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK + (data.clock), &id)); + g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) + == id.clock_id); + + // we should now receive a packet-lost-event for buffer 3 and 4 + out_event = g_async_queue_timeout_pop (data.event_queue, timeout); + g_assert (out_event != NULL); + g_assert_cmpint (data.lost_event_count, ==, 1); + verify_lost_event (out_event, 3, 0, 0, TRUE); + + // verify that buffer 5 made it through! + out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout); + g_assert (out_buf != NULL); + g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT)); + g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 5); + + // should still have only seen 1 packet lost event + g_assert_cmpint (data.lost_event_count, ==, 1); + + destroy_testharness (&data); +} + +GST_END_TEST; +#endif static Suite * rtpjitterbuffer_suite (void) @@ -331,6 +840,12 @@ rtpjitterbuffer_suite (void) tcase_add_test (tc_chain, test_push_backward_seq); tcase_add_test (tc_chain, test_push_unordered); tcase_add_test (tc_chain, test_basetime); +#if 0 + tcase_add_test (tc_chain, test_only_one_lost_event_on_large_gaps); + tcase_add_test (tc_chain, test_two_lost_one_arrives_in_time); + tcase_add_test (tc_chain, test_late_packets_still_makes_lost_events); + tcase_add_test (tc_chain, test_all_packets_are_timestamped_zero); +#endif /* FIXME: test buffer lists */ diff --git a/tests/check/elements/rtpmux.c b/tests/check/elements/rtpmux.c new file mode 100644 index 0000000000000000000000000000000000000000..2a81294d6e503a67cbfd24533d9ba03902d1121d --- /dev/null +++ b/tests/check/elements/rtpmux.c @@ -0,0 +1,316 @@ +/* GStreamer + * + * unit test for rtpmux elements + * + * Copyright 2009 Collabora Ltd. + * @author: Olivier Crete <olivier.crete@collabora.co.uk> + * Copyright 2009 Nokia Corp. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <gst/check/gstcheck.h> +#include <gst/rtp/gstrtpbuffer.h> +#include <gst/gst.h> + +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp")); + +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp")); + +typedef void (*check_cb) (GstPad * pad, int i); + +static gboolean +query_func (GstPad * pad, GstObject * noparent, GstQuery * query) +{ + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CAPS: + { + GstCaps **caps = g_object_get_data (G_OBJECT (pad), "caps"); + + fail_unless (caps != NULL && *caps != NULL); + gst_query_set_caps_result (query, *caps); + break; + } + case GST_QUERY_ACCEPT_CAPS: + gst_query_set_accept_caps_result (query, TRUE); + break; + default: + break; + } + + return TRUE; +} + +static gboolean +event_func (GstPad * pad, GstObject * noparent, GstEvent * event) +{ + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CAPS: + { + GstCaps *caps; + GstCaps **caps2 = g_object_get_data (G_OBJECT (pad), "caps"); + + gst_event_parse_caps (event, &caps); + fail_unless (caps2 != NULL && *caps2 != NULL); + fail_unless (gst_caps_is_fixed (caps)); + fail_unless (gst_caps_is_fixed (*caps2)); + fail_unless (gst_caps_is_equal_fixed (caps, *caps2)); + break; + } + default: + break; + } + + gst_event_unref (event); + + return TRUE; +} + +static void +test_basic (const gchar * elem_name, const gchar * sink2, int count, + check_cb cb) +{ + GstElement *rtpmux = NULL; + GstPad *reqpad1 = NULL; + GstPad *reqpad2 = NULL; + GstPad *src1 = NULL; + GstPad *src2 = NULL; + GstPad *sink = NULL; + GstBuffer *inbuf = NULL; + GstCaps *src1caps = NULL; + GstCaps *src2caps = NULL; + GstCaps *sinkcaps = NULL; + GstCaps *caps; + GstSegment segment; + int i; + + rtpmux = gst_check_setup_element (elem_name); + + reqpad1 = gst_element_get_request_pad (rtpmux, "sink_1"); + fail_unless (reqpad1 != NULL); + reqpad2 = gst_element_get_request_pad (rtpmux, sink2); + fail_unless (reqpad2 != NULL); + sink = gst_check_setup_sink_pad_by_name (rtpmux, &sinktemplate, "src"); + + src1 = gst_pad_new_from_static_template (&srctemplate, "src"); + src2 = gst_pad_new_from_static_template (&srctemplate, "src"); + fail_unless (gst_pad_link (src1, reqpad1) == GST_PAD_LINK_OK); + fail_unless (gst_pad_link (src2, reqpad2) == GST_PAD_LINK_OK); + gst_pad_set_query_function (src1, query_func); + gst_pad_set_query_function (src2, query_func); + gst_pad_set_query_function (sink, query_func); + gst_pad_set_event_function (sink, event_func); + g_object_set_data (G_OBJECT (src1), "caps", &src1caps); + g_object_set_data (G_OBJECT (src2), "caps", &src2caps); + g_object_set_data (G_OBJECT (sink), "caps", &sinkcaps); + + src1caps = gst_caps_new_simple ("application/x-rtp", + "clock-rate", G_TYPE_INT, 1, "ssrc", G_TYPE_UINT, 11, NULL); + src2caps = gst_caps_new_simple ("application/x-rtp", + "clock-rate", G_TYPE_INT, 2, "ssrc", G_TYPE_UINT, 12, NULL); + sinkcaps = gst_caps_new_simple ("application/x-rtp", + "clock-rate", G_TYPE_INT, 3, "ssrc", G_TYPE_UINT, 13, NULL); + + caps = gst_pad_peer_query_caps (src1, NULL); + fail_unless (gst_caps_is_empty (caps)); + gst_caps_unref (caps); + + gst_caps_set_simple (src2caps, "clock-rate", G_TYPE_INT, 3, NULL); + caps = gst_pad_peer_query_caps (src1, NULL); + fail_unless (gst_caps_is_equal (caps, sinkcaps)); + gst_caps_unref (caps); + + g_object_set (rtpmux, "seqnum-offset", 100, "timestamp-offset", 1000, + "ssrc", 55, NULL); + + fail_unless (gst_element_set_state (rtpmux, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS); + gst_pad_set_active (sink, TRUE); + gst_pad_set_active (src1, TRUE); + gst_pad_set_active (src2, TRUE); + + fail_unless (gst_pad_push_event (src1, + gst_event_new_stream_start ("stream1"))); + fail_unless (gst_pad_push_event (src2, + gst_event_new_stream_start ("stream2"))); + + gst_caps_set_simple (sinkcaps, + "payload", G_TYPE_INT, 98, "seqnum-base", G_TYPE_UINT, 100, + "clock-base", G_TYPE_UINT, 1000, "ssrc", G_TYPE_UINT, 66, NULL); + caps = gst_caps_new_simple ("application/x-rtp", + "payload", G_TYPE_INT, 98, "clock-rate", G_TYPE_INT, 3, + "seqnum-base", G_TYPE_UINT, 56, "clock-base", G_TYPE_UINT, 57, + "ssrc", G_TYPE_UINT, 66, NULL); + fail_unless (gst_pad_set_caps (src1, caps)); + + gst_segment_init (&segment, GST_FORMAT_TIME); + segment.start = 100000; + fail_unless (gst_pad_push_event (src1, gst_event_new_segment (&segment))); + segment.start = 0; + fail_unless (gst_pad_push_event (src2, gst_event_new_segment (&segment))); + + + for (i = 0; i < count; i++) { + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + + inbuf = gst_rtp_buffer_new_allocate (10, 0, 0); + GST_BUFFER_PTS (inbuf) = i * 1000 + 100000; + GST_BUFFER_DURATION (inbuf) = 1000; + + gst_rtp_buffer_map (inbuf, GST_MAP_WRITE, &rtpbuffer); + + gst_rtp_buffer_set_version (&rtpbuffer, 2); + gst_rtp_buffer_set_payload_type (&rtpbuffer, 98); + gst_rtp_buffer_set_ssrc (&rtpbuffer, 44); + gst_rtp_buffer_set_timestamp (&rtpbuffer, 200 + i); + gst_rtp_buffer_set_seq (&rtpbuffer, 2000 + i); + gst_rtp_buffer_unmap (&rtpbuffer); + fail_unless (gst_pad_push (src1, inbuf) == GST_FLOW_OK); + + if (buffers) + fail_unless (GST_BUFFER_PTS (buffers->data) == i * 1000, "%lld", + GST_BUFFER_PTS (buffers->data)); + + cb (src2, i); + + g_list_foreach (buffers, (GFunc) gst_buffer_unref, NULL); + g_list_free (buffers); + buffers = NULL; + } + + + gst_pad_set_active (sink, FALSE); + gst_pad_set_active (src1, FALSE); + gst_pad_set_active (src2, FALSE); + fail_unless (gst_element_set_state (rtpmux, + GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS); + gst_check_teardown_pad_by_name (rtpmux, "src"); + gst_object_unref (reqpad1); + gst_object_unref (reqpad2); + gst_check_teardown_pad_by_name (rtpmux, "sink_1"); + gst_check_teardown_pad_by_name (rtpmux, sink2); + gst_element_release_request_pad (rtpmux, reqpad1); + gst_element_release_request_pad (rtpmux, reqpad2); + + gst_caps_unref (caps); + gst_caps_replace (&src1caps, NULL); + gst_caps_replace (&src2caps, NULL); + gst_caps_replace (&sinkcaps, NULL); + + gst_check_teardown_element (rtpmux); +} + +static void +basic_check_cb (GstPad * pad, int i) +{ + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + fail_unless (buffers && g_list_length (buffers) == 1); + + gst_rtp_buffer_map (buffers->data, GST_MAP_READ, &rtpbuffer); + fail_unless (gst_rtp_buffer_get_ssrc (&rtpbuffer) == 55); + fail_unless (gst_rtp_buffer_get_timestamp (&rtpbuffer) == + 200 - 57 + 1000 + i); + fail_unless (gst_rtp_buffer_get_seq (&rtpbuffer) == 100 + 1 + i); + gst_rtp_buffer_unmap (&rtpbuffer); +} + + +GST_START_TEST (test_rtpmux_basic) +{ + test_basic ("rtpmux", "sink_2", 10, basic_check_cb); +} + +GST_END_TEST; + +GST_START_TEST (test_rtpdtmfmux_basic) +{ + test_basic ("rtpdtmfmux", "sink_2", 10, basic_check_cb); +} + +GST_END_TEST; + +static void +lock_check_cb (GstPad * pad, int i) +{ + GstBuffer *inbuf; + + if (i % 2) { + fail_unless (buffers == NULL); + } else { + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + + fail_unless (buffers && g_list_length (buffers) == 1); + gst_rtp_buffer_map (buffers->data, GST_MAP_READ, &rtpbuffer); + fail_unless (gst_rtp_buffer_get_ssrc (&rtpbuffer) == 55); + fail_unless (gst_rtp_buffer_get_timestamp (&rtpbuffer) == + 200 - 57 + 1000 + i); + fail_unless (gst_rtp_buffer_get_seq (&rtpbuffer) == 100 + 1 + i); + gst_rtp_buffer_unmap (&rtpbuffer); + + inbuf = gst_rtp_buffer_new_allocate (10, 0, 0); + GST_BUFFER_PTS (inbuf) = i * 1000 + 500; + GST_BUFFER_DURATION (inbuf) = 1000; + gst_rtp_buffer_map (inbuf, GST_MAP_WRITE, &rtpbuffer); + gst_rtp_buffer_set_version (&rtpbuffer, 2); + gst_rtp_buffer_set_payload_type (&rtpbuffer, 98); + gst_rtp_buffer_set_ssrc (&rtpbuffer, 44); + gst_rtp_buffer_set_timestamp (&rtpbuffer, 200 + i); + gst_rtp_buffer_set_seq (&rtpbuffer, 2000 + i); + gst_rtp_buffer_unmap (&rtpbuffer); + fail_unless (gst_pad_push (pad, inbuf) == GST_FLOW_OK); + + + g_list_foreach (buffers, (GFunc) gst_buffer_unref, NULL); + g_list_free (buffers); + buffers = NULL; + } +} + +GST_START_TEST (test_rtpdtmfmux_lock) +{ + test_basic ("rtpdtmfmux", "priority_sink_2", 10, lock_check_cb); +} + +GST_END_TEST; + +static Suite * +rtpmux_suite (void) +{ + Suite *s = suite_create ("rtpmux"); + TCase *tc_chain; + + tc_chain = tcase_create ("rtpmux_basic"); + tcase_add_test (tc_chain, test_rtpmux_basic); + suite_add_tcase (s, tc_chain); + + tc_chain = tcase_create ("rtpdtmfmux_basic"); + tcase_add_test (tc_chain, test_rtpdtmfmux_basic); + suite_add_tcase (s, tc_chain); + + tc_chain = tcase_create ("rtpdtmfmux_lock"); + tcase_add_test (tc_chain, test_rtpdtmfmux_lock); + suite_add_tcase (s, tc_chain); + + return s; +} + +GST_CHECK_MAIN (rtpmux) diff --git a/tests/check/elements/shapewipe.c b/tests/check/elements/shapewipe.c index 4f7cb09ea78e382f4f1401cdec5fbcc76663f8d5..40496009fb8c4f2f7b596406588ae57828996cfe 100644 --- a/tests/check/elements/shapewipe.c +++ b/tests/check/elements/shapewipe.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -76,7 +76,7 @@ on_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) GST_START_TEST (test_general) { - GstElement *shapewipe; + GstElement *shapewipe, *videosrc, *masksrc, *sink, *bin; GstPad *p; GstCaps *caps; GstBuffer *mask, *input; @@ -84,28 +84,33 @@ GST_START_TEST (test_general) guint8 *data; GstMapInfo map; + bin = gst_bin_new ("myshapewipe"); + videosrc = gst_bin_new ("myvideosrc"); + masksrc = gst_bin_new ("mymasksrc"); + sink = gst_bin_new ("mysink"); + shapewipe = gst_element_factory_make ("shapewipe", NULL); + fail_unless (shapewipe != NULL); + gst_bin_add_many (GST_BIN (bin), videosrc, masksrc, shapewipe, sink, NULL); + myvideosrcpad = gst_pad_new_from_static_template (&videosrctemplate, "videosrc"); + gst_element_add_pad (videosrc, myvideosrcpad); gst_pad_set_active (myvideosrcpad, TRUE); caps = gst_caps_from_string (SHAPEWIPE_VIDEO_CAPS_STRING); - gst_pad_set_caps (myvideosrcpad, caps); + gst_check_setup_events (myvideosrcpad, videosrc, caps, GST_FORMAT_TIME); gst_caps_unref (caps); mymasksrcpad = gst_pad_new_from_static_template (&masksrctemplate, "masksrc"); + gst_element_add_pad (masksrc, mymasksrcpad); gst_pad_set_active (mymasksrcpad, TRUE); caps = gst_caps_from_string (SHAPEWIPE_MASK_CAPS_STRING); - gst_pad_set_caps (mymasksrcpad, caps); + gst_check_setup_events (mymasksrcpad, masksrc, caps, GST_FORMAT_TIME); gst_caps_unref (caps); mysinkpad = gst_pad_new_from_static_template (&sinktemplate, "sink"); + gst_element_add_pad (sink, mysinkpad); gst_pad_set_chain_function (mysinkpad, on_chain); gst_pad_set_active (mysinkpad, TRUE); - caps = gst_caps_from_string (SHAPEWIPE_VIDEO_CAPS_STRING); - gst_pad_set_caps (mysinkpad, caps); - gst_caps_unref (caps); - - shapewipe = gst_element_factory_make ("shapewipe", NULL); - fail_unless (shapewipe != NULL); p = gst_element_get_static_pad (shapewipe, "video_sink"); fail_unless (gst_pad_link (myvideosrcpad, p) == GST_PAD_LINK_OK); @@ -117,13 +122,10 @@ GST_START_TEST (test_general) fail_unless (gst_pad_link (p, mysinkpad) == GST_PAD_LINK_OK); gst_object_unref (p); - fail_unless (gst_element_set_state (shapewipe, + fail_unless (gst_element_set_state (bin, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS); mask = gst_buffer_new_and_alloc (400 * 400); - caps = gst_caps_from_string (SHAPEWIPE_MASK_CAPS_STRING); - gst_pad_set_caps (mymasksrcpad, caps); - gst_caps_unref (caps); gst_buffer_map (mask, &map, GST_MAP_WRITE); data = map.data; for (i = 0; i < 400; i++) { @@ -144,9 +146,6 @@ GST_START_TEST (test_general) fail_unless (gst_pad_push (mymasksrcpad, mask) == GST_FLOW_OK); input = gst_buffer_new_and_alloc (400 * 400 * 4); - caps = gst_caps_from_string (SHAPEWIPE_VIDEO_CAPS_STRING); - gst_pad_set_caps (myvideosrcpad, caps); - gst_caps_unref (caps); gst_buffer_map (input, &map, GST_MAP_WRITE); data = map.data; for (i = 0; i < 400; i++) { @@ -284,7 +283,7 @@ GST_START_TEST (test_general) gst_buffer_unref (input); - fail_unless (gst_element_set_state (shapewipe, + fail_unless (gst_element_set_state (bin, GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS); p = gst_element_get_static_pad (shapewipe, "video_sink"); @@ -297,10 +296,7 @@ GST_START_TEST (test_general) fail_unless (gst_pad_unlink (p, mysinkpad)); gst_object_unref (p); - gst_object_unref (myvideosrcpad); - gst_object_unref (mymasksrcpad); - gst_object_unref (mysinkpad); - gst_object_unref (shapewipe); + gst_object_unref (bin); } GST_END_TEST; diff --git a/tests/check/elements/souphttpsrc.c b/tests/check/elements/souphttpsrc.c index 0b3cd07ff4a2e8e4a9796e24215041ed047ac3b9..95053d4671e31ee52813d33fcdc5b45e0a1b9899 100644 --- a/tests/check/elements/souphttpsrc.c +++ b/tests/check/elements/souphttpsrc.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -53,7 +53,7 @@ static const char *realm = "SOUPHTTPSRC_REALM"; static const char *basic_auth_path = "/basic_auth"; static const char *digest_auth_path = "/digest_auth"; -static int run_server (guint * http_port, guint * https_port); +static gboolean run_server (guint * http_port, guint * https_port); static void stop_server (void); static void @@ -161,6 +161,11 @@ run_test (const char *format, ...) else if (g_str_has_suffix (err->message, "Found")) rc = 302; GST_INFO ("debug: %s", debug); + /* should not've gotten any output in case of a 40x error. Wait a bit + * to give streaming thread a chance to push out a buffer and triggering + * our callback before shutting down the pipeline */ + g_usleep (G_USEC_PER_SEC / 2); + fail_unless (buf == NULL); g_error_free (err); g_free (debug); gst_message_unref (msg); @@ -204,6 +209,8 @@ GST_END_TEST; GST_START_TEST (test_not_found) { fail_unless (run_test ("http://127.0.0.1:%u/404", http_port) == 404); + fail_unless (run_test ("http://127.0.0.1:%u/404-with-data", + http_port) == 404); } GST_END_TEST; @@ -438,34 +445,46 @@ done: GST_END_TEST; +static SoupServer *server; /* NULL */ +static SoupServer *ssl_server; /* NULL */ + static Suite * souphttpsrc_suite (void) { + TCase *tc_chain, *tc_internet; Suite *s; - TCase *tc_chain, *tc_internet; + /* we don't support exceptions from the proxy, so just unset the environment + * variable - in case it's set in the test environment it would otherwise + * prevent us from connecting to localhost (like jenkins.qa.ubuntu.com) */ + g_unsetenv ("http_proxy"); s = suite_create ("souphttpsrc"); tc_chain = tcase_create ("general"); tc_internet = tcase_create ("internet"); suite_add_tcase (s, tc_chain); - run_server (&http_port, &https_port); - atexit (stop_server); - tcase_add_test (tc_chain, test_first_buffer_has_offset); - tcase_add_test (tc_chain, test_redirect_yes); - tcase_add_test (tc_chain, test_redirect_no); - tcase_add_test (tc_chain, test_not_found); - tcase_add_test (tc_chain, test_forbidden); - tcase_add_test (tc_chain, test_cookies); - tcase_add_test (tc_chain, test_good_user_basic_auth); - tcase_add_test (tc_chain, test_bad_user_basic_auth); - tcase_add_test (tc_chain, test_bad_password_basic_auth); - tcase_add_test (tc_chain, test_good_user_digest_auth); - tcase_add_test (tc_chain, test_bad_user_digest_auth); - tcase_add_test (tc_chain, test_bad_password_digest_auth); - if (soup_ssl_supported) - tcase_add_test (tc_chain, test_https); + if (run_server (&http_port, &https_port)) { + atexit (stop_server); + tcase_add_test (tc_chain, test_first_buffer_has_offset); + tcase_add_test (tc_chain, test_redirect_yes); + tcase_add_test (tc_chain, test_redirect_no); + tcase_add_test (tc_chain, test_not_found); + tcase_add_test (tc_chain, test_forbidden); + tcase_add_test (tc_chain, test_cookies); + tcase_add_test (tc_chain, test_good_user_basic_auth); + tcase_add_test (tc_chain, test_bad_user_basic_auth); + tcase_add_test (tc_chain, test_bad_password_basic_auth); + tcase_add_test (tc_chain, test_good_user_digest_auth); + tcase_add_test (tc_chain, test_bad_user_digest_auth); + tcase_add_test (tc_chain, test_bad_password_digest_auth); + + if (ssl_server != NULL) + tcase_add_test (tc_chain, test_https); + } else { + g_print ("Skipping 12 souphttpsrc tests, couldn't start or connect to " + "local http server\n"); + } suite_add_tcase (s, tc_internet); tcase_set_timeout (tc_internet, 250); @@ -479,6 +498,7 @@ GST_CHECK_MAIN (souphttpsrc); static void do_get (SoupMessage * msg, const char *path) { + gboolean send_error_doc = FALSE; char *uri; int buflen = 4096; @@ -498,6 +518,10 @@ do_get (SoupMessage * msg, const char *path) status = SOUP_STATUS_FORBIDDEN; else if (!strcmp (path, "/404")) status = SOUP_STATUS_NOT_FOUND; + else if (!strcmp (path, "/404-with-data")) { + status = SOUP_STATUS_NOT_FOUND; + send_error_doc = TRUE; + } if (SOUP_STATUS_IS_REDIRECTION (status)) { char *redir_uri; @@ -506,7 +530,7 @@ do_get (SoupMessage * msg, const char *path) soup_message_headers_append (msg->response_headers, "Location", redir_uri); g_free (redir_uri); } - if (status != SOUP_STATUS_OK) + if (status != SOUP_STATUS_OK && !send_error_doc) goto leave; if (msg->method == SOUP_METHOD_GET) { @@ -560,10 +584,7 @@ server_callback (SoupServer * server, SoupMessage * msg, GST_DEBUG (" -> %d %s", msg->status_code, msg->reason_phrase); } -static SoupServer *server; /* NULL */ -static SoupServer *ssl_server; /* NULL */ - -int +static gboolean run_server (guint * http_port, guint * https_port) { guint port = SOUP_ADDRESS_ANY_PORT; @@ -575,7 +596,8 @@ run_server (guint * http_port, guint * https_port) SoupAuthDomain *domain = NULL; if (server_running) - return 0; + return TRUE; + server_running = 1; *http_port = *https_port = 0; @@ -583,7 +605,7 @@ run_server (guint * http_port, guint * https_port) server = soup_server_new (SOUP_SERVER_PORT, port, NULL); if (!server) { GST_DEBUG ("Unable to bind to server port %u", port); - return 1; + return FALSE; } *http_port = soup_server_get_port (server); GST_INFO ("HTTP server listening on port %u", *http_port); @@ -605,17 +627,50 @@ run_server (guint * http_port, guint * https_port) SOUP_SERVER_SSL_CERT_FILE, ssl_cert_file, SOUP_SERVER_SSL_KEY_FILE, ssl_key_file, NULL); - if (!ssl_server) { - GST_DEBUG ("Unable to bind to SSL server port %u", ssl_port); - return 1; + if (ssl_server) { + *https_port = soup_server_get_port (ssl_server); + GST_INFO ("HTTPS server listening on port %u", *https_port); + soup_server_add_handler (ssl_server, NULL, server_callback, NULL, NULL); + soup_server_run_async (ssl_server); + } + } + + /* check if we can connect to our local http server */ + { + GSocketConnection *conn; + GSocketClient *client; + + client = g_socket_client_new (); + g_socket_client_set_timeout (client, 2); + conn = g_socket_client_connect_to_host (client, "127.0.0.1", *http_port, + NULL, NULL); + if (conn == NULL) { + GST_INFO ("Couldn't connect to http server 127.0.0.1:%u", *http_port); + g_object_unref (client); + stop_server (); + return FALSE; + } + g_object_unref (conn); + + if (ssl_server == NULL) + goto skip_https_check; + + conn = g_socket_client_connect_to_host (client, "127.0.0.1", *https_port, + NULL, NULL); + if (conn == NULL) { + GST_INFO ("Couldn't connect to https server 127.0.0.1:%u", *https_port); + g_object_unref (client); + stop_server (); + return FALSE; } - *https_port = soup_server_get_port (ssl_server); - GST_INFO ("HTTPS server listening on port %u", *https_port); - soup_server_add_handler (ssl_server, NULL, server_callback, NULL, NULL); - soup_server_run_async (ssl_server); + g_object_unref (conn); + + skip_https_check: + + g_object_unref (client); } - return 0; + return TRUE; } static void diff --git a/tests/check/elements/spectrum.c b/tests/check/elements/spectrum.c index ff3d030053a28595ed4e931633580e550d2cb9ef..e562e72d84e4e4449fa85b93a9254f87887af722 100644 --- a/tests/check/elements/spectrum.c +++ b/tests/check/elements/spectrum.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -86,9 +86,10 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", /* takes over reference for outcaps */ static GstElement * -setup_spectrum (void) +setup_spectrum (const gchar * caps_str) { GstElement *spectrum; + GstCaps *caps; GST_DEBUG ("setup_spectrum"); spectrum = gst_check_setup_element ("spectrum"); @@ -97,6 +98,10 @@ setup_spectrum (void) gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); + caps = gst_caps_from_string (caps_str); + gst_check_setup_events (mysrcpad, spectrum, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + return spectrum; } @@ -122,7 +127,6 @@ GST_START_TEST (test_int16) GstElement *spectrum; GstBuffer *inbuffer, *outbuffer; GstBus *bus; - GstCaps *caps; GstMessage *message; const GstStructure *structure; int i, j; @@ -132,7 +136,7 @@ GST_START_TEST (test_int16) GstClockTime endtime; gfloat level; - spectrum = setup_spectrum (); + spectrum = setup_spectrum (SPECT_CAPS_STRING_S16); g_object_set (spectrum, "post-messages", TRUE, "interval", GST_SECOND / 100, "bands", SPECT_BANDS, "threshold", -80, NULL); @@ -155,10 +159,6 @@ GST_START_TEST (test_int16) ++data; } gst_buffer_unmap (inbuffer, &map); - - caps = gst_caps_from_string (SPECT_CAPS_STRING_S16); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); /* create a bus to get the spectrum message on */ @@ -227,7 +227,6 @@ GST_START_TEST (test_int32) GstElement *spectrum; GstBuffer *inbuffer, *outbuffer; GstBus *bus; - GstCaps *caps; GstMessage *message; const GstStructure *structure; int i, j; @@ -237,7 +236,7 @@ GST_START_TEST (test_int32) GstClockTime endtime; gfloat level; - spectrum = setup_spectrum (); + spectrum = setup_spectrum (SPECT_CAPS_STRING_S32); g_object_set (spectrum, "post-messages", TRUE, "interval", GST_SECOND / 100, "bands", SPECT_BANDS, "threshold", -80, NULL); @@ -260,10 +259,6 @@ GST_START_TEST (test_int32) ++data; } gst_buffer_unmap (inbuffer, &map); - - caps = gst_caps_from_string (SPECT_CAPS_STRING_S32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); /* create a bus to get the spectrum message on */ @@ -332,7 +327,6 @@ GST_START_TEST (test_float32) GstElement *spectrum; GstBuffer *inbuffer, *outbuffer; GstBus *bus; - GstCaps *caps; GstMessage *message; const GstStructure *structure; int i, j; @@ -342,7 +336,7 @@ GST_START_TEST (test_float32) GstClockTime endtime; gfloat level; - spectrum = setup_spectrum (); + spectrum = setup_spectrum (SPECT_CAPS_STRING_F32); g_object_set (spectrum, "post-messages", TRUE, "interval", GST_SECOND / 100, "bands", SPECT_BANDS, "threshold", -80, NULL); @@ -365,10 +359,6 @@ GST_START_TEST (test_float32) ++data; } gst_buffer_unmap (inbuffer, &map); - - caps = gst_caps_from_string (SPECT_CAPS_STRING_F32); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); /* create a bus to get the spectrum message on */ @@ -437,7 +427,6 @@ GST_START_TEST (test_float64) GstElement *spectrum; GstBuffer *inbuffer, *outbuffer; GstBus *bus; - GstCaps *caps; GstMessage *message; const GstStructure *structure; int i, j; @@ -447,7 +436,7 @@ GST_START_TEST (test_float64) GstClockTime endtime; gfloat level; - spectrum = setup_spectrum (); + spectrum = setup_spectrum (SPECT_CAPS_STRING_F64); g_object_set (spectrum, "post-messages", TRUE, "interval", GST_SECOND / 100, "bands", SPECT_BANDS, "threshold", -80, NULL); @@ -470,10 +459,6 @@ GST_START_TEST (test_float64) ++data; } gst_buffer_unmap (inbuffer, &map); - - caps = gst_caps_from_string (SPECT_CAPS_STRING_F64); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); - gst_caps_unref (caps); ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); /* create a bus to get the spectrum message on */ diff --git a/tests/check/elements/sunaudio.c b/tests/check/elements/sunaudio.c index 30b569aa07f3c3876ff041892f24bdb15caae620..834e7cbb7d7202916e308eb9d4ffcaf75f8328cc 100644 --- a/tests/check/elements/sunaudio.c +++ b/tests/check/elements/sunaudio.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/elements/udpsink.c b/tests/check/elements/udpsink.c index 57603ec5c3dcf3849ddf150b42014065ffb54d10..d3f03f1182b2599a1becd1d623bc0f1e3b1bde3c 100644 --- a/tests/check/elements/udpsink.c +++ b/tests/check/elements/udpsink.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> #include <gst/base/gstbasesink.h> diff --git a/tests/check/elements/udpsrc.c b/tests/check/elements/udpsrc.c index 3361e7ec015bf7405296c501495e054057e0e0f5..1a0ab3caefbdb07f2f17a891c3937f1f9c3bfd99 100644 --- a/tests/check/elements/udpsrc.c +++ b/tests/check/elements/udpsrc.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> #include <gio/gio.h> diff --git a/tests/check/elements/videocrop.c b/tests/check/elements/videocrop.c index 9baaafba2eaa196ea959727d34b0550f65e5f60c..d7bfdfad4504a02e6cff9d6d9adc053d8f70af4e 100644 --- a/tests/check/elements/videocrop.c +++ b/tests/check/elements/videocrop.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -160,6 +160,7 @@ typedef struct GstElement *src; GstElement *filter; GstElement *crop; + GstElement *filter2; GstElement *sink; GstBuffer *last_buf; GstCaps *last_caps; @@ -190,12 +191,16 @@ videocrop_test_cropping_init_context (GstVideoCropTestContext * ctx) fail_unless (ctx->filter != NULL, "Failed to create capsfilter element"); ctx->crop = gst_element_factory_make ("videocrop", "crop"); fail_unless (ctx->crop != NULL, "Failed to create videocrop element"); + ctx->filter2 = gst_element_factory_make ("capsfilter", "filter2"); + fail_unless (ctx->filter2 != NULL, + "Failed to create second capsfilter element"); ctx->sink = gst_element_factory_make ("fakesink", "sink"); fail_unless (ctx->sink != NULL, "Failed to create fakesink element"); gst_bin_add_many (GST_BIN (ctx->pipeline), ctx->src, ctx->filter, - ctx->crop, ctx->sink, NULL); - gst_element_link_many (ctx->src, ctx->filter, ctx->crop, ctx->sink, NULL); + ctx->crop, ctx->filter2, ctx->sink, NULL); + gst_element_link_many (ctx->src, ctx->filter, ctx->crop, ctx->filter2, + ctx->sink, NULL); /* set pattern to 'red' - for our purposes it doesn't matter anyway */ g_object_set (ctx->src, "pattern", 4, NULL); @@ -225,13 +230,15 @@ typedef void (*GstVideoCropTestBufferFunc) (GstBuffer * buffer, GstCaps * caps); static void videocrop_test_cropping (GstVideoCropTestContext * ctx, GstCaps * in_caps, - gint left, gint right, gint top, gint bottom, + GstCaps * out_caps, gint left, gint right, gint top, gint bottom, GstVideoCropTestBufferFunc func) { - GST_LOG ("lrtb = %03u %03u %03u %03u, caps = %" GST_PTR_FORMAT, left, right, - top, bottom, in_caps); + GST_LOG ("lrtb = %03u %03u %03u %03u, in_caps = %" GST_PTR_FORMAT + ", out_caps = %" GST_PTR_FORMAT, left, right, top, bottom, in_caps, + out_caps); g_object_set (ctx->filter, "caps", in_caps, NULL); + g_object_set (ctx->filter2, "caps", out_caps, NULL); g_object_set (ctx->crop, "left", left, "right", right, "top", top, "bottom", bottom, NULL); @@ -345,11 +352,12 @@ GST_START_TEST (test_crop_to_1x1) gst_structure_set (s, "width", G_TYPE_INT, 160, "height", G_TYPE_INT, 160, NULL); - videocrop_test_cropping (&ctx, caps, 159, 0, 159, 0, check_1x1_buffer); + videocrop_test_cropping (&ctx, caps, NULL, 159, 0, 159, 0, + check_1x1_buffer); /* commented out because they don't really add anything useful check-wise: - videocrop_test_cropping (&ctx, caps, 0, 159, 0, 159, check_1x1_buffer); - videocrop_test_cropping (&ctx, caps, 159, 0, 0, 159, check_1x1_buffer); - videocrop_test_cropping (&ctx, caps, 0, 159, 159, 0, check_1x1_buffer); + videocrop_test_cropping (&ctx, caps, NULL, 0, 159, 0, 159, check_1x1_buffer); + videocrop_test_cropping (&ctx, caps, NULL, 159, 0, 0, 159, check_1x1_buffer); + videocrop_test_cropping (&ctx, caps, NULL, 0, 159, 159, 0, check_1x1_buffer); */ gst_caps_unref (caps); } @@ -397,7 +405,7 @@ GST_START_TEST (test_cropping) GST_INFO ("testing format: %" GST_PTR_FORMAT, caps); for (i = 0; i < G_N_ELEMENTS (sizes_to_try); ++i) { - GstCaps *in_caps; + GstCaps *in_caps, *out_caps; GST_INFO (" - %d x %d", sizes_to_try[i].width, sizes_to_try[i].height); @@ -405,29 +413,51 @@ GST_START_TEST (test_cropping) "height", G_TYPE_INT, sizes_to_try[i].height, NULL); in_caps = gst_caps_copy (caps); - videocrop_test_cropping (&ctx, in_caps, 0, 0, 0, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 1, 0, 0, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 1, 0, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 0, 1, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 0, 0, 1, NULL); - videocrop_test_cropping (&ctx, in_caps, 63, 0, 0, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 63, 0, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 0, 63, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 0, 0, 63, NULL); - videocrop_test_cropping (&ctx, in_caps, 63, 0, 0, 1, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 63, 1, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 1, 63, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 1, 0, 0, 63, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 0, 0, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 32, 0, 0, 128, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 32, 128, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 0, 128, 32, 0, NULL); - videocrop_test_cropping (&ctx, in_caps, 128, 0, 0, 32, NULL); - videocrop_test_cropping (&ctx, in_caps, 1, 1, 1, 1, NULL); - videocrop_test_cropping (&ctx, in_caps, 63, 63, 63, 63, NULL); - videocrop_test_cropping (&ctx, in_caps, 64, 64, 64, 64, NULL); + gst_structure_set (s, "width", G_TYPE_INT, 1, "height", G_TYPE_INT, 1, + NULL); + out_caps = gst_caps_copy (caps); + + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 0, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 1, 0, 0, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 1, 0, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 1, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 0, 1, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 63, 0, 0, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 63, 0, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 63, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 0, 63, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 63, 0, 0, 1, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 63, 1, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 1, 63, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 1, 0, 0, 63, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 0, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 32, 0, 0, 128, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 32, 128, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 0, 128, 32, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 128, 0, 0, 32, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 1, 1, 1, 1, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 63, 63, 63, 63, NULL); + videocrop_test_cropping (&ctx, in_caps, NULL, 64, 64, 64, 64, NULL); + + /* Dynamic cropping */ + videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1, -1, -1, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, 0, -1, -1, -1, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, -1, 0, -1, -1, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1, 0, -1, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1, -1, 0, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, 10, -1, 10, -1, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, -1, 10, -1, 10, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, + sizes_to_try[i].width - 1, -1, -1, -1, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, -1, + sizes_to_try[i].width - 1, -1, -1, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1, + sizes_to_try[i].height - 1, -1, NULL); + videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1, -1, + sizes_to_try[i].height - 1, NULL); gst_caps_unref (in_caps); + gst_caps_unref (out_caps); } gst_caps_unref (caps); diff --git a/tests/check/elements/videofilter.c b/tests/check/elements/videofilter.c index 25e33c12afbe93f1235bf865fb6d9bcbca403e64..2b5ae565c44a680ba6a1f3d05b597ae824ca278a 100644 --- a/tests/check/elements/videofilter.c +++ b/tests/check/elements/videofilter.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -88,12 +88,12 @@ check_filter_caps (const gchar * name, GstCaps * caps, gint size, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); + gst_check_setup_events (mysrcpad, filter, caps, GST_FORMAT_TIME); + /* ensure segment (format) properly setup */ gst_segment_init (&segment, GST_FORMAT_TIME); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); - gst_pad_set_caps (mysrcpad, caps); - for (i = 0; i < num_buffers; ++i) { inbuffer = gst_buffer_new_and_alloc (size); /* makes valgrind's memcheck happier */ diff --git a/tests/check/elements/videomixer.c b/tests/check/elements/videomixer.c new file mode 100644 index 0000000000000000000000000000000000000000..d2de07a7226e246c024edf708928047ecb561f79 --- /dev/null +++ b/tests/check/elements/videomixer.c @@ -0,0 +1,1059 @@ +/* GStreamer + * + * unit test for videmixer + * + * Copyright (C) <2005> Thomas Vander Stichele <thomas at apestaart dot org> + * Copyright (C) <2013> Thibault Saunier <thibault.saunier@collabora.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#ifdef HAVE_VALGRIND +# include <valgrind/valgrind.h> +#endif + +#include <unistd.h> + +#include <gst/check/gstcheck.h> +#include <gst/check/gstconsistencychecker.h> +#include <gst/base/gstbasesrc.h> + +#define VIDEO_CAPS_STRING \ + "video/x-raw, " \ + "width = (int) 320, " \ + "height = (int) 240, " \ + "framerate = (fraction) 25/1 , " \ + "format = (string) I420" + +static GMainLoop *main_loop; + +/* make sure downstream gets a CAPS event before buffers are sent */ +GST_START_TEST (test_caps) +{ + GstElement *pipeline, *src, *videomixer, *sink; + GstStateChangeReturn state_res; + GstCaps *caps; + GstPad *pad; + + /* build pipeline */ + pipeline = gst_pipeline_new ("pipeline"); + + src = gst_element_factory_make ("videotestsrc", "src1"); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (pipeline), src, videomixer, sink, NULL); + + fail_unless (gst_element_link_many (src, videomixer, sink, NULL)); + + /* prepare playing */ + state_res = gst_element_set_state (pipeline, GST_STATE_PAUSED); + fail_unless_equals_int (state_res, GST_STATE_CHANGE_ASYNC); + + /* wait for preroll */ + state_res = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE); + fail_unless_equals_int (state_res, GST_STATE_CHANGE_SUCCESS); + + /* check caps on fakesink */ + pad = gst_element_get_static_pad (sink, "sink"); + caps = gst_pad_get_current_caps (pad); + fail_unless (caps != NULL); + gst_caps_unref (caps); + gst_object_unref (pad); + + gst_element_set_state (pipeline, GST_STATE_NULL); + gst_object_unref (pipeline); +} + +GST_END_TEST; + +static void +message_received (GstBus * bus, GstMessage * message, GstPipeline * bin) +{ + GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT, + GST_MESSAGE_SRC (message), message); + + switch (message->type) { + case GST_MESSAGE_EOS: + g_main_loop_quit (main_loop); + break; + case GST_MESSAGE_WARNING:{ + GError *gerror; + gchar *debug; + + gst_message_parse_warning (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + break; + } + case GST_MESSAGE_ERROR:{ + GError *gerror; + gchar *debug; + + gst_message_parse_error (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + g_main_loop_quit (main_loop); + break; + } + default: + break; + } +} + + +static GstFormat format = GST_FORMAT_UNDEFINED; +static gint64 position = -1; + +static void +test_event_message_received (GstBus * bus, GstMessage * message, + GstPipeline * bin) +{ + GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT, + GST_MESSAGE_SRC (message), message); + + switch (message->type) { + case GST_MESSAGE_SEGMENT_DONE: + gst_message_parse_segment_done (message, &format, &position); + GST_INFO ("received segment_done : %" G_GINT64_FORMAT, position); + g_main_loop_quit (main_loop); + break; + default: + g_assert_not_reached (); + break; + } +} + + +GST_START_TEST (test_event) +{ + GstElement *bin, *src1, *src2, *videomixer, *sink; + GstBus *bus; + GstEvent *seek_event; + GstStateChangeReturn state_res; + gboolean res; + GstPad *srcpad, *sinkpad; + GstStreamConsistency *chk_1, *chk_2, *chk_3; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + src1 = gst_element_factory_make ("videotestsrc", "src1"); + src2 = gst_element_factory_make ("videotestsrc", "src2"); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src1, src2, videomixer, sink, NULL); + + res = gst_element_link (src1, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (src2, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (videomixer, sink); + fail_unless (res == TRUE, NULL); + + srcpad = gst_element_get_static_pad (videomixer, "src"); + chk_3 = gst_consistency_checker_new (srcpad); + gst_object_unref (srcpad); + + /* create consistency checkers for the pads */ + srcpad = gst_element_get_static_pad (src1, "src"); + chk_1 = gst_consistency_checker_new (srcpad); + sinkpad = gst_pad_get_peer (srcpad); + gst_consistency_checker_add_pad (chk_3, sinkpad); + gst_object_unref (sinkpad); + gst_object_unref (srcpad); + + srcpad = gst_element_get_static_pad (src2, "src"); + chk_2 = gst_consistency_checker_new (srcpad); + sinkpad = gst_pad_get_peer (srcpad); + gst_consistency_checker_add_pad (chk_3, sinkpad); + gst_object_unref (sinkpad); + gst_object_unref (srcpad); + + seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME, + GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH, + GST_SEEK_TYPE_SET, (GstClockTime) 0, + GST_SEEK_TYPE_SET, (GstClockTime) 2 * GST_SECOND); + + format = GST_FORMAT_UNDEFINED; + position = -1; + + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::segment-done", + (GCallback) test_event_message_received, bin); + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + GST_INFO ("starting test"); + + /* prepare playing */ + state_res = gst_element_set_state (bin, GST_STATE_PAUSED); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* wait for completion */ + state_res = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + res = gst_element_send_event (bin, seek_event); + fail_unless (res == TRUE, NULL); + + /* run pipeline */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + GST_INFO ("running main loop"); + g_main_loop_run (main_loop); + + state_res = gst_element_set_state (bin, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + ck_assert_int_eq (position, 2 * GST_SECOND); + + /* cleanup */ + g_main_loop_unref (main_loop); + gst_consistency_checker_free (chk_1); + gst_consistency_checker_free (chk_2); + gst_consistency_checker_free (chk_3); + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); +} + +GST_END_TEST; + +static guint play_count = 0; +static GstEvent *play_seek_event = NULL; + +static void +test_play_twice_message_received (GstBus * bus, GstMessage * message, + GstPipeline * bin) +{ + gboolean res; + GstStateChangeReturn state_res; + + GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT, + GST_MESSAGE_SRC (message), message); + + switch (message->type) { + case GST_MESSAGE_SEGMENT_DONE: + play_count++; + if (play_count == 1) { + state_res = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_READY); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* prepare playing again */ + state_res = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PAUSED); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* wait for completion */ + state_res = + gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, + GST_CLOCK_TIME_NONE); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + res = gst_element_send_event (GST_ELEMENT (bin), + gst_event_ref (play_seek_event)); + fail_unless (res == TRUE, NULL); + + state_res = + gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + } else { + g_main_loop_quit (main_loop); + } + break; + default: + g_assert_not_reached (); + break; + } +} + + +GST_START_TEST (test_play_twice) +{ + GstElement *bin, *src1, *src2, *videomixer, *sink; + GstBus *bus; + gboolean res; + GstStateChangeReturn state_res; + GstPad *srcpad; + GstStreamConsistency *consist; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + src1 = gst_element_factory_make ("videotestsrc", "src1"); + src2 = gst_element_factory_make ("videotestsrc", "src2"); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src1, src2, videomixer, sink, NULL); + + res = gst_element_link (src1, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (src2, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (videomixer, sink); + fail_unless (res == TRUE, NULL); + + srcpad = gst_element_get_static_pad (videomixer, "src"); + consist = gst_consistency_checker_new (srcpad); + gst_object_unref (srcpad); + + play_seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME, + GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH, + GST_SEEK_TYPE_SET, (GstClockTime) 0, + GST_SEEK_TYPE_SET, (GstClockTime) 2 * GST_SECOND); + + play_count = 0; + + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::segment-done", + (GCallback) test_play_twice_message_received, bin); + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + GST_INFO ("starting test"); + + /* prepare playing */ + state_res = gst_element_set_state (bin, GST_STATE_PAUSED); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* wait for completion */ + state_res = + gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, + GST_CLOCK_TIME_NONE); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + res = gst_element_send_event (bin, gst_event_ref (play_seek_event)); + fail_unless (res == TRUE, NULL); + + GST_INFO ("seeked"); + + /* run pipeline */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + g_main_loop_run (main_loop); + + state_res = gst_element_set_state (bin, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + ck_assert_int_eq (play_count, 2); + + /* cleanup */ + g_main_loop_unref (main_loop); + gst_consistency_checker_free (consist); + gst_event_ref (play_seek_event); + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); +} + +GST_END_TEST; + +GST_START_TEST (test_play_twice_then_add_and_play_again) +{ + GstElement *bin, *src1, *src2, *src3, *videomixer, *sink; + GstBus *bus; + gboolean res; + GstStateChangeReturn state_res; + gint i; + GstPad *srcpad; + GstStreamConsistency *consist; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + src1 = gst_element_factory_make ("videotestsrc", "src1"); + src2 = gst_element_factory_make ("videotestsrc", "src2"); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src1, src2, videomixer, sink, NULL); + + srcpad = gst_element_get_static_pad (videomixer, "src"); + consist = gst_consistency_checker_new (srcpad); + gst_object_unref (srcpad); + + res = gst_element_link (src1, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (src2, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (videomixer, sink); + fail_unless (res == TRUE, NULL); + + play_seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME, + GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH, + GST_SEEK_TYPE_SET, (GstClockTime) 0, + GST_SEEK_TYPE_SET, (GstClockTime) 2 * GST_SECOND); + + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::segment-done", + (GCallback) test_play_twice_message_received, bin); + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + /* run it twice */ + for (i = 0; i < 2; i++) { + play_count = 0; + + GST_INFO ("starting test-loop %d", i); + + /* prepare playing */ + state_res = gst_element_set_state (bin, GST_STATE_PAUSED); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* wait for completion */ + state_res = + gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, + GST_CLOCK_TIME_NONE); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + res = gst_element_send_event (bin, gst_event_ref (play_seek_event)); + fail_unless (res == TRUE, NULL); + + GST_INFO ("seeked"); + + /* run pipeline */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + g_main_loop_run (main_loop); + + state_res = gst_element_set_state (bin, GST_STATE_READY); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + ck_assert_int_eq (play_count, 2); + + /* plug another source */ + if (i == 0) { + src3 = gst_element_factory_make ("videotestsrc", "src3"); + gst_bin_add (GST_BIN (bin), src3); + + res = gst_element_link (src3, videomixer); + fail_unless (res == TRUE, NULL); + } + + gst_consistency_checker_reset (consist); + } + + state_res = gst_element_set_state (bin, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* cleanup */ + g_main_loop_unref (main_loop); + gst_event_ref (play_seek_event); + gst_consistency_checker_free (consist); + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); +} + +GST_END_TEST; + +/* check if adding pads work as expected */ +GST_START_TEST (test_add_pad) +{ + GstElement *bin, *src1, *src2, *videomixer, *sink; + GstBus *bus; + GstPad *srcpad; + gboolean res; + GstStateChangeReturn state_res; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + src1 = gst_element_factory_make ("videotestsrc", "src1"); + g_object_set (src1, "num-buffers", 4, NULL); + src2 = gst_element_factory_make ("videotestsrc", "src2"); + /* one buffer less, we connect with 1 buffer of delay */ + g_object_set (src2, "num-buffers", 3, NULL); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src1, videomixer, sink, NULL); + + res = gst_element_link (src1, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (videomixer, sink); + fail_unless (res == TRUE, NULL); + + srcpad = gst_element_get_static_pad (videomixer, "src"); + gst_object_unref (srcpad); + + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::segment-done", (GCallback) message_received, + bin); + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + GST_INFO ("starting test"); + + /* prepare playing */ + state_res = gst_element_set_state (bin, GST_STATE_PAUSED); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* wait for completion */ + state_res = + gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, + GST_CLOCK_TIME_NONE); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* add other element */ + gst_bin_add_many (GST_BIN (bin), src2, NULL); + + /* now link the second element */ + res = gst_element_link (src2, videomixer); + fail_unless (res == TRUE, NULL); + + /* set to PAUSED as well */ + state_res = gst_element_set_state (src2, GST_STATE_PAUSED); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* now play all */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + g_main_loop_run (main_loop); + + state_res = gst_element_set_state (bin, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* cleanup */ + g_main_loop_unref (main_loop); + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); +} + +GST_END_TEST; + +/* check if removing pads work as expected */ +GST_START_TEST (test_remove_pad) +{ + GstElement *bin, *src, *videomixer, *sink; + GstBus *bus; + GstPad *pad, *srcpad; + gboolean res; + GstStateChangeReturn state_res; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + src = gst_element_factory_make ("videotestsrc", "src"); + g_object_set (src, "num-buffers", 4, NULL); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src, videomixer, sink, NULL); + + res = gst_element_link (src, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (videomixer, sink); + fail_unless (res == TRUE, NULL); + + /* create an unconnected sinkpad in videomixer */ + pad = gst_element_get_request_pad (videomixer, "sink_%u"); + fail_if (pad == NULL, NULL); + + srcpad = gst_element_get_static_pad (videomixer, "src"); + gst_object_unref (srcpad); + + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::segment-done", (GCallback) message_received, + bin); + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + GST_INFO ("starting test"); + + /* prepare playing, this will not preroll as videomixer is waiting + * on the unconnected sinkpad. */ + state_res = gst_element_set_state (bin, GST_STATE_PAUSED); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* wait for completion for one second, will return ASYNC */ + state_res = gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, GST_SECOND); + ck_assert_int_eq (state_res, GST_STATE_CHANGE_ASYNC); + + /* get rid of the pad now, videomixer should stop waiting on it and + * continue the preroll */ + gst_element_release_request_pad (videomixer, pad); + gst_object_unref (pad); + + /* wait for completion, should work now */ + state_res = + gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, + GST_CLOCK_TIME_NONE); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* now play all */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + g_main_loop_run (main_loop); + + state_res = gst_element_set_state (bin, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* cleanup */ + g_main_loop_unref (main_loop); + gst_bus_remove_signal_watch (bus); + gst_object_unref (G_OBJECT (bus)); + gst_object_unref (G_OBJECT (bin)); +} + +GST_END_TEST; + + +static GstBuffer *handoff_buffer = NULL; +static void +handoff_buffer_cb (GstElement * fakesink, GstBuffer * buffer, GstPad * pad, + gpointer user_data) +{ + GST_DEBUG ("got buffer %p", buffer); + gst_buffer_replace (&handoff_buffer, buffer); +} + +/* check if clipping works as expected */ +GST_START_TEST (test_clip) +{ + GstSegment segment; + GstElement *bin, *videomixer, *sink; + GstBus *bus; + GstPad *sinkpad; + gboolean res; + GstStateChangeReturn state_res; + GstFlowReturn ret; + GstEvent *event; + GstBuffer *buffer; + GstCaps *caps; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + /* just an videomixer and a fakesink */ + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + g_object_set (sink, "signal-handoffs", TRUE, NULL); + g_signal_connect (sink, "handoff", (GCallback) handoff_buffer_cb, NULL); + gst_bin_add_many (GST_BIN (bin), videomixer, sink, NULL); + + res = gst_element_link (videomixer, sink); + fail_unless (res == TRUE, NULL); + + /* set to playing */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* create an unconnected sinkpad in videomixer, should also automatically activate + * the pad */ + sinkpad = gst_element_get_request_pad (videomixer, "sink_%u"); + fail_if (sinkpad == NULL, NULL); + + gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test")); + + caps = gst_caps_from_string (VIDEO_CAPS_STRING); + + gst_pad_set_caps (sinkpad, caps); + gst_caps_unref (caps); + + /* send segment to videomixer */ + gst_segment_init (&segment, GST_FORMAT_TIME); + segment.start = GST_SECOND; + segment.stop = 2 * GST_SECOND; + segment.time = 0; + event = gst_event_new_segment (&segment); + gst_pad_send_event (sinkpad, event); + + /* should be clipped and ok */ + buffer = gst_buffer_new_and_alloc (115200); + GST_BUFFER_TIMESTAMP (buffer) = 0; + GST_BUFFER_DURATION (buffer) = 250 * GST_MSECOND; + GST_DEBUG ("pushing buffer %p", buffer); + ret = gst_pad_chain (sinkpad, buffer); + ck_assert_int_eq (ret, GST_FLOW_OK); + fail_unless (handoff_buffer == NULL); + + /* should be partially clipped */ + buffer = gst_buffer_new_and_alloc (115200); + GST_BUFFER_TIMESTAMP (buffer) = 900 * GST_MSECOND; + GST_BUFFER_DURATION (buffer) = 250 * GST_MSECOND; + GST_DEBUG ("pushing buffer %p", buffer); + ret = gst_pad_chain (sinkpad, buffer); + ck_assert_int_eq (ret, GST_FLOW_OK); + fail_unless (handoff_buffer != NULL); + gst_buffer_replace (&handoff_buffer, NULL); + + /* should not be clipped */ + buffer = gst_buffer_new_and_alloc (115200); + GST_BUFFER_TIMESTAMP (buffer) = 1 * GST_SECOND; + GST_BUFFER_DURATION (buffer) = 250 * GST_MSECOND; + GST_DEBUG ("pushing buffer %p", buffer); + ret = gst_pad_chain (sinkpad, buffer); + ck_assert_int_eq (ret, GST_FLOW_OK); + fail_unless (handoff_buffer != NULL); + gst_buffer_replace (&handoff_buffer, NULL); + + /* should be clipped and ok */ + buffer = gst_buffer_new_and_alloc (115200); + GST_BUFFER_TIMESTAMP (buffer) = 2 * GST_SECOND; + GST_BUFFER_DURATION (buffer) = 250 * GST_MSECOND; + GST_DEBUG ("pushing buffer %p", buffer); + ret = gst_pad_chain (sinkpad, buffer); + ck_assert_int_eq (ret, GST_FLOW_OK); + fail_unless (handoff_buffer == NULL); + + gst_object_unref (sinkpad); + gst_element_set_state (bin, GST_STATE_NULL); + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); +} + +GST_END_TEST; + +GST_START_TEST (test_duration_is_max) +{ + GstElement *bin, *src[3], *videomixer, *sink; + GstStateChangeReturn state_res; + GstFormat format = GST_FORMAT_TIME; + gboolean res; + gint64 duration; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + + /* 3 sources, an videomixer and a fakesink */ + src[0] = gst_element_factory_make ("videotestsrc", NULL); + src[1] = gst_element_factory_make ("videotestsrc", NULL); + src[2] = gst_element_factory_make ("videotestsrc", NULL); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src[0], src[1], src[2], videomixer, sink, + NULL); + + gst_element_link (src[0], videomixer); + gst_element_link (src[1], videomixer); + gst_element_link (src[2], videomixer); + gst_element_link (videomixer, sink); + + /* irks, duration is reset on basesrc */ + state_res = gst_element_set_state (bin, GST_STATE_PAUSED); + fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL); + + /* set durations on src */ + GST_BASE_SRC (src[0])->segment.duration = 1000; + GST_BASE_SRC (src[1])->segment.duration = 3000; + GST_BASE_SRC (src[2])->segment.duration = 2000; + + /* set to playing */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL); + + /* wait for completion */ + state_res = + gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, + GST_CLOCK_TIME_NONE); + fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL); + + res = gst_element_query_duration (GST_ELEMENT (bin), format, &duration); + fail_unless (res, NULL); + + ck_assert_int_eq (duration, 3000); + + gst_element_set_state (bin, GST_STATE_NULL); + gst_object_unref (bin); +} + +GST_END_TEST; + +GST_START_TEST (test_duration_unknown_overrides) +{ + GstElement *bin, *src[3], *videomixer, *sink; + GstStateChangeReturn state_res; + GstFormat format = GST_FORMAT_TIME; + gboolean res; + gint64 duration; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + + /* 3 sources, an videomixer and a fakesink */ + src[0] = gst_element_factory_make ("videotestsrc", NULL); + src[1] = gst_element_factory_make ("videotestsrc", NULL); + src[2] = gst_element_factory_make ("videotestsrc", NULL); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src[0], src[1], src[2], videomixer, sink, + NULL); + + gst_element_link (src[0], videomixer); + gst_element_link (src[1], videomixer); + gst_element_link (src[2], videomixer); + gst_element_link (videomixer, sink); + + /* irks, duration is reset on basesrc */ + state_res = gst_element_set_state (bin, GST_STATE_PAUSED); + fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL); + + /* set durations on src */ + GST_BASE_SRC (src[0])->segment.duration = GST_CLOCK_TIME_NONE; + GST_BASE_SRC (src[1])->segment.duration = 3000; + GST_BASE_SRC (src[2])->segment.duration = 2000; + + /* set to playing */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL); + + /* wait for completion */ + state_res = + gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, + GST_CLOCK_TIME_NONE); + fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL); + + res = gst_element_query_duration (GST_ELEMENT (bin), format, &duration); + fail_unless (res, NULL); + + ck_assert_int_eq (duration, GST_CLOCK_TIME_NONE); + + gst_element_set_state (bin, GST_STATE_NULL); + gst_object_unref (bin); +} + +GST_END_TEST; + + +static gboolean looped = FALSE; + +static void +loop_segment_done (GstBus * bus, GstMessage * message, GstElement * bin) +{ + GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT, + GST_MESSAGE_SRC (message), message); + + if (looped) { + g_main_loop_quit (main_loop); + } else { + GstEvent *seek_event; + gboolean res; + + seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME, + GST_SEEK_FLAG_SEGMENT, + GST_SEEK_TYPE_SET, (GstClockTime) 0, + GST_SEEK_TYPE_SET, (GstClockTime) 1 * GST_SECOND); + + res = gst_element_send_event (bin, seek_event); + fail_unless (res == TRUE, NULL); + looped = TRUE; + } +} + +GST_START_TEST (test_loop) +{ + GstElement *bin, *src1, *src2, *videomixer, *sink; + GstBus *bus; + GstEvent *seek_event; + GstStateChangeReturn state_res; + gboolean res; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + src1 = gst_element_factory_make ("videotestsrc", "src1"); + src2 = gst_element_factory_make ("videotestsrc", "src2"); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src1, src2, videomixer, sink, NULL); + + res = gst_element_link (src1, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (src2, videomixer); + fail_unless (res == TRUE, NULL); + res = gst_element_link (videomixer, sink); + fail_unless (res == TRUE, NULL); + + seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME, + GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH, + GST_SEEK_TYPE_SET, (GstClockTime) 0, + GST_SEEK_TYPE_SET, (GstClockTime) 1 * GST_SECOND); + + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::segment-done", + (GCallback) loop_segment_done, bin); + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + GST_INFO ("starting test"); + + /* prepare playing */ + state_res = gst_element_set_state (bin, GST_STATE_PAUSED); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* wait for completion */ + state_res = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + res = gst_element_send_event (bin, seek_event); + fail_unless (res == TRUE, NULL); + + /* run pipeline */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + GST_INFO ("running main loop"); + g_main_loop_run (main_loop); + + state_res = gst_element_set_state (bin, GST_STATE_NULL); + + /* cleanup */ + g_main_loop_unref (main_loop); + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); +} + +GST_END_TEST; + +GST_START_TEST (test_flush_start_flush_stop) +{ + GstPadTemplate *sink_template; + GstPad *tmppad, *sinkpad1, *sinkpad2, *videomixer_src; + GstElement *pipeline, *src1, *src2, *videomixer, *sink; + + GST_INFO ("preparing test"); + + /* build pipeline */ + pipeline = gst_pipeline_new ("pipeline"); + src1 = gst_element_factory_make ("videotestsrc", "src1"); + src2 = gst_element_factory_make ("videotestsrc", "src2"); + videomixer = gst_element_factory_make ("videomixer", "videomixer"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (pipeline), src1, src2, videomixer, sink, NULL); + + sink_template = + gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (videomixer), + "sink_%u"); + fail_unless (GST_IS_PAD_TEMPLATE (sink_template)); + sinkpad1 = gst_element_request_pad (videomixer, sink_template, NULL, NULL); + tmppad = gst_element_get_static_pad (src1, "src"); + gst_pad_link (tmppad, sinkpad1); + gst_object_unref (tmppad); + + sinkpad2 = gst_element_request_pad (videomixer, sink_template, NULL, NULL); + tmppad = gst_element_get_static_pad (src2, "src"); + gst_pad_link (tmppad, sinkpad2); + gst_object_unref (tmppad); + + gst_element_link (videomixer, sink); + + gst_element_set_state (pipeline, GST_STATE_PLAYING); + fail_unless (gst_element_get_state (pipeline, NULL, NULL, + GST_CLOCK_TIME_NONE) == GST_STATE_CHANGE_SUCCESS); + + videomixer_src = gst_element_get_static_pad (videomixer, "src"); + fail_if (GST_PAD_IS_FLUSHING (videomixer_src)); + gst_pad_send_event (sinkpad1, gst_event_new_flush_start ()); + fail_unless (GST_PAD_IS_FLUSHING (videomixer_src)); + gst_pad_send_event (sinkpad1, gst_event_new_flush_stop (TRUE)); + fail_if (GST_PAD_IS_FLUSHING (videomixer_src)); + gst_object_unref (videomixer_src); + + /* cleanup */ + gst_element_set_state (pipeline, GST_STATE_NULL); + gst_object_unref (pipeline); +} + +GST_END_TEST; + + +static Suite * +videomixer_suite (void) +{ + Suite *s = suite_create ("videomixer"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_caps); + tcase_add_test (tc_chain, test_event); + tcase_add_test (tc_chain, test_play_twice); + tcase_add_test (tc_chain, test_play_twice_then_add_and_play_again); + tcase_add_test (tc_chain, test_add_pad); + tcase_add_test (tc_chain, test_remove_pad); + tcase_add_test (tc_chain, test_clip); + tcase_add_test (tc_chain, test_duration_is_max); + tcase_add_test (tc_chain, test_duration_unknown_overrides); + tcase_add_test (tc_chain, test_loop); + tcase_add_test (tc_chain, test_flush_start_flush_stop); + + /* Use a longer timeout */ +#ifdef HAVE_VALGRIND + if (RUNNING_ON_VALGRIND) { + tcase_set_timeout (tc_chain, 5 * 60); + } else +#endif + { + /* this is shorter than the default 60 seconds?! (tpm) */ + /* tcase_set_timeout (tc_chain, 6); */ + } + + return s; +} + +GST_CHECK_MAIN (videomixer); diff --git a/tests/check/elements/vp8dec.c b/tests/check/elements/vp8dec.c index 25648401af17ee291da62af053c2bebc18bed7ae..786809e61c6b05940171753fe05450376594aa73 100644 --- a/tests/check/elements/vp8dec.c +++ b/tests/check/elements/vp8dec.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -80,7 +80,7 @@ setup_vp8dec (const gchar * src_caps_str) sinkpad = gst_check_setup_sink_pad (bin, &sinktemplate); gst_pad_set_active (srcpad, TRUE); gst_pad_set_active (sinkpad, TRUE); - fail_unless (gst_pad_set_caps (srcpad, srccaps)); + gst_check_setup_events (srcpad, bin, srccaps, GST_FORMAT_TIME); bus = gst_bus_new (); gst_element_set_bus (bin, bus); diff --git a/tests/check/elements/vp8enc.c b/tests/check/elements/vp8enc.c index fc130473d0ae66ba87a7942415e88bcb29a0a378..86b1d929d1363d895c723f801cd9c8ca0bca0e79 100644 --- a/tests/check/elements/vp8enc.c +++ b/tests/check/elements/vp8enc.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -55,7 +55,7 @@ setup_vp8enc (const gchar * src_caps_str) sinkpad = gst_check_setup_sink_pad (vp8enc, &sinktemplate); gst_pad_set_active (srcpad, TRUE); gst_pad_set_active (sinkpad, TRUE); - fail_unless (gst_pad_set_caps (srcpad, srccaps)); + gst_check_setup_events (srcpad, vp8enc, srccaps, GST_FORMAT_TIME); bus = gst_bus_new (); gst_element_set_bus (vp8enc, bus); diff --git a/tests/check/elements/wavpackdec.c b/tests/check/elements/wavpackdec.c index 01ae67d202518ee5637dae7d25d077a47dedc29d..65c108dd55d132f573a0b14d81ec1846539f1cfb 100644 --- a/tests/check/elements/wavpackdec.c +++ b/tests/check/elements/wavpackdec.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -82,6 +82,11 @@ setup_wavpackdec (void) mysinkpad = gst_check_setup_sink_pad (wavpackdec, &sinktemplate); gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); + gst_check_setup_events (mysrcpad, wavpackdec, NULL, GST_FORMAT_TIME); + + fail_unless (gst_element_set_state (wavpackdec, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); return wavpackdec; } @@ -108,10 +113,6 @@ GST_START_TEST (test_decode_frame) GstMapInfo map; wavpackdec = setup_wavpackdec (); - - fail_unless (gst_element_set_state (wavpackdec, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); bus = gst_bus_new (); inbuffer = gst_buffer_new_and_alloc (sizeof (test_frame)); @@ -162,10 +163,6 @@ GST_START_TEST (test_decode_frame_with_broken_header) GstMessage *message; wavpackdec = setup_wavpackdec (); - - fail_unless (gst_element_set_state (wavpackdec, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); bus = gst_bus_new (); inbuffer = gst_buffer_new_and_alloc (sizeof (test_frame)); @@ -199,10 +196,6 @@ GST_START_TEST (test_decode_frame_with_incomplete_frame) GstMessage *message; wavpackdec = setup_wavpackdec (); - - fail_unless (gst_element_set_state (wavpackdec, - GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, - "could not set to playing"); bus = gst_bus_new (); inbuffer = gst_buffer_new_and_alloc (sizeof (test_frame) - 2); diff --git a/tests/check/elements/wavpackenc.c b/tests/check/elements/wavpackenc.c index 5536effcb1a010e125b1f8e7bac71c8df48f11d2..22e2e7c9f92cd4d394b96db195273f888832de08 100644 --- a/tests/check/elements/wavpackenc.c +++ b/tests/check/elements/wavpackenc.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> diff --git a/tests/check/elements/wavpackparse.c b/tests/check/elements/wavpackparse.c index d7d214f0acd8b8cad5fc7806fd1797eb2d122189..ec409097f18667ac3452cd9e846f0d870860353d 100644 --- a/tests/check/elements/wavpackparse.c +++ b/tests/check/elements/wavpackparse.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -79,6 +79,7 @@ setup_wavpackparse (void) mysinkpad = gst_check_setup_sink_pad (wavpackparse, &sinktemplate); gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); + gst_check_setup_events (mysrcpad, wavpackparse, NULL, GST_FORMAT_BYTES); return wavpackparse; } diff --git a/tests/check/elements/wavparse.c b/tests/check/elements/wavparse.c new file mode 100644 index 0000000000000000000000000000000000000000..e4fee9207a2ecc2c433ad22feef4cd0585e895a2 --- /dev/null +++ b/tests/check/elements/wavparse.c @@ -0,0 +1,80 @@ +/* GStreamer WavParse unit tests + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/check/gstcheck.h> + +static void +do_test_empty_file (gboolean can_activate_pull) +{ + GstStateChangeReturn ret1, ret2; + GstElement *pipeline; + GstElement *src; + GstElement *wavparse; + GstElement *fakesink; + + /* Pull mode */ + pipeline = gst_pipeline_new ("testpipe"); + src = gst_element_factory_make ("fakesrc", NULL); + fail_if (src == NULL); + wavparse = gst_element_factory_make ("wavparse", NULL); + fail_if (wavparse == NULL); + fakesink = gst_element_factory_make ("fakesink", NULL); + fail_if (fakesink == NULL); + + gst_bin_add_many (GST_BIN (pipeline), src, wavparse, fakesink, NULL); + g_object_set (src, "num-buffers", 0, "can-activate-pull", can_activate_pull, + NULL); + + fail_unless (gst_element_link_many (src, wavparse, fakesink, NULL)); + + ret1 = gst_element_set_state (pipeline, GST_STATE_PLAYING); + if (ret1 == GST_STATE_CHANGE_ASYNC) + ret2 = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE); + else + ret2 = ret1; + + /* should have gotten an error on the bus, no output to fakesink */ + fail_unless_equals_int (ret2, GST_STATE_CHANGE_FAILURE); + + gst_element_set_state (pipeline, GST_STATE_NULL); + gst_object_unref (pipeline); +} + +GST_START_TEST (test_empty_file) +{ + do_test_empty_file (TRUE); + do_test_empty_file (FALSE); +} + +GST_END_TEST; + +static Suite * +wavparse_suite (void) +{ + Suite *s = suite_create ("wavparse"); + TCase *tc_chain = tcase_create ("wavparse"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_empty_file); + return s; +} + +GST_CHECK_MAIN (wavparse) diff --git a/tests/check/elements/y4menc.c b/tests/check/elements/y4menc.c index 75935377f296a90f15b32c6d47b38a8e06dbb6db..2117ada8b9c6b2ee75adb70595e914e25f26238e 100644 --- a/tests/check/elements/y4menc.c +++ b/tests/check/elements/y4menc.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <unistd.h> @@ -99,7 +99,7 @@ GST_START_TEST (test_y4m) /* makes valgrind's memcheck happier */ gst_buffer_memset (inbuffer, 0, 0, size); caps = gst_caps_from_string (VIDEO_CAPS_STRING); - fail_unless (gst_pad_set_caps (mysrcpad, caps)); + gst_check_setup_events (mysrcpad, y4menc, caps, GST_FORMAT_TIME); gst_caps_unref (caps); GST_BUFFER_TIMESTAMP (inbuffer) = 0; ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c index 571b94090719e9bbaf6b04b6544d5b57d789b437..4601e07eb9a12ca3716d9c23f7e0cb1eda171a64 100644 --- a/tests/check/generic/states.c +++ b/tests/check/generic/states.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/tests/check/pipelines/effectv.c b/tests/check/pipelines/effectv.c index b4904109fb6d1044c4783757755bfb112bc1f34d..6c25e4b7112f4a4479919a7575ca6c5768355801 100644 --- a/tests/check/pipelines/effectv.c +++ b/tests/check/pipelines/effectv.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/check/pipelines/flacdec.c b/tests/check/pipelines/flacdec.c index d1e4fc2b82d5af5919691a2c78706aa8f892d017..651d77f886ce6651c8561b02aeeaeab1ce56c1eb 100644 --- a/tests/check/pipelines/flacdec.c +++ b/tests/check/pipelines/flacdec.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -36,7 +36,7 @@ _get_first_sample (GstSample * sample) fail_unless (caps != NULL, "sample without caps"); buf = gst_sample_get_buffer (sample); - GST_DEBUG ("buffer with size=%u, caps=%" GST_PTR_FORMAT, + GST_DEBUG ("buffer with size=%" G_GSIZE_FORMAT ", caps=%" GST_PTR_FORMAT, gst_buffer_get_size (buf), caps); gst_buffer_map (buf, &map, GST_MAP_READ); diff --git a/tests/check/pipelines/simple-launch-lines.c b/tests/check/pipelines/simple-launch-lines.c index 4dedbe3d886e7f54168985d681d33680c8961f81..cce4f2d2a3fe6628aca9de10313a1fffceaea00b 100644 --- a/tests/check/pipelines/simple-launch-lines.c +++ b/tests/check/pipelines/simple-launch-lines.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -289,7 +289,7 @@ simple_launch_lines_suite (void) tcase_add_test (tc_chain, test_rtp_payloaders); tcase_add_test (tc_chain, test_video_encoders_decoders); /* FIXME: very rarely fails, maybe because of negotiation issues? */ - tcase_skip_broken_test (tc_chain, test_videomixer); + tcase_add_test (tc_chain, test_videomixer); #endif return s; } diff --git a/tests/check/pipelines/tagschecking.c b/tests/check/pipelines/tagschecking.c index 00a00683bd9132dc88cc1265bba67f98d7ca6e05..f09a32027cb318778741de1227a412ec0f48e1cd 100644 --- a/tests/check/pipelines/tagschecking.c +++ b/tests/check/pipelines/tagschecking.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> @@ -271,7 +271,8 @@ test_tags (const gchar * tag_str, const gchar * caps, const gchar * muxer, #define H264_CAPS "video/x-h264, width=(int)320, height=(int)240," \ " framerate=(fraction)30/1, codec_data=(buffer)" \ "01401592ffe10017674d401592540a0fd8088000000300" \ - "8000001e478b175001000468ee3c80, stream-format=(string)avc" + "8000001e478b175001000468ee3c80, "\ + "stream-format=(string)avc, alignment=(string)au" #define COMMON_TAGS \ "taglist,title=test_title," \ diff --git a/tests/check/pipelines/wavenc.c b/tests/check/pipelines/wavenc.c index 2fdfdc3e804e48a01fa73bcd7a09d693b780dd9c..b79fbf6ff3706f7f2a271f41b6294ff211b8750f 100644 --- a/tests/check/pipelines/wavenc.c +++ b/tests/check/pipelines/wavenc.c @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray diff --git a/tests/check/pipelines/wavpack.c b/tests/check/pipelines/wavpack.c index d298848b168c97ede3bd4f8e7c026ae76f45d120..9a6d07a8e3a6132a717c8cdb16cdb5ccee98b2c2 100644 --- a/tests/check/pipelines/wavpack.c +++ b/tests/check/pipelines/wavpack.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/check/gstcheck.h> diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in index 4d3f9db4fd2caee52c4af4b9a4de9ea434fda602..91c5472148e54c37c3bc4bf547ef0187012bf7ff 100644 --- a/tests/examples/Makefile.in +++ b/tests/examples/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -20,23 +19,51 @@ # descending into all subdirectories a second time, but only after the first # (parallel) run has finished, so it should go right through the second time. VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -56,8 +83,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/common/parallel-subdirs.mak +DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \ + $(srcdir)/Makefile.in $(srcdir)/Makefile.am subdir = tests/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -65,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -101,21 +127,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -123,9 +156,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -319,6 +372,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -531,22 +585,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -561,57 +618,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -627,12 +639,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -644,15 +651,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -661,6 +664,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -821,22 +839,20 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am .PHONY: independent-subdirs $(SUBDIRS) diff --git a/tests/examples/audiofx/Makefile.in b/tests/examples/audiofx/Makefile.in index b9d716a7e084a5c8c62ab3f430424412e9b44b4f..0c10ff7b5078195dbdbaf3fb2355d2095ae0269c 100644 --- a/tests/examples/audiofx/Makefile.in +++ b/tests/examples/audiofx/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,14 +82,14 @@ target_triplet = @target@ noinst_PROGRAMS = firfilter-example$(EXEEXT) \ iirfilter-example$(EXEEXT) subdir = tests/examples/audiofx -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -108,6 +135,7 @@ firfilter_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = firfilter_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(firfilter_example_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ @@ -121,6 +149,18 @@ iirfilter_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(iirfilter_example_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -133,20 +173,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = firfilter-example.c iirfilter-example.c DIST_SOURCES = firfilter-example.c iirfilter-example.c am__can_run_installinfo = \ @@ -154,6 +190,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -324,6 +377,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -531,9 +585,11 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + firfilter-example$(EXEEXT): $(firfilter_example_OBJECTS) $(firfilter_example_DEPENDENCIES) $(EXTRA_firfilter_example_DEPENDENCIES) @rm -f firfilter-example$(EXEEXT) $(AM_V_CCLD)$(firfilter_example_LINK) $(firfilter_example_OBJECTS) $(firfilter_example_LDADD) $(LIBS) + iirfilter-example$(EXEEXT): $(iirfilter_example_OBJECTS) $(iirfilter_example_DEPENDENCIES) $(EXTRA_iirfilter_example_DEPENDENCIES) @rm -f iirfilter-example$(EXEEXT) $(AM_V_CCLD)$(iirfilter_example_LINK) $(iirfilter_example_OBJECTS) $(iirfilter_example_LDADD) $(LIBS) @@ -602,26 +658,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -633,15 +678,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -650,6 +691,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -791,18 +847,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/audiofx/firfilter-example.c b/tests/examples/audiofx/firfilter-example.c index e2fa2dc25bfc5ac240245db94a093cdbb8758595..a3a6cfec088f59a10c2c5ccd852c603334eed131 100644 --- a/tests/examples/audiofx/firfilter-example.c +++ b/tests/examples/audiofx/firfilter-example.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* This small sample application creates a bandpass FIR filter diff --git a/tests/examples/audiofx/iirfilter-example.c b/tests/examples/audiofx/iirfilter-example.c index 708bde1e1d7b574bd773df8c4959eec2bf4fa730..fc553f91509431588e8ffd3627c8de42ca152200 100644 --- a/tests/examples/audiofx/iirfilter-example.c +++ b/tests/examples/audiofx/iirfilter-example.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* This small sample application creates a lowpass IIR filter diff --git a/tests/examples/cairo/Makefile.in b/tests/examples/cairo/Makefile.in index b3ca36a6d1ae83825e214716e4beeb5b3f78dd70..3bae9c89ffd05c411a859cc033b3030d467b8779 100644 --- a/tests/examples/cairo/Makefile.in +++ b/tests/examples/cairo/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,14 +81,14 @@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = cairo_overlay$(EXEEXT) subdir = tests/examples/cairo -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -106,9 +133,22 @@ cairo_overlay_DEPENDENCIES = $(am__DEPENDENCIES_1) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = cairo_overlay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(cairo_overlay_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(cairo_overlay_SOURCES) DIST_SOURCES = $(cairo_overlay_SOURCES) am__can_run_installinfo = \ @@ -142,6 +178,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -310,6 +363,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -516,6 +570,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + cairo_overlay$(EXEEXT): $(cairo_overlay_OBJECTS) $(cairo_overlay_DEPENDENCIES) $(EXTRA_cairo_overlay_DEPENDENCIES) @rm -f cairo_overlay$(EXEEXT) $(AM_V_CCLD)$(cairo_overlay_LINK) $(cairo_overlay_OBJECTS) $(cairo_overlay_LDADD) $(LIBS) @@ -569,26 +624,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -600,15 +644,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -617,6 +657,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -758,18 +813,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/cairo/cairo_overlay.c b/tests/examples/cairo/cairo_overlay.c index 937528d944b8abdb877c2ca1903754ee50f65d2e..9e9f71afa11d707b7aaf6dc455013bea739ae469 100644 --- a/tests/examples/cairo/cairo_overlay.c +++ b/tests/examples/cairo/cairo_overlay.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/tests/examples/equalizer/Makefile.in b/tests/examples/equalizer/Makefile.in index 5e9885419d781573de4a0c647bbb321baf3fc294..f92d76212edfcfec159967f5b996cd8ac91baaaa 100644 --- a/tests/examples/equalizer/Makefile.in +++ b/tests/examples/equalizer/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,14 +81,14 @@ host_triplet = @host@ target_triplet = @target@ @HAVE_GTK_TRUE@noinst_PROGRAMS = demo$(EXEEXT) subdir = tests/examples/equalizer -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -106,9 +133,22 @@ demo_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = demo_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(demo_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(demo_SOURCES) DIST_SOURCES = $(demo_SOURCES) am__can_run_installinfo = \ @@ -142,6 +178,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -310,6 +363,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -516,6 +570,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + demo$(EXEEXT): $(demo_OBJECTS) $(demo_DEPENDENCIES) $(EXTRA_demo_DEPENDENCIES) @rm -f demo$(EXEEXT) $(AM_V_CCLD)$(demo_LINK) $(demo_OBJECTS) $(demo_LDADD) $(LIBS) @@ -569,26 +624,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -600,15 +644,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -617,6 +657,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -758,18 +813,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/jack/Makefile.in b/tests/examples/jack/Makefile.in index cf8f82fdcabb1603b16475998000ca247f7b8258..ed2d54ee62902922c318b5c83b108b08b03cd979 100644 --- a/tests/examples/jack/Makefile.in +++ b/tests/examples/jack/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,14 +81,14 @@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = $(am__EXEEXT_1) subdir = tests/examples/jack -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -105,9 +132,22 @@ jack_client_LDADD = $(LDADD) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = jack_client_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(jack_client_CFLAGS) \ $(CFLAGS) $(jack_client_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -120,20 +160,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(jack_client_SOURCES) DIST_SOURCES = $(jack_client_SOURCES) am__can_run_installinfo = \ @@ -141,6 +177,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -309,6 +362,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -517,6 +571,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + jack_client$(EXEEXT): $(jack_client_OBJECTS) $(jack_client_DEPENDENCIES) $(EXTRA_jack_client_DEPENDENCIES) @rm -f jack_client$(EXEEXT) $(AM_V_CCLD)$(jack_client_LINK) $(jack_client_OBJECTS) $(jack_client_LDADD) $(LIBS) @@ -570,26 +625,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -601,15 +645,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -618,6 +658,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -759,18 +814,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/jack/jack_client.c b/tests/examples/jack/jack_client.c index 99599ab5cbcbcbe9e25b7b70b75894c8a5650d11..969ceda9c45dcbe6e8098cdd641e79a08304c18d 100644 --- a/tests/examples/jack/jack_client.c +++ b/tests/examples/jack/jack_client.c @@ -68,7 +68,7 @@ main (int argc, char **argv) } /* quit after 5 seconds */ - g_timeout_add (5000, (GSourceFunc) quit_cb, NULL); + g_timeout_add_seconds (5, (GSourceFunc) quit_cb, NULL); gtk_main (); /* clean up */ diff --git a/tests/examples/level/Makefile.in b/tests/examples/level/Makefile.in index dd580de6b47a05de10824d4e6e667bc865f7c0d9..0b17d0197653aa332d594c780c14f61d5ffbcb91 100644 --- a/tests/examples/level/Makefile.in +++ b/tests/examples/level/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,14 +81,14 @@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = level-example$(EXEEXT) subdir = tests/examples/level -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -106,9 +133,22 @@ level_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = level_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(level_example_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = level-example.c DIST_SOURCES = level-example.c am__can_run_installinfo = \ @@ -142,6 +178,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -310,6 +363,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -515,6 +569,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + level-example$(EXEEXT): $(level_example_OBJECTS) $(level_example_DEPENDENCIES) $(EXTRA_level_example_DEPENDENCIES) @rm -f level-example$(EXEEXT) $(AM_V_CCLD)$(level_example_LINK) $(level_example_OBJECTS) $(level_example_LDADD) $(LIBS) @@ -568,26 +623,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -599,15 +643,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -616,6 +656,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -757,18 +812,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/level/level-example.c b/tests/examples/level/level-example.c index 15de3ba0fef83ab80dc7112b838822eed6d585f1..a953176d840206e86cc6a0ccb0489558baacb403 100644 --- a/tests/examples/level/level-example.c +++ b/tests/examples/level/level-example.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> @@ -40,34 +40,37 @@ message_handler (GstBus * bus, GstMessage * message, gpointer data) gdouble rms; const GValue *array_val; const GValue *value; - GValueArray *arr; - + GValueArray *rms_arr, *peak_arr, *decay_arr; gint i; if (!gst_structure_get_clock_time (s, "endtime", &endtime)) g_warning ("Could not parse endtime"); - /* we can get the number of channels as the length of any of the value - * lists */ + + /* the values are packed into GValueArrays with the value per channel */ array_val = gst_structure_get_value (s, "rms"); - arr = (GValueArray *) g_value_get_boxed (array_val); - channels = arr->n_values; + rms_arr = (GValueArray *) g_value_get_boxed (array_val); + + array_val = gst_structure_get_value (s, "peak"); + peak_arr = (GValueArray *) g_value_get_boxed (array_val); + array_val = gst_structure_get_value (s, "decay"); + decay_arr = (GValueArray *) g_value_get_boxed (array_val); + + /* we can get the number of channels as the length of any of the value + * arrays */ + channels = rms_arr->n_values; g_print ("endtime: %" GST_TIME_FORMAT ", channels: %d\n", GST_TIME_ARGS (endtime), channels); for (i = 0; i < channels; ++i) { g_print ("channel %d\n", i); - array_val = gst_structure_get_value (s, "rms"); - arr = (GValueArray *) g_value_get_boxed (array_val); - value = g_value_array_get_nth (arr, i); + value = g_value_array_get_nth (rms_arr, i); rms_dB = g_value_get_double (value); - array_val = gst_structure_get_value (s, "peak"); - arr = (GValueArray *) g_value_get_boxed (array_val); - value = g_value_array_get_nth (arr, i); + + value = g_value_array_get_nth (peak_arr, i); peak_dB = g_value_get_double (value); - array_val = gst_structure_get_value (s, "decay"); - arr = (GValueArray *) g_value_get_boxed (array_val); - value = g_value_array_get_nth (arr, i); + + value = g_value_array_get_nth (decay_arr, i); decay_dB = g_value_get_double (value); g_print (" RMS: %f dB, peak: %f dB, decay: %f dB\n", rms_dB, peak_dB, decay_dB); @@ -118,7 +121,7 @@ main (int argc, char *argv[]) g_error ("Failed to link level and fakesink"); /* make sure we'll get messages */ - g_object_set (G_OBJECT (level), "message", TRUE, NULL); + g_object_set (G_OBJECT (level), "post-messages", TRUE, NULL); /* run synced and not as fast as we can */ g_object_set (G_OBJECT (fakesink), "sync", TRUE, NULL); diff --git a/tests/examples/pulse/Makefile.in b/tests/examples/pulse/Makefile.in index 5e060c7b0a886c655a5031e0141dd0d3988dc224..c58662a04fbf0cdfed10583698f4c69d1811b75d 100644 --- a/tests/examples/pulse/Makefile.in +++ b/tests/examples/pulse/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,14 +81,14 @@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = pulse$(EXEEXT) subdir = tests/examples/pulse -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -106,9 +133,22 @@ pulse_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = pulse_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(pulse_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = pulse.c DIST_SOURCES = pulse.c am__can_run_installinfo = \ @@ -142,6 +178,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -310,6 +363,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -515,6 +569,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + pulse$(EXEEXT): $(pulse_OBJECTS) $(pulse_DEPENDENCIES) $(EXTRA_pulse_DEPENDENCIES) @rm -f pulse$(EXEEXT) $(AM_V_CCLD)$(pulse_LINK) $(pulse_OBJECTS) $(pulse_LDADD) $(LIBS) @@ -568,26 +623,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -599,15 +643,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -616,6 +656,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -757,18 +812,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/pulse/pulse.c b/tests/examples/pulse/pulse.c index f1d5b26eadd3c2f2e99fadd654a9eeaae365e455..835244a2b839544ee06a3bf842b3c90d9831987f 100644 --- a/tests/examples/pulse/pulse.c +++ b/tests/examples/pulse/pulse.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray diff --git a/tests/examples/rtp/Makefile.in b/tests/examples/rtp/Makefile.in index 9722e5c50cb7578055fbcc5cda2cb96683a73e8b..3740aef173a81f3254b646c58e74aea55fd26578 100644 --- a/tests/examples/rtp/Makefile.in +++ b/tests/examples/rtp/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,14 +82,14 @@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = server-alsasrc-PCMA$(EXEEXT) client-PCMA$(EXEEXT) subdir = tests/examples/rtp -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -106,6 +133,7 @@ client_PCMA_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = client_PCMA_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(client_PCMA_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @@ -119,6 +147,18 @@ server_alsasrc_PCMA_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SCRIPTS = $(noinst_SCRIPTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -131,20 +171,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(client_PCMA_SOURCES) $(server_alsasrc_PCMA_SOURCES) DIST_SOURCES = $(client_PCMA_SOURCES) $(server_alsasrc_PCMA_SOURCES) am__can_run_installinfo = \ @@ -152,6 +188,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -322,6 +375,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -544,9 +598,11 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + client-PCMA$(EXEEXT): $(client_PCMA_OBJECTS) $(client_PCMA_DEPENDENCIES) $(EXTRA_client_PCMA_DEPENDENCIES) @rm -f client-PCMA$(EXEEXT) $(AM_V_CCLD)$(client_PCMA_LINK) $(client_PCMA_OBJECTS) $(client_PCMA_LDADD) $(LIBS) + server-alsasrc-PCMA$(EXEEXT): $(server_alsasrc_PCMA_OBJECTS) $(server_alsasrc_PCMA_DEPENDENCIES) $(EXTRA_server_alsasrc_PCMA_DEPENDENCIES) @rm -f server-alsasrc-PCMA$(EXEEXT) $(AM_V_CCLD)$(server_alsasrc_PCMA_LINK) $(server_alsasrc_PCMA_OBJECTS) $(server_alsasrc_PCMA_LDADD) $(LIBS) @@ -615,26 +671,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -646,15 +691,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -663,6 +704,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -804,18 +860,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/rtp/client-PCMA.c b/tests/examples/rtp/client-PCMA.c index ec498e386289d2109a075e1ffeb8bff4521bcaa1..ee8366f53921c7aee20f4da15b20c1daeb3896cc 100644 --- a/tests/examples/rtp/client-PCMA.c +++ b/tests/examples/rtp/client-PCMA.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> diff --git a/tests/examples/rtp/server-alsasrc-PCMA.c b/tests/examples/rtp/server-alsasrc-PCMA.c index 625a6ba9f561efd84af1076ff503cbe97b89961b..4690eed45c045959745beab547dc38fbe82666a7 100644 --- a/tests/examples/rtp/server-alsasrc-PCMA.c +++ b/tests/examples/rtp/server-alsasrc-PCMA.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray @@ -212,7 +212,7 @@ main (int argc, char *argv[]) gst_element_set_state (pipeline, GST_STATE_PLAYING); /* print stats every second */ - g_timeout_add (1000, (GSourceFunc) print_stats, rtpbin); + g_timeout_add_seconds (1, (GSourceFunc) print_stats, rtpbin); /* we need to run a GLib main loop to get the messages */ loop = g_main_loop_new (NULL, FALSE); diff --git a/tests/examples/shapewipe/Makefile.in b/tests/examples/shapewipe/Makefile.in index 26196d2acf267cde24dc9518396521a824f9abb2..199c42c6937b2e99680a810539281cc789874a21 100644 --- a/tests/examples/shapewipe/Makefile.in +++ b/tests/examples/shapewipe/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,23 +16,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,15 +82,14 @@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = shapewipe-example$(EXEEXT) subdir = tests/examples/shapewipe -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -109,10 +135,23 @@ shapewipe_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = shapewipe_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(shapewipe_example_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -125,20 +164,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(shapewipe_example_SOURCES) DIST_SOURCES = $(shapewipe_example_SOURCES) am__can_run_installinfo = \ @@ -147,6 +182,23 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -315,6 +367,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -522,6 +575,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + shapewipe-example$(EXEEXT): $(shapewipe_example_OBJECTS) $(shapewipe_example_DEPENDENCIES) $(EXTRA_shapewipe_example_DEPENDENCIES) @rm -f shapewipe-example$(EXEEXT) $(AM_V_CCLD)$(shapewipe_example_LINK) $(shapewipe_example_OBJECTS) $(shapewipe_example_LDADD) $(LIBS) @@ -575,26 +629,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -606,15 +649,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -623,6 +662,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -764,18 +818,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/shapewipe/shapewipe-example.c b/tests/examples/shapewipe/shapewipe-example.c index b1076583422de71be75ef946f6a69a1696c6133d..05ed3d9c0a5a0e6e6bad9e7cb8cdee1b7453c0eb 100644 --- a/tests/examples/shapewipe/shapewipe-example.c +++ b/tests/examples/shapewipe/shapewipe-example.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <gst/gst.h> diff --git a/tests/examples/spectrum/Makefile.in b/tests/examples/spectrum/Makefile.in index 0e7ef255ec835548b83fadd158e17f01eebacc5b..4c45329c4fa2eb163a61c494853188cd09f83bc5 100644 --- a/tests/examples/spectrum/Makefile.in +++ b/tests/examples/spectrum/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -56,14 +83,14 @@ target_triplet = @target@ @HAVE_GTK_TRUE@ demo-audiotest$(EXEEXT) \ @HAVE_GTK_TRUE@ spectrum-example$(EXEEXT) subdir = tests/examples/spectrum -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -109,6 +136,7 @@ demo_audiotest_DEPENDENCIES = $(am__DEPENDENCIES_1) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = demo_audiotest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(demo_audiotest_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ @@ -129,6 +157,18 @@ spectrum_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(spectrum_example_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -141,20 +181,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(demo_audiotest_SOURCES) $(demo_osssrc_SOURCES) \ $(spectrum_example_SOURCES) DIST_SOURCES = $(demo_audiotest_SOURCES) $(demo_osssrc_SOURCES) \ @@ -164,6 +200,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -332,6 +385,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -548,12 +602,15 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + demo-audiotest$(EXEEXT): $(demo_audiotest_OBJECTS) $(demo_audiotest_DEPENDENCIES) $(EXTRA_demo_audiotest_DEPENDENCIES) @rm -f demo-audiotest$(EXEEXT) $(AM_V_CCLD)$(demo_audiotest_LINK) $(demo_audiotest_OBJECTS) $(demo_audiotest_LDADD) $(LIBS) + demo-osssrc$(EXEEXT): $(demo_osssrc_OBJECTS) $(demo_osssrc_DEPENDENCIES) $(EXTRA_demo_osssrc_DEPENDENCIES) @rm -f demo-osssrc$(EXEEXT) $(AM_V_CCLD)$(demo_osssrc_LINK) $(demo_osssrc_OBJECTS) $(demo_osssrc_LDADD) $(LIBS) + spectrum-example$(EXEEXT): $(spectrum_example_OBJECTS) $(spectrum_example_DEPENDENCIES) $(EXTRA_spectrum_example_DEPENDENCIES) @rm -f spectrum-example$(EXEEXT) $(AM_V_CCLD)$(spectrum_example_LINK) $(spectrum_example_OBJECTS) $(spectrum_example_LDADD) $(LIBS) @@ -637,26 +694,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -668,15 +714,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -685,6 +727,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -826,18 +883,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/spectrum/demo-audiotest.c b/tests/examples/spectrum/demo-audiotest.c index 4b5cc00c3a61d5e10e1594df758720af0b344339..5ddb0984c0708ac189689b3059f2d292946ba6f1 100644 --- a/tests/examples/spectrum/demo-audiotest.c +++ b/tests/examples/spectrum/demo-audiotest.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* TODO: add wave selection */ /* fast vs. slow mode - see update_spectrum_bands() diff --git a/tests/examples/spectrum/demo-osssrc.c b/tests/examples/spectrum/demo-osssrc.c index 9eeb6c6ffcfb6ea6fd74f29201950f2b7a2c041b..1412b7b222542bda7aa7b81c147397711f2b2d39 100644 --- a/tests/examples/spectrum/demo-osssrc.c +++ b/tests/examples/spectrum/demo-osssrc.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/tests/examples/spectrum/spectrum-example.c b/tests/examples/spectrum/spectrum-example.c index c843d0c353751cf75749121083f34abf918e5327..6ccb5012edb2dcb190f0206f38e6081cc4bb30e3 100644 --- a/tests/examples/spectrum/spectrum-example.c +++ b/tests/examples/spectrum/spectrum-example.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <stdio.h> diff --git a/tests/examples/v4l2/Makefile.in b/tests/examples/v4l2/Makefile.in index e7604c1db301a6da49a795359458845568e6a025..c6dd184cfc223dadb84398f8bdd8e775f45a61da 100644 --- a/tests/examples/v4l2/Makefile.in +++ b/tests/examples/v4l2/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,14 +81,14 @@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = camctrl$(EXEEXT) subdir = tests/examples/v4l2 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -106,9 +133,22 @@ camctrl_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = camctrl_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(camctrl_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(camctrl_SOURCES) DIST_SOURCES = $(camctrl_SOURCES) am__can_run_installinfo = \ @@ -142,6 +178,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -310,6 +363,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -516,6 +570,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + camctrl$(EXEEXT): $(camctrl_OBJECTS) $(camctrl_DEPENDENCIES) $(EXTRA_camctrl_DEPENDENCIES) @rm -f camctrl$(EXEEXT) $(AM_V_CCLD)$(camctrl_LINK) $(camctrl_OBJECTS) $(camctrl_LDADD) $(LIBS) @@ -569,26 +624,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -600,15 +644,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -617,6 +657,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -758,18 +813,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/examples/v4l2/camctrl.c b/tests/examples/v4l2/camctrl.c index 64db577faf19b38219b52d5e9c5ca22815b35da2..698341811523dad5627aca5bebacc7c7e28dfac9 100644 --- a/tests/examples/v4l2/camctrl.c +++ b/tests/examples/v4l2/camctrl.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* demo for using gstcontroler with camera capture for e.g. bracketing * diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in index dfced1d4c2e8d8b09a465e5eb7f0bf25b62269a8..87d25cc65f61a1b439907b15898b15b81ff3d98e 100644 --- a/tests/files/Makefile.in +++ b/tests/files/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,14 +79,13 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = tests/files -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -95,12 +121,18 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -108,6 +140,7 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AALIB_CFLAGS = @AALIB_CFLAGS@ AALIB_CONFIG = @AALIB_CONFIG@ @@ -274,6 +307,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -486,11 +520,11 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -626,15 +660,16 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in index d111f0779404eff440acee818d30fa210cba185f..0ce27011af7522ef411d41e33996bb7f0da56d57 100644 --- a/tests/icles/Makefile.in +++ b/tests/icles/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -57,14 +84,14 @@ noinst_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ videocrop-test$(EXEEXT) videobox-test$(EXEEXT) \ videocrop2-test$(EXEEXT) subdir = tests/icles -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-auto-alt.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ @@ -112,6 +139,7 @@ equalizer_test_DEPENDENCIES = $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = equalizer_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(equalizer_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ @@ -171,6 +199,18 @@ ximagesrc_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(ximagesrc_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -183,20 +223,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(equalizer_test_SOURCES) $(gdkpixbufsink_test_SOURCES) \ $(test_oss4_SOURCES) $(v4l2src_test_SOURCES) \ $(videobox_test_SOURCES) $(videocrop_test_SOURCES) \ @@ -211,6 +247,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -379,6 +432,7 @@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ +LIBRT = @LIBRT@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@ @@ -617,27 +671,35 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + equalizer-test$(EXEEXT): $(equalizer_test_OBJECTS) $(equalizer_test_DEPENDENCIES) $(EXTRA_equalizer_test_DEPENDENCIES) @rm -f equalizer-test$(EXEEXT) $(AM_V_CCLD)$(equalizer_test_LINK) $(equalizer_test_OBJECTS) $(equalizer_test_LDADD) $(LIBS) + gdkpixbufsink-test$(EXEEXT): $(gdkpixbufsink_test_OBJECTS) $(gdkpixbufsink_test_DEPENDENCIES) $(EXTRA_gdkpixbufsink_test_DEPENDENCIES) @rm -f gdkpixbufsink-test$(EXEEXT) $(AM_V_CCLD)$(gdkpixbufsink_test_LINK) $(gdkpixbufsink_test_OBJECTS) $(gdkpixbufsink_test_LDADD) $(LIBS) + test-oss4$(EXEEXT): $(test_oss4_OBJECTS) $(test_oss4_DEPENDENCIES) $(EXTRA_test_oss4_DEPENDENCIES) @rm -f test-oss4$(EXEEXT) $(AM_V_CCLD)$(test_oss4_LINK) $(test_oss4_OBJECTS) $(test_oss4_LDADD) $(LIBS) + v4l2src-test$(EXEEXT): $(v4l2src_test_OBJECTS) $(v4l2src_test_DEPENDENCIES) $(EXTRA_v4l2src_test_DEPENDENCIES) @rm -f v4l2src-test$(EXEEXT) $(AM_V_CCLD)$(v4l2src_test_LINK) $(v4l2src_test_OBJECTS) $(v4l2src_test_LDADD) $(LIBS) + videobox-test$(EXEEXT): $(videobox_test_OBJECTS) $(videobox_test_DEPENDENCIES) $(EXTRA_videobox_test_DEPENDENCIES) @rm -f videobox-test$(EXEEXT) $(AM_V_CCLD)$(videobox_test_LINK) $(videobox_test_OBJECTS) $(videobox_test_LDADD) $(LIBS) + videocrop-test$(EXEEXT): $(videocrop_test_OBJECTS) $(videocrop_test_DEPENDENCIES) $(EXTRA_videocrop_test_DEPENDENCIES) @rm -f videocrop-test$(EXEEXT) $(AM_V_CCLD)$(videocrop_test_LINK) $(videocrop_test_OBJECTS) $(videocrop_test_LDADD) $(LIBS) + videocrop2-test$(EXEEXT): $(videocrop2_test_OBJECTS) $(videocrop2_test_DEPENDENCIES) $(EXTRA_videocrop2_test_DEPENDENCIES) @rm -f videocrop2-test$(EXEEXT) $(AM_V_CCLD)$(videocrop2_test_LINK) $(videocrop2_test_OBJECTS) $(videocrop2_test_LDADD) $(LIBS) + ximagesrc-test$(EXEEXT): $(ximagesrc_test_OBJECTS) $(ximagesrc_test_DEPENDENCIES) $(EXTRA_ximagesrc_test_DEPENDENCIES) @rm -f ximagesrc-test$(EXEEXT) $(AM_V_CCLD)$(ximagesrc_test_LINK) $(ximagesrc_test_OBJECTS) $(ximagesrc_test_LDADD) $(LIBS) @@ -796,26 +858,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -827,15 +878,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -844,6 +891,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -985,18 +1047,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/tests/icles/equalizer-test.c b/tests/icles/equalizer-test.c index 41ee0f375b8109ef0eab19880776dba1eda167ac..3f9e50e252e59e6b3caf653e7cfe27f61e40b3d9 100644 --- a/tests/icles/equalizer-test.c +++ b/tests/icles/equalizer-test.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* diff --git a/tests/icles/gdkpixbufsink-test.c b/tests/icles/gdkpixbufsink-test.c index 272a07745e0923edcfb6503f8faab0f738ca3d2a..fbcb13abd5d9285d3aad9f7fb6054dfb9085b9b6 100644 --- a/tests/icles/gdkpixbufsink-test.c +++ b/tests/icles/gdkpixbufsink-test.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/tests/icles/test-oss4.c b/tests/icles/test-oss4.c index 1715c663ee72d4aaeaac71763247673d470e92b9..b2e4b96cb82ce4d34fdec5593e4ad0e12b34c02a 100644 --- a/tests/icles/test-oss4.c +++ b/tests/icles/test-oss4.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray diff --git a/tests/icles/v4l2src-test.c b/tests/icles/v4l2src-test.c index 8b9dfe3714163ba3109dc92d9389130da1a8b4e4..2162e5c5725adeaa12151818b5e74aa04de3e244 100644 --- a/tests/icles/v4l2src-test.c +++ b/tests/icles/v4l2src-test.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include <string.h> diff --git a/tests/icles/videobox-test.c b/tests/icles/videobox-test.c index 49697df986400936809085c489dd06996f476adf..0c85a35de937382b12c4c4b25353746f61cd6764 100644 --- a/tests/icles/videobox-test.c +++ b/tests/icles/videobox-test.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/tests/icles/videocrop-test.c b/tests/icles/videocrop-test.c index f44d48b6c0d776cd6794add704b0d280994b4e17..d95e9e4a79f14b308ba547480a458dff62a836bd 100644 --- a/tests/icles/videocrop-test.c +++ b/tests/icles/videocrop-test.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/tests/icles/videocrop2-test.c b/tests/icles/videocrop2-test.c index 58d19322f7996bf69774d2dc338f47172bb6b5ce..2c6801f3292aab518ae9e8823129145c97dd18f1 100644 --- a/tests/icles/videocrop2-test.c +++ b/tests/icles/videocrop2-test.c @@ -14,8 +14,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/tests/icles/ximagesrc-test.c b/tests/icles/ximagesrc-test.c index 12ec0dc986b9b805a4646db54ec7867a5f2a6595..fdcc580eee554cb91239b36b150c7564a358cbcd 100644 --- a/tests/icles/ximagesrc-test.c +++ b/tests/icles/ximagesrc-test.c @@ -13,8 +13,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -60,7 +60,7 @@ main (int argc, char **argv) } /* We want to get out after 5 seconds */ - g_timeout_add (5000, (GSourceFunc) terminate_playback, pipeline); + g_timeout_add_seconds (5, (GSourceFunc) terminate_playback, pipeline); g_main_loop_run (loop); diff --git a/win32/common/config.h b/win32/common/config.h index ff951be38bd3330ecb347bf2ad1e1e0dc774cd33..ebb77cc7bc4c2cea7bb3cfa80f0518d08996e18c 100644 --- a/win32/common/config.h +++ b/win32/common/config.h @@ -90,6 +90,9 @@ the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE +/* Define to 1 if you have the `clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME + /* Define to 1 if you have the `cosh' function. */ #undef HAVE_COSH @@ -139,6 +142,10 @@ */ #undef HAVE_DCGETTEXT +/* Define to 1 if you have the declaration of `V4L2_MEMORY_DMABUF', and to 0 + if you don't. */ +#undef HAVE_DECL_V4L2_MEMORY_DMABUF + /* Define to enable DirectSound plug-in (used by directsoundsink). */ #undef HAVE_DIRECTSOUND @@ -226,9 +233,6 @@ /* Define to enable Portable Network Graphics library (used by png). */ #undef HAVE_LIBPNG -/* soup gnome integration */ -#undef HAVE_LIBSOUP_GNOME - /* Whether libv4l2 is available for video buffer conversion */ #undef HAVE_LIBV4L2 @@ -334,6 +338,12 @@ /* Defined if the VP8 encoder is available */ #undef HAVE_VP8_ENCODER +/* Defined if the VP9 decoder is available */ +#undef HAVE_VP9_DECODER + +/* Defined if the VP9 encoder is available */ +#undef HAVE_VP9_ENCODER + /* Define to enable VPX decoder (used by vpx). */ #undef HAVE_VPX @@ -378,7 +388,7 @@ #define PACKAGE_NAME "GStreamer Good Plug-ins" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "GStreamer Good Plug-ins 1.0.8" +#define PACKAGE_STRING "GStreamer Good Plug-ins 1.1.2" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gst-plugins-good" @@ -387,7 +397,7 @@ #undef PACKAGE_URL /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.0.8" +#define PACKAGE_VERSION "1.1.2" /* directory where plugins are located */ #ifdef _DEBUG @@ -421,7 +431,7 @@ #undef TARGET_CPU /* Version number of package */ -#define VERSION "1.0.8" +#define VERSION "1.1.2" /* old wavpack API */ #undef WAVPACK_OLD_API