platform/upstream/gstreamer.git
10 years agoaudiomixer: We're only EOS if all our pads are actually EOS
Sebastian Dröge [Thu, 18 Dec 2014 22:33:58 +0000 (23:33 +0100)]
audiomixer: We're only EOS if all our pads are actually EOS

Having a buffer or not on the pad is irrelevant.

10 years agoaudiomixer: The pad's size is always supposed to be the whole buffer size
Sebastian Dröge [Thu, 18 Dec 2014 21:42:14 +0000 (22:42 +0100)]
audiomixer: The pad's size is always supposed to be the whole buffer size

And the offset the offset into that buffer. Changing the size will
cause all kinds of assumptions to fail and cause crashes.

10 years agovideoaggregator: Don't try to map NULL buffers
Sebastian Dröge [Thu, 18 Dec 2014 21:04:38 +0000 (22:04 +0100)]
videoaggregator: Don't try to map NULL buffers

10 years agovideoaggregator: Make sure to always update the pad's videoinfo together with buffers
Sebastian Dröge [Thu, 18 Dec 2014 21:03:04 +0000 (22:03 +0100)]
videoaggregator: Make sure to always update the pad's videoinfo together with buffers

Otherwise the videoinfo and the buffer content can go out of sync.

10 years agocompositor: Fix memory leak when no buffer is available for a pad currently
Sebastian Dröge [Thu, 18 Dec 2014 10:48:37 +0000 (11:48 +0100)]
compositor: Fix memory leak when no buffer is available for a pad currently

CID 1258718

10 years agoAutomatic update of common submodule
Sebastian Dröge [Thu, 18 Dec 2014 09:54:05 +0000 (10:54 +0100)]
Automatic update of common submodule

From ef1ffdc to f2c6b95

10 years agox265enc: reuse the gstvideo proxy getcaps
Thiago Santos [Thu, 18 Dec 2014 01:01:23 +0000 (22:01 -0300)]
x265enc: reuse the gstvideo proxy getcaps

The caps query is implementing the same logic as the default
handler from the base class. Reuse it to simplify code.

10 years agoopusenc: plug ref leak of template caps
Thiago Santos [Thu, 18 Dec 2014 00:52:13 +0000 (21:52 -0300)]
opusenc: plug ref leak of template caps

the pad template caps is already a new ref. No need to copy.

10 years agoaggregator: Add function to allow subclasses to set their own latency
Sebastian Dröge [Wed, 17 Dec 2014 18:51:32 +0000 (19:51 +0100)]
aggregator: Add function to allow subclasses to set their own latency

For audiomixer this is one blocksize, for videoaggregator this should
be the duration of one output frame.

10 years agoaudiomixer: Make sure to not have pads being behind the current offset
Sebastian Dröge [Wed, 17 Dec 2014 18:37:22 +0000 (19:37 +0100)]
audiomixer: Make sure to not have pads being behind the current offset

We would break sync between the different streams then.

10 years agoaggregator: Add a timeout parameter to ::aggregate()
Sebastian Dröge [Wed, 17 Dec 2014 16:54:09 +0000 (17:54 +0100)]
aggregator: Add a timeout parameter to ::aggregate()

When this is TRUE, we really have to produce output. This happens
in live mixing mode when we have to output something for the current
time, no matter if we have enough input or not.

10 years agoaudiomixer: Add queues after the (live) sources in the unit test
Sebastian Dröge [Wed, 17 Dec 2014 17:20:15 +0000 (18:20 +0100)]
audiomixer: Add queues after the (live) sources in the unit test

10 years agoavfvideosrc: improve timestamping and latency reporting
Alessandro Decina [Wed, 17 Dec 2014 01:20:54 +0000 (12:20 +1100)]
avfvideosrc: improve timestamping and latency reporting

Use AVF provided timings to timestamp output buffers. Use the running time at
the time the first buffer is produced to base timestamps on. Report 1-frame
latency based on the negotiated framerate instead of hardcoding 4ms latency.

10 years agodshowdecwrapper: Remove dependency on ATL
Raimo Järvi [Tue, 16 Dec 2014 03:24:26 +0000 (22:24 -0500)]
dshowdecwrapper: Remove dependency on ATL

This fixes compiling with Visual C++ Express
that doesn't include ATL.

https://bugzilla.gnome.org/show_bug.cgi?id=677223

10 years agodshowsrcwrapper: Added support for image/jpeg and h264
Matthew Bader [Fri, 5 Dec 2014 04:30:23 +0000 (23:30 -0500)]
dshowsrcwrapper: Added support for image/jpeg and h264

https://bugzilla.gnome.org/show_bug.cgi?id=741188

10 years agotests: fix aggregator unit test after property renaming
Tim-Philipp Müller [Tue, 16 Dec 2014 19:49:35 +0000 (19:49 +0000)]
tests: fix aggregator unit test after property renaming

10 years agoaudiomixer: Implement get_next_time()
Sebastian Dröge [Tue, 16 Dec 2014 16:37:12 +0000 (17:37 +0100)]
audiomixer: Implement get_next_time()

10 years agoaggregator: Some minor cleanup
Sebastian Dröge [Tue, 16 Dec 2014 16:33:01 +0000 (17:33 +0100)]
aggregator: Some minor cleanup

10 years agoaggregator: make the src pad task drive the pipeline for live pipelines
Matthew Waters [Fri, 5 Dec 2014 07:19:54 +0000 (18:19 +1100)]
aggregator: make the src pad task drive the pipeline for live pipelines

This removes the uses of GAsyncQueue and replaces it with explicit
GMutex, GCond and wakeup count which is used for the non-live case.

For live pipelines, the aggregator waits on the clock until either
data arrives on all sink pads or the expected output buffer time
arrives plus the timeout/latency at which time, the subclass
produces a buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=741146

10 years agovideoaggregator: always try to use newer buffers
Matthew Waters [Mon, 8 Dec 2014 04:18:25 +0000 (15:18 +1100)]
videoaggregator: always try to use newer buffers

instead of dropping them for being too old.  This ensures that
the newest buffer is always used for rendering

10 years agorectangle: clear rectangle struct before use
Wim Taymans [Tue, 16 Dec 2014 12:35:14 +0000 (13:35 +0100)]
rectangle: clear rectangle struct before use

10 years agoopusparse: fix frame size determination
Vincent Penquerc'h [Mon, 15 Dec 2014 15:21:50 +0000 (15:21 +0000)]
opusparse: fix frame size determination

https://bugzilla.gnome.org/show_bug.cgi?id=741321

10 years agomxfdemux: Use IndexTableSegments.
Mathieu Duponchelle [Thu, 19 Jun 2014 19:32:09 +0000 (21:32 +0200)]
mxfdemux: Use IndexTableSegments.

This speeds up seeking drastically.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732294

10 years agotests/aggregator: Use correct type when setting property
Sebastian Rasmussen [Sun, 14 Dec 2014 00:29:26 +0000 (01:29 +0100)]
tests/aggregator: Use correct type when setting property

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=741495

10 years agompegtsbase: scan more bytes to find initial PCRs
Sudip Jain [Thu, 8 May 2014 05:11:03 +0000 (10:41 +0530)]
mpegtsbase: scan more bytes to find initial PCRs

Fixes playback of Samsung-Colorful-Variety-1080i.ts.

https://bugzilla.gnome.org/show_bug.cgi?id=729768

10 years agoRevert "openh264: fix to work with released versions and master of upstream"
Tim-Philipp Müller [Fri, 12 Dec 2014 20:57:28 +0000 (20:57 +0000)]
Revert "openh264: fix to work with released versions and master of upstream"

This reverts commit 15394aa70543f55c54fa8a474805224f4138f76c.

The latest release (v1.1) does not have pkg-config support
yet, so this plugin won't be built with the latest release.
Cerbero uses the latest release, so this makes cerbero
builds fail, which expect the plugin to be built.

We can re-commit this once there's a release that includes
pkg-config support.

10 years agoopenh264: fix to work with released versions and master of upstream
Zaheer Abbas Merali [Fri, 12 Dec 2014 18:05:23 +0000 (10:05 -0800)]
openh264: fix to work with released versions and master of upstream

10 years agowatchdog: GstElement->state is protected with the OBJECT_LOCK
Thibault Saunier [Fri, 12 Dec 2014 10:21:27 +0000 (11:21 +0100)]
watchdog: GstElement->state is protected with the OBJECT_LOCK

Not the STATE_LOCK.

gst_watchdog_feed was already always called with the OBJECT_LOCK taken.

10 years agovideoaggregator: Hide some more fields from the API
Thibault Saunier [Thu, 27 Nov 2014 19:48:24 +0000 (20:48 +0100)]
videoaggregator: Hide some more fields from the API

+ Add some documentation

10 years agoonvif: fix 'make dist'
Tim-Philipp Müller [Fri, 12 Dec 2014 00:30:21 +0000 (00:30 +0000)]
onvif: fix 'make dist'

10 years agoadaptivedemux: fix seek event handling
Thiago Santos [Fri, 12 Dec 2014 00:01:48 +0000 (21:01 -0300)]
adaptivedemux: fix seek event handling

Properly do seeking and avoid only seeking when the segment was updated.
It would cause seeks after the stream was EOS to fail, for example.

https://bugzilla.gnome.org/show_bug.cgi?id=738920

10 years agortponviftimestamp: Automatically discover the ntp-offset by default.
Olivier Crête [Tue, 18 Nov 2014 00:26:53 +0000 (19:26 -0500)]
rtponviftimestamp: Automatically discover the ntp-offset by default.

This only works if no packets are pushed in before the pipeline goes
to playing. So it helps to have a live source.

https://bugzilla.gnome.org/show_bug.cgi?id=731769

10 years agoadd rtponvifextract element
Guillaume Desmottes [Thu, 5 Jun 2014 13:06:33 +0000 (15:06 +0200)]
add rtponvifextract element

https://bugzilla.gnome.org/show_bug.cgi?id=731769

10 years agoadd rtponviftimestamp element
Guillaume Desmottes [Mon, 28 Apr 2014 09:07:17 +0000 (11:07 +0200)]
add rtponviftimestamp element

https://bugzilla.gnome.org/show_bug.cgi?id=731769

10 years agoglfilter: fix position/texcoord attrib index usage
Wang Xin-yu (王昕宇) [Mon, 8 Dec 2014 03:02:51 +0000 (11:02 +0800)]
glfilter: fix position/texcoord attrib index usage

https://bugzilla.gnome.org/show_bug.cgi?id=741231

10 years agoglfiltercube: use a shader everywhere
Matthew Waters [Thu, 11 Dec 2014 07:17:02 +0000 (18:17 +1100)]
glfiltercube: use a shader everywhere

10 years agogl: fixup vao and vbo usage for legacy GL
Matthew Waters [Thu, 11 Dec 2014 07:15:02 +0000 (18:15 +1100)]
gl: fixup vao and vbo usage for legacy GL

10 years agogleffects: don't abort when setting the effect to 0,1,2
Matthew Waters [Thu, 11 Dec 2014 03:57:18 +0000 (14:57 +1100)]
gleffects: don't abort when setting the effect to 0,1,2

10 years agogl/examples: fixup sdl example for gluPerspective removal
Matthew Waters [Wed, 10 Dec 2014 01:48:33 +0000 (12:48 +1100)]
gl/examples: fixup sdl example for gluPerspective removal

10 years agobluez: support compile-time distinction between bluez4 and bluez5
Nick Stoughton [Tue, 9 Dec 2014 16:38:55 +0000 (08:38 -0800)]
bluez: support compile-time distinction between bluez4 and bluez5

Signed-off-by: Nick Stoughton <nstoughton@aether.com>
https://bugzilla.gnome.org/show_bug.cgi?id=738626

10 years agoadaptivedemux: check the return from update_manifest correctly
Thiago Santos [Wed, 10 Dec 2014 21:23:02 +0000 (18:23 -0300)]
adaptivedemux: check the return from update_manifest correctly

It is a GstFlowReturn and not a boolean

10 years agodashdemux: Change period when setting by period id.
David Waring [Wed, 10 Dec 2014 09:24:17 +0000 (09:24 +0000)]
dashdemux: Change period when setting by period id.

Make gst_mpd_client_set_period_id set the current period index when it finds a
period with a matching period id.

https://bugzilla.gnome.org/show_bug.cgi?id=741322

10 years agomssdemux: fix reverse playback fragment tracking
Thiago Santos [Wed, 10 Dec 2014 18:27:49 +0000 (15:27 -0300)]
mssdemux: fix reverse playback fragment tracking

Rework reverse fragment traversing with repetition fields to prevent
NULL pointer deref and avoid never advancing a fragment as the variable
is unsigned and would always be non-negative.

CID #1257627
CID #1257628

10 years agovtenc: bump rank to PRIMARY
Alessandro Decina [Wed, 10 Dec 2014 13:02:26 +0000 (00:02 +1100)]
vtenc: bump rank to PRIMARY

10 years agovtenc: negotiate profile and level with downstream
Alessandro Decina [Wed, 10 Dec 2014 11:36:53 +0000 (22:36 +1100)]
vtenc: negotiate profile and level with downstream

10 years agovtenc: report latency
Alessandro Decina [Wed, 10 Dec 2014 08:44:01 +0000 (19:44 +1100)]
vtenc: report latency

10 years agodashdemux: Find current segment in the streams that have just been setup
David Waring [Fri, 5 Dec 2014 16:20:08 +0000 (16:20 +0000)]
dashdemux: Find current segment in the streams that have just been setup

Using demux->streams will just skip the whole loop as demux->streams will
always be NULL at that point

https://bugzilla.gnome.org/show_bug.cgi?id=741285

10 years agomirror: Needs remap when the mode changes.
Mathieu Duponchelle [Tue, 9 Dec 2014 04:03:11 +0000 (05:03 +0100)]
mirror: Needs remap when the mode changes.

This caused the user to think the mode wasn't taken into account.

10 years agoRevert "h264parse: expose compatible profiles to downstream"
Mathieu Duponchelle [Tue, 9 Dec 2014 03:28:17 +0000 (04:28 +0100)]
Revert "h264parse: expose compatible profiles to downstream"

This reverts commit 3910cbe7ce1a67ed5506f87e4c5a005c168d0e6c.

10 years agoadaptivedemux: do not try to unlock not locked mutex
Thiago Santos [Mon, 8 Dec 2014 11:53:00 +0000 (08:53 -0300)]
adaptivedemux: do not try to unlock not locked mutex

A misplaced unlock was causing an assertion for playback with a
set stop time

10 years agogst-libs: build order: uridownloader before adaptivedemux
Thiago Santos [Mon, 8 Dec 2014 11:24:17 +0000 (08:24 -0300)]
gst-libs: build order: uridownloader before adaptivedemux

Otherwise make install fails

10 years agovtenc: Add properties to specify the maximum keyframe interval in frames and seconds
Sebastian Dröge [Fri, 5 Dec 2014 15:33:20 +0000 (16:33 +0100)]
vtenc: Add properties to specify the maximum keyframe interval in frames and seconds

10 years agovtenc: Fix conversion of the bitrate property and our internal bitrate storage
Sebastian Dröge [Fri, 5 Dec 2014 15:15:23 +0000 (16:15 +0100)]
vtenc: Fix conversion of the bitrate property and our internal bitrate storage

The property is in kbit/s and we store it in bit/s, so just multiply and
divide by 1000. No need to put a factor of 8 in there.

kVTCompressionPropertyKey_AverageBitRate is also in bit/s according to
its documentation.

10 years agointervideosrc: Fix a memory leak
Arun Raghavan [Fri, 5 Dec 2014 07:42:59 +0000 (13:12 +0530)]
intervideosrc: Fix a memory leak

Frees the source ARGB black frame that we use to create the black frame
in our target format.

10 years agoh264parse: expose compatible profiles to downstream
Sreerenj Balachandran [Tue, 2 Dec 2014 08:10:39 +0000 (10:10 +0200)]
h264parse: expose compatible profiles to downstream

Some video bitstreams report a too restrictive set of profiles. If a video
decoder was to strictly follow the indicated profile, it wouldn't support that
stream, whereas it could in theory and in practice. So we should relax the
profile restriction for allowing the decoder to get connected with parser.

https://bugzilla.gnome.org/show_bug.cgi?id=739992

10 years agodshowvideosink: Port to 1.0 and new GLib threading API
Chun-wei Fan [Wed, 1 May 2013 03:17:02 +0000 (11:17 +0800)]
dshowvideosink: Port to 1.0 and new GLib threading API

This updates the dshowvideosink to work with the GStreamer 1.0.x APIs, and
avoids the use of deprecated GLib threading API that are now used since
GLib 2.32+

https://bugzilla.gnome.org/show_bug.cgi?id=699364

10 years agomssdemux: add live support
Thiago Santos [Thu, 4 Dec 2014 04:46:43 +0000 (01:46 -0300)]
mssdemux: add live support

Implement the functions of adaptivedemux to have live support
enabled. This allows mssdemux to refresh the Manifest periodically

10 years agodshowdecwrapper: Port to 1.x
Matthew Bader [Thu, 4 Dec 2014 20:52:44 +0000 (15:52 -0500)]
dshowdecwrapper: Port to 1.x

https://bugzilla.gnome.org/show_bug.cgi?id=740945

10 years agovcdsrc: port to 1.
Reynaldo H. Verdejo Pinochet [Mon, 1 Dec 2014 19:40:24 +0000 (16:40 -0300)]
vcdsrc: port to 1.

https://bugzilla.gnome.org/show_bug.cgi?id=547661

10 years agomssdemux: fix getting current position in segments when after last one
Thiago Santos [Thu, 4 Dec 2014 15:21:04 +0000 (12:21 -0300)]
mssdemux: fix getting current position in segments when after last one

For live streams this makes a difference when resyncing after a
Manifest refresh, otherwise it doesn't know where to restart

10 years agomssdemux: support manifests with repetition fragments
Thiago Santos [Wed, 3 Dec 2014 02:27:29 +0000 (23:27 -0300)]
mssdemux: support manifests with repetition fragments

Read the "r" attribute from fragments to support fragments nodes
that use repetition to have a shorter Manifest xml.

Instead of doing:
<c d="100" />
<c d="100" />

You can use:
<c d="100" r="2" />

10 years agomssdemux: port to adaptivedemux base class
Thiago Santos [Sat, 22 Nov 2014 04:01:50 +0000 (01:01 -0300)]
mssdemux: port to adaptivedemux base class

10 years agodshowsrcwrapper: Fixed null caps comparison
Matthew Bader [Wed, 3 Dec 2014 21:13:17 +0000 (16:13 -0500)]
dshowsrcwrapper: Fixed null caps comparison

https://bugzilla.gnome.org/show_bug.cgi?id=741086

10 years agohlssink: remove unnecessary title on EXTINF tag
Flávio Ribeiro [Thu, 4 Dec 2014 04:12:08 +0000 (02:12 -0200)]
hlssink: remove unnecessary title on EXTINF tag

According to the HLS spec the remainder of the line following
the comma on EXTINF tag is not required. This patch removes
the fake title and saves some bytes on the playlist.

https://bugzilla.gnome.org/show_bug.cgi?id=741096

10 years agogl: Rename gst-launch-0.10 to gst-launch-1.0 in docs
Ramprakash Jelari [Thu, 4 Dec 2014 15:07:51 +0000 (20:37 +0530)]
gl: Rename gst-launch-0.10 to gst-launch-1.0 in docs

10 years agodecklink: Fix make distcheck
Sebastian Dröge [Thu, 4 Dec 2014 14:42:55 +0000 (15:42 +0100)]
decklink: Fix make distcheck

And properly dist all headers and source files.

10 years agoadaptivedemux: release threads waiting for manifest update on shutdown
Thiago Santos [Wed, 3 Dec 2014 21:31:06 +0000 (18:31 -0300)]
adaptivedemux: release threads waiting for manifest update on shutdown

For live streams, also unblock threads that might be waiting for a manifest
update when stopping the pipeline.

Also add some more debug messages

10 years agoadaptivedemux: use gst_task_stop instead of gst_task_pause
Thiago Santos [Wed, 3 Dec 2014 16:52:07 +0000 (13:52 -0300)]
adaptivedemux: use gst_task_stop instead of gst_task_pause

To avoid race conditions with gst_task_stop(); gst_task_join() with
another thread doing gst_task_pause(), the joining thread would be
waiting for the task to stop but it would never happen. So just
use gst_task_stop() everywhere to prevent more mutexes

10 years agoadaptivedemux: fix deadlock when stopping streams
Thiago Santos [Wed, 3 Dec 2014 15:48:42 +0000 (12:48 -0300)]
adaptivedemux: fix deadlock when stopping streams

Remember to unlock the manifest's lock when leaving the download task.

10 years agodecklink: Fix compiler warnings with gcc in the dispatcher
Sebastian Dröge [Wed, 3 Dec 2014 15:01:11 +0000 (16:01 +0100)]
decklink: Fix compiler warnings with gcc in the dispatcher

10 years agoglsyncmeta: add G_END_DECLS
Philippe Normand [Wed, 3 Dec 2014 14:30:43 +0000 (15:30 +0100)]
glsyncmeta: add G_END_DECLS

10 years agodecklink: Update Windows SDK headers to 10.3.1
Sebastian Dröge [Wed, 3 Dec 2014 14:07:16 +0000 (15:07 +0100)]
decklink: Update Windows SDK headers to 10.3.1

No idea where the DecklinkAPIDispatch.cpp comes from on Windows,
but this should still work. Will just become a problem once we
use other parts of the API.

10 years agodecklink: Update OS X SDK headers to 10.3.1
Sebastian Dröge [Wed, 3 Dec 2014 13:42:43 +0000 (14:42 +0100)]
decklink: Update OS X SDK headers to 10.3.1

10 years agodecklink: Update Linux SDK headers to 10.3.1
Sebastian Dröge [Wed, 3 Dec 2014 13:39:13 +0000 (14:39 +0100)]
decklink: Update Linux SDK headers to 10.3.1

10 years agoadaptivedemux: remove unused error variable
Thiago Santos [Wed, 3 Dec 2014 13:06:09 +0000 (10:06 -0300)]
adaptivedemux: remove unused error variable

CID #1256556

10 years agoadaptivedemux: remove more get_duration checks
Thiago Santos [Wed, 3 Dec 2014 12:45:58 +0000 (09:45 -0300)]
adaptivedemux: remove more get_duration checks

Subclasses must implement get_duration function. If they do not know
the duration they can return GST_CLOCK_TIME_NONE

10 years agoadaptivedemux: all subclasses must implement get_duration
Thiago Santos [Wed, 3 Dec 2014 12:40:34 +0000 (09:40 -0300)]
adaptivedemux: all subclasses must implement get_duration

CID #1256557

10 years agoadaptivedemux: make sure to always stop the stream on EOS
Thiago Santos [Wed, 3 Dec 2014 02:29:20 +0000 (23:29 -0300)]
adaptivedemux: make sure to always stop the stream on EOS

For On-Demand streams, always stop the tasks for streams that reached
EOS

10 years agoglcontext: try cgl before glx
Julien Isorce [Wed, 3 Dec 2014 08:02:58 +0000 (08:02 +0000)]
glcontext: try cgl before glx

It was already done by commit
f506e80686eedc66912583db11914ec3f713b478
but it has been broken by commit
45ec777cea0e69b2597d1ec02b18ec31d618c920

10 years agotests: add glimagesink unit test to .gitignore
Julien Isorce [Wed, 3 Dec 2014 07:46:50 +0000 (07:46 +0000)]
tests: add glimagesink unit test to .gitignore

10 years agodashdemux: fix double unref of object
Thiago Santos [Tue, 2 Dec 2014 18:52:54 +0000 (15:52 -0300)]
dashdemux: fix double unref of object

the datetime is already released by the end of the function

10 years agodashdemux: Find the current period in a live stream
David Waring [Fri, 10 Oct 2014 10:24:08 +0000 (11:24 +0100)]
dashdemux: Find the current period in a live stream

Start from the correct period on a live stream

https://bugzilla.gnome.org/show_bug.cgi?id=737421

10 years agodashdemux: Fix period selection for live streams
David Waring [Tue, 2 Dec 2014 10:06:00 +0000 (10:06 +0000)]
dashdemux: Fix period selection for live streams

Fix period selection and properly error out when update cannot be done

https://bugzilla.gnome.org/show_bug.cgi?id=725298

10 years agompegtbase: Improve last PCR detection
Edward Hervey [Wed, 9 Jul 2014 08:11:40 +0000 (10:11 +0200)]
mpegtbase: Improve last PCR detection

When dealing with random-access content (such as files), we initially
search for the last PCR in order to figure out duration and to handle
other position estimation such as those used in seeking.

Previously, the code looking for that last PCR would search in the last
640kB of the file going forward, and stop at the first PCR encountered.
The problem with that was two-fold:
* It wouldn't really be the last PCR (it would be the first one within
  those last 640kB. In case of VBR files, this would put off duration
  and seek code slightly.
* It would fail on files with bitrates higher than 52Mbit/s (not common)

Instead this patch modifies that code by:
* Scanning over the last 2048kB (allows to cope with streams up to 160Mbit/s)
* Starts by the end of the file, going over chunks of 300 MPEG-TS packets
* Doesn't stop at the first PCR detected in a chunk, but instead records all
  of them, and only stop searching if there was "at least" one PCR within
  that chunk

This should improve duration reporting and seeking operations on VBR files

https://bugzilla.gnome.org/show_bug.cgi?id=708532

10 years agotsdemux: Only activate warning for real streams
Edward Hervey [Mon, 1 Dec 2014 10:47:29 +0000 (11:47 +0100)]
tsdemux: Only activate warning for real streams

streams with stream_type 0xff are PCR-only streams, it's normal not
to have a pad for them.

10 years agox265enc: add qp property
Jürgen Slowack [Mon, 1 Dec 2014 11:14:20 +0000 (12:14 +0100)]
x265enc: add qp property

QP property enables CQP mode and sets the QP for P slices.

10 years agogl/cocoa: Fix example on Mac OS X 10.10
Thijs Vermeir [Mon, 1 Dec 2014 09:59:32 +0000 (10:59 +0100)]
gl/cocoa: Fix example on Mac OS X 10.10

Using NSApp directly seems to confuse something, as the compiler
was expecting an id<NSFileManagerDelegate>. Switched to using
[NSApplication sharedApplication], and specified the delegate
protocol on the window class as well.

Similar to https://bugzilla.gnome.org/show_bug.cgi?id=738740

10 years agogst-libs: Fix dependency build
Edward Hervey [Mon, 1 Dec 2014 09:27:43 +0000 (10:27 +0100)]
gst-libs: Fix dependency build

adaptivedemux depends on uridownloader and video depends on base

10 years agoconfigure: Do comparisons in a portable way with = instead of ==
Thomas Klausner [Mon, 1 Dec 2014 08:48:41 +0000 (09:48 +0100)]
configure: Do comparisons in a portable way with = instead of ==

https://bugzilla.gnome.org/show_bug.cgi?id=740953

10 years agoadaptivedemux: reworking live manifest update wait
Thiago Santos [Mon, 1 Dec 2014 00:54:38 +0000 (21:54 -0300)]
adaptivedemux: reworking live manifest update wait

Check if the stream is live before checking if it is EOS as a live
stream might be considered EOS when it just needs to wait for a manifest
update to proceed with the next fragments

10 years agoadaptivedemux: fix manifest update locking
Thiago Santos [Sat, 29 Nov 2014 13:28:09 +0000 (10:28 -0300)]
adaptivedemux: fix manifest update locking

To avoid unlocking a not locked mutex

10 years agoadaptivedemux: Fix segment for manifests that won't start at 0
Thiago Santos [Sat, 29 Nov 2014 13:27:25 +0000 (10:27 -0300)]
adaptivedemux: Fix segment for manifests that won't start at 0

For live streams, the manifest might start at an advanced position. Avoid
using segment start=0 to have playback start immediately

10 years agodashdemux: replace the streams with the new mpd client's streams
Thiago Santos [Sat, 29 Nov 2014 13:26:31 +0000 (10:26 -0300)]
dashdemux: replace the streams with the new mpd client's streams

Otherwise it won't update with the new segment info from the playlist
update

10 years agodashdemux: when updating the manifest, set the uri
Thiago Santos [Sat, 29 Nov 2014 13:25:45 +0000 (10:25 -0300)]
dashdemux: when updating the manifest, set the uri

This will allow dashdemux to create the correct full path URIs to
continue downloading fragments

10 years agodashdemux: port to adaptive demux
Thiago Santos [Tue, 26 Aug 2014 19:45:46 +0000 (16:45 -0300)]
dashdemux: port to adaptive demux

10 years agoadaptivedemux: also clear flushing state on pads before restarting
Thiago Santos [Sat, 22 Nov 2014 20:27:03 +0000 (17:27 -0300)]
adaptivedemux: also clear flushing state on pads before restarting

During flushing seeks the flushing flow return will propagate up to the
source element and all pads are going to have the flushing flag set.

So before restarting also remove that flag together with the EOS one.

We don't do that when pushing the flush stop event because our event
handler for the proxypad will drop all events.

10 years agoadaptivedemux: add adaptivedemux base class
Thiago Santos [Fri, 21 Nov 2014 23:42:09 +0000 (20:42 -0300)]
adaptivedemux: add adaptivedemux base class

https://bugzilla.gnome.org/show_bug.cgi?id=735848

10 years agogdppay: minor caps event payloading optimisation
Tim-Philipp Müller [Sat, 29 Nov 2014 13:16:56 +0000 (13:16 +0000)]
gdppay: minor caps event payloading optimisation

Avoid creation of buffer we're just going to throw
away two lines later anyway.

10 years agogdppay: fix some memory leaks
Tim-Philipp Müller [Sat, 29 Nov 2014 13:15:36 +0000 (13:15 +0000)]
gdppay: fix some memory leaks

10 years agoglcontext: require GL_ARB_ES2_compatibility for opengl3
Matthew Waters [Sat, 29 Nov 2014 13:42:17 +0000 (00:42 +1100)]
glcontext: require GL_ARB_ES2_compatibility for opengl3

until we generate gl3 compliant shaders

https://bugzilla.gnome.org/show_bug.cgi?id=740012