Commit Graph

1319 Commits

Author SHA1 Message Date
Armin Novak
1ef7b9e3e0 [codec,dsp] fix ffmpeg deprecation warning 2023-11-24 21:23:38 +01:00
akallabeth
5dd12c5b1b [codec,dsp] mark fallthrough 2023-11-24 18:19:03 +01:00
akallabeth
dd2d110870 [warnings] fix -Wcast-qual 2023-11-24 18:19:03 +01:00
akallabeth
ceb7bd1d41 [warnings] fixed clang build warnings 2023-11-24 18:19:03 +01:00
Armin Novak
593e2bf4a9 [api] fix compiler warnings
check #if defined(__GNUC__)
2023-11-24 14:54:56 +01:00
akallabeth
cd4d77af86 [settings] add deprecation warnings
direct struct access to rdpSettings now produces warnings if not
explicitly deactiaved by defining FREERDP_SETTINGS_INTERNAL_USE
2023-11-24 14:54:56 +01:00
akallabeth
1163cc4d5c [core] add internal settings.h include 2023-11-24 14:54:56 +01:00
Pascal Nowack
9c3dfefb7f codec/dsp: Also set bitrate for Opus encoder 2023-11-21 14:29:47 +01:00
akallabeth
26e003ce05 [codec,dsp] experimental opus encoder 2023-11-21 14:29:47 +01:00
akallabeth
c2c40ae2ff [codec,dsp] initial support for ffmpeg/opus 2023-11-21 14:29:47 +01:00
akallabeth
7a05d85a7f [codec,dsp] unify opus sample rate check 2023-11-21 14:29:47 +01:00
akallabeth
a232cec690 [codec,dsp] fix opus related code
* proper library detection
* default to NOT WITH_DSP_FFMPEG
* disable if WITH_DSP_FFMPEG
2023-11-21 14:29:47 +01:00
Pascal Nowack
330f7ae0a2 codec/dsp: Add support for decoding Opus encoded streams
The Opus codec is a modern free audio codec, that is also royalty-free.
Adding support for it will allow clients and servers supporting it to
transfer audio in similar efficient way like with AAC.
So, add support it.
2023-11-21 14:29:47 +01:00
akallabeth
20f09b2d34 [codec,aac] add NaN filter
ffmpeg format conversion from int16 to float sometimes produces values
that are NaN or Infinity.
Replace these values as these input values break the AAC encoder
2023-11-20 14:22:26 +01:00
Armin Novak
60390ea40c [pragma] unify compiler diagnostics 2023-10-16 15:10:13 +02:00
Armin Novak
07543a6042 [warnings] fix various warnings
* missing const in casts
* missing static for functions
* missing WINPR_ATTR_FORMAT_ARG for printf like functions
2023-10-16 15:10:13 +02:00
Armin Novak
4778203340 [restrict] remove from in/out buffers 2023-10-16 15:10:13 +02:00
Armin Novak
fe28f9ed9c [keyword,restrict] do not use for shift operations
shifting operations are done on a in/out buffer, so the restrict keyword
is not appropriate for that.
2023-10-16 15:10:13 +02:00
akallabeth
8be124b4a2 [codec,rfx] revert removal of rfx_message_get_frame_idx 2023-10-10 19:35:27 +02:00
akallabeth
a41360e3b0 [codec,rfx] added missing RFX encoder API calls 2023-10-07 21:26:27 +02:00
akallabeth
0b7b8445bc [codec,ncrush] fix const correctness of pointer 2023-09-21 10:57:43 +02:00
Armin Novak
79da16244e [codec,progressive] fix overlapping buffers 2023-09-15 11:24:21 +02:00
akallabeth
7a17671cc9 [codec,h264] first update sizes before checking 2023-09-11 12:53:35 +02:00
akallabeth
d93c4fea2c [codec,interleaved] fix compiler warning 2023-09-11 12:53:35 +02:00
Armin Novak
730c621699 [codec,interleaved] fix type definition 2023-09-08 14:44:22 +02:00
akallabeth
9a9db5b7f3 [codec,progressive] expose progressive simple
server implementations might require serializing messages to a simple
tile, so expose this function.
2023-09-05 11:40:09 +02:00
Armin Novak
d6f9d33a7d [codec,planar] fix reset 2023-08-30 11:12:09 +02:00
akallabeth
ab31e8ba6a [codec,h264] ensure context buffer update
if realloc is called with 0 size update the pointers and do not fail
2023-08-30 11:11:58 +02:00
akallabeth
17d64237ef [codec,yuv] check rectangles for validity
the decoder needs to check bounds for supplied rectangles for both,
input and output buffers.
2023-08-28 14:26:10 +02:00
Armin Novak
16141a30f9 [codec,ncrush] fix index checks
properly verify all offsets while decoding data.
2023-08-28 13:35:45 +02:00
Armin Novak
031c8bacfa [codec,zgfx] fix cBitsRemaining calculation
fixed out of bound read reported by @pwn2carr
2023-08-28 12:50:55 +02:00
akallabeth
cd1da25a87 [codec,nsc] fix input length validation 2023-08-28 09:13:59 +02:00
akallabeth
b608be19e4 [codec,color] WINPR_RESTRICT for copy operations 2023-08-25 14:13:30 +02:00
akallabeth
63cb0b5f19 [codec,rfx] use WINPR_RESTRICT keyword 2023-08-25 14:13:30 +02:00
akallabeth
e975daec20 [codec,clear] fix missing bounds checks 2023-08-25 12:30:15 +02:00
akallabeth
576f836348 [codec,progressive] fix missing destination checks 2023-08-25 12:16:22 +02:00
akallabeth
11461a1b6d [codec,interleaved] fix bounds checks 2023-08-25 12:01:05 +02:00
akallabeth
7a71441476 [warnings] fix integer multiplications
Ensure the integer width for size arguments is 64bit in a
multiplication. Leading 64bit constant 1ull expands width, a trailing
one is ignored.
2023-08-22 11:55:00 +02:00
liuxiaojun
6e5f74e462 optimize idwt extrapolate decoder with neon 2023-08-22 10:54:48 +02:00
akallabeth
859b1b5f0b [codec,nsc] ensure integer width
ensure multiplication result is 64bit
2023-08-22 10:26:56 +02:00
Armin Novak
9f967b4942 [codec,color] fix freerdp_image_fill
in case width or height == 0 out of bounds write might happen.
reported by @pwn2carr
2023-08-21 11:43:50 +02:00
Armin Novak
e204fc8be5 [coded,rfx] check indices are within range
reported by @pwn2carr
2023-08-21 11:41:06 +02:00
Armin Novak
1ca6362498 [codec,rfx] free content of currentMessage on fail 2023-08-21 11:39:40 +02:00
Armin Novak
10a29dbc99 [codec,nsc] fix missing plane length check
reported by @pwn2carr
2023-08-21 11:38:13 +02:00
akallabeth
63a2f65618 [codec,rfx] fix possible out of bound read
Allows malicious servers to crash FreeRDP based clients
reported by @pwn2carr
2023-08-04 15:09:59 +02:00
Joan Torres
c843e35b75 [codec] encode messages considering endianness
The byte order of the pixels is affected by endianness, use bitwise
operations to access those bytes so the endiannes won't affect the final
result.
2023-08-01 07:56:16 +02:00
Joan Torres
a332db7cf5 [libfreerdp] fix endianness issues
There were some fields sent without considering endianness, making the
clients fail when parsing those fields.

Use Data_Write_XXX functions so the endiannes won't affect the byte order
and the clients will read properly the fields.
2023-08-01 07:56:16 +02:00
Armin Novak
4e1781740c [codec,test] fix wrong format string 2023-07-31 08:32:43 +02:00
Armin Novak
1618677e13 [codec,progressive] fix warnings 2023-07-31 08:32:43 +02:00
ehdgks0627
d04ba8d6ef Correct typos and formatting errors in format strings
In several files, fixed typos in format strings that were causing unexpected output and formatting issues.
2023-07-28 15:34:46 +02:00
Armin Novak
c4528d58bc [codec,rfx] fix shift bitwidth warnings 2023-07-28 13:42:12 +02:00
Armin Novak
4fef924531 [codec,interleaved] fix type width warnings 2023-07-28 13:42:12 +02:00
Armin Novak
c728bb9647 [codec,ncrush] fix type cast warnings 2023-07-28 13:42:12 +02:00
Armin Novak
60dc504494 [codec,rfx] fix sign warnings 2023-07-28 13:42:12 +02:00
Armin Novak
0aab55d492 [codec,progressive] fixed sign warnings 2023-07-28 13:42:12 +02:00
Armin Novak
7dc8a4a51d [codec,planar] fixed sign warnings 2023-07-28 13:42:12 +02:00
Armin Novak
32b9eeb3c0 [winpr,sysinfo] deprecage GetVersionInfoEx
the function is deprecated under windows, so deprecate it in WinPR too
and remove/replace usage
2023-07-28 13:42:12 +02:00
Armin Novak
1e0ca536c7 [ci,nightly] use internal MD4, MD5 and RC4 on windows 2023-07-28 13:42:12 +02:00
Armin Novak
b1dee0f56c [codec,rfx] fix sign warnings 2023-07-27 21:05:43 +02:00
Armin Novak
723056dab3 [codec,audio] fix warnings 2023-07-27 20:02:43 +02:00
Armin Novak
e61880d077 [standard] replace __FUNCTION__ with __func__ 2023-07-27 20:02:43 +02:00
Martin Fleisz
622a2a8df0 misc: More int to BOOL conversion fixes
This is a follow up to #9129.

This PR fixes some problematic `int` to `BOOL` conversions that might
cause overflows when checking for bit flags.
2023-07-04 09:45:20 +02:00
akallabeth
e03b6596c6 [build] fix unused but set variable warnings 2023-06-29 18:34:51 +02:00
David Fort
27a5ea64f0 [codecs] fix R and B inversion when decoding planar 2023-06-28 10:57:55 +02:00
Vic Lee
5fffaf6cd2 [codec,rfx] missing palette setting api. 2023-06-27 08:54:54 +02:00
akallabeth
1fc0d5b4b1 [winpr] remove casts for winpr_RAND calls 2023-06-21 09:57:52 +02:00
akallabeth
6121ace62a [codec,rfx] unify tile allocation 2023-06-12 16:32:23 +02:00
akallabeth
93d8a93556 [codec,rfx] assert rfx_write_tile arguments
Ensure that in all paths the function arguments are valid.
2023-06-12 16:32:23 +02:00
akallabeth
a64dd36073 [build] fixed const warnings 2023-06-12 16:32:23 +02:00
Armin Novak
47e9503385 [codec,dsp] fix unused variable warning 2023-06-08 08:11:05 +02:00
Armin Novak
d0c5b1ae42 [codec,dsp] fix ffmpeg deprecations 2023-06-08 08:09:33 +02:00
Armin Novak
a4c6b36a19 [build] fix memory sanitizer stack frame warnings 2023-06-07 09:14:45 +02:00
houchengqiu
7fe1f15edd [libfreerdp] add null pointer check in planar_decompress()
In Windows remote run vulnerabillities exe program, to create rdpgrfx
channel, may case Remmina crash.
So, add null pointer check to pSrcData.
2023-05-22 12:10:29 +02:00
Armin Novak
0ad7480d0e [codec] reset all YUV context data 2023-05-22 11:51:12 +02:00
David Fort
4e24b966c8 [codec,progressive] fix segfault and optimize updated tiles
The number of updated tiles was not reset at the end of a progressive block
treatment leading to possibly overflow the updatedTiles array. This patch also
introduces a dirty bit on tiles, so that a tile updated multiple times is just
mark once as modified.
2023-05-11 16:31:42 +02:00
Armin Novak
01e4624ed7 [progressive] fix tile cache resize
ensure that the new cache size is larger than required.
2023-05-08 17:32:41 +02:00
akallabeth
c950ca375c [client,common] fix value present flag check
need to check for COMMAND_LINE_VALUE_PRESENT instad of COMMAND_LINE_ARGUMENT_PRESENT
2023-04-28 07:39:35 +02:00
akallabeth
516668d02b [fclose] ensure no invalid pointers are passed.
fclose has undefined behaviour for NULL pointers, so check for these.
2023-04-28 07:39:35 +02:00
akallabeth
7739815a90 [codec,h264] add getter/setter for h264 options 2023-04-11 10:58:03 +02:00
akallabeth
983c820f16 [codecs] make h264 and planar opaque 2023-04-11 10:58:03 +02:00
Armin Novak
f66110c611 [codec,rfx] refactor API
* Hide implementation details
* Add missing getter/setter
2023-04-05 20:41:42 +02:00
Armin Novak
a86218c761 [codec,rfx] fix numTile update
ensure there are enough tiles allocated before setting
2023-04-05 20:41:42 +02:00
Armin Novak
2285d912eb [codec,rfx] add more assertions 2023-04-05 20:41:42 +02:00
Armin Novak
fcf3d0517e [codec,rfx] clean up free functions
* automatically set message->freeRects internally
2023-04-05 20:41:42 +02:00
Armin Novak
77f4d96fef [codec,rfx] use dynamic logger 2023-04-05 20:41:42 +02:00
Armin Novak
2bc5ac3638 [codec,rfx] assert arguments 2023-04-05 20:41:42 +02:00
Armin Novak
e94661ef71 [codec,rfx] fix rfx encoding 2023-04-05 20:41:42 +02:00
akallabeth
c840d127e9 [codec,yuv] use aligned allocation 2023-03-28 11:34:52 +02:00
akallabeth
b96e1bf577 [codec,progressive] use aligned allocation 2023-03-28 11:34:52 +02:00
akallabeth
4795ee5eac [codec,planar] use aligned allocation 2023-03-28 11:34:52 +02:00
akallabeth
0297a58638 [codec,nsc] use aligned allocation 2023-03-28 11:34:52 +02:00
akallabeth
544e488686 [codec,rfx] use aligned allocation 2023-03-28 11:34:52 +02:00
akallabeth
ac14d7614c [codec,interleaved] use aligned allocation 2023-03-28 11:34:52 +02:00
akallabeth
915aed6668 [codec,clear] use aligned allocation 2023-03-28 11:34:52 +02:00
akallabeth
a5d7325164 [codec,progressive] resize tile cache by constant
The previouse size increment was power of two, which might run out of
memory really fast. Use a constant size increment instead.
2023-03-24 11:14:17 +01:00
akallabeth
ec095bc6dd [codec,progressive] simplify tile cache allocation 2023-03-24 11:14:17 +01:00
David Fort
2fed8fb62e [codec] fix tile usage in progressive
This is a fix for #8816. When PROGRESSIVE_SURFACE_CONTEXT.tiles were reallocated, we were
ending up with wrong tiles in PROGRESSIVE_BLOCK_REGION.tiles when the memory block was moved.
2023-03-23 15:28:55 +01:00
David Fort
b7b46b8123 [codecs] make progressive honor threading flags
Progressive codec was not honoring the threading flags in settings like does
remoteFX, so even when no multiple threads decoding was asked, progressive was
using multiple threads anyway. This patch fixes it.
2023-03-20 15:32:28 +01:00
akallabeth
a5b42f0f84 [includes] untangled circular includes 2023-03-15 08:22:23 +01:00
Armin Novak
e496771034 [warnings] fixed unused-variable warnings 2023-03-06 10:04:59 +01:00
akallabeth
aa2cb9aa5f Fixed #8686: Update h264 to use new FFMPEG API 2023-02-27 09:45:44 +01:00
akallabeth
f9f32a335e [codec,progressive] fixed parsing of blocks
only provide a substream to the block parsing functions
2023-01-27 09:36:02 +01:00
Armin Novak
1dc2225bd2 [winpr,wlog] include function name in log message
default to print the function the log message was called from
2023-01-25 16:26:39 +01:00
Armin Novak
641022b795 [logging] remove __FUNCTION__ from actual message
prefer the log formatter to provide that information.
2023-01-25 16:26:39 +01:00
akallabeth
075506f6c8 [winpr,stream] use new Stream_CheckAndLogRequiredLength* 2023-01-25 14:27:32 +01:00
Armin Novak
40a309a5b9 [codec] keep alpha plane
some codecs do not support an alpha channel. keep the destination alpha
value for these as the alpha data can be set using alpha codec
separately.
2023-01-10 11:49:02 +01:00
Armin Novak
78eb6ce3a8 [codec] add flag for freerdp_image_copy
Add FREERDP_KEEP_DST_ALPHA to copy and keep the destination alpha value
2023-01-10 11:49:02 +01:00
akallabeth
d399c1c6fb [codec,xcrush] follow up to #8529
There was still an issue left, if diff == 0 then the loop counter did
never increment.
Skip this case now completely as the memory does not need to be copied
anyway.
2022-12-13 15:41:58 +01:00
akallabeth
f67a7aa16a [build] added WITH_DEBUG_CODECS
A new build option to enable more verbose logging in some video codecs.
2022-12-13 13:38:25 +01:00
akallabeth
d27972518f [codec,interleaved] move length check out of loop 2022-12-13 13:38:25 +01:00
Armin Novak
6f6353d76f [codec,interleaved] add codec debug log 2022-12-13 13:38:25 +01:00
Armin Novak
1428b73490 [codec,interleaved] refactored run length reading 2022-12-13 13:38:25 +01:00
Armin Novak
0dc5c94476 [codec,interleaved] added string helper functions 2022-12-13 13:38:25 +01:00
Armin Novak
2648257caa [codec,interleaved] add proper debug logging
log reason for decoder to fail
2022-12-13 13:38:25 +01:00
akallabeth
549aad655a [codec,xcrush] fix possible div by zero
If source and destination buffers are equal the calculation of
'rest = num % div' is a division by zero. Avoid that by checking
explicitly for that condition.
2022-12-13 13:37:54 +01:00
akallabeth
adb3b22609 Revert "fix xcrush-divideByZero (when src ==dst)"
This reverts commit 85e830d16f.
2022-12-13 13:37:54 +01:00
akallabeth
050a2d0e74 [codec] fixed region16_union_rect
* If source and destination are equal, free the buffer on destination to
  avoid compiler warnings.
* Remove assert that is not required
2022-12-09 16:40:54 +01:00
akallabeth
7ab917dca8 Fixed Wsign-compare warnings 2022-12-09 15:58:26 +01:00
akallabeth
0186a9b303 Fixed some warnings 2022-12-09 15:58:26 +01:00
Mihai Radu
2bc13d50a3 fix xcrush-divideByZero (when src ==dst) 2022-12-07 17:48:11 +01:00
Armin Novak
8de60f9472 Fixed -Wextra-semi-stmt 2022-11-21 10:12:31 +01:00
Armin Novak
dacebc62a3 Use Stream_CheckAndLogRequiredLength, fix WLog TAG
* Log stream length requirement violations
* Use proper defines for WLog tags
2022-11-21 09:57:27 +01:00
akallabeth
5b90d0bc1d Added missing length checks in zgfx_decompress_segment 2022-11-14 09:28:22 +01:00
Martin Fleisz
0629bb9c20 codec: Fix broken logging in progressive codec 2022-11-14 09:27:41 +01:00
Armin Novak
b04c0e7b1c Fix const warnings in ffmpeg h264 module 2022-11-03 11:58:17 +01:00
akallabeth
08d2d559c3 Increase yuv decoder worker count
The yuv decoder might run out of workers if the rectangles are
smaller than 64x64. Assume 16x16 tiles for the decoder
2022-10-19 08:16:53 +02:00
akallabeth
43c5289928 Replaced memset/ZeroMemory with initializer
* Addes WINPR_ASSERT on many occations
* Replaced memset with array initializer
* Replaced ZeroMemory with array initializer
2022-10-14 12:11:01 +02:00
akallabeth
1849632c43
Fixed format strings to match arguments (#8254)
* Fixed format strings to match arguments

Reviewed and replaced all %d specifiers to match proper type

* Added proxy dynamic channel command type to log messages.
2022-09-29 14:55:27 +02:00
Martin Fleisz
f44dbecbfd codec: Remove unused variable 2022-07-21 15:59:43 +02:00
Pascal Nowack
c7d1a2cdb5
codec/progressive: Fix wrong usage of subband diffing flag (#8076)
Currently, all Calista Progressive encoded streams contain tile
artifacts, when the RFX_SUBBAND_DIFFING is used, but not the
RFX_DWT_REDUCE_EXTRAPOLATE flag.
The reason is the wrong usage of the context and tile flags.
The RFX_SUBBAND_DIFFING flag should have no actual impact on the
decoder itself.
Especially, it does not affect the band sizes within a 64x64 tile.
The RFX_DWT_REDUCE_EXTRAPOLATE flag, on the other hand, MUST have an
effect on the band sizes.
However, FreeRDP currently uses the RFX_SUBBAND_DIFFING flag when
decoding a component to determine whether the Reduce-Extrapolate method
is used, resulting in tile artifacts, when that method was actually not
used.
The current behaviour did not result in tile artifacts with the MS
Windows RDS, as that server always sets both flags.

So, fix this issue by using the correct flag, when decoding a tile.
2022-07-15 08:32:33 +02:00
Armin Novak
3bedc1f92e Fixed swscale and cairo checks 2022-07-06 13:09:46 +00:00
Armin Novak
727f2bc652 Fixed IMA PCM encoder 2022-07-06 12:01:23 +02:00
akallabeth
c71cc672f9 Decouple ffmpeg video encoder/decoder support from WITH_FFMPEG
It may be diesirable to only use FFMPEG for audio. Allow disabling
video decoding by introducing a new variable responsible for that.
2022-07-05 18:17:28 +02:00
akallabeth
cb96e6143d Fixed -Wshadow warnings 2022-06-30 10:49:02 +02:00
akallabeth
bc8b4ade1c reformatted 2022-06-23 08:48:39 +02:00
akallabeth
21cfb23e0b Improve codec error logging 2022-06-23 07:45:55 +02:00
Armin Novak
66e73f8b08 Fixed missing static for functions, fixed declaration of FreeRDPAreColorFormatsEqualNoAlpha 2022-06-21 10:28:34 +02:00
Marc-André Moreau
51f378308f * libfreerdp-codec: fix ClearCodec context reset 2022-06-01 15:26:12 +02:00
Marc-André Moreau
4c4b5bfd87 Revert "* libfreerdp-codec: fix XCRUSH context reset"
This reverts commit dd57a4fae8.
2022-05-30 18:10:47 +02:00
Marc-André Moreau
dd57a4fae8 * libfreerdp-codec: fix XCRUSH context reset 2022-05-26 17:14:36 +02:00
David Fort
77413f49b2 winpr: rework alignment functions
_align_XXX functions aren't widely available depending on the C runtime. That causes
problems with mingw where we can easily have some runtime mixes (which lead to mysterious
segfaults most of the time). This patch introduce winpr_aligned_XXX functions that will
either use the function available, or use an emulation layer.
2022-05-12 11:36:01 +02:00
akallabeth
c716304cf8 Only build RFX neon path with -DWITH_NEON=ON 2022-05-04 09:28:29 +02:00
akallabeth
eb95f00991 Move H264 subsystem variable to header 2022-04-28 13:25:27 +02:00
akallabeth
340f9dd775 Fixed conditional warnings 2022-04-28 12:37:19 +02:00
akallabeth
962c5c3ef0 Fixed dead store warnings 2022-04-28 12:37:19 +02:00
akallabeth
6fd71fe737 Eliminate Dead nested assignment warnings 2022-04-28 12:37:19 +02:00
akallabeth
ec699f6c75 scanbuild fixes 2022-04-28 12:37:19 +02:00
akallabeth
bba427e71a No longer export ncrush, xcrush and mppc codecs 2022-04-28 11:24:29 +02:00
Armin Novak
83bb37d174 Fixed decoder arguments, use const correct ones 2022-04-28 09:17:41 +02:00
akallabeth
667b471686 Fixed cast-quality warnings 2022-04-28 09:17:20 +02:00
akallabeth
fb90ac280a Refactored color.h
* Remove implementations from header
* Rename functions to be FreeRDP specific
* Add deprecation define for old names
* Fixed missing includes
2022-04-28 08:40:47 +02:00
Armin Novak
ee243d17aa Fixed #7837: Overallocate zgfx output buffers
Some decoders require additional byte alignment to prevent out
of bound reads
2022-04-27 18:39:41 +02:00
akallabeth
aa6ca6aa40 Do not use Stream_CheckAndLogRequiredLength for optional checks
clear codec does not require these bytes to be available, so do
not log such checks
2022-04-23 10:10:09 +02:00
akallabeth
73cdcdfe09
Logging and parser fixes (#7796)
* Fixed remdesk settings pointer

* Fixed sign warnings in display_write_monitor_layout_pdu

* Use freerdp_abort_connect_context and freerdp_shall_disconnect_context

* Added and updates settings

* info assert/dynamic timezone

* mcs assert/log/flags

* Fixed and added assertions for wStream

* Unified stream length checks

* Added new function to check for lenght and log
* Replace all usages with this new function

* Cleaned up PER, added parser logging

* Cleaned up BER, added parser logging

* log messages

* Modified Stream_CheckAndLogRequiredLengthEx

* Allow custom format and options
* Add Stream_CheckAndLogRequiredLengthExVa for prepared va_list

* Improved Stream_CheckAndLogRequiredLength

* Now have log level adjustable
* Added function equivalents for existing logger
* Added a backtrace in case of a failure is detected

* Fixed public API input checks
2022-04-19 14:29:17 +02:00
Armin Novak
edcb8284e7 Fixed #7745: Progressive surface cleanup 2022-04-06 10:32:43 +02:00
Armin Novak
66c7228643 Fixed version mismatch in ffmpeg h264 2022-04-06 10:25:41 +02:00
akallabeth
19173a3c6b Fixed removed #endif 2022-04-06 10:25:41 +02:00
akallabeth
e647d3aa83 Additional error checks for ffmpeg h264 backend 2022-04-06 10:25:41 +02:00
akallabeth
0a9c02b1ad Always set sys->packet 2022-04-06 10:25:41 +02:00
akallabeth
f4cb7b9877 Added FFMPEG h264 asserts 2022-04-06 10:25:41 +02:00
Armin Novak
974c700977 Fixed memory leak in YUV 2022-04-06 08:58:32 +02:00
akallabeth
1378c8e671
Fixed #7753: Step calculation in YUV decoder (#7758)
* Fixed #7753: Step calculation in YUV decoder

* Fixed rectangle_is_empty

* Added rectangle intersection check in YUV decoder

* Skip intersecting rectangles in YUV decoder

* Refactored YUV work object handling

* Allocate / free in yuv_context_new and yuv_context_free
* WINPR_ASSERT all function arguments

* Pass yuv_context_reset result from h264_context_reset

* Reset PTP_WORK buffer to NULL after use
2022-03-29 13:55:52 +02:00
Armin Novak
3b24b5e16e rfx_process_message verbose error log 2022-03-08 15:41:48 +01:00
Armin Novak
4d03d7c0bf Freerdp remove #ifdef HAVE_CONFIG_H 2022-03-03 11:26:48 +01:00
Armin Novak
b2ad47a809 Reorganized FreeRDP headers 2022-03-03 11:26:48 +01:00
akallabeth
b5f3b9f64e Fixed #7607: Channel remixing does not work with FFMPEG
Until a proper way to utilize FFMPEG is found, do it manually.
2022-03-02 17:10:17 +01:00
akallabeth
921f279fa9
Openh264 fix graphical artifacts (#7677)
* Added WINPR_ASSERT to openh264 backend

* Added openH264 decoder frame flush
2022-02-28 08:21:42 +01:00
Armin Novak
e5d820a37d Use variable for mediacodec codec name 2022-02-24 12:06:06 +01:00
Armin Novak
ac98dfa502 Fixed mediacodec backend
* Link directly, no runtime linking. (It is part of the NDK for API >=
  21)
* Fix problems with functions introduced with API 26 and 28
2022-02-24 12:06:06 +01:00
Armin Novak
1b71bba2a0 Fixed compilation warnings 2022-02-22 11:29:56 +01:00
Armin Novak
082720a392 Free packet after decoding. 2022-02-15 11:00:05 +00:00
akallabeth
8cc6582044
Unify struct definitions (#7633)
* Unified enum/struct definitions, fixed include issues

* Fixed mac compilation issues

* Added missing include

* Fixed windows server build warnings

* Fixed VS2010 build issue

* Removed unnecessary library linking

* Fixed ThreadPool WinXP compatibility

* Fixed pr review remarks
2022-02-14 14:59:22 +01:00
Armin Novak
10e40147fb Fixed various const warnings 2022-02-01 10:25:37 +00:00
Armin Novak
90512bcc8d Fixed xcrush const warnings 2022-02-01 08:48:21 +01:00
Armin Novak
ca30e749e9 Fixed unused-but-set-variable and reserved identifier warnings 2022-02-01 08:48:21 +01:00
Armin Novak
c51224e923 Fixed const warnings for codec decompress routines 2022-01-31 16:25:56 +01:00
Armin Novak
b9cfa10513 Fixed some more warnings 2022-01-31 15:55:10 +01:00
Armin Novak
c220367843 Replaced reserved name identifier 2022-01-31 15:55:10 +01:00
Armin Novak
2e17cee5a9 Fixed various warnings. 2022-01-31 15:55:10 +01:00
Armin Novak
83d834a6ca Static internal variables, added resolution limit explanation 2022-01-31 11:20:27 +01:00
eronnen
4c78b66822 always initializing MediaCodec with non-zero resolution, adjusting to codec output resolution 2022-01-31 11:20:27 +01:00
akallabeth
4a29b29a53
Fix #7586: Update size of tile cache if required. (#7602) 2022-01-28 09:07:27 +01:00
Armin Novak
6f3761b8bf Fixed too eager assert. 2022-01-26 12:22:41 +01:00
Armin Novak
61e7f5796f Added missing include 2022-01-26 10:24:26 +01:00
Armin Novak
4d29cb3700 Fixed statement expressions and missing goto 2022-01-26 10:24:26 +01:00
Armin Novak
d3ae4cf26d Added code assertions, fixed loading order 2022-01-26 10:24:26 +01:00
Ely Ronnen
633c1abf44 handling small input buffer case 2022-01-26 10:24:26 +01:00
Ely Ronnen
91540862df import libmediandk.so dynamically 2022-01-26 10:24:26 +01:00
Ely Ronnen
52202762e8 adding mediacodec h264 implementation using NDK 2022-01-26 10:24:26 +01:00
David Runge
d0488f8692 Guard avcodec_register_all() calls
{channels/tsmf/client/ffmpeg/tsmf,libfreerdp/codec/dsp}_ffmpeg.c:
Guard calls to `avcodec_register_all()` against use beyond
`AV_VERSION_INT(58, 10, 100)`, where upstream ffmpeg made it obsolete.
2022-01-25 08:52:29 +01:00
akallabeth
6abd5f6c79
FFmpeg deprecated guards (#7574)
* Fixed missing ffmpeg deprecation guard

* Fixed compilation type warning
2022-01-24 09:49:07 +01:00
Armin Novak
f3df9a520e Fixed H264 related warnings 2021-12-20 08:11:00 +01:00
akallabeth
b008e83179 Fixed API const correctness 2021-12-01 10:28:53 +01:00
akallabeth
6ee60ea15a Fixed various warnings 2021-11-30 08:20:19 +01:00
akallabeth
5537667e0c
Removed WINPR_ASSERT with wrong assertions. (#7444) 2021-11-16 14:03:53 +01:00
Armin Novak
67f632982a Fixed YUV decoder API
Need to verify widht and height more rigorously.
2021-11-15 09:23:00 +01:00
akallabeth
58b24f13fe
Add an option to add the plugin and extension to rpath (#7425) 2021-11-04 08:59:38 +01:00
Armin Novak
69ff22e2a3 Fixed #7332: Missing NULL check 2021-11-02 09:52:01 +01:00
Armin Novak
0e991a1078 Use original height for h264 context, but allocate padded height. 2021-10-19 15:41:49 +02:00
Armin Novak
76c419e690 Remember avc420 allocation width and height 2021-10-19 15:41:49 +02:00