summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-02-18qtdemux: Don't fail on seeks after EOSWIPEdward Hervey1-0/+2
We reset the demuxer into the MOVIE state so that seek requests after EOS get processed.
2015-02-18qtdemux: WIP : qtdemux push-mode fragmented seekingEdward Hervey2-134/+439
1) Try to look for MFRO/MFRA and fill it up FIXME : Streamline more with existing (pull-based) code 2) Find what is the optimal fragment for a given seek Remember the fragment start time and offset and seek to that 3) When we get the corresponding SEGMENT, put ourself in the INITIAL state set the offset to the fragment offset and clean up our streams. We need to do that in the event handler to guarantee the chain function isn't currently handling data
2015-02-18qtdemux: Don't blindly refuse fragmented seek in push modeEdward Hervey1-2/+2
Seeking back will work for example. Also fix mdatleft value to a very big value so that data that arrives after a succesfull push-seek doesn't abort early (it will get set to a proper value the next time we see a mdat)
2015-02-18-Should fix Mute/Unmute issue under windowsEric Trousset1-1/+3
2015-02-18qtdemux: Detect badly interleaved filesEdward Hervey1-3/+73
When working in push-based with broken files, error out if the interleaving is greater than 10s (which is already awful).
2015-02-18qtdemux: WIP: Support non-default TIME SEGMENT at beginningEdward Hervey1-0/+12
If we receive an initial TIME SEGMENT with a non-zero start value, we need to adjust it to take into account the fact that the buffers we will be pushing out will start from 0 (and not from the segment start value). This is just a workaround for now until the relationship of TIME SEGMENT values and container formats has been clarified upstream.
2015-02-18qtdemux: Initial chained supportEdward Hervey2-9/+51
This is similar to how asfdemux supports "chained" files. We detect that by new STREAM_START events. We put aside all old streams, and when we created all our new streams, we push EOS on those old streams and finally remove them
2015-02-18qtdemux: don't blindly use any previous buffer timestamp for moofEdward Hervey1-2/+3
The previous PTS might actually be from quite far away, from way before the moof header. We don't want to use that blindly. Use a safety distance of 4kbytes instead Avoids using completely bogus base timestamp for fragments
2015-02-17rtpjitterbuffer: When resetting the jitterbuffer because of packet discont, ↵Sebastian Dröge1-2/+32
don't flush sticky events We will otherwise flush away STREAM_START, CAPS or SEGMENT events and will confuse downstream with buffers that come before such events.
2015-02-17jack: Add property port-pattern to specify which JACK ports to connect tohark4-7/+70
https://bugzilla.gnome.org/show_bug.cgi?id=690719
2015-02-17isomp4: Redefine gst_isoff_ symbols to gst_isoff_qt_Edward Hervey3-45/+48
We need different symbol names, because these symbols are also present in the fragmented plugin ... which will cause conflicts when doing static linking
2015-02-16goom2k1: use fractional part of float divisionLuis de Bethencourt1-2/+2
2015-02-16splitmuxsin: remove dead codeLuis de Bethencourt1-2/+0
Every instance of goto beach has buf_info equal NULL. Don't check for a condition that never happens. CID #1268399
2015-02-15splitmux-test: Parse error messageNicolas Dufresne1-0/+2
The test had a function to print the error, but was not parsing it. This was causing warning about dbg_info being used uninitialized. If the test was testing any errors, this would have crashed.
2015-02-15spectrum: Fix min and max for bands propertyNicolas Dufresne1-1/+1
The number of FFTs is calculated with the following formula: guint nfft = 2 * bands - 2; nfft is passed to gst_fft_f32_new() as the len argument and is of type unsigned integer. This method required that len is at leas 1, then maximum G_MAXINT, as other values would be negative. If we extrapolate from the formula above it means we need "bands" to be between 2 and ((guint)G_MAXINT + 2) / 2). https://bugzilla.gnome.org/show_bug.cgi?id=744213
2015-02-15v4l2allocator: Fix freeing of shared memoryNicolas Dufresne1-21/+12
When memory (that has been shared using gst_memory_share()) are freed, the memory (or the DMABUF FD) should not bee freed. These memories have a parent. This also removes the extra _v4l2mem_free function and avoid calling close twice on the DMABUF FD. https://bugzilla.gnome.org/show_bug.cgi?id=744573
2015-02-14qtdemux: do not use sparse streams in push-based seekingThiago Santos1-3/+6
Using the sparse streams can make the push-based seeking return too far in the stream. It also can lead to issues as the sparse streams will be ignored when restarting playback and, if the sparse stream is the one that has the earliest sample, it will confuse qtdemux's offsets as one stream will have an earlier offset than the demuxer's one which might lead to early EOS. https://bugzilla.gnome.org/show_bug.cgi?id=742661
2015-02-13pulsesink: Enhance code readability in pulsesink_queryJimmy Ohn1-4/+3
In pulsesink_query function, we use a switch for the query type. In the CAPS case, there is no 'break', instead we return right away. Use a break and return at the end of the function instead for better code readability. https://bugzilla.gnome.org/show_bug.cgi?id=744461
2015-02-13splitmuxsink: flag as sink from the startTim-Philipp Müller1-0/+2
2015-02-12qtdemux: Initial 'sidx' atom parsing supportPhilippe Normand6-1/+337
Parse the 'sidx' atom and update the total duration according to the parser result. The isoff parser code is imported from gst-plugins-bad's dashdemux and a gst_isoff_sidx_parser_add_data() function was factored out of the gst_isoff_sidx_parser_add_buffer() function. https://bugzilla.gnome.org/show_bug.cgi?id=743578
2015-02-12flvdemux: Use gst_video_guess_framerate()Jan Schmidt2-2/+4
Use gst_video_guess_framerate() from libgstvideo to guess sensible common framerates where possible from the floating point fps in the stream.
2015-02-11Improve and fix LATENCY query handlingSebastian Dröge6-25/+38
This now follows the design docs everywhere, especially the maximum latency handling. https://bugzilla.gnome.org/show_bug.cgi?id=744106
2015-02-11rtpsession: Handle first RTCP packet and early feedback correctlySebastian Dröge1-9/+43
According to RFC 4585 section 3.5.3 step 1 we are not allowed to send an early RTCP packet for the very first one. It must be a regular one. Also make sure to not use last_rtcp_send_time in any calculations until we actually sent an RTCP packet already. In specific this means that we must not use it for forward reconsideration of the current RTCP send time. Instead we don't do any forward reconsideration for the first RTCP packet.
2015-02-10rtph263depay: fix compilation with gcc 5.0Wim Taymans1-1/+1
2015-02-10splitmuxsink: fix example pipeline properlyTim-Philipp Müller1-1/+1
x264enc might not have a max-key-int property, but it has a key-int-max property...
2015-02-10splitmux: fix typoLuis de Bethencourt1-1/+1
2015-02-10splitmux: update example pipelineLuis de Bethencourt1-1/+1
Element x264enc doesn't have a max-key-int property
2015-02-10splitmux: fix memory leakLuis de Bethencourt1-2/+6
If execution goes to the beach in line 981, buf_info goes out of scope without the memory being free'd. Handle this case. CID #1268403
2015-02-08rtspsrc: fix awkward if clauseTim-Philipp Müller1-1/+1
2015-02-07splitmux: Add unit test for file splittingJan Schmidt3-9/+110
Add a unit test for file splitting, and fix the leaks in the splitmuxsink it found
2015-02-06wavparse: fix which stop variable is used in assignmentLuis de Bethencourt1-2/+2
Assignment is done to variable segment.stop when the intention was to assign to local variable stop. Instead of overwriting it, the value is now clamped and segment.stop is set to it soon after. CID #1265773
2015-02-07splitmux: Fix memory leaks until the test valgrinds cleanJan Schmidt3-11/+107
2015-02-06splitmux: Handle early EOS during part preparationJan Schmidt1-4/+7
Handle the case where a short file reaches EOS while we're still waiting for no-more-pads, and make sure we continue to the internal READY state for real playback to work properly later.
2015-02-06tests: Change splitmux test video filesJan Schmidt3-0/+0
Avoid test failure by changing the stored video resolution from 80x60 to 80x64, which needs bug 741030 to be fixed.
2015-02-06splitmux: Implement new elements for splitting files at mux level.Jan Schmidt23-88/+4633
Implement 2 new elements - splitmuxsink and splitmuxsrc. splitmuxsink is a bin which wraps a muxer and takes 1 video stream, plus audio/subtitle streams, and starts a new file whenever necessary to avoid overrunning a threshold of either bytes or time. New files are started at a keyframe, and corresponding audio and subtitle streams are split at packet boundaries to match video GOP timestamps. splitmuxsrc is a corresponding source element which handles the splitmux:// URL and plays back all component files, reconstructing the original elementary streams as it goes.
2015-02-04tests: souphttpsrc: update ssl key/cert pairThiago Santos3-33/+41
Our ones were expired. The new ones were copied from libsoup's tests files. Also sets the property to use our own cert to validate the server, otherwise the default system certs would be used and it would fail.
2015-02-04rtph264depay: prevent trying to get 0 bytes from adapterThiago Santos1-4/+6
This causes an assertion and would lead to getting a NULL instead of a buffer. Without proper checking this would easily lead to a segfault https://bugzilla.gnome.org/show_bug.cgi?id=737199
2015-02-04qtdemux: Simple implementation of GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITSJan Schmidt1-0/+9
When the trickmode key-units flag is set on the segment, simply skip any sample on a video stream that isn't a keyframe
2015-02-03rtspsrc: fix container handlingWim Taymans1-4/+3
We detect a container correctly now so we need to revert the weird check there was before. Use gst_rtspsrc_stream_push_event() to push the caps event on the right pad. See https://bugzilla.gnome.org/show_bug.cgi?id=739391
2015-02-02matroskamux: store and write stream tagsThiago Santos3-13/+96
Separate global from stream tags storage and write them to the appropriate tags entry in the output
2015-02-02qtdemux: parse stream tagsThiago Santos1-126/+127
Keep global and stream tags separately and parse the udta node that can be found under the trak atom. The udta will contain stream specific tags and will be pushed as such https://bugzilla.gnome.org/show_bug.cgi?id=692473
2015-01-31qtmux: store stream and container tags separatelyThiago Santos2-1/+31
Tags received via events, when marked as stream tags, will be stored on that stream's trak atom instead of being stored in the main tags atom. This allows the resulting file to have global and stream tags stored. https://bugzilla.gnome.org/show_bug.cgi?id=692473
2015-01-31qtmux: refactor tags functions to accomodata UDTA at trak levelThiago Santos3-163/+161
Refactor the functions that were bound to the 'moov' atom to directly pass the desired 'udta' that should receive the tags. This allows the tags to be written to 'udta' at the 'moov' or the 'trak' level, creating tags that are for the container or for a stream only. https://bugzilla.gnome.org/show_bug.cgi?id=692473
2015-01-31qtmux: map application name to _swr tagThiago Santos1-0/+1
It refers to the application name and version used to create the file https://bugzilla.gnome.org/show_bug.cgi?id=692473
2015-01-31matroska: Fix seeking past the end of the file in reverse mode.Jan Schmidt4-31/+51
Snap to the end of the file when seeking past the end in reverse mode, and also fix GST_SEEK_TYPE_END and GST_SEEK_TYPE_NONE handling for the stop position by always seeking on a segment in stream time
2015-01-30rtpsession: Fix signal nameSebastian Dröge1-1/+1
This wasn't meant to be pushed at all yet, but now that it's there already it won't hurt to make it correct at least.
2015-01-30rtpstats: Fix typo in documentationSebastian Dröge1-2/+2
2015-01-30rtpsession: Add new on-receiving-rtcp signalSebastian Dröge2-0/+21
This will be emitted whenever an RTCP packet is received. Different to on-feedback-rtcp, this signal gets every complete RTCP packet and not just the individual feedback packets.
2015-01-28qtdemux: simplify segment.base mathThiago Santos2-8/+1
Remove a fix for heavily edited files added for fixing https://bugzilla.gnome.org/show_bug.cgi?id=345830 to work with seeks and proper gaps playback. The fix was replaced for a more general solution that bases on using previous segment's duration, just like it works for media segments playback. https://bugzilla.gnome.org/show_bug.cgi?id=743518
2015-01-27videomixer: update orc filesLuis de Bethencourt1-46/+34