vorbis_ParseComment() supports several different methods of
specifying the total number of tracks. Update the taglib module
to support reading in the same set.
This propagates more of the data between a vlc_meta_t object and
the taglib object used to write out new metadata. This should
support everything except Setting, URL, NowPlaying, ArtworkURL, and
TrackID.
sys->first_pts is the time the stream started originally, but was
mistaken as the time of the stream was paused.
Now, it is assumed that pausing and resuming take approximately the
same time. This is usually true, and if it is not, there is no way for
either VLC or PulseAudio to know (since ALSA does not expose
pause/resume latency informations for the underlying devices).
In practice, this makes no real difference other than removing a bogus
warning about being late when resuming from pause.
This requires a taglib version with Opus support, but such a
version has not yet been released, even though support has been in
git almost a year. This version is scheduled as version 1.9
Rafaël Carré [Sat, 31 Aug 2013 12:49:44 +0000 (14:49 +0200)]
Input clock reference: bump maximum gap to 60s
Some APE files can have a single packet duration of up to 30s
Is there even a hard limit in this format, or can packets be longer?
Previous gap limit was an arbitrary 22s, written in a way reminiscent of
the MPEG 90kHz clock, which does not make sense anymore since reference clock
in all our demuxers use our own 1MHz clock.
Martin Storsjö [Thu, 29 Aug 2013 22:26:10 +0000 (00:26 +0200)]
omxil: Use pts instead of dts by default
I don't know of any codec that actually works better when passed dts
instead of pts. If such codecs exist I do think they're a minority
compared to the ones that can handle both or that do prefer pts.
Additionally, the Android media frameworks pass pts to decoders in
general, not dts. (Vendors might of course have individual hacks,
but this is what the generic code does.)
Too many functions are not related to freetype and could be used by
other renderers like QuartText or DirectWrite.
Moreover, this file was way too long.
This is just the beginning, and there are no functionnal change so far.
input: remove dead and broken byte offset bookmark support (refs #8455)
Nobody would use this in real life (even time offset bookmarks are
hardly used at all), the "feature" was unreachable from the UI, and
it does not work with most demuxers.
seekpoint_t.i_byte_offset is kept due to other usage of the same
structure, i.e. proper seek points (as opposed to bookmarks).
This is useless given that the time offset is set and the input core
ignores the byte offset when the time offset is set. I think the column
should probably be removed completely.
Ilkka Ollakka [Mon, 26 Aug 2013 13:08:56 +0000 (16:08 +0300)]
httplive: don't reload playlist all the time.
Reload playlist only when there is only 1 or 0 segments left that are
downloaded but not played yet. Also change the default interval to be
segment length instead of half segment length.
With this patch it downloads 3 segments from 5 seglen playlist at the
time and then plays those. Should be much nicer on http-server and
powersaving (marginally as there isn't network activity that often).
Avishay Spitzer [Mon, 19 Aug 2013 07:08:33 +0000 (03:08 -0400)]
Bug fix: HLS module does not block until data is available. As a result live streams may end unexpectedly in case of short playlists or slow connections. Problem was fixed by blocking on a condition variable in the "read" function in case data is not available until Download thread signals (when new data is available) or a timeout of 10 seconds is reached. Blocking is done with a timed wait in order to avoid deadlocks since the thread that calls read is also responsible for calling close.
Avishay Spitzer [Wed, 14 Aug 2013 08:08:01 +0000 (04:08 -0400)]
In case of live streams, the reload thread did not wake up the download thread and so new segments were not downloaded. Problem was fixed by sginalling the download thread with the condition variable.
avformat mux: Propagate seekable status into avformat.
Some muxes, in particular mkv/webm, behave very differently depending on
whether we say that the stream is seekable or not (by providing the IOSeek
function). It does not help that the seek function itself returns an error.
Thus, add a new access_out control called ACCESS_OUT_CAN_SEEK, set to true
for seekable files in the file output only, and propagate the status of that
into avformat at initialization time.