Commit graph

7075 commits

Author SHA1 Message Date
Edward Hervey
e2b98a7721 tsdemux: Fix GAP synchronization without a valid PCR PID
For streams that don't have a valid PCR PID, we just use the latest
PTS from any given stream.

https://bugzilla.gnome.org/show_bug.cgi?id=608148
2016-08-03 17:15:41 +02:00
Michael Olbrich
36e6590335 tsdemux: handle pcr_pid == 0x1fff
Streams without PCR make senses in HLS, where the playlist timestamps
can be used to seek or calculate the duration.

https://bugzilla.gnome.org/show_bug.cgi?id=608148
2016-08-03 17:15:41 +02:00
Arnaud Vrac
7a3d189250 mpegtsdemux: do not abort playback when no PCR were found during initial scan
Seeking will not be possible in those streams but at least the can be
played. Note scanning is only done when tsdemux is configured in pull mode.

https://bugzilla.gnome.org/show_bug.cgi?id=608148
2016-08-03 17:15:41 +02:00
Arnaud Vrac
35a1720de1 mpegtsdemux: only wait for PCR when PCR pid is set
Streams without PCR make senses in HLS, where the playlist timestamps
can be used to seek or calculate the duration.

https://bugzilla.gnome.org/show_bug.cgi?id=608148
2016-08-03 17:15:40 +02:00
Carlos Rafael Giani
9c596d20fe aiffparse: Add tags for container format and bitrate
The bitrate is added to help downstream elements (like uridecodebin)
figure out a proper network buffer size

https://bugzilla.gnome.org/show_bug.cgi?id=769389
2016-08-02 15:21:38 +03:00
Sreerenj Balachandran
14cc51cddc videoparsers: h264: Add more scalable profiles to the profile list
Adding Scalable Constrained High (G.10.1.2.1) and
Scalable High Intra(G.10.1.3) profiles to the profile list

https://bugzilla.gnome.org/show_bug.cgi?id=769303
2016-08-02 14:26:40 +03:00
Sebastian Dröge
1990d4337b rawaudioparse: Use G_GINT64_MODIFIER for portability
https://bugzilla.gnome.org/show_bug.cgi?id=769295
2016-07-29 10:49:26 +03:00
Sebastian Dröge
e572375793 unalignedaudioparse: Fix element factory name of inner parser 2016-07-29 10:07:23 +03:00
Carlos Rafael Giani
403499a0c0 rawparse: Remove old parser code and wrap new parsers in old elements
https://bugzilla.gnome.org/show_bug.cgi?id=767011
2016-07-26 13:44:39 +03:00
Carlos Rafael Giani
d555f34562 rawparse: Add new raw audio and video parser elements
The new rawaudioparse and rawvideoparse elements are based on GstBaseParse
and completely replace audioparse and videoparse

https://bugzilla.gnome.org/show_bug.cgi?id=767011
2016-07-26 13:44:39 +03:00
Michael Olbrich
48c5cc1b1b tsdemux: add support for LPCM with stream_type = 0x83
https://bugzilla.gnome.org/show_bug.cgi?id=765807
2016-07-25 13:38:29 +03:00
Sebastian Dröge
064f46e9e1 jpeg2000parse: Use correct enum type
GST_JPEG2000_SAMPLING_RGB instead of GST_JPEG2000_COLORSPACE_RGB

https://bugzilla.gnome.org/show_bug.cgi?id=768696
2016-07-12 00:02:53 +03:00
Nirbheek Chauhan
a3d58818e8 Fix various gboolean vs GstFlowReturn problems
Caught by building with MSVC which gave warnings for these
2016-07-11 15:02:06 +01:00
Tim-Philipp Müller
dae928f14c camerabin: update docs section 2016-07-08 14:42:18 +01:00
Luis de Bethencourt
6033c37d14 gaudi: fix documentation warning in GstGaussianBlur
Fixing the following warning when generating documentation:
xml/element-gaussianblur.xml:72: element refsect2: validity error :
    ID GstGaussianBlur already defined
<refsect2 id="GstGaussianBlur" role="typedef">
                                             ^
Warning: multiple "IDs" for constraint linkend: GstGaussianBlur.
  DOC   Fixing cross-references
2016-07-07 17:40:43 +01:00
Luis de Bethencourt
3b491a15cb gaudi: fix documentation warning in GstChromium
Fixing the following warning when generating documentation:
xml/element-chromium.xml:74: element refsect2: validity error :
    ID GstChromium already defined
<refsect2 id="GstChromium" role="typedef">
                                         ^
Warning: multiple "IDs" for constraint linkend: GstChromium.
  DOC   Fixing cross-references
2016-07-07 17:40:43 +01:00
Luis de Bethencourt
418e643b61 gstjpeg2000parse: no need for else after a goto
else clause is redundant when the end of the if statement is a jump.
If we haven't gone to the beach, we are in the false branch.
2016-07-01 14:08:13 +01:00
Aaron Boxer
154698389d gstjpeg2000parse: improved parsing of jpc magic and j2c box
https://bugzilla.gnome.org/show_bug.cgi?id=767512
2016-07-01 13:15:11 +01:00
Edward Hervey
c19d1b46c3 h264parse: Drop filler data
When skipping data, check if they are filler bytes. If so, drop the
data instead of skipping. We don't want to output filler bytes, but they
shouldn't cause a discontinuity.

https://bugzilla.gnome.org/show_bug.cgi?id=768125
2016-06-30 10:32:01 +02:00
Jan Schmidt
92e7e3a3bf h264parse: When input alignment=AU, always drain each packet.
If the input alignment claims AU alignment, each received
buffer should contain a complete video frame, so never hold over parts
of buffers for later processing. Also reduces latency, as packets
are parsed/converted and output immediately instead of 1 buffer
later.

Fixes a problem where an (arguably disallowed) padding byte on the
end of a buffer is detected as an extra byte in the following
start code, and messes up the timestamping that should apply to
that start code.
2016-06-24 22:55:18 +10:00
Tim-Philipp Müller
cb7b6e7a90 videoparsers: fix broken include 2016-06-24 09:39:00 +01:00
Aaron Boxer
e7e6a3579d jpeg2000parse: use enums for colorspace and sampling, rather than strings
Also, move gstjpeg2000sampling to codecparsers project

https://bugzilla.gnome.org/show_bug.cgi?id=767908
2016-06-24 11:23:31 +03:00
Nicolas Dufresne
951157c2a5 doc: Automatic update
This is an automatic update with manual merges of running
"make update" in the doc/plugins directory. This should help
later maintenance of the plugins doc. A lot of plugin are
not referenced yet in the doc. Will come later.
2016-06-21 13:46:00 -04:00
Nirbheek Chauhan
36332faf14 build: Factor out endian-order RGB formats
MSVC seems to ignore preprocessor conditionals inside static pad templates
2016-06-21 11:32:29 +01:00
Aaron Boxer
81e3b998be jpeg2000parse: support j2c format
https://bugzilla.gnome.org/show_bug.cgi?id=767512
2016-06-17 23:08:37 +03:00
Mats Lindestam
a0876aa750 h264parse: support for handling of config-interval = -1
Added support for handling of config-interval = -1.
config-inteval = -1 represents resending SPS and PPS for each
I-/IDR-frame.

https://bugzilla.gnome.org/show_bug.cgi?id=766803
2016-06-13 10:10:21 +01:00
Mats Lindestam
bf0d952387 h264parse: refactored handling of SPS/PPS when pushing frames
https://bugzilla.gnome.org/show_bug.cgi?id=766803
2016-06-13 10:10:05 +01:00
Mats Lindestam
0c04e004bb h264parse: change "config-interval" property type from uint to int
So we can use -1 as special value like in rtph264pay.

https://bugzilla.gnome.org/show_bug.cgi?id=766803
2016-06-13 10:08:22 +01:00
Aaron Boxer
3dc3a915ea jpeg2000parse: Require either colorspace or sampling field in sink caps
And always set the sampling field on the src caps, if necessary guessing a
correct value for it from the colorspace field.

Also, did some cleanup: removed sampling enum - redundant.

https://bugzilla.gnome.org/show_bug.cgi?id=766236
2016-06-10 16:25:50 +03:00
Nicolas Dufresne
50537e2c08 vmncdec: Wait for segment event before checking it
The heuristic to choose between packetise or not was changed to use the
segment format. The problem is that this change is reading the segment
during the caps event handling. The segment event will only be sent
after. That prevented the decoder to go in packetize mode, and avoid
useless parsing.

https://bugzilla.gnome.org/show_bug.cgi?id=736252
2016-06-07 21:05:41 -04:00
Aaron Boxer
fffee978c2 jpeg2000parse: Add JPEG2000 parser element
https://bugzilla.gnome.org/show_bug.cgi?id=766236
2016-06-07 15:29:41 +03:00
Aaron Boxer
eebb65e934 openjpeg: set sampling in the caps
https://bugzilla.gnome.org/show_bug.cgi?id=766236
2016-06-07 15:24:32 +03:00
Jan Alexander Steffens (heftig)
851c89ded9 mpegtsmux: Set PTS on aligned buffers
This was broken in 09c05df (make "alignment" property more useful for
packetisation).

https://bugzilla.gnome.org/show_bug.cgi?id=765926
2016-06-07 15:11:00 +03:00
Jan Schmidt
e3f5ccb333 tsdemux: Change the pad naming scheme to include a generation ID
A simple fix for the problem of creating new pads with duplicate
names when switching program, easier than the alternative of
trying to work out which pads might persist and manage that.

See https://bugzilla.gnome.org/show_bug.cgi?id=758454
2016-06-06 13:05:34 +03:00
Scott D Phillips
3edd641667 h265parse: Don't assume contiguous id's in make_codec_data
vps/sps/pps id's are not required to be used contiguously.

https://bugzilla.gnome.org/show_bug.cgi?id=766891
2016-05-30 12:42:24 +03:00
Jan Schmidt
d0d22a9b2c pnmdec: Fix ASCII parsing
Parse gray16 properly in ascii mode, and fix
some bugs around reading data in chunks when
ascii values cross chunk boundaries
2016-05-24 07:21:44 +10:00
Jan Schmidt
a2fde272f5 pnmenc: Make output caps match the srcpad template
Don't output 'image/pnm', which isn't even in the template
caps. Instead, output a mime-type consistent with what we
are encoding.
2016-05-24 07:21:44 +10:00
Jan Schmidt
fa2d98afe2 pnmenc: Tidy up code, support BE/LE GRAY16 properly
Remove code that dealt with odd strides separately - there's
not really any overhead to just using 1 codepath for both matched
and unmatched stride output.

Add separate codepaths for BE vs LE GRAY16 input so they're
handled properly
2016-05-24 07:21:44 +10:00
Jan Schmidt
30503f07ae pnmdec: Actually output LE or BE GRAY16 as negotiated
Add codepaths to output GRAY16 in little or big endian
as negotiated.

Move all output format negotiation into a central
function and clean it up
2016-05-24 07:21:44 +10:00
Dimitrios Katsaros
88a9b151c1 pnmdec: Implementation of GRAY16 handling
https://bugzilla.gnome.org/show_bug.cgi?id=757022
2016-05-24 07:21:44 +10:00
Dimitrios Katsaros
61440e58c1 pnmenc: Implementation of GRAY16 handling
https://bugzilla.gnome.org/show_bug.cgi?id=757022
2016-05-24 07:21:44 +10:00
Edward Hervey
2d778881cb compositor: Check if we get a valid display ratio
As is done everywhere else, and avoids setting bogus values
And remove useless *<val> checks (we always provide valid values and
it's an internal function).

CID #1320700
2016-05-15 14:35:38 +02:00
Carlos Rafael Giani
b415d7b34f rawparse: Add unaligned raw audio parsing to audioparse and add new element
This helps in cases where raw audio data is being delivered, but the
buffers do not come in sample aligned sizes. The new unalignedaudioparse
bin can be autoplugged and configures an internal audioparse element to
align the data. audioparse itself gets support for audio/x-unaligned-raw
input caps; the output caps then contain the same information, except that
the name is changed to audio/x-raw (since audioparse aligns the data).
This ensures that souphttpsrc ! audioparse still works.

https://bugzilla.gnome.org/show_bug.cgi?id=689460
2016-05-15 13:19:48 +03:00
Jan Schmidt
b6d5aac1c0 mpegdemux: Handle system header when scanning for timestamps.
When scanning for SCR / PTS / DTS, handle the case where
the pack header is followed by the optional system header,
so we can correctly collect timestamps in such cases.

https://bugzilla.gnome.org/show_bug.cgi?id=623860
2016-05-15 19:30:55 +10:00
Jan Schmidt
e3b554f0e6 mpegdemux: Fix backward timestamp scan on small files.
When the file size is smaller than the configured 4MB scan
limit for timestamps, don't underflow the guard variable
when checking if it's time to stop.

Limit the backward SCR scan to the same 4MB as the PTS scan.

Add some comments.
2016-05-15 19:30:55 +10:00
Tim-Philipp Müller
d520e25db3 mpegdemux: don't do bogus adjustments on seek if we have no first_pts
Fixes bogus segment and gap events with start=GST_CLOCK_TIME_NONE if
we failed to find a first_pts.

https://bugzilla.gnome.org/show_bug.cgi?id=623860
2016-05-15 10:18:11 +01:00
Damian Ziobro
abc1c4fc9a mpegtsbase: remove unused variables: upstream_live and queried_latency
https://bugzilla.gnome.org/show_bug.cgi?id=766343
2016-05-13 10:28:46 +03:00
Tim-Philipp Müller
c4680ab2a9 mpegdemux: fix description 2016-05-05 10:44:22 +01:00
Tim-Philipp Müller
19d52a4ed5 videodiff: fix supported formats in template caps 2016-05-05 10:41:53 +01:00
Tim-Philipp Müller
b346be1c52 videodiff: fill in FIXME metadata and docs with description
https://bugzilla.gnome.org/show_bug.cgi?id=765989
2016-05-05 10:40:37 +01:00
Sebastian Dröge
619d198a2f compositor: Set blend functions in ::negotiated_caps() instead of ::fixate_caps()
The latter should not change any state but just fixate the caps, while the
former is always called when srcpads caps are decided.

https://bugzilla.gnome.org/show_bug.cgi?id=765324
2016-05-03 16:53:25 +03:00
Thiago Santos
1b1beded51 mpegtsmux: effectively check if there is a language
'language' is an array and not a pointer.

CID 1358835
2016-04-29 17:19:19 -03:00
Thiago Santos
9cc00bf2c9 mpegtsmux: write language descriptor when language is available
Adds a new function to mpegts lib to create a iso639 language
descriptor from a language and use it in mpegtsmux to add
a language descriptor to audio streams that have a language set.

https://bugzilla.gnome.org/show_bug.cgi?id=763647
2016-04-26 23:45:34 -03:00
Sebastian Dröge
920ad27122 h265parse: H265 level idc 0 is not valid
Don't put level=0 into the caps, it confuses other elements.

https://bugzilla.gnome.org/show_bug.cgi?id=765538
2016-04-25 18:50:59 +03:00
Sebastian Dröge
4bdda1d810 h264parse: H264 level idc 0 is not valid
Don't put level=0 into the caps, it confuses other elements.

https://bugzilla.gnome.org/show_bug.cgi?id=765538
2016-04-25 18:50:59 +03:00
Scott D Phillips
2830145a71 checksumsink: add "hash" property and allow more checksum types
Now any GChecksumType can be used by GstChecksumSink, adding
support for MD5, SHA-256 and SHA-512 in addition to SHA-1.

https://bugzilla.gnome.org/show_bug.cgi?id=763006
2016-04-22 20:51:14 +01:00
Jan Schmidt
4e5b0b38a4 mpegtsmux: Remove an unnecessary check for NULL before g_free 2016-04-16 22:43:38 +10:00
Reynaldo H. Verdejo Pinochet
58465bc90f Drop usage of 'overlayed' to mean 'overlaid' 2016-04-15 13:39:32 -07:00
Damian Ziobro
6141cd2f4b mpegtsmux: free pad_data->language before g_strdup in order to avoid memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=765005
2016-04-14 09:38:44 +03:00
Jan Schmidt
d6ea4d83f2 mpegtsbase: Fix when applying new PMT with same program number
When the sub-class is delaying deactivation of the old program,
but it has the same program number as the new program, don't
overwrite the old program in the hash table and then steal
the new program back out of it. Instead, add the new program to
the hash table after handling removal of the old one.
2016-04-12 14:09:47 +10:00
Nicolas Dufresne
81960ea853 rfbsrc: Fix fallback to GstVideoBufferPool
The replacement pool need to be added to the query, otherwise the
baseclass won't see it. We also need to properly remove the rejected
pools.

https://bugzilla.gnome.org/show_bug.cgi?id=763441
2016-04-05 21:40:58 -04:00
Nicolas Dufresne
7e293f15dd rfbsrc: Implement decide_allocation virtual
This way we can use the base class for buffer allocation, hence use
fill() instead of create() virtual. This also adds a strict check on the
select pool buffer size as we don't support strides and padding.

This is based on initial patch proposed by Sebastien Dröge, from which I
also fixed a buffer pool leak.

https://bugzilla.gnome.org/show_bug.cgi?id=763441
2016-04-05 21:21:29 -04:00
Nicolas Dufresne
d3d34b5a8c rfbsrc: Fix caps negotiation
As we currently only use the server reported "natural" format, caps
negotiation should simply be limited to telling the base class which
format to use. Fix the negotiation by moving the associated code
into negotiate() virtual function. Also, use gst_base_src_set_caps()
rather then setting it on the pad directly. Also protect against this
method being called multiple time (we can't renegotiate for now).

This change also moves some network code that was being run during the
application state change call, to be run on the streaming thread.

https://bugzilla.gnome.org/show_bug.cgi?id=739598
2016-04-05 15:36:31 -04:00
Nicolas Dufresne
52b50d0952 rfbsrc: Implement unlock() method
This prevent stalls when we try to stop the source while waiting
for the server to send more updates.
2016-04-05 13:35:38 -04:00
Nicolas Dufresne
89f3f162a5 rfbsrc: Check for connection being closed
Although it's not very well documented, g_input_stream_read_all() will
set the number of bytes read to 0 if the connection is closed rather
then returning an error.
2016-04-05 13:35:25 -04:00
Nicolas Dufresne
0eb5722af6 rfbsrc: Check for read/write error
Check for read/write error. This prevent undefined behaviour that rely
on unitialized buffer.
2016-04-05 13:35:18 -04:00
Nicolas Dufresne
ba93b86011 rfbsrc: Add a internal method to disconnect
This also removes the disconnected boolean hack.
2016-04-05 13:35:11 -04:00
Nicolas Dufresne
ff5dc55c8a rfbsrc: Don't ignore errors
This prevents recursion on error. This used to happen as we
don't change the state when something fails. We end up running
and failing in the same state forever.
2016-04-05 13:34:57 -04:00
Nicolas Dufresne
459bdaae3f rfbsrc: Serialize write operations
Currently we send key events from seperate threads. IOStream does not
allow concurrent write operations, so protect this operation using a
mutex.
2016-04-05 13:34:38 -04:00
Nicolas Dufresne
c8d2e234c4 rfbsrc: Add 3.7/3.8 security type negotiation 2016-04-05 13:34:34 -04:00
Nicolas Dufresne
21b322c8f3 rfbsrc: Port to GSocketClient
Using GSocketClient we can simplify a lot the read/write operation.
This also provide an GSocketConnection (a GIOStream) which can then
be used with the GTlsClientConnection for secure connections. Note
that we use _write_all() to ensure all bytes have been read. This is
to follow the fact the none of the _send() calls check the return
value.
2016-04-05 13:34:07 -04:00
Nicolas Dufresne
4e0a5c101f rfbsrc: Remove useless library wrapping
We use a sinlge .c file, simplify everything by removing that
static library.
2016-04-05 13:34:01 -04:00
Nicolas Dufresne
29f1ca8602 rfbsrc: Cleanup dead code
Remove all the unused stuff, the include header, definition and C code
that don't contribute anything to this element.
2016-04-05 13:33:50 -04:00
Nicolas Dufresne
7b4b8a95b4 rfbsrc: Properly fallback to 3.3
If the major version is not 3, then the minor version provided
should be ignored, as it is meaningless for our fallback.
2016-04-05 13:33:38 -04:00
Nicolas Dufresne
b83a6967c9 rfbsrc: Cleanly handle security negotiation failure
When the security cannot be negotiated, the server returns
security type of 0 (failure). In that case, the next step is
to read the error reason string.
2016-04-05 13:33:24 -04:00
Christoffer Stengren
de3b2cc171 gdpdepay: Query for buffer allocator before using default
https://bugzilla.gnome.org/show_bug.cgi?id=764361
2016-04-03 11:45:09 +03:00
Vivia Nikolaidou
e6c3446d01 interlace: Allow interlaced sink caps, do passthrough
Allow interlace to receive already interlaced content, if compatible with its
configuration. In that case, it will just do passthrough.

https://bugzilla.gnome.org/show_bug.cgi?id=764036
2016-04-03 11:29:48 +03:00
Sebastian Dröge
0fa43aaab4 h264parse: constrained-baseline is a subset of baseline
We get into this code path if the profile is already constrained-baseline and
downstream does not support constrained-baseline. So we should try baseline
and the other compatible profiles.

https://bugzilla.gnome.org/show_bug.cgi?id=764448
2016-04-01 12:08:29 +03:00
Sebastian Dröge
cc1feff99f mxfmux: Instead of releasing request pads on stop(), clear them only
Request pads are requested by applications and as such should only be released
by them again. Instead of releasing them when stopping the muxer, just clear
their state so that they can be used again when starting the muxer again.

https://bugzilla.gnome.org/show_bug.cgi?id=763862
2016-03-25 12:54:00 +02:00
Sebastian Dröge
b53f682d75 sdp: Add new sdpsrc element
This can read from an SDP file or get the SDP data via property. Works
around the problem that sdpdemux inside decodebin fails because the
GST_STATE_CHANGE_NO_PREROLL is not observed by the pipeline.

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

https://bugzilla.gnome.org/show_bug.cgi?id=762860
2016-03-25 12:50:15 +02:00
Thiago Santos
dbd12ec82b mpegtsbase: plug EIT string leak 2016-03-24 11:29:35 -03:00
Thiago Santos
f8cad7d755 mpegtspacketizer: simplify variable reset
Just set it directly to 0, instead of checking and reseting
2016-03-24 11:06:55 -03:00
Vineeth TM
8cdfb13658 bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Vincent Penquerc'h
5b786ce5b7 interlace: fix negotiation with fixed framerate downstream
https://bugzilla.gnome.org/show_bug.cgi?id=762924
2016-03-24 14:54:36 +02:00
Jimmy Ohn
74a90087c1 mxfdemux: Fix query memory leak
Peer query isn't being freed in case of GST_QUERY_SEEKING.

https://bugzilla.gnome.org/show_bug.cgi?id=763974
2016-03-21 10:44:02 +02:00
Aleksander Wabik
d8e681bb63 h264parse, h265parse: fix handling of downstream force-key-unit events
The parser handles the downstream force-key-unit event incorrectly,
it tries to parse it as an upstream force-key-unit event, does not
check the return value, and then uses uninitialized memory in
"all_headers" boolean variable.

https://bugzilla.gnome.org/show_bug.cgi?id=763793
2016-03-17 19:24:32 +00:00
Sebastian Dröge
a032347c77 mxfmux: Fix typo in JPEG2000 colorspace
sRGC -> sRGB
2016-03-16 11:34:46 +02:00
Tim-Philipp Müller
5ec337f8ae tsdemux: add video/x-h265 to template caps 2016-03-12 15:44:54 +00:00
Jan Schmidt
6de7f0c0fa mpegts: Don't leave freed programs in the hash table
When the sub-class claims a program for later freeing, make
sure it's not left in the hash table, or it can cause crashes on shutdown.

Make sure tsdemux frees any program it has kept around at shutdown
if it wasn't freed already.

https://bugzilla.gnome.org/show_bug.cgi?id=763503
2016-03-12 03:32:32 +11:00
Sreerenj Balachandran
92f4eb45ab videoparsers: h265: Fix segfault while transforming hevc to nal aligned bytestream
Create temporary ParseFrame and copy the nal size buffer region
for each nal unit like we did for h264.

https://bugzilla.gnome.org/show_bug.cgi?id=763494
2016-03-11 17:34:03 +02:00
Edward Hervey
5ebf1d477d mpegvideoparser: Handle non-hierarchical profiles again
This is a regression from since mpegvideoparser was switched to
use the codecparsing library.

The problem is that the high bit of the profile_and_level is used
to specify non-hierarchical profiles and levels. Unfortunately we
were discarding that information.

Expose that escape bit, and use it in the element

https://bugzilla.gnome.org/show_bug.cgi?id=763220
2016-03-09 15:18:42 +01:00
Edward Hervey
215c9eb71a tsdemux: Don't reset/recalculate segments with accurate seeks
When dealing with accurate seeks, we must send out a segment which
is exactly what is requested.

https://bugzilla.gnome.org/show_bug.cgi?id=763262
2016-03-08 15:13:40 +01:00
Aurélien Zanelli
d87177b69b mpegtspacketizer: handle early PTS conversion when a group has been found
In some cases, the PTS might be smaller than the first observed PCR
value which causes element to apply wraparound leading to bogus
timestamp. To solve this, we only apply it if the PTS-PCR difference is
greater that 1 second to be sure that it's a real wraparound.

Moreover, using unsigned 32 bits values to handle wrapover could end up
with bogus value, so it use pts value to handle it.

Also, convert pcr time to gst time before comparing it to pts.
Since refpcr is expressed in PCR time base while pts is expressed in GStreamer
time.

https://bugzilla.gnome.org/show_bug.cgi?id=743259
2016-03-03 00:50:15 +11:00
Sreerenj Balachandran
cf7056a312 videoparsers: h264: Disable passthorugh mode enabling
Enabling passthorugh mode is causing multiple issue:
For nal aligned multiresoluton streams, passthrough mode
make h264parse unable to advertise the new resoultions.
Also causing issues while parsing MVC streams which have two
separate layers (base-view and non-base-view).

This fix is only a temporary workaround.

For MVC, proper fixes needed in many places:
(handle prefix nal unit, handle non-base-view slice nal extension,
fix the picture_start detection for multi-layer-mvc streams etc)

https://bugzilla.gnome.org/show_bug.cgi?id=758656
2016-02-29 12:35:58 +02:00
Sebastian Dröge
019bc67837 sdpdemux: Set caps to application/x-rtp instead of application/x-unknown as returned by the SDP helpers
The SDP helpers can't know if this is going to be RTP, SRTP, or ....

https://bugzilla.gnome.org/show_bug.cgi?id=762860
2016-02-29 12:03:43 +02:00
Sebastian Dröge
cbfbc6ed88 sdpdemux: Add pads with the correct names in case an rtpbin is used
They're supposed to be stream_%u and not recv_rtp_src_%u_%u_%u.

https://bugzilla.gnome.org/show_bug.cgi?id=762860
2016-02-29 12:03:43 +02:00
Sebastian Dröge
fd42320ec1 dataurisrc: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps()
Remove calls to gst_pad_has_current_caps() which then go on to call
gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just
use gst_pad_get_current_caps() and check for NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=759539
2016-02-23 18:17:42 +02:00
Tim-Philipp Müller
a3019ffb63 aiffparse: fix negotiation errors with multi-channel files
Set fallback channel layout on files with more than two
channels. Not clear where to retrieve the real layout from
or what the default layout is for AIFF files, the spec
only seems to specify some layout for up to 6 channels
and the file in question doesn't have a CHAN chunk.

https://bugzilla.gnome.org/show_bug.cgi?id=676425
2016-02-21 12:20:10 +00:00
Tim-Philipp Müller
5b5398d613 win32: remove outdated build cruft
This hasn't been touched for generations, doesn't work,
and is just causing confusion. We also don't want to
maintain these files manually.
2016-02-21 10:34:56 +00:00
Edward Hervey
ab31900b64 tsparse: Fix per-program-pad pushing
This fixes a couple of issues regarding the output of (request)
per-program pads output:

We would never push out PAT sections (ok, that was one reallly stupid
mistake. I guess nobody ever uses this feature ...).

In the case where the PMT section of a program was bigger than one
packet, we would only end up pushing the last packet of that PMT. Which
obviously results in the resulting stream never containing the proper
(complete) PMT.

The problem was that the program is only started (in the base class)
after the PMT section is completely parsed. When dealing with single-program
pads, tsparse only wants to push the PMT corresponding to the requested
program (and not the other ones). tsparse did that check by looking
at the streams of the program...
... but that program doesn't exist for the first packets of the initial
PMT.

The fix is to use the base class program information (if it parsed the
PAT it already has some information, like the PMT PID for a given program)
if the program hasn't started yet.
2016-02-19 18:12:59 +01:00