Commit a77eed05 authored by Sebastian Dröge's avatar Sebastian Dröge

Release 1.1.2

parent 812ec6ad
=== release 1.1.2 ===
2013-07-11 Sebastian Dröge <>
releasing 1.1.2
2013-07-09 15:34:04 +0200 Andoni Morales Alastruey <>
* sys/osxvideo/osxvideosink.h:
* sys/osxvideo/osxvideosink.m:
osxvideosink: defer the window handle setup to the main thread
2013-07-09 15:33:18 +0200 Andoni Morales Alastruey <>
* sys/osxvideo/osxvideosink.m:
osxvideosink: default to the main in case we are not setup yet
2013-07-07 22:16:05 +0200 Andoni Morales Alastruey <>
* sys/osxvideo/osxvideosink.m:
osxvideosink: close the internal window correctly
2013-07-07 21:14:22 +0200 Andoni Morales Alastruey <>
* sys/osxvideo/osxvideosink.h:
* sys/osxvideo/osxvideosink.m:
osxvideosink: only create the NS app thread for Cocoa once
The helper thread for Cocoa, in case no NS run loop is running,
should be started only once and shared across all the instances
2013-07-09 19:10:17 +0200 Matej Knopp <>
* gst/isomp4/qtdemux.c:
qtdemux: correct argument order in gst_util_uint64_scale_int_round
2013-07-09 17:42:59 -0400 Olivier Crête <>
* gst/rtpmanager/gstrtpmux.c:
rtpmux: Keep caps order from the peer or the filter
2013-07-09 12:42:17 +0200 Sebastian Dröge <>
* gst/videomixer/videomixer2.c:
videomixer: Fix handling of buffers without a duration
We'll have to pop buffer from collectpads and store it
internally only to get the timestamp of the next buffer.
If we continue to keep it in collectpads, no new buffer
to calculate the end time will ever arrive.
2013-07-09 11:53:07 +0200 Sebastian Dröge <>
* gst/videomixer/videomixer2.c:
videomixer: Fix negotiation with 0/1 framerates
2013-07-09 11:17:59 +0200 Jonas Holmberg <>
* gst/matroska/matroska-demux.c:
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 <>
* gst/multipart/multipartmux.c:
multipartmux: Re-set need_segment flag after FLUSH_STOP
2013-07-05 11:51:04 +0200 Michael Olbrich <>
* 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.
2013-07-08 14:15:10 +0200 Sebastian Dröge <>
* 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 <>
* gst/rtp/gstrtph263ppay.c:
rtph263ppay: Don't pass upstream filter caps to downstream
Downstream usually can't accept video/x-h263 but only application/x-rtp,
so we would always get an empty intersection here.
2013-07-05 22:00:37 +0200 Piotr Drąg <>
* po/
po: update
2013-07-02 11:13:25 +0200 Wim Taymans <>
* gst/rtsp/gstrtspsrc.c:
rtspsrc: avoid some strdup
2013-07-02 10:37:50 +0200 Wim Taymans <>
* gst/rtsp/gstrtspsrc.c:
rtspsrc: add select-stream signal
Add a signal to let the app select what streams will be selected.
2013-07-02 10:37:35 +0200 Wim Taymans <>
* gst/rtsp/gstrtspsrc.c:
rtspsrc: avoid strdup
2013-07-02 10:12:17 +0200 J. Rick Ramstetter <>
* gst/rtp/README:
* gst/rtpmanager/gstrtpbin.c:
rtp: Fix documentation and comments to use rtpbin instead of old gstrtpbin
2013-07-01 16:55:01 +0200 Michael Olbrich <>
* 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
2013-06-20 09:41:48 -0300 Andoni Morales Alastruey <>
* ext/soup/gstsouphttpsrc.c:
* ext/soup/gstsouphttpsrc.h:
souphttpsrc: also consider stop positions in seeks
Use seek stop position as range end for requests
2013-06-19 14:06:40 -0300 Thiago Santos <>
* 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.
2013-07-01 17:28:55 +0200 Wim Taymans <>
* 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 <>
* ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
gdkpixbufoverlay: Allow negative offsets to specify offset from bottom/right
2013-06-30 21:01:20 +0200 Matej Knopp <>
* gst/isomp4/
* gst/isomp4/qtdemux.c:
qtdemux: compute framerate from average sample duration
2013-06-25 21:16:38 +0200 Alban Browaeys <>
* gst/flv/gstflvdemux.c:
flvdemux: Add flvversion 1 to the flash-video caps
This allows using avdec_flv which requires this field to be
present in the caps. FLV only supports flash-video version 1
right now.
2013-07-01 11:37:00 +0200 Sebastian Dröge <>
* gst/interleave/deinterleave.c:
deinterleave: Don't hold object lock while sending events downstream
Based on a patch by Kishore Arepalli <>
2013-07-01 10:59:07 +0200 Sebastian Dröge <>
* gst/matroska/matroska-demux.c:
matroskademux: Add MPEG4 video profile/level to the caps
2013-07-01 10:56:28 +0200 Sebastian Dröge <>
* gst/matroska/matroska-demux.c:
matroskademux: Add AAC profile/level to the caps
2013-06-28 15:21:56 +0200 Wim Taymans <>
* 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 <>
* gst/rtp/gstrtptheorapay.c:
theorapay: small cleanups
2013-06-28 12:08:19 +0200 Wim Taymans <>
* gst/rtp/gstrtptheorapay.c:
theorapay: handle streamheaders as well
2013-06-28 12:06:21 +0200 Wim Taymans <>
* 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
2013-06-28 11:43:17 +0200 Wim Taymans <>
* gst/rtp/gstrtpvorbispay.c:
vorbispay: handle streamheader as well
Take config strings from the streamheader when we can
2013-06-27 07:40:29 +0200 David Svensson Fors <>
* gst/rtp/gstrtph264pay.c:
rtph264pay: avoid double buffer unmap on error
2013-06-27 17:02:14 +0200 Wim Taymans <>
* 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 <>
* 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.
2013-06-27 16:15:45 +0200 Wim Taymans <>
* 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 <>
* 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 <>
* 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.
2013-06-26 14:58:53 +0200 Wim Taymans <>
* gst/rtsp/gstrtspsrc.c:
* gst/rtsp/gstrtspsrc.h:
rtspsrc: avoid some flushes
2013-06-26 14:41:00 +0200 Wim Taymans <>
* 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 <>
* 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 <>
* gst/rtsp/gstrtspsrc.c:
rtspsrc: add some more docs to handle-request signal
2013-06-10 17:20:30 -0400 Youness Alaoui <>
* 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 <>
* gst/rtsp/gstrtspsrc.c:
* gst/rtsp/gstrtspsrc.h:
rtspsrc: Expose use-pipeline-clock property
2013-06-24 17:11:35 +0200 Wim Taymans <>
* gst/udp/gstmultiudpsink.c:
udpsink: bind to the given interface
Actually call BINDTODEVICE to bind to the interface as given by the
2013-06-22 10:59:17 +0200 Sebastian Dröge <>
* 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 <>
* 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 <>
* ext/vpx/gstvp9dec.c:
vp9dec: Update default postproc settings from vp9_dx_iface.c
2013-06-21 13:11:32 +0200 Sebastian Dröge <>
* 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 <>
* ext/vpx/
* 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>
* 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.
2013-06-20 23:16:17 -0400 Olivier Crête <>
* 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 <>
* 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 <>
* sys/v4l2/gstv4l2.c:
v4l2: don't redefine the PERFORMANCE debug variable
It is already defined in core.
2013-06-20 14:43:47 +0200 Wim Taymans <>
* gst/rtsp/gstrtspsrc.c:
rtspsrc: fix race in state change to paused
When we go to paused, we first flush the connection and then send the pause
command. As a result of the flushing, the scheduled paused command can get
lost. Wait until the connection is completely flushed and the rtsp task is
waiting before issuing the paused or playing request.
2013-06-20 11:31:22 +0200 Wim Taymans <>
* gst/isomp4/qtdemux.c:
qtdemux: handle SEGMENT query
2013-06-19 12:37:31 +0200 Sjoerd Simons <>
* 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.
2013-06-19 10:30:56 +0200 Kishore Arepalli <>
* gst/avi/gstavidemux.c:
avidemux: duration query returns zero for DV video in avi
2013-06-19 11:06:37 +0200 Sebastian Dröge <>
* 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
2013-06-11 15:02:21 +0100 Alex Ashley <>
* 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 <>
* 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 <>
* 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 <>
* gst/rtp/gstrtpmp2tdepay.c:
rtpmp2tdepay: accept mislabelled streams from GStreamer 0.10 as well
The mp2t payloader in 0.10 mislabelled the streams as MP2T-ES
instead of MP2T, so accept that as well for compatibility reasons.
2013-06-16 05:40:13 +0200 Wim Taymans <>
* 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.
2013-06-14 14:09:50 +0200 Bruno Gonzalez <>
* gst/matroska/matroska-demux.c:
matroskademux: Don't unlock stream lock without locking it first
2013-06-13 16:00:33 +0200 Wim Taymans <>
* 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-12 16:27:24 -0600 Brendan Long <>
pulsesink: Require PulseAudio >= 2.0
This is needed for pa_format_info_get_prop_* functions.
2013-06-13 14:23:08 +0530 Arun Raghavan <>
* 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-06-13 12:40:15 +0530 Arun Raghavan <>
* 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
Eventually, we could bump the minimum requirement to 2.0 or above.
2013-06-12 18:23:46 +0200 Sebastian Dröge <>
* gst/videomixer/videomixer2.c:
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.
2013-01-09 09:39:33 +0000 Tim-Philipp Müller <>
* 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.
2013-06-11 22:12:58 +0200 Stefan Sauer <>
* gst/audiofx/audiopanoramaorc-dist.c:
* gst/audiofx/audiopanoramaorc-dist.h:
audiopanorama: add prebuilt files
2013-06-11 20:27:51 +0200 Stefan Sauer <>
* 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-06-10 21:15:20 +0200 Stefan Sauer <>
* 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-06-09 20:35:18 +0200 Stefan Sauer <>
* gst/audiofx/
* 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-06-11 19:24:49 +0200 Mathieu Duponchelle <>
* 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.
2013-06-11 19:22:20 +0200 Mathieu Duponchelle <>
* 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.
2013-06-11 13:54:53 +0200 Sebastian Dröge <>
* gst/matroska/matroska-demux.c:
matroskademux: Send stream headers after the segment event
2013-06-11 12:26:24 +0200 Sebastian Dröge <>
* gst/isomp4/qtdemux.c:
qtdemux: Do allocation query after exposing all pads and no-more-pads
Also configure video streams as early as possible.
but not fixing that.
2013-06-11 12:25:46 +0200 Sebastian Dröge <>
* gst/flv/gstflvdemux.c:
flvdemux: Don't forward CAPS events from upstream
Just use the default pad event handler.
2013-05-26 08:18:04 +0530 Arun Raghavan <>
* 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
2013-05-23 21:39:08 +0530 Arun Raghavan <>
* 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.
2013-05-10 11:32:44 +0530 Arun Raghavan <>
* 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.
2013-06-09 20:29:09 +0200 Stefan Sauer <>
* gst/audiofx/audiopanorama.c:
* gst/audiofx/audiopanorama.h: