summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-05-30qtdemux: Fix usage of gst_adapter_get_offset()qtdemuxgapEdward Hervey1-2/+4
In order to be backwards compatible with previous behaviour, make sure we don't end up using invalid offsets from the adapter
2016-05-30qtdemux: Fine-tune gap handling some moreEdward Hervey1-13/+25
We need to reset ourself if the incoming discont buffer is *not* at the beginning of a sample.
2016-05-30qtdemux: Fix check for whether the new buffer is a gap'ed sampleEdward Hervey1-1/+3
We actually need to make sure the returned sample has the same offset as the input buffer since the find_index_* function will return the sample just before the requested position.
2016-05-30deinterlace: Ensure DISCONT flag is properly propagatedEdward Hervey2-0/+12
The output of deinterlace at startup, or when receiving a new DISCONT buffer, should have the DISCONT flag set on the first buffer.
2016-05-30fixup: qtdemux: Use gst_adapter_get_offsetEdward Hervey3-12/+11
Instead of guessing the right offset of the moof, use the exact offset from the adapter.
2016-05-30WIP: qtdemux: Handle upstream GAP in push-mode/time segmentEdward Hervey5-8/+4460
This is to handle cases where upstream handles the fragmented streaming in TIME base and sends us data with gaps within fragments. This would happen when dealing with trick-modes. When upstream (push-based, TIME SEGMENT) wishes to send discontinuous samples, it must obey the following rules: * The buffer containing the [moof] must have a valid GST_BUFFER_OFFSET * The buffers containing the first sample after a gap: * MUST start at the beginning of a sample, * MUST have the DISCONT flag set, * MUST have a valid GST_BUFFER_OFFSET relative to the beginning of the fragment.
2016-05-30qtdemux: Remove useless variableEdward Hervey1-5/+1
That variable is only needed for a debug statement, move it there
2016-05-30qtdemux: Add/Fix comments on the various structure variablesEdward Hervey2-47/+124
No variables were added/removed. This was just a good excuse to: * Comment what most variables are used for (and when) * Order them in such a way as to show first the common variables used in all cases, followed by those only used in push-mode
2016-05-30qtdemux: Remove unused structureEdward Hervey1-8/+0
Let's just remove it, been commented for 7+ years :)
2016-05-30qtdemux: Show state name in debuggingEdward Hervey2-10/+35
Makes it easier to trace what's going on
2016-05-27multifilesrc: set position as offset from start-indexPrashant Gotarne1-1/+2
query position in GST_FORMAT_BUFFER returns offset from start-index rather than index. https://bugzilla.gnome.org/show_bug.cgi?id=752462
2016-05-27tests: add unit test for JPEG-2000 rtp payloader leakTim-Philipp Müller3-0/+27
https://bugzilla.gnome.org/show_bug.cgi?id=766870
2016-05-27rtpj2kpay: Fix buffer memory leakPierre Lamot1-0/+1
Input buffer memory was not unmapped https://bugzilla.gnome.org/show_bug.cgi?id=766870
2016-05-25v4l2object: fix caps leakGuillaume Desmottes1-2/+4
gst_v4l2_object_probe_caps() was taking an extra ref on the returned caps for no reason. https://bugzilla.gnome.org/show_bug.cgi?id=766610
2016-05-23videocrop mark crop properties as mutable in playing stateTim-Philipp Müller1-6/+10
2016-05-20souphttpsrc: fix buffer leak when flushingGuillaume Desmottes1-0/+2
When early returning in gst_soup_http_src_read_buffer() because the element is FLUSHING, we need to unmap and unref the buffer which was just created. https://bugzilla.gnome.org/show_bug.cgi?id=766718
2016-05-20qtdemux: Set seek event seqnum on all SEGMENT eventsSebastian Dröge1-1/+11
Some were forgotten. See https://bugzilla.gnome.org/show_bug.cgi?id=765935
2016-05-20avidemux: Pass through seek event seqnums in all SEGMENT/EOS events and ↵Sebastian Dröge2-13/+33
SEGMENT_DONE messages/events See https://bugzilla.gnome.org/show_bug.cgi?id=765935
2016-05-20matroskademux: Set seek event seqnum in EOS and SEGMENT_DONE messages/eventsSebastian Dröge1-6/+19
Also actually store the seqnum in pull mode seeks. See https://bugzilla.gnome.org/show_bug.cgi?id=765935
2016-05-20deinterlace: fix caps leakGuillaume Desmottes1-0/+1
The caps returned by gst_pad_get_current_caps() was never unreffed when not early returning. Fix a leak with the elements/deinterlace test. https://bugzilla.gnome.org/show_bug.cgi?id=766558
2016-05-20rtpsession: don't act on suspicious BYE RTCPMikhail Fludkov3-16/+115
Some endpoints (like Tandberg E20) can send BYE packet containing our internal SSRC. I this case we would detect SSRC collision and get rid of the source at some point. But because we are still sending packets with that SSRC the source will be recreated immediately. This brand new internal source will not have some variables incorrectly set in its state. For example 'seqnum-base` and `clock-rate` values will be -1. The fix is not to act on BYE RTCP if it contains internal or unknown SSRC. https://bugzilla.gnome.org/show_bug.cgi?id=762219
2016-05-20rtpsession: Add test for locking of the stats signalMikhail Fludkov1-0/+45
Keeping the lock while emitting the stats signal introduces potential deadlock in those situations when the signal callback wants the access to rtpsession's properties which also requre the lock. https://bugzilla.gnome.org/show_bug.cgi?id=762216
2016-05-19matroskademux: don't hold object lock whilst pushing out headersSeungha Yang1-3/+0
matroskademux would take the GST_OBJECT_LOCK in - gst_matroska_demux_push_codec_data_all() - gst_matroska_demux_query() Some parse element such as FLAC checks upstream seekability, and there is some use cases that matroska-demux is linked to a parse element (e.g.,FLAC format) without intermediate elements (e.g., queue). In this case, matroska-demux never returns from _push_codec_data_all() because the parser can return only after it receives the response to the upstream query, but that's not going to happen because it's deadlocked. Elements must not hold the object lock whilst pushing out events or data. https://bugzilla.gnome.org/show_bug.cgi?id=766645
2016-05-19souphttpclientsink: Set sent_buffers and streamheader_buffers to NULL after ↵Sebastian Dröge1-0/+2
freeing Otherwise we might use an already freed list later and crash or worse.
2016-05-18udpsrc: fix Since version for new "loop" propertyTim-Philipp Müller1-1/+1
2016-05-17rtpdec: fix clock leakGuillaume Desmottes1-0/+1
gst_system_clock_obtain() returns a new ref. https://bugzilla.gnome.org/show_bug.cgi?id=766521
2016-05-17udpsrc: add doc blurb with since marker for new "loop" propertyTim-Philipp Müller1-0/+7
2016-05-16avimux: add support for pngDimitrios Katsaros1-1/+6
https://bugzilla.gnome.org/show_bug.cgi?id=758059
2016-05-15splitmuxsrc: Connect to demux signals before activatingJan Schmidt1-7/+10
Fix a race in splitmuxsrc by properly connecting to the demuxer signals we're interested in *before* setting it running.
2016-05-15docs: Update for git masterSebastian Dröge68-136/+203
2016-05-15rtpmp4gpay: Don't produce timestamps based on byte countOlivier Crête2-7/+1
The GST_BUFFER_OFFSET of output buffers returned to GstRtpBasePayload should reflect the number of "samples" in the unit of the RTP clock in this buffer. If this is not true, then it shouldn't be set. https://bugzilla.gnome.org/show_bug.cgi?id=761943
2016-05-15matroska-mux: Fix strcmp usageEdward Hervey1-5/+4
Just use g_strcmp0 which can handle NULL entries
2016-05-15souphttpsrc: Use audio/x-unaligned-raw instead of audio/x-raw for L16 dataCarlos Rafael Giani1-1/+1
Directly setting audio/x-raw caps leads to problems when the delivered data blocks do not align properly at sample boundaries (for example, a data block with 391 bytes). So, instead, set audio/x-unaligned-raw to let a parser be autoplugged. https://bugzilla.gnome.org/show_bug.cgi?id=689460
2016-05-15qtdemux: Parsing elst box based on versionSeungha Yang1-7/+22
segment_duration and media_time should be parsed based on version of elst box. Specification defines that an elst box with version 1 has uint64 and int64 values for segment_duration and media_time, respectively. https://bugzilla.gnome.org/show_bug.cgi?id=766301
2016-05-15souphttpsrc: check if request was cancelled when sending messageThiago Santos1-0/+4
It might be that the request was aborted by the application and we can return immediatelly
2016-05-15souphttpsrc: proxy resolver is on by defaultThiago Santos1-1/+0
Remove from the session creation parameters
2016-05-15soup: update build to warn about newer deprecated functionsThiago Santos1-2/+2
We already depend on 2.48
2016-05-15souphttpsrc: reduce reading latency by using non-blocking readThiago Santos2-16/+103
Non-blocking read will return the amount of data available without blocking to wait for the full requested size. The downside is that now it souphttpsrc needs to have a waiting mechanism in case there is no data available yet to avoid busy looping arond the inputstream.
2016-05-15rtpsession: Take the lock already when reading the other stats, not just for ↵Sebastian Dröge1-1/+1
the hash table https://bugzilla.gnome.org/show_bug.cgi?id=766025
2016-05-14matroska: use math-compat.h for NAN defineTim-Philipp Müller1-12/+1
2016-05-15splitmuxsink: Use GstBin async-handling instead of our own.Jan Schmidt2-19/+1
Set the async-handling property on GstBin to let it manage async-handling instead of the local handling from the previous commit. Works because of #174a5e in core
2016-05-14souphttpsrc: refactor to use Soup's sync APIThiago Santos2-485/+211
Replace the async API with the sync API to remove all the extra mainloop and context handling. Currently it blocks reading until 'blocksize' bytes are available but that can be improved by using: https://developer.gnome.org/gio/unstable/GPollableInputStream.html#g-pollable-input-stream-read-nonblocking https://bugzilla.gnome.org/show_bug.cgi?id=693911
2016-05-14tests: souphttpsrc: replace deprecated APIThiago Santos1-14/+44
Avoid using soup_server_run_async and old get_port() APIs, replace with me soup_server_listen and get the port through the URIs list returned from the server.
2016-05-14jitterbuffer: Upgrade debug message to errorOlivier Crête1-1/+1
It causes the entire pipeline to fail, it should be easier to find.
2016-05-14splitmuxsink: Hide internal async state changes.Jan Schmidt2-2/+25
When switching fragments, hide the async-start/async-done messages from the parent bin, as otherwise we sometimes (very rarely) hang in PAUSED instead of returning / continuing to PLAYING state.
2016-05-14splitmuxsink: Remove stray carriage-return from debugJan Schmidt1-1/+1
2016-05-13rtp: Ship gstrtpj2kcommon.h file to fix distcheckSebastian Dröge1-0/+1
2016-05-13avimux: Do not write index and header if idx is NULLJesper Larsen1-0/+4
Fixes criticals with e.g. videotestsrc num-buffers=1 ! identity drop-probability=1.0 ! avimux ! fakesink https://bugzilla.gnome.org/show_bug.cgi?id=748700
2016-05-13rtpj2kpay: manage T tile invalidation bit correctly, update tile id in ↵Aaron Boxer1-18/+35
header correctly. 1. according to RFC, T bit is only set when either the RTP packet only contains the J2K main header, or the packet contains tile parts from multiple tiles. This is now being managed correctly in the code. The second scenario cannot happen with our payloader, since tile headers are always placed in their own RTP packet, and so a packet cannot contain tile parts from multiple tiles. However, I have added code to track if multiple tile parts are included in a single RTP packet, in case in the future we want to put header and data in same packet. 2. Old code would set the tile id to zero for all J2K packets. This is now set correctly to the appropriate tile id. https://bugzilla.gnome.org/show_bug.cgi?id=745187
2016-05-13rtpj2kpay: manage fragmented headers correctlyAaron Boxer1-15/+36
J2K main header framentation across multiple RTP packets is now handled correctly https://bugzilla.gnome.org/show_bug.cgi?id=745187