Differentiate subtitle streams and lyrics/cracktastic/complex streams via
the category string in the headers. This seems like a useful distinction
to make, and also seems more future-proof. See #525743.
Keep the pipeline paused when we detect download buffering. The user has to
manually start the pipeline for now because we can't estimate when the buffering
will finish or when we have underrun.
Don't flush the file by closing and opening it but instead use g_freopen. This
avoids a deadlock in shutdown because we emit the temp-location property change
with the wrong lock held.
Fix the construction of the temporary filename construction as the application
name can be NULL and we don't want a separator between the prgname and the
template.
Add a download property that will attempt to configure queue2 into progressive
download buffering.
Make sure we only enable download buffering for quicktime and flv formats.
Add a new temp-template property so that queue2 can securely allocate a
temporary filename. Deprecate the temp-location property for setting the
location but still use it to notify the allocated temp file.
Adder can only handle one common format accross the pads. Thus one needed to add
a capsfilter afterwards and manage the caps. Now one can simply set the caps on
the property.
If READY->PAUSED failed in the source element we would've swapped
the current and next group already. To allow READY->PAUSED to succeed
after the first failure we have to swap the current and next group
back again. This also ensure that we're again in the same state
as before the failed state change and not at the next group.
This was especially a problem for playbin2 pipelines that use the
new mounting support in giosrc as the source would fail for READY->PAUSED
the first time, the application mounts the location and then tries
to go READY->PAUSED again (and this time it would succeed).
Fixes bug #588078.
The GInputStreams are now requested by a vfunc from
the subclasses instead of relying that the subclass
sets it until it's needed.
This might also fix bug #587896.
This ensures that collectpads' cookie is properly updated so that when the streaming
threads will restart and be checking for the flushing status of all pads there will
be no inconsistent state.
POSIX and your local friendly ctime(3) manual entry says that localtime_r isn't
required to set the state variables that define the current timezone. Indeed,
glibc (at least 2.9) doesn't do this for subsequent calls. The effect is that
if the system timezone is changed for a running program between two calls to
gst_clock_overlay_render_time, it won't be noticed. For glibc, changing the
timezone equals /etc/localtime being modified.
Fixes bug #587676.