Age | Commit message (Collapse) | Author |
|
[windows] Add message to installer that add-ons have been removed
|
|
[depends][configure] Disable asserts on release builds (typo fix)
|
|
[addons] Remove game addons from addon-manifest
|
|
shipped with the installer and are now available from Kodi repo
|
|
installer and added to Kodi repository.
|
|
|
|
|
|
This work is from investigating why we segfault when failing
to initialize windowing. Basically nothing is cleaned up properly
and some components were nullptr when accessed
|
|
|
|
Effectively disables asserts on Release builds, as intended.
|
|
[PVR] Integrate client menu hooks into context menu system
|
|
[pvr] fix EPG crash and recording errors produced by not present data…
|
|
[windows] make-addons: remove surrounding quotation marks
|
|
This allows to pass a regex without having to escape the special characters multiple times
|
|
|
|
|
|
|
|
AEStreamParser: Fix E-AC-3 dependent stream passthrough (trac#17871)
|
|
|
|
addon call
Found during my rework a crash produced by addon call of `PVR::CPVRClient::IsRecordable(std::shared_ptr<PVR::CPVREpgInfoTag const> const&, bool&) const`
where "strGenreDescription" on EPG_TAG was not set and has produced a crash by try to read them.
Further I seen also on PVR_RECORDING some values not set from Kodi by call to addon with them.
This change here has fixed the faults by me.
|
|
DVDAudioCodecPassthrough: Fix off-by-one-frame timestamps
|
|
[cmake] FindMariaDBClient: use pkgconfig if available
|
|
|
|
[fix][windows] check FirstUnicastAddress for nullptr
|
|
|
|
|
|
There can be the case that the webserver does not support the HEAD
request. In this case we can fall back to a GET request to check
if the file exists. Using the range hander to only return 1 byte
of the file if supported by the server.
|
|
|
|
CDVDAudioCodecPassthrough contains simple two-slot queue for keeping
track of PTS timestamps of incoming and outgoing frames.
However, if both m_currentPts and m_nextPts are NOPTS (like they
initially are), the PTS from the incoming frame is assigned to both
m_currentPts and m_nextPts.
When the next frame arrives, its PTS is put to m_nextPts and m_nextPts
value is moved to m_currentPts.
This causes m_currentPts to stay permanently one frame behind as long as
one frame is output for each input frame.
If two frames are input before an output frame at some point (e.g. for
DTS-HD extension header lookahead), m_nextPts will get overwritten and
the timestamps will be OK from that point on (as the frame data itself
is one frame permanently "delayed" as well).
Fix the issue by only assigning incoming packet PTS to m_nextPts when it
was not assigned to m_currentPts.
The timestamp handling here is still very simplistic and will not
account properly for things like skipped/corrupted audio frames - in
those cases off-by-one-frame timestamps may still occur. Fixing those
would require a larger rework of the code.
|
|
The current handling of E-AC-3 dependent streams in AEStreamParser has
several issues:
- AddData() returns no data on the main AC-3 frame. This happens even if
it was provided a combined main frame and a dependent frame, such as
those provided by FFmpeg 4.0+ after ae9297097696f3 ("avcodec/eac3: add
support for dependent stream").
(For the record, the main frame and dependent frame provide audio data
for the same timestamp so it makes sense to consider them as a single
frame.)
This is problematic as AddData() not returning a frame is interpreted
to mean that it needs more data, causing the caller to call it again
with more data. This repeats with each frame, causing the caller input
buffer to be extended with more and more unneeded data over time (i.e.
it is called twice for each combined frame).
This also causes increasing timestamp drift as the caller
(CDVDAudioCodecPassthrough) does not expect there to be multiple frames
in the data backlog and it uses the dts of new incoming frames (that
are put at the end of the backlog) as the output dts of frames received
from AEStreamParser::AddData() which is actually significantly behind.
This causes trac#17871.
- The current concatenation code does not properly handle the case where
resyncing occurs between the main frame and dependent frame. In such a
case garbage may be output.
- The current code in SyncAC3() does not properly validate that there is
enough data in the buffer in the (m_fsizeMain != 0) case, allowing
invalid input to cause a crash.
Fix the issues by reworking the E-AC-3 dependent stream support so that
when we do not yet know if the stream is AC-3 or E-AC-3 or we know
that the stream is E-AC-3 and an AC-3 (main) frame is encountered,
look if an E-AC-3 dependent frame immediately follows.
If so, return a concatenated frame without requiring multiple AddData()
calls. If not, consider the stream as AC-3. Do not try to skip over
garbage bytes, desync/resync will be handled by the next call if
required.
If we want to perform the above lookup but there is not enough data in
the input buffer, use the m_needBytes mechanism to request more data,
similar to how the DTS HD code works. This ensures that on return from
AddData() either a valid frame is returned or more data is needed.
Fixes trac#17871.
|
|
CAEStreamParser::AddData() gets called with a bufferSize in-out
parameter that represents the output buffer size on input and actual
data length on output.
However, it is not set to zero when the sync function has requested more
data and no frame was actually output, causing the caller to reuse
whatever data was in the buffer (usually a previous frame).
Currently only the DTS sync function uses this functionality. It
requests more data when the frame is exceptionally short (<13 bytes) or
when there is not enough data to check for DTS HD presence.
Fix the issue by adding the missing zeroing.
|
|
In preparation for future code that needs to try to parse AC3 headers
without trying to skip bytes on failure, split the parsing code out of
SyncAC3().
The new TrySyncAC3() will check whether the buffer represents valid AC3
headers, and if so, parses the relevant information and marks us synced
like the current SyncAC3() code does. If not, it will simply return
false, allowing caller to take whatever actions necessary.
This commit should not alter runtime behavior.
|
|
[depends] binary-addons: fix install directories for android & linux
|
|
executed in a script
|
|
if PACKAGE_ZIP is enabled addons don't get installed to the expected locations (lib/kodi & share/kodi)
|
|
AESinkAUDIOTRACK: Only enable multi channel float for Android 7 or later
|
|
|
|
|
|
|
|
Wait for AnnouncementManager thread to exit
|
|
VideoPlayer: create new audiosink if pt stream type changes
|
|
|
|
fix: Cve 2017 5982
|
|
[Android] Dis- Enable GUI onPause / onContinue
|
|
[doxy][addons] Sync doxygen documentation with code changes.
|
|
|
|
[Estouchy] prevent from getting locked in
|
|
[binary-addons] add additional arguments to the build scripts
|
|
|
|
|