summaryrefslogtreecommitdiff
path: root/ext/smoothstreaming
Commit message (Collapse)AuthorAgeFilesLines
* mssdemux: activate streams before configuring bitratePhilippe Normand2015-09-301-6/+15
| | | | | | | | Doing the contrary has no effect and the consequence is that playback will start with the lowest bitrate even if we can already handle higher bitrate. https://bugzilla.gnome.org/show_bug.cgi?id=755108
* mssdemux: always use timescale for gst timestamp calculationPhilippe Normand2015-09-301-6/+5
| | | | | | | | | Not doing this can lead the demuxer to attempt downloading fragments for an invalid start time. The server would then send a HTTP Precondition failed error, the demuxer would try some more times to download the invalid fragment and eventually error out. https://bugzilla.gnome.org/show_bug.cgi?id=754523
* Remove obsolete Android build cruftTim-Philipp Müller2015-04-261-15/+0
| | | | This is not needed any longer.
* adaptivedemux: Allow subclasses to override how a new manifest would be ↵Sebastian Dröge2015-04-232-4/+8
| | | | downloaded
* mssdemux: use correct function to clear fragment infoThiago Santos2015-02-171-3/+1
| | | | | Just freeing the url won't reset the byte ranges and can lead to wrong ranges being used.
* adaptivedemux: add bitrate-limit propertyThiago Santos2015-02-172-19/+0
| | | | | | Move the property from subclasses to adaptivedemux, it allows selecing the percentage of the measured bitrate to be used when selecting stream bitrates
* adaptivedemux: add connection-speed propertyThiago Santos2015-02-172-30/+3
| | | | | | Allows to set a bitrate directly instead of measuring it internally based on the received chunks. The connection-speed was removed from mssdemux and hlsdemux as it is now in the base class
* mssdemux: fix crash while setting bitrate in caps structureRajat Verma2015-01-071-1/+1
| | | | | | | | | q->bitrate is a guint64, but G_TYPE_INT may read fewer bits off the stack, and if we pass more then the NULL sentinel may not be found at the right place, which in turn might lead to crashes. https://bugzilla.gnome.org/show_bug.cgi?id=741751
* mssdemux: fix reverse playback fragment trackingThiago Santos2014-12-101-9/+8
| | | | | | | | | 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
* mssdemux: add live supportThiago Santos2014-12-043-199/+211
| | | | | Implement the functions of adaptivedemux to have live support enabled. This allows mssdemux to refresh the Manifest periodically
* mssdemux: fix getting current position in segments when after last oneThiago Santos2014-12-041-2/+8
| | | | | For live streams this makes a difference when resyncing after a Manifest refresh, otherwise it doesn't know where to restart
* mssdemux: support manifests with repetition fragmentsThiago Santos2014-12-041-7/+55
| | | | | | | | | | | | 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" />
* mssdemux: port to adaptivedemux base classThiago Santos2014-12-045-1311/+189
|
* mssdemux: seeks in the manifest never failThiago Santos2014-11-073-14/+6
| | | | | Set void as the return and remove error handling as it could never fail
* smoothstreaming: initialise new GstH264NalUnit fieldsTim-Philipp Müller2014-11-071-1/+3
| | | | CID #1251107.
* Sprinkle some G_PARAM_DEPRECATED and #ifndef GST_REMOVE_DEPRECATEDTim-Philipp Müller2014-11-021-1/+3
|
* mssdemux: add type of stream to debug logThiago Santos2014-10-311-0/+2
| | | | Makes it faster to debug why certain streams are not showing
* mssdemux: do not unlock not locked mutexThiago Santos2014-10-311-1/+0
|
* mssdemux: synchronize with the download loop thread to signal it to continueGeorge Kiagiadakis2014-09-182-31/+66
| | | | | | | | If EOS or ERROR happens before the download loop thread has reached its g_cond_wait() call, then the g_cond_signal doesn't have any effect and the download loop thread stucks later. https://bugzilla.gnome.org/show_bug.cgi?id=735663
* mssdemux: fix clearing of eos state in padsThiago Santos2014-09-181-1/+26
| | | | | | | | | | | The internal pad still keeps its EOS flag and event as it can be assigned after the flush-start/stop pair is sent. The EOS is assigned from the streaming thread so this is racy. To be sure to clear it, it has to be done after setting the source to READY to be sure that its streaming thread isn't running. https://bugzilla.gnome.org/show_bug.cgi?id=736012
* mssdemux: improve position detection when a download restartMatthieu Bouron2014-09-111-3/+25
| | | | | | | Query other src pads before falling back to the position of the last known pushed segment (which can be far ahead in time). https://bugzilla.gnome.org/show_bug.cgi?id=736421
* mssdemux: Don't send flush events to deactivated padsSebastian Dröge2014-09-041-4/+4
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=736012
* mssdemux: Always use the redirect target to resolve relative URIsSebastian Dröge2014-05-281-6/+38
| | | | | But redownload the playlists from the original URI if it's not a permanent redirect.
* mssdemux: avoid deadlocking when erroringThiago Santos2014-05-121-4/+11
| | | | | It might get stuck when posting the message while a reconfigure event is being pushed upstream
* mssdemux: fix caps leakThiago Santos2014-05-121-0/+2
|
* mssdemux: handle error messages from internal sourceThiago Santos2014-05-121-9/+49
| | | | | set up a bin message handler to get notified of error messages from the internal source element
* mssdemux: Always accept the latency configure eventThiago Santos2014-05-121-0/+7
| | | | | Upstream or internal elements are irrelevant and we should always succeed.
* mssdemux: reenable segment tracking for streamsThiago Santos2014-05-122-51/+7
| | | | | Store the latest pushed timestamp so that mssdemux streams know where they are in time
* mssdemux: deprecate unused max-queue-size-buffersThiago Santos2014-05-121-1/+2
| | | | There is no internal storage of buffers anymore
* mssdemux: measure bitrate similarly to hlsdemuxThiago Santos2014-05-125-210/+19
| | | | new bitrate = (old bitrate + (last fragment bitrate * 3)) / 4
* mssdemux: remove uridownloader in favor of internal sourceThiago Santos2014-05-122-83/+365
| | | | | | Refactor mssdemux to remove uridownloader to use an internal source element which reduces startup latency and provides smaller buffers for better buffering management downstream
* mssdemux: Update for uri downloader API changesSebastian Dröge2014-05-051-2/+2
|
* mssdemux: Update for URI downloader API changesSebastian Dröge2014-05-021-3/+4
| | | | | And include the manifest file as referer in requests, and make sure to set refresh=TRUE when updating the manifest.
* smoothstreaming: avoid using an uninitialized manifestVincent Penquerc'h2014-04-101-1/+3
| | | | | | If we did not set the manifest yet, early out in the seeking query. Coverity 1139737
* smoothstreaming: remove unnecessary checkVincent Penquerc'h2014-04-091-1/+1
| | | | | | | The function is static, the only call site passes a non NULL pointer, and the pointer is dereferenced before anyway. Coverity 1139839
* ext: Use Codec/Demuxer/Adaptive for the adaptive streaming demuxersSebastian Dröge2014-02-231-1/+1
|
* mssdemux: Download the manifest with compression, the fragments withoutSebastian Dröge2014-02-121-2/+4
|
* ext: Update for GstUriDownloader API changesSebastian Dröge2014-02-111-2/+2
|
* mssdemux: updating docs explaining how it worksThiago Santos2013-12-201-8/+6
| | | | | | mssdemux changed a lot and the docs were not correct anymore. Also adds the 'Adaptive' category to its details
* mssdemux: do not push event holding object lockThiago Santos2013-12-201-1/+5
| | | | | Can lead to deadlocks as the push might block downstream in serialized event cases.
* mssdemux: lock around 'cancelled' flagThiago Santos2013-12-201-1/+12
| | | | Prevents race conditions when pipeline is seeking near eos
* mssdemux: fix segfault when trying to access codec_dataThiago Santos2013-12-181-24/+27
| | | | | Check if codec_data was obtained before trying to use it to prevent a segfault
* mssdemux: also generate caps from audiotag attributeThiago Santos2013-12-181-3/+29
| | | | | | Some audio will have its audio format defined by the AudioTag instead of the Fourcc. Fallback to using AudioTag if Fourcc isn't available
* mssdemux: make sure streams stop properly on cancelledThiago Santos2013-12-181-16/+7
| | | | | | specially when the gst_task_join is waiting for the task to go stop and the task itself sets its back to paused, causing a deadlock on exit.
* mssdemux: track segments per streamThiago Santos2013-12-182-21/+16
| | | | | | As streams now flow independently, the GstSegment needs to be put on each stream so they can track the position of each one correctly instead of being mixed in a single segment
* mssdemux: push language code tagGuillaume Desmottes2013-12-181-0/+9
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=712358
* mssmanifest: store the language of the streamGuillaume Desmottes2013-12-182-0/+11
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=712358
* mssdemux: remove the stream loop taskThiago Santos2013-12-182-399/+101
| | | | | | Download and push from the same task, makes code a lot simpler to maintain. Also pushing from separate threads avoids deadlocking when gst_pad_push blocks due to downstream queues being full
* mssdemux: Improve loggingThiago Santos2013-12-181-22/+21
| | | | | Show the stream's pad on log messages to make easier to debug issues in the multiple threads
* mssdemux: improve flow return handlingThiago Santos2013-12-181-2/+28
| | | | | Handle different flow returns both from the streaming and the downloading loops