Mathieu Duponchelle [Mon, 21 Jul 2014 16:21:41 +0000 (18:21 +0200)]
tsdemux: Do not scan for a keyframe in non-accurate mode.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=733490
Sebastian Dröge [Mon, 21 Jul 2014 15:34:52 +0000 (17:34 +0200)]
openjpeg: Don't remember -lopenjp2 as libs when falling back to openjpeg1
Руслан Ижбулатов [Mon, 21 Jul 2014 11:07:28 +0000 (11:07 +0000)]
gl: Reorder CFLAGS to include in-source dirs first in examples
https://bugzilla.gnome.org/show_bug.cgi?id=733426
Руслан Ижбулатов [Tue, 6 May 2014 09:28:14 +0000 (09:28 +0000)]
openjpeg: Win32-compatible OpenJPEG-2.0 detection
OpenJPEG 2.0 API uses stdcall on W32 by default. This prevents normal
autoconf library macros from finding its functions.
A more compatible check is to acutally link a program that includes a
real header.
https://bugzilla.gnome.org/show_bug.cgi?id=733487
Sebastian Dröge [Mon, 21 Jul 2014 08:14:17 +0000 (10:14 +0200)]
openni2src: Fix unitialized variable compiler warning
gstopenni2src.cpp:721:14: error: variable 'oni_ts' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
} else if (src->color->isValid () && src->sourcetype == SOURCETYPE_COLOR) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gstopenni2src.cpp:752:26: note: uninitialized use occurs here
GST_BUFFER_PTS (buf) = oni_ts - src->oni_start_ts;
^~~~~~
gstopenni2src.cpp:721:10: note: remove the 'if' if its condition is always true
} else if (src->color->isValid () && src->sourcetype == SOURCETYPE_COLOR) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gstopenni2src.cpp:721:14: error: variable 'oni_ts' is used uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized]
} else if (src->color->isValid () && src->sourcetype == SOURCETYPE_COLOR) {
^~~~~~~~~~~~~~~~~~~~~~
gstopenni2src.cpp:752:26: note: uninitialized use occurs here
GST_BUFFER_PTS (buf) = oni_ts - src->oni_start_ts;
^~~~~~
gstopenni2src.cpp:721:14: note: remove the '&&' if its condition is always true
} else if (src->color->isValid () && src->sourcetype == SOURCETYPE_COLOR) {
^~~~~~~~~~~~~~~~~~~~~~~~~
gstopenni2src.cpp:642:18: note: initialize the variable 'oni_ts' to silence this warning
uint64_t oni_ts;
^
= 0
Nicola Murino [Mon, 21 Jul 2014 19:03:26 +0000 (21:03 +0200)]
facedetect: improve enum GstFaceDetectUpdates descriptions
https://bugzilla.gnome.org/show_bug.cgi?id=730509
Nicola Murino [Wed, 21 May 2014 10:59:57 +0000 (12:59 +0200)]
facedetect: make updates on_change works as expected
https://bugzilla.gnome.org/show_bug.cgi?id=730509
Sebastian Dröge [Sat, 19 Jul 2014 15:27:11 +0000 (17:27 +0200)]
Release 1.4.0
Sebastian Dröge [Sat, 19 Jul 2014 14:45:25 +0000 (16:45 +0200)]
Update .po files
Sebastian Dröge [Sat, 19 Jul 2014 10:47:43 +0000 (12:47 +0200)]
po: Update translations
Thiago Santos [Wed, 16 Jul 2014 21:27:15 +0000 (18:27 -0300)]
wrappercamerabinsrc: set src to ready when there are no pending buffers
Setting to ready will block waiting for buffers to be reclaimed, so flush
before setting to null to make sure no buffers are pending
https://bugzilla.gnome.org/show_bug.cgi?id=733072
Tim-Philipp Müller [Thu, 17 Jul 2014 09:05:47 +0000 (10:05 +0100)]
examples: fix compilation of gl fxtest example on win32 with Gtk+ 3.0
https://bugzilla.gnome.org/show_bug.cgi?id=733063
Sebastian Dröge [Wed, 16 Jul 2014 22:11:48 +0000 (00:11 +0200)]
openslesringbuffer: Provide the size of our array to GetDestinationOutputDeviceIDs
Otherwise it does not and just fails. It needs to know the size of the
array to not write too much to it.
Sebastian Dröge [Wed, 16 Jul 2014 22:11:21 +0000 (00:11 +0200)]
openslessink: Silence some error debug output to log output
These are not really errors, just unsupported features we don't
necessarily need.
Mathieu Duponchelle [Wed, 16 Jul 2014 14:57:35 +0000 (16:57 +0200)]
aggregator: Reset flow_return *after* stopping the srcpad task.
Otherwise it might be set in an already running aggregate function.
Thibault Saunier [Thu, 10 Jul 2014 11:18:21 +0000 (13:18 +0200)]
aggregator: Flush sinkpads when stopping
All values are meaningless in that case, so we should make sure that
we clean everything
Thibault Saunier [Thu, 10 Jul 2014 11:15:55 +0000 (13:15 +0200)]
aggregator: Do not forget to reset the flow return when stoping
Setting it to FLUSHING when the element is not started, and to OK
when it starts.
Thibault Saunier [Tue, 8 Jul 2014 14:48:08 +0000 (16:48 +0200)]
aggregator: Handle event seqnum
Sebastian Rasmussen [Sun, 13 Jul 2014 14:07:02 +0000 (16:07 +0200)]
mxfmux: Avoid taking unnecessary ref
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=733123
Mart Raudsepp [Wed, 16 Jul 2014 13:31:27 +0000 (16:31 +0300)]
gl: Include GL_CFLAGS while checking for GL typedefs
Otherwise those checks may fail at configure time if they contain extra
include paths, while at build time they are included, potentially causing
incompatible typedefs between system GL headers and gstreamer compatibility
prototypes.
https://bugzilla.gnome.org/show_bug.cgi?id=733248
Mart Raudsepp [Wed, 16 Jul 2014 13:29:10 +0000 (16:29 +0300)]
gl: Always include EGL_CFLAGS in GL_CFLAGS when EGL_LIBS is added to GL_LIBS
They should be handled in tandem, in case any EGL provider could require some
CFLAGS and set them (possibly once moved to prefer pkg-config files),
such as for a custom header location.
Piotr Drąg [Mon, 17 Mar 2014 15:09:46 +0000 (16:09 +0100)]
po: update POTFILES
https://bugzilla.gnome.org/show_bug.cgi?id=726555
Sebastian Dröge [Tue, 15 Jul 2014 11:29:24 +0000 (13:29 +0200)]
d3dvideosink: Open Direct3D devices in a threadsafe way
Otherwise we'll get crashes when using the device from multiple
threads, e.g. when using multiple sinks at once.
https://bugzilla.gnome.org/show_bug.cgi?id=707523
Sebastian Dröge [Fri, 11 Jul 2014 19:15:59 +0000 (21:15 +0200)]
curlsshsink: Include gst.h and other stuff before anything else
Nicolas Dufresne [Fri, 11 Jul 2014 14:40:42 +0000 (10:40 -0400)]
wrappercamerabinsrc: Fix caps filter caps proxying
The notify signal is triggered when caps is changed. But instead of
proxying the fixed caps, we query for the caps. Hence, when we go to
READY state, we endup setting template caps on the proxied caps
filter instead of NULL, which leads to negoitation failure. Correctly
proxy NULL caps if this is the new caps. Fixes not negotiated error
when running in cheese. Also fix a leak of caps string in one of the
trace.
https://bugzilla.gnome.org/show_bug.cgi?id=732741
Sebastian Dröge [Fri, 11 Jul 2014 11:58:55 +0000 (13:58 +0200)]
gl: Always build gstglmixer, not only when full OpenGL support is enabled
Sebastian Dröge [Fri, 11 Jul 2014 11:25:37 +0000 (13:25 +0200)]
curl: Use winsock2 instead and the GLib macro for checking if we're on Windows
Sebastian Dröge [Fri, 11 Jul 2014 11:25:18 +0000 (13:25 +0200)]
motioncells: Use no network API if not required
Alexey Pavlov [Fri, 11 Jul 2014 11:21:21 +0000 (13:21 +0200)]
ext: Include winsock.h on Windows when required
https://bugzilla.gnome.org/show_bug.cgi?id=733052
Sebastian Dröge [Fri, 11 Jul 2014 10:13:22 +0000 (12:13 +0200)]
Release 1.3.91
Sebastian Dröge [Fri, 11 Jul 2014 10:04:07 +0000 (12:04 +0200)]
gl: Link to all required libraries but not more
Sebastian Dröge [Fri, 11 Jul 2014 10:01:12 +0000 (12:01 +0200)]
video: Properly include headers in Makefile.am
and don't set noinst_HEADERS twice.
Sebastian Dröge [Fri, 11 Jul 2014 09:05:59 +0000 (11:05 +0200)]
Update .po files
Sebastian Dröge [Fri, 11 Jul 2014 07:43:44 +0000 (09:43 +0200)]
atdec: Change rank to MARGINAL until it can properly handle multichannel audio
https://bugzilla.gnome.org/show_bug.cgi?id=727757
Sebastian Dröge [Fri, 11 Jul 2014 07:41:05 +0000 (09:41 +0200)]
gl: Move GstGLMixer to the plugin for now
It depends on GstAggregator and we don't want to install headers
for that yet.
https://bugzilla.gnome.org/show_bug.cgi?id=732207
Sebastian Dröge [Fri, 11 Jul 2014 07:33:57 +0000 (09:33 +0200)]
libs: Don't install headers and pc files for libgstwayland/badvideo/badbase
These will disappear after 1.4.0 and it would be rather annoying if
people started depending on them.
https://bugzilla.gnome.org/show_bug.cgi?id=732207
Philip Withnall [Thu, 10 Jul 2014 14:52:46 +0000 (15:52 +0100)]
opus: Fix a double-unref in the Opus header code
The headers were never getting reffed when being added to the headers
list, which is later unreffed-and-freed by the caller (e.g.
gst_opus_parse_parse_frame()).
https://bugzilla.gnome.org/show_bug.cgi?id=733013
Sebastian Dröge [Fri, 11 Jul 2014 06:54:30 +0000 (08:54 +0200)]
po: Update translations
Edward Hervey [Thu, 10 Jul 2014 09:29:41 +0000 (11:29 +0200)]
examples: Add CAT section and CA descriptor support
https://bugzilla.gnome.org/show_bug.cgi?id=732986
Edward Hervey [Thu, 10 Jul 2014 09:24:12 +0000 (11:24 +0200)]
mpegts: Add parsing for CA descriptor (0x05)
https://bugzilla.gnome.org/show_bug.cgi?id=732986
Nicolas Dufresne [Mon, 7 Jul 2014 15:52:18 +0000 (11:52 -0400)]
camerabin2: Flush downstream after setting src to READY
v4l2src requires all buffers to come back in order to cleanly stop
streaming. Flushing the pipline should force all buffers to come
back.
https://bugzilla.gnome.org/show_bug.cgi?id=732741
Sebastian Rasmussen [Sun, 6 Jul 2014 09:28:34 +0000 (11:28 +0200)]
tests/icles/dccp: Release reference to parent
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732977
Nicolas Dufresne [Wed, 9 Jul 2014 19:03:42 +0000 (15:03 -0400)]
glimagesink: Keep aspect ratio by default
The expected default behaviour for video sink is to maintain the
aspect ratio. Fix the default value to reflect this. The property
default was already TRUE, but the value was not initially TRUE.
Sebastian Rasmussen [Sat, 5 Jul 2014 23:55:50 +0000 (01:55 +0200)]
mpegts: No need to check for NULL before calling g_free()
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732789
Sebastian Rasmussen [Sat, 5 Jul 2014 23:55:16 +0000 (01:55 +0200)]
mpegts: Don't confuse slice allocator with regular one
Previously selector_bytes and private_data_bytes were sometimes allocated and
free using the normal allocator and sometimes using the slice allocator.
Additionally prefer g_strdup() to g_memdup() for strings.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732789
Edward Hervey [Wed, 9 Jul 2014 05:50:13 +0000 (07:50 +0200)]
mpegts: Fix dvb linkage leaks
CID #1224130
Stefan Ringel [Fri, 4 Jul 2014 12:04:47 +0000 (14:04 +0200)]
mpegts: use getter for egde linkage descriptor type
https://bugzilla.gnome.org/show_bug.cgi?id=730914
Stefan Ringel [Fri, 4 Jul 2014 12:02:22 +0000 (14:02 +0200)]
mpegts: docs: add missed *_free methods
https://bugzilla.gnome.org/show_bug.cgi?id=730914
Stefan Ringel [Tue, 24 Jun 2014 17:18:56 +0000 (19:18 +0200)]
mpegts: fix annotation
https://bugzilla.gnome.org/show_bug.cgi?id=730914
Edward Hervey [Wed, 9 Jul 2014 05:38:38 +0000 (07:38 +0200)]
mpegts: Add padding to public structures
Allows use to add API in the future without breaking ABI. We broke the API/ABI
once between 1.2 and 1.4, let's try to avoid this in the future even if this
is an unstable library.
https://bugzilla.gnome.org/show_bug.cgi?id=730914
Thiago Santos [Tue, 8 Jul 2014 18:43:32 +0000 (15:43 -0300)]
mpegts: atsc: fix leak of short name
Thiago Santos [Tue, 8 Jul 2014 17:56:13 +0000 (14:56 -0300)]
mpegts: fix leak of language code
Thibault Saunier [Sun, 6 Jul 2014 21:30:53 +0000 (23:30 +0200)]
videoaggregator: Fix some more the locking logic in update_src_caps
We need the GST_OBJECT_LOCK only to iterate the sinkpads, nothing else.
https://bugzilla.gnome.org/show_bug.cgi?id=732750
Tim-Philipp Müller [Sun, 6 Jul 2014 21:16:48 +0000 (22:16 +0100)]
videoaggregator: fix broken locking in update_src_caps function
We would unlock an already-unlocked mutex that we never re-locked.
https://bugzilla.gnome.org/show_bug.cgi?id=732750
Tim-Philipp Müller [Sun, 6 Jul 2014 15:17:06 +0000 (16:17 +0100)]
aggregator: fix locking
We would unlock a mutex we never locked on SEGMENT
events.
Nicolas Dufresne [Sat, 5 Jul 2014 01:00:38 +0000 (21:00 -0400)]
facedetect: Make cascades dir a little more portable
Nicolas Dufresne [Sat, 5 Jul 2014 00:55:11 +0000 (20:55 -0400)]
handdetect: Use already mapped image
No need to map again the image, it's already handled by the base class.
Nicolas Dufresne [Sat, 5 Jul 2014 00:39:49 +0000 (20:39 -0400)]
handdetect: Move size warning in set_caps so it's called once
Nicolas Dufresne [Sat, 5 Jul 2014 00:33:41 +0000 (20:33 -0400)]
faceblur: Port to OpencvVideoFilter base class
This fixes issue whit black frames when special memory, like GlMemory is
in used.
https://bugzilla.gnome.org/show_bug.cgi?id=732756
Nicolas Dufresne [Sat, 5 Jul 2014 00:31:50 +0000 (20:31 -0400)]
cvvideofilter: Don't try to make buffer writable
First this is handle by base transform, hence this is a no-op, and if it wasn't it
would lead to a buffer copy being leaked, and then an unreffed buffer being
pushed downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=732756
Nicolas Dufresne [Sat, 5 Jul 2014 00:30:20 +0000 (20:30 -0400)]
cvvideofilter: Check buffer_map return value
Check the resturn value and cleanly fail if we could not mapped the buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=732756
Sebastian Rasmussen [Fri, 4 Jul 2014 01:19:42 +0000 (03:19 +0200)]
mimdec: Print invalid fourcc in error message in hex
Previously this was printed as characters which caused later processing
of the error message to sometimes warn about non-UTF-8 characters.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732715
Sebastian Rasmussen [Fri, 4 Jul 2014 01:20:22 +0000 (03:20 +0200)]
aiffparse: Print invalid fourcc in error message in hex
Previously this was printed as characters which caused later processing
of the error message to sometimes warn about non-UTF-8 characters.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732715
Matthieu Bouron [Fri, 4 Jul 2014 15:51:58 +0000 (17:51 +0200)]
configure: fix uninitialized variables with --disable-external
https://bugzilla.gnome.org/show_bug.cgi?id=732744
Arun Raghavan [Tue, 1 Jul 2014 07:04:44 +0000 (12:34 +0530)]
openni2src: Add proper clean up of OpenNI2 objects
https://bugzilla.gnome.org/show_bug.cgi?id=732535
Arun Raghavan [Tue, 1 Jul 2014 06:48:45 +0000 (12:18 +0530)]
openni2src: Don't embed C++ objects in our GObject
Since C++ objects shoudl be properly constructed, we keep only pointers
to them and manually construct them on the heap.
https://bugzilla.gnome.org/show_bug.cgi?id=732535
Arun Raghavan [Tue, 1 Jul 2014 06:48:19 +0000 (12:18 +0530)]
openni2src: Close device when stopping the stream
https://bugzilla.gnome.org/show_bug.cgi?id=732535
Arun Raghavan [Tue, 1 Jul 2014 06:28:36 +0000 (11:58 +0530)]
openni2src: Fix timestamping
OpenNI2 makes no guarantees of timestamp starting from zero, just that
it will be a millisecond timestamp. Make timestamps start from zero
manually so things work correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=732535
Arun Raghavan [Tue, 1 Jul 2014 06:26:59 +0000 (11:56 +0530)]
openni2src: Make the location property not be mandatory
Our calls to device open already handle the unset location case (by
opening any available device).
https://bugzilla.gnome.org/show_bug.cgi?id=732535
Arun Raghavan [Tue, 1 Jul 2014 06:26:15 +0000 (11:56 +0530)]
openni2src: Open device on NULL->READY
https://bugzilla.gnome.org/show_bug.cgi?id=732535
Arun Raghavan [Tue, 1 Jul 2014 06:23:46 +0000 (11:53 +0530)]
openni2src: Fix deadlock when _get_caps() is called before READY
The object lock was not being dropped in the empty case. Restructured
the code a bit to make this sort of error less likely.
https://bugzilla.gnome.org/show_bug.cgi?id=732535
Arun Raghavan [Tue, 1 Jul 2014 06:21:21 +0000 (11:51 +0530)]
openni2src: Mark element as a live source
https://bugzilla.gnome.org/show_bug.cgi?id=732535
Sebastian Dröge [Thu, 3 Jul 2014 17:10:26 +0000 (19:10 +0200)]
d3dvideosink: Always lock the D3D surfaces in write mode
Locking them in readonly mode can give different stride to mapping
in write mode, which then causes rendering to be broken.
Happened on all (many?) NVIDIA GPUs.
Thanks to voskater15@gmail.com for hinting at the problem.
https://bugzilla.gnome.org/show_bug.cgi?id=712809
Sebastian Dröge [Thu, 3 Jul 2014 17:05:22 +0000 (19:05 +0200)]
d3dhelpers: Swap UV planes properly for YV12 as compared to I420
If we only do it in one place colors will look funny.
Sebastian Dröge [Thu, 3 Jul 2014 15:53:33 +0000 (17:53 +0200)]
amc: Properly integrate COLOR_QCOM_FormatYVU420SemiPlanar32m again
https://bugzilla.gnome.org/show_bug.cgi?id=732683
Sebastian Dröge [Thu, 3 Jul 2014 13:07:23 +0000 (15:07 +0200)]
amcaudiodec: audio/mpeg is always MPEG 1 layer 3
Configuring e.g. layer 2 on such a decoder usually fails unless
it additionally also accepts audio/mpeg-L2.
Sebastian Dröge [Thu, 3 Jul 2014 12:15:36 +0000 (14:15 +0200)]
mpegtspacketizer: Don't dereference NULL if we have no PCR yet
Can happen sometimes if the duration is requested before we
received enough data with a PCR.
Jan Schmidt [Thu, 3 Jul 2014 11:39:19 +0000 (21:39 +1000)]
tsdemux: Add locking around mpegtspacketiser groups.
Otherwise occasionally DURATION queries can crash, if they happen at
the wrong moment.
Julien Isorce [Thu, 3 Jul 2014 08:00:32 +0000 (09:00 +0100)]
glcocoa: initalize NSApp asap when using gst-launch
See https://bugzilla.gnome.org/show_bug.cgi?id=732661
Alessandro Decina [Wed, 2 Jul 2014 10:54:45 +0000 (12:54 +0200)]
applemedia: enable vtdec and vtenc only on >= 10.8 where VideoToolbox is public
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=723670
Thiago Santos [Wed, 2 Jul 2014 07:54:29 +0000 (04:54 -0300)]
vtdec: avoid segfault when output isn't configured
This can help when the callback is called during/after videodecoder
base class shut down
https://bugzilla.gnome.org/show_bug.cgi?id=728435
Thiago Santos [Wed, 2 Jul 2014 03:27:12 +0000 (00:27 -0300)]
vtdec: ignore the dropped flag if buffer was received
Apparently there is some issue with VT that makes it mark the dropped
flag even though the buffer was decoded.
https://bugzilla.gnome.org/show_bug.cgi?id=728435
Sebastian Dröge [Wed, 2 Jul 2014 08:31:49 +0000 (10:31 +0200)]
d3dvideosink: Don't leak all surfaces
This was broken when disabling the buffer pool exporting.
Also disable buffer pool a bit more efficient...
Sebastian Dröge [Wed, 2 Jul 2014 08:01:34 +0000 (10:01 +0200)]
d3dvideosink: PostMessage() takes integers as last parameters, not pointers
Sebastian Dröge [Wed, 2 Jul 2014 07:59:02 +0000 (09:59 +0200)]
d3dvideosink: Remove unused variable
Matthew Waters [Wed, 2 Jul 2014 07:38:13 +0000 (17:38 +1000)]
gl/examples: gitignore generated files
Wang Xin-yu (王昕宇) [Tue, 1 Jul 2014 00:36:53 +0000 (08:36 +0800)]
gl : fix qglwtextureshare demo
Göran Jönsson [Mon, 23 Jun 2014 09:53:11 +0000 (11:53 +0200)]
watchdog: Only create a new GSource if we have a main context
We can still get OOB events while stopping the watchdog element, and while
stopping it we destroy the main context.
Also let the GSource own a reference to the element for additional safety.
https://bugzilla.gnome.org/show_bug.cgi?id=732554
Vincent Penquerc'h [Tue, 1 Jul 2014 11:52:39 +0000 (12:52 +0100)]
videoaggregator: reset QoS on segment event
https://bugzilla.gnome.org/show_bug.cgi?id=732540
Gwenole Beauchesne [Tue, 1 Jul 2014 14:54:00 +0000 (16:54 +0200)]
tests: h264parser: add test to identify EOSEQ / EOS NALs.
Check that end_of_seq() [EOSEQ] and end_of_stream [EOS] NAL units
are correctly parsed and the reported NAL unit size yields 1 byte,
i.e. the only NalHeaderBytes in there.
https://bugzilla.gnome.org/show_bug.cgi?id=732553
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Wed, 25 Jun 2014 15:19:00 +0000 (17:19 +0200)]
tests: h264parse: add test for byte-stream/au output.
Check that conversion to byte-stream/au formats work and that we
can effectively drop broken/invalid NAL units from the resulting
access unit buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=732203
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Wed, 25 Jun 2014 16:47:55 +0000 (18:47 +0200)]
tests: h264parse: check SEI buffering_period() message is output.
If an SEI NAL unit with a buffering_period() message is inserted
between an SPS and PPS NAL unit, check that the output buffer still
contain it. i.e. make sure that this SEI message is not dropped.
https://bugzilla.gnome.org/show_bug.cgi?id=732156
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Thu, 26 Jun 2014 07:44:26 +0000 (09:44 +0200)]
h264parse: fix collection of access units to preserve config headers.
Always use a GstAdapter when collecting access units (alignment="au")
in either byte-stream or avcC format. This is required to properly
preserve config headers like SPS and PPS when invalid or broken NAL
units are subsequently parsed.
More precisely, this fixes scenario like:
<SPS> <PPS> <invalid-NAL> <slice>
where we used to reset the output frame buffer when an invalid or
broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
preventing the next slice unit to be decoded, should this also
represent any valid data.
https://bugzilla.gnome.org/show_bug.cgi?id=732203
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Wed, 25 Jun 2014 11:14:10 +0000 (13:14 +0200)]
h264parse: improve conditions for skipping NAL units.
Carefully track cases when skipping broken or invalid NAL units is
necessary. In particular, always allow NAL units to be processed
and let that gst_h264_parse_process_nal() function decide on whether
the current NAL needs to be dropped or not.
This fixes parsing of streams with SEI NAL buffering_period() message
inserted between SPS and PPS, or SPS-Ext NAL following a traditional
SPS NAL unit, among other cases too.
Practical examples from the H.264 AVC conformance suite include
alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
when parsing in stream-format=byte-stream,alignment=au mode.
https://bugzilla.gnome.org/show_bug.cgi?id=732203
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Wed, 25 Jun 2014 09:06:41 +0000 (11:06 +0200)]
h264parse: introduce new state tracking variables.
Improve parser state tracking by introducing new flags reflecting
it: "got-sps", "got-pps" and "got-slice". This is an addition for
robustness purposes.
Older have_sps and have_pps variables are kept because they have
a different meaning. i.e. they are used for deciding on when to
submit updated caps or not, and rather mean "have new SPS/PPS to
be submitted?"
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Tue, 24 Jun 2014 11:55:13 +0000 (13:55 +0200)]
h264parse: fix and optimize NAL collection function.
Use gst_h264_parser_identify_nalu_unchecked() to identify the next
NAL unit. We don't want to parse the full NAL unit, but only the
header bytes and possibly the first RBSP byte for identifying the
first_mb_in_slice syntax element.
Also fix check for failure when returning from that function. The
only success condition for that is GST_H264_PARSER_OK, so use it.
https://bugzilla.gnome.org/show_bug.cgi?id=732154
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Tue, 1 Jul 2014 14:09:28 +0000 (16:09 +0200)]
codecparsers: h264: clarifications and documentation fixes.
Fix documentation for GstH264NalUnit. The @ref_idc part was totally
unbalanced. Also add a note about @offset and @size fields to remind
that this is relative to the start of the NAL unit, thus including
the header bytes.
Gwenole Beauchesne [Tue, 1 Jul 2014 13:46:17 +0000 (15:46 +0200)]
codecparsers: h264: fix identification of EOSEQ and EOS NALs.
An end_of_seq() [EOSEQ] or end_of_stream() [EOS] NAL unit is really
one byte long because this shall include the NalHeaderBytes (1) too.
The NALU.offset starts from the first byte of the header.
This is the proper fix to commit d37f842. In practice, this fixes
parsing of FRExt1_Panasonic_D and FRExt2_Panasonic_C, that include
additional frames after an EOSEQ.
https://bugzilla.gnome.org/show_bug.cgi?id=732553
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Jan Alexander Steffens (heftig) [Fri, 27 Jun 2014 10:24:49 +0000 (12:24 +0200)]
rtmpsrc: Report limited bandwidth
Makes uridecodebin treat this source as a stream source,
allowing timeshifting.
https://bugzilla.gnome.org/show_bug.cgi?id=732335
Edward Hervey [Tue, 1 Jul 2014 08:03:05 +0000 (10:03 +0200)]
mpegts: Expose GstMpegtsDescriptor free function
Nothing earth shattering, but avoids people having to use g_boxed_free()