-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Me nochange #3779
Draft
SameMitchellNeal
wants to merge
54
commits into
cisco:openh264v2.3.0
Choose a base branch
from
SameMitchellNeal:me
base: openh264v2.3.0
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Me nochange #3779
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…eference count allowed.
This is actually exactly the same as platform-linux.mk since it's basically describing the GNU toolchain, thus factorizing into build/platform-gnu-chain.mk.
It is providing sched_getaffinity like Linux.
…with clang-cl (cisco#3571) Since meson 0.58.0, meson accepts adding '.S' assembly files as source files to the clang-cl compiler. For arm, gas-preprocessor is still required when building clang-cl, for rewriting the assembly into a thumb-compatible form on the fly.
Static analysis of chrome.dll showed that xmm7 was being used but not preserved in this function. The Windows calling convention requires that xmm7 be preserved so this change adds the necessary "PUSH_XMM 8" and POP_XMM directives to fix this. This fixes issue cisco#3585. This may fix a bug in Chrome but that is unknown.
…ess (cisco#3598) Don't pass -Wno-class-memaccess to Clang, which doesn't support that option name. (When inspecting $(CXX) with a pattern, "clang++" also matches the pattern "%g++".) Simplify the pattern checking; use $(filter %g++,$(CXX)) instead of $(patsubst %g++,,$(CXX)) making it less obscure. (This requires changing the ifeq ($(),) into ifneq.) Check for %clang++ in addition to %g++. Also use a similar pattern for checking for clang++ instead of plain exact matches for "clang++", for passing the option -Wc++11-compat-reserved-user-defined-literal - this allows applying the option when CXX contains a path, or if "clang++" is prefixed by a cross triple.
…ds (cisco#3605) This fixes the following warnings: codec/decoder/core/src/mv_pred.cpp:398:25: warning: use of bitwise '|' with boolean operands [-Wbitwise-instead-of-logical] bool bSkipOrDirect = (IS_SKIP (GetMbType (pCurDqLayer)[iMbXy]) | IS_DIRECT (GetMbType (pCurDqLayer)[iMbXy])) > 0; ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ || codec/decoder/core/src/mv_pred.cpp:618:25: warning: use of bitwise '|' with boolean operands [-Wbitwise-instead-of-logical] bool bSkipOrDirect = (IS_SKIP (GetMbType (pCurDqLayer)[iMbXy]) | IS_DIRECT (GetMbType (pCurDqLayer)[iMbXy])) > 0; ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ||
Versions of MSVC before 2015 lack snprintf; within the codec codebase itself, this is wrapped into WelsSnprintf. Within the testcases, there were no uses of snprintf previously, only sprintf. We could of course decide to stop caring about older versions of MSVC, but so far, those versions have still worked just fine. However, that requires changes to the build files for Windows Phone ("make OS=msvc-wp"), which currently expect to be built with MSVC 2013. Define NOMINMAX before including windows.h, to avoid windows.h breaking std::min in test code.
The meson test -C builddir -v outputs on LoongArch: [----------] 5 tests from DecoderDecodeMbAux [ RUN ] DecoderDecodeMbAux.IdctResAddPred_c [ OK ] DecoderDecodeMbAux.IdctResAddPred_c (1 ms) [ RUN ] DecoderDecodeMbAux.IdctResAddPred_lsx [ OK ] DecoderDecodeMbAux.IdctResAddPred_lsx (1 ms) [ RUN ] DecoderDecodeMbAux.WelsNonZeroCount_c [ OK ] DecoderDecodeMbAux.WelsNonZeroCount_c (0 ms) [ RUN ] DecoderDecodeMbAux.IdctResAddPred8x8_c [ OK ] DecoderDecodeMbAux.IdctResAddPred8x8_c (8 ms) [ RUN ] DecoderDecodeMbAux.IdctResAddPred8x8_lsx [ OK ] DecoderDecodeMbAux.IdctResAddPred8x8_lsx (6 ms) [----------] 5 tests from DecoderDecodeMbAux (16 ms total) Co-authored-by: Jin Bo <jinbo@loongson.cn>
1. switch from ant to gradle 2. use clang as the default toolchain Co-authored-by: alexcohn <sasha.cohn@gmail.com>
This was missed in b16f0c2 where the other targets were switched from Ant to Gradle. This fixes building after switching to a newer version of the Android SDK (suppporting Gradle) where Ant no longer is supported.
Will crash if cpucfg instruction is not supported.
Co-authored-by: Yu-Chen (Eric) Sun <ycsun@meta.com>
* Fix PSkip fast algorithm from screen-sharing * Fix NOMINMAX macro redefined issue --------- Co-authored-by: Yu-Chen (Eric) Sun <ycsun@meta.com>
cisco#3648) Export the updated presentation timestamp from the decoder. This resolves frame jank in Firefox with B frames by displaying frames in order, without being dropped due to being too old for display. Implement Reset to flush pending frames from the decoder. This resolves seeking in Firefox with the updated presentation timestamps, where old frames would get processed and interfere with the seek. Expose more options for encoding so that we can potentially implement a generic GMP video encoder wrapper.
…isco#3618) current number of threads It seems that this thread number parameter is always defined. When starting multiple contexts, it is seem hard to not specify this. Therefore, you end up with many warnings. Thank you for considering
* Add SIMD for loongarch 1. Add VAACalcSadBgd_lasx. 2. Refine WelsSampleSad8x8x2_lasx & WelsIDctT4Rec_lasx & WelsIDctFourT4Rec_lasx. * Fix ninja build warning and remove unneeded head files ===> ../codec/encoder/core/loongarch/sample_lasx.c: In function ‘WelsIntra8x8Combined3Sad_lasx’: ../codec/encoder/core/loongarch/sample_lasx.c:62:14: warning: implicit declaration of function ‘WelsSampleSad8x8_lasx’; did you mean ‘WelsSampleSad8x8_c’? [-Wimplicit-function-declaration] iCurCost = WelsSampleSad8x8_lasx(pDstChroma, 8, pEncCb, iEncStride); ^~~~~~~~~~~~~~~~~~~~~ WelsSampleSad8x8_c <=== (1) WelsSampleSad8x8_lasx called in .c file but wrapped by #if defined(HAVE_LASX) in sad_common.h, so need to add HAVE_LASX define for .c files. (2) lsx/lasx simd codes are in .c files, so there is no need to add -mlsx/-mlasx for .cpp files.
compatible build with android-ndk-r18
…uffIdx in CWelsDecoder::ReleaseBufferedReadyPictureReorder (cisco#3685)
…3686) This commit adds a NULL check before the pCtx->pLastDecPicInfo->pPreviousDecodedPictureInDpb object is dereferenced in CWelsDecoder::BufferingReadyPicture
…isco#3690) * android-ndk-r18b and below use Ant to compile demo and unit_test projects * give the ndk-version-check.sh executable permissions
Fix iPicBuffIdx bounds check introduced in commit 986bd65 and allow 0 as an index value. This fixes Big_Buck_Bunny_720_10s_30MB.mp4 playback with gst-play-1.0.
* Add security policy Signed-off-by: Pedro Kaj Kjellerup Nacht <pnacht@google.com> * Not all maintainers are volunteers * Use BenzhengZhang's email Signed-off-by: Pedro Kaj Kjellerup Nacht <pnacht@google.com> * Only use email Signed-off-by: Pedro Kaj Kjellerup Nacht <pnacht@google.com> --------- Signed-off-by: Pedro Kaj Kjellerup Nacht <pnacht@google.com>
* Add missing iLastWrittenPOC setting in unbuffered reordering. In CWelsDecoder::ReorderPicturesInDisplay(), iLastWrittenPOC was not set in unbuffered-reordering case. Due to this problem, it sometimes reordered the frames incorrectly. This patch fixes the issue. * Prevent frame buffer from overwrite at GOP change. When bNewSeqBegin got true, iRefCount was forcibly reset even if the buffer was still used for reordering. Due to this problem, the buffer in use was sometimes overwritten with newly decoded frame. This commit is for fixing that problem. * Fix test failure due to the issue of the previous commit. * Fix glitch occurs when multiple scene changes happen in a short time. Previously, when more than 2 frame sequences exist in the reordering buffer, the reordering does not work correctly. This is because the management based on bLastGOP flag does not work in this case. Instead, this patch introduces frame sequence number (iSeqNum) to distingish frames belonging to each sequence and drops bLastGOP flag.
* Fix regression in PR#3707 for multi-thread decoding The variable iSeqNum introduced in PR#3707 should be common within the decoder, however each decoding thread in the same decoder had its own one. Due to this issue, multi-thread decoding failed. This patch fixes that. * Fix segfault caused in WelsDecodeInitAccessUnitStart() ... if CWelsDecoder::InitDecoderCtx() is not called.
Signed-off-by: ayamir <lgt986452565@gmail.com>
This reverts commit 28b533a.
When decoding: https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov in multi-threads, openh264 crashes with segfault. This patch fixes the issue.
…co#3735) Trim event timings for multi-thread cooperation.
…sco#3761) * Remove unused pSpatialLayer and iSliceIndex variables which break on Mac CI settings due to the variables being unused * one more * moar
* Change picOrderCnt to 2 changes the picOrderCnt field to 2 (which means the output order is the same as the decode order) which is more suited to realtime usage and allows the decoder to immediately decode a frame without waiting for out-of-order frames. This reduces the decoding latency on Qualcomm hardware decoders which do not honor the VUI parameter max_num_reorder_frames * bump hashes * bump asan hashes * Revert "bump asan hashes" This reverts commit 7aa8b3d. * fix last hashes * update second hash for ASAN * fix more hashes
For some h264 files, h264dec hangs at the end of decoding. This is regression caused by the commit 1c23887. This patch fixes the issue by adding SET_EVENT(&m_sReleaseBufferEvent) to SetOption( DECODER_OPTION_END_OF_STREAM) and CloseDecoderThreads().
* Enable ReorderRefList2() which was added by the commit 1b8caef. ... and fix trivial issue of that function. This solves the some frame decode error. * Add workaround for frame decode error due to emulation byte. * Fix a bug which seems due to a typo in WelsReorderRefList2() This fixes the fuzzing test failure. Addresses: cisco#3772
RISC-V is a rising open-standarded RISC ISA. This commit makes mesonbuild fallbacks to C implementation correctly on riscv64 platform instead of throwing a "FIXME: unhandled CPU family" error. Signed-off-by: Yao Zi <ziyao@disroot.org>
* readme: update meson build command Fixes warning: WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated. Signed-off-by: Bill Roberts <bill.roberts@arm.com> * meson.build: fix suffix on HAVE_NEON_AARCH64 rename HAVE_NEON_AARCH64 to the in-use define for controlling NEON: HAVE_NEON_AARCH64 Signed-off-by: Bill Roberts <bill.roberts@arm.com> * aarch64: enable PAC/BTI Enable Pointer Authentication Codes (PAC) and Branch Target Identification (BTI) support for ARM 64 targets. OpenH264 does not require any of the PAC signing and verification as the leaf functions do not store x30 to the stack. Also, no indirect branches are performed so no need to annotate branch targets with bti j landing pad instructions. The only thing required is to label the function entry points with bti c instructions and ensure the GNU Notes are updated for their respective features when enabled for ELF files. A detailed summary on how PAC and BTI work are provided below for clarity. PAC works by signing the LR with either an A key or B key and verifying the return address. There are quite a few instructions capable of doing this, however, the Linux ARM ABI is to use hint compatible instructions that can be safely NOP'd on older hardware and can be assembled and linked with older binutils. This limits the instruction set to paciasp, pacibsp, autiasp and autibsp. Instructions prefixed with pac are for signing and instructions prefixed with aut are for signing. Both instructions are then followed with an a or b to indicate which signing key they are using. The keys can be controlled using -mbranch-protection=pac-ret for the A key and -mbranch-protection=pac-ret+b-key for the B key. BTI works by marking all indirect call and jump positions with bti c and bti j instructions respectively. If execution control transfers to an instruction other than a BTI instruction, the execution is killed via SIGILL. Note that to remove one instruction, the aforementioned pac instructions will also work as a BTI landing pad for bti c usages. For BTI to work, all object files linked for a unit of execution, whether an executable or a library must have the GNU Notes section of the ELF file marked to indicate BTI support. This is so loader/linkers can apply the proper permission bits (PROT_BRI) on the memory region. PAC can also be annotated in the GNU ELF notes section, but it's not required for enablement, as interleaved PAC and non-pac code works as expected since it's the callee that performs all the checking. Testing was done under the following CFLAGS and CXXFLAGS for all combinations: 1. -mbranch-protection=none 2. -mbranch-protection=standard 3. -mbranch-protection=pac-ret 4. -mbranch-protection=pac-ret+b-key 5. -mbranch-protection=bti Signed-off-by: Bill Roberts <bill.roberts@arm.com> --------- Signed-off-by: Bill Roberts <bill.roberts@arm.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
no change