Commit Graph

2352 Commits

Author SHA1 Message Date
Martin Storsjö
a436676bc8 Update openh264.rc when updating the version number 2015-04-20 12:08:52 +03:00
Martin Storsjö
350b69bbf0 Simplify the version generation script 2015-04-20 12:08:52 +03:00
Martin Storsjö
2b33c74993 Include the version number and other info in the built DLL file 2015-04-20 12:08:52 +03:00
sijchen
473f2e3d42 Merge pull request #1901 from mstorsjo/cleanup
Clean up warnings and incorrect indentation in the console tools
2015-04-20 11:18:59 +08:00
sijchen
c8ee9a0308 Merge pull request #1904 from mstorsjo/wp-proj-gitignore
Add a gitignore file for the windowsphone project
2015-04-20 11:18:05 +08:00
Martin Storsjö
95a46f1fc6 Add a gitignore file for the windowsphone project 2015-04-17 16:13:31 +03:00
Martin Storsjö
f39f58e9db Avoid warnings about conversion from double to float 2015-04-17 14:58:55 +03:00
Martin Storsjö
15c71312d2 Use spaces for indentation instead of tabs 2015-04-17 14:58:55 +03:00
Martin Storsjö
f619c16840 Hook up the x86_32-only assembly as well
This makes sure the code is at least somewhat tested. Ideally those
assembly functions should be upgraded to work in 64 bit mode as well,
but until then it's better to actually use them in the configurations
where they can be built.
2015-04-17 13:00:46 +03:00
Sijia Chen
7b52c402db add command line option to set input frame rate 2015-04-16 12:46:18 +08:00
Sijia Chen
1922b533f6 change the range of frame rate from 30 to 60 2015-04-16 12:45:43 +08:00
Sijia Chen
8b679cad73 improve statistic calc 2015-04-16 12:45:33 +08:00
Sijia Chen
6a31bc3785 downgrade the log level of screen reference logs to save log volume 2015-04-16 12:45:22 +08:00
Sijia Chen
2a9035a571 add a clip to avoid warning on gcc4.8.2
https://github.com/cisco/openh264/issues/1858
2015-04-16 12:45:09 +08:00
sijchen
d718ad89f4 Merge pull request #1891 from darealshinji/patch-1
Indentation in PrintHelp() for better reading flow
2015-04-13 14:38:29 +08:00
HaiboZhu
46d1c93016 Merge pull request #1892 from huili2/bugfix_greenissue_parseonly
bugfix for HW decoding green issue
2015-04-13 10:24:28 +08:00
huili2
cf3845779f bugfix for HW decoding green issue 2015-04-10 12:52:32 +08:00
darealshinji
60a6dceb7d Indentation in PrintHelp() for better reading flow 2015-04-10 00:38:13 +02:00
huili2
4d913096a1 bug fix for nodelay API for buffer storage 2015-04-08 11:20:52 +08:00
huili2
20f28cd2f2 bug fix for parseonly multi-data in 2015-04-07 02:18:13 -07:00
huade
8abe601d33 add Codec demo and auto build script for WP8 2015-04-07 09:55:37 +08:00
Martin Storsjö
0995390c4a Remove apple specific versions of arm macros with arguments
The apple assembler for arm can handle the gnu binutils style
macros just fine these days, so there is no need to duplicate all
of these macros in two syntaxes, when the new one works fine in all cases.

We already require a new enough assembler to support the gnu binutils
style features since we use the .rept directive in a few places.
2015-03-27 11:11:45 +02:00
Martin Storsjö
d8202cf38f Remove apple specific versions of arm64 macros with arguments
The apple assembler for arm64 can handle the gnu binutils style
macros just fine, so there is no need to duplicate all of these
macros in two syntaxes, when the new one works fine in all cases.

We already require a new enough assembler to support the gnu binutils
style features since we use the .rept directive in a few places.
2015-03-27 11:11:23 +02:00
Martin Storsjö
cdce1b73ca Remove a stray, unused parameter to a gnu binutils style macro in arm assembly 2015-03-27 11:11:23 +02:00
Martin Storsjö
0b0884874d Remove superfluous .text directives at the start of arm assembly files
This directive can be set by the common include header that is
included by all files anyway.
2015-03-27 10:46:34 +02:00
HaiboZhu
2b1c815184 Merge pull request #1880 from huili2/wels_const
merge wels_const.h
2015-03-26 16:14:40 +08:00
huili2
62bcf95d8c Merge pull request #1878 from mstorsjo/msvc-proj-cleanup
Remove references to missing files, clean up MSVC proj files
2015-03-26 09:46:24 +08:00
Martin Storsjö
b60d91f78e Don't downsample to anything smaller than 4x4 pixels
This makes for a chroma plane of 2x2. The SIMD versionf of generic
downscalers assume that the width and height is at least 2, since
it does an unconditional loop for the body of the image, and a
separate step for the last pixel and last row. The SIMD versions
assume that (width-1) and (height-1) are larger than zero.

This is the same fix as in e8cdbd2ea7, but making sure it applies
to both dimensions, that commit only fixed it for one of the
dimensions.

This fixes spurious crashes in EncodeDecodeTestAPI.SimulcastSVC.
2015-03-25 12:15:51 +02:00
Martin Storsjö
b98e7c1f7d Rename a vcproj folder to camelcase, to match all other folders in the same project 2015-03-25 11:46:41 +02:00
Martin Storsjö
19bcb45c22 Fix the indentation of a line in a vcproj file
This line seems to have been misindented by a manual edit.
2015-03-25 11:40:28 +02:00
Martin Storsjö
b6a1e1ce83 Remove references to missing files from the vcproj files 2015-03-25 11:40:10 +02:00
huili2
2673f0a579 merge wels_const.h 2015-03-25 17:11:40 +08:00
sijchen
cbc5681c01 Merge pull request #1876 from ruil2/base_vui
fix vui writting
2015-03-25 15:11:44 +08:00
ruil2
149e029c27 Merge pull request #1874 from sijchen/check_param2
[Encoder] fix a param checking for profile_idc
2015-03-25 14:12:11 +08:00
ruil2
4c352d13f3 fix vui writting 2015-03-25 14:10:18 +08:00
sijchen
3dbc36cdda Merge pull request #1872 from huili2/fix_1145964
fix order of null pointer protection
2015-03-25 11:18:37 +08:00
Sijia Chen
91b186ddc8 fix a param checking for profile_idc
reviewed at: https://rbcommons.com/s/OpenH264/r/1163/
2015-03-25 10:02:10 +08:00
huili2
bd8ad20e8a fix order of null pointer protection 2015-03-24 18:41:09 -07:00
huili2
88f5d1dde7 remove nal_prefix in encoder 2015-03-24 15:25:40 +08:00
huili2
a384df3246 Merge pull request #1868 from huili2/wels_common_basis
merge common part of wels_common_basis
2015-03-24 09:18:43 +08:00
sijchen
da8646f5b2 Merge pull request #1865 from ruil2/vui
update bGapsInFrameNumValueAllowedFlag according to parameters setting
2015-03-23 09:50:09 +08:00
huili2
403cc57dc6 merge common part of wels_common_basis 2015-03-20 12:44:00 +08:00
ruil2
cce966fbba update bGapsInFrameNumValueAllowedFlag according to parameters setting 2015-03-18 13:44:03 +08:00
Martin Storsjö
3956bccc3d Use the correct, official syntax for aarch64 mov instructions
Previously this used unofficial, apple specific syntax (with fallback
macros for gnu binutils), since Xcode 5.x didn't support the official
syntax of these instructions. Since Xcode 6 has been out for quite a
number of months already, it should be safe to require this (for
building 64 bit binaries for iOS, armv7 builds can still be built
with older Xcode versions).

This clarifies the code by avoiding apple specific syntax in the
assembler instructions.
2015-03-17 09:26:01 +02:00
Sijia Chen
cd3ebfa3d4 fix the usage of a rc variable 2015-03-16 15:01:14 +08:00
Sijia Chen
b4a9e99823 fix an uninitialization in RC when slice-increasing 2015-03-16 14:48:55 +08:00
huili2
7f3d6d8411 Merge pull request #1853 from syureyi/scalinglist_8x8
support scalinglist8x8
2015-03-16 10:48:15 +08:00
huili2
2d5a94ca75 Merge pull request #1847 from huili2/bit_stream
merge bit_stream.h for encoder&decoder
2015-03-16 10:47:44 +08:00
zhuiling
17e5ea95c0 support scalinglist8x8
fix issue

update according to wayne's suggestiong
2015-03-16 08:57:04 +08:00
ruil2
ae9c5e2516 update vui parameters 2015-03-13 19:11:10 +08:00
huili2
ed1140b846 merge bit_stream.h for encoder&decoder 2015-03-13 16:19:25 +08:00
ruil2
c109f4dc8d add VUI for base layer 2015-03-13 14:31:08 +08:00
sijchen
d7af7cedf9 Merge pull request #1845 from ruil2/rc_check
use each spatial layer qp instead of global qp and update traces
2015-03-12 17:27:24 +08:00
ruil2
fd7cd76b60 use each spatial layer qp instead of global qp and update traces 2015-03-12 15:05:51 +08:00
huili2
a93e4647df remove unused as264_common.h in decoder 2015-03-10 15:48:37 +08:00
Martin Storsjö
0ef69e55e2 Set pfMeCost to NULL when it isn't initialized
This avoids using uninitialized data in the check for bSatdInMdFlag.
2015-03-05 10:29:40 +02:00
huili2
4048b9791a Merge pull request #1834 from sijchen/check_param
complete parameter checking related to loop-filter-idc
2015-03-05 09:39:46 +08:00
huili2
3022d4f655 Merge pull request #1832 from sijchen/imp_mc
[Encoder] replace conditional judgements with faster operations
2015-03-05 09:39:31 +08:00
huili2
06b8e1abb7 allow slice-level data come in for parse only 2015-03-04 00:57:43 -08:00
dongzha
5b12578960 Merge pull request #1829 from syureyi/wp_p
Decoder WP support
2015-03-04 14:58:40 +08:00
zhuiling
9ef0c74fdd Decoder WP suppor
missed some part

fix clip value

update according to wayne's suggestion
2015-03-04 09:49:32 +08:00
Sijia Chen
94d1976a4e complete parameter checking related to loop-filter-idc 2015-03-03 18:31:37 +08:00
sijchen
5a1aedb622 Merge pull request #1827 from dongzha/cleanlog
modify decoder log
2015-03-03 11:01:46 +08:00
dong zhang
153dd0d3f5 format the files 2015-03-03 09:14:27 +08:00
Sijia Chen
63926a3d10 put a flag calculation in higher-level to save calculation in MB level 2015-03-02 17:36:55 +08:00
Sijia Chen
303bf77e42 replace conditional judgements with function pointer for acceleration 2015-03-02 17:11:11 +08:00
dong zhang
d28970d625 modify decoder log 2015-03-02 16:55:37 +08:00
Haibo Zhu
afbb499c77 Add Bs Lenght File Input in Console 2015-03-01 18:22:40 -08:00
Martin Storsjö
e8cdbd2ea7 Don't downsample to anything smaller than 4x4 pixels
This makes for a chroma plane of 2x2. The SIMD versionf of generic
downscalers assume that the width and height is at least 2, since
it does an unconditional loop for the body of the image, and a
separate step for the last pixel and last row. The SIMD versions
assume that (width-1) and (height-1) are larger than zero.

This fixes spurious crashes in EncodeDecodeTestAPI.SetOptionEncParamExt.
2015-02-28 14:58:53 +02:00
sijchen
2294b786cf Merge pull request #1774 from huili2/dec_flowchart_ec
modify decoder flowchart for non vcl AU check
2015-02-27 17:44:03 +08:00
Martin Storsjö
861f54887d Avoid trying to downscale layers to dimensions below 2
When calculating what resolution to actually downscale to,
it can end up smaller than what the caller set. When scaling
down to resolutions close to the limit of allowed values,
this can end up setting values lower than the limit.

Previously, e.g. a downscale from 2266x8 to 566x2 will end
up as 566x1 after this calculation. When scaling to a
566x1, the chroma plane gets a height of 0, which doesn't
make sense, and which breaks e.g. the SSE2 scaler. Therefore,
make sure none of the dimensions end up set below 2.
2015-02-19 14:53:02 +02:00
ruil2
e29ceca392 Merge pull request #1813 from sijchen/savc61
[Encoder] complete logic of simulcastavc with sps_pps_listing
2015-02-13 16:31:18 +08:00
Sijia Chen
15723e1204 add comments for write para set functions 2015-02-13 15:48:17 +08:00
HaiboZhu
1641ce9ee5 Merge pull request #1812 from huili2/cropping_error
return error for cropping data error
2015-02-12 11:27:48 +08:00
Sijia Chen
f9080ac090 complete logic of simulcastavc with sps_pps_listing 2015-02-11 17:31:17 +08:00
huili2
4e9e5f5c36 Merge pull request #1794 from syureyi/monochroma
to support monochroma
2015-02-11 16:10:07 +08:00
huili2
5683393f38 return error for cropping data error 2015-02-10 22:31:24 -08:00
Sijia Chen
943981abc4 fix a nal generation for simulcast avc and add nal-type check for simulcast avc UT 2015-02-09 13:50:31 +08:00
sijchen
bea361a1f0 Merge pull request #1805 from syureyi/fix_android_demo
Maintain android demo of encoder, fix a typo error
2015-02-09 11:05:17 +08:00
sijchen
9008b15d94 Merge pull request #1799 from mstorsjo/copy-spatial-downsample
Allow forcing copying in downscale
2015-02-06 14:22:18 +08:00
ruil2
8fc2af760f Merge pull request #1804 from sijchen/fix_over3
[Encoder] fix potential overflow under large bit rate
2015-02-06 14:22:01 +08:00
ruil2
296ab4d490 Merge pull request #1802 from sijchen/savc50
[Encoder] fix for in-middle changing simulcast avc setting
2015-02-06 14:21:47 +08:00
Sijia Chen
431bcee310 1, update the max-nal-size setting in UT and param check since we are using a larger input check
2, fix potential overflow (will change bs but little impact on bs)
2015-02-06 13:24:20 +08:00
ruil2
8246225eed Merge pull request #1791 from sijchen/fix_nal1
[Encoder] add a para check for max_nal_size
2015-02-06 12:17:40 +08:00
sijchen
3f19534dd6 Merge pull request #1790 from mstorsjo/simplify-vcproj
Remove the intermediate SW folder in the decoder vcproj files
2015-02-06 09:49:49 +08:00
Martin Storsjö
0a2cd1e59a Allow forcing copying in downscale
Normally, the DownsamplePadding skips scaling if the target
size is the same as the source size, assuming that the caller
will use the source data pointer in that case. This is true
for the base layer (the first call to DownsamplePadding in
SingleLayerPreprocess), but when downsampling the other layers,
there is no special handling for the case when the target
is the same size as the source.

Previously, the encoding of such spatial layers will use
completely uninitialized data, encoding complete garbage.

Instead force DownsamplePadding to make a copy if no scaling
is required, for the dependency layers. The base layer still
avoids a copy unless scaling of that layer is required.

Whether it actually makes sense to have lower spatial layers
the same size as the original one is a different question
though - currently the code allows it, and
EncodeDecodeTestAPI.SetOptionEncParamExt will try to use it.
2015-02-05 13:10:39 +02:00
Sijia Chen
bc1b28b5dd fix for in-middle changing simulcast avc setting 2015-02-05 16:34:28 +08:00
zhuiling
0a8a4f2284 to support monochroma
add mbtype judge logic
2015-02-04 15:00:54 +08:00
HaiboZhu
442230a91d Merge pull request #1789 from huili2/bugfix_checkspsactive
bug fix for multi-layer active sps check
2015-02-04 09:13:18 +08:00
Sijia Chen
2211324e2b add a para check for max_nal_size 2015-02-03 15:14:36 +08:00
Martin Storsjö
87b73257cb Remove the intermediate SW folder in the decoder vcproj files
This makes the folder structure in these project files match all
the other ones.
2015-02-03 09:09:58 +02:00
huili2
1734133012 bug fix for multi-layer active sps check 2015-02-02 22:31:50 -08:00
Martin Storsjö
4f237b51ef Move parts of wels_const.h into a shared header 2015-02-02 12:41:11 +02:00
Martin Storsjö
713beb7df7 Fix typos in header include guards 2015-02-02 12:41:11 +02:00
sijchen
5fdd01ec0c Merge pull request #1787 from mstorsjo/remove-stray-semicolon
Remove accidental double semicolons
2015-02-02 18:15:02 +08:00
sijchen
e7a7a35611 Merge pull request #1779 from mstorsjo/share-memalign
Move the memory allocation/deallocation routines to the common library
2015-02-02 18:14:55 +08:00
Martin Storsjö
a3063531c4 Remove accidental double semicolons 2015-02-02 09:20:35 +02:00
zhuiling
ee515e8b35 fix it 2015-02-02 10:17:19 +08:00
zhilwang
fb5c60b6fc Merge pull request #1782 from mstorsjo/avoid-yasm-warnings
Move DEFAULT REL into the x86_64 cases
2015-02-01 17:38:59 -08:00
zhilwang
7629543e3e Merge pull request #1784 from mstorsjo/force-arm-mode
Force armv7/neon within the arm assembly header file
2015-02-01 17:36:36 -08:00
Martin Storsjö
5a78735802 Force armv7/neon within the arm assembly header file
This avoids having to add extra compiler flags to be able to build
them.
2015-02-02 00:53:39 +02:00
Martin Storsjö
3243a78959 Move DEFAULT REL into the x86_64 cases
This fixes warnings when building for x86_32 using yasm, which says
the "DEFAULT REL" is ignored for non-64-bit targets.
2015-02-02 00:49:37 +02:00
Martin Storsjö
2356eb1ff6 Move the memory allocation/deallocation routines to the common library
They are still used slightly differently in the encoder and decoder;
the decoder uses plain functions while the encoder uses one object
keeping track of the number of allocated bytes, and keeping track
of the requested alignment.
2015-01-30 11:30:59 +02:00
Martin Storsjö
078d96bef7 Don't overwrite the git-tracked version.h
When generating a new version of the header, that includes the
actual git hash, don't overwrite the file that is tracked by git.
Instead create a new file, and include this only if the build system
indicates that it exists (by setting a define). This allows the
untouched source tree to be built from within an IDE even if make
has not been run.

This reduces the hassle with a file that needs to be ignored in the
git configuration.

The downside is that the generated file isn't used if building
from within an IDE, if the header has been updated by calling make
before (since the IDE configuration doesn't know whether the user
actually has run make). Since users of the IDE might not build via
make in the command line at all (in the same source checkout at least),
this should not be an issue in practice. The previous way things worked,
the version hash (generated by make) when used in an IDE could actually
be outdated and misleading.
2015-01-30 10:55:16 +02:00
Martin Storsjö
869870e670 Rename the decoder WelsMalloc to WelsMallocz
This function actually zero-initializes the allocated memory, thus
make this clear in the function name.

This makes the function name match the same behaviour in the encoder.
2015-01-30 10:37:48 +02:00
Sijia Chen
a4f09f4d76 update the version info to sync with recent change of API 2015-01-29 11:14:08 +08:00
dongzha
4f4adcec49 Merge pull request #1772 from mstorsjo/mc-unify
Move the MC implementation to the common library
2015-01-29 09:28:57 +08:00
Martin Storsjö
f03edd79c2 Merge all MC unit tests into one file
Since both encoder and decoder use the same MC implementation now,
one set of tests is enough.
2015-01-28 23:59:37 +02:00
Martin Storsjö
9a0663620a Move the MC routines to the common library
Use the decoder versions of the functions (which are capable
of handling widths 4/8/16 for luma, not only 16 as in the
encoder). By using the more generic versions, there may be a small
performance loss since the functions need to check the width
in every call. Actual measurements show that the actual change is
very small (and the shared routines turn out to actually be faster
than the existing ones in ARM NEON setups).
2015-01-28 15:32:46 +02:00
Martin Storsjö
1a7d0ab831 Hook up McChromaWidthEq8_ssse3 into use in the decoder as well 2015-01-28 15:20:43 +02:00
Martin Storsjö
5d67df4adb Remove leftover references to expand_pic in the welsdec xcode project
These files are part of the common library (and the common xcode
project) now instead.
2015-01-28 15:13:50 +02:00
Martin Storsjö
9a9fc4c489 Change pfSampleAveraging to be a single function with internal width handling
This makes it match the behaviour of pMcLumaFunc and pMcChromaFunc.
2015-01-28 13:59:58 +02:00
Martin Storsjö
8b6bf0499f Rename the encoder MC chroma/luma functions to match the naming in the decoder 2015-01-28 13:59:58 +02:00
Martin Storsjö
1cf68cad13 Move the qpel function table into the luma function itself
This unifies the luma MC interface to match the decoder side.
2015-01-28 13:59:58 +02:00
huili2
b6e28495dd modify decoder flowchart for non vcl AU check 2015-01-28 00:22:48 -08:00
Martin Storsjö
7354a8cbae Handle width==2 for the neon version of McCopy
Fall back on the C version of the algorithm here, just as in
McCopy_sse2.

This fixes 2 of the McCopy tests on arm/aarch64.
2015-01-28 09:01:00 +02:00
ruil2
c4c73ee5d6 Merge pull request #1764 from sijchen/fix_br3
[Encoder] fix potential overflow and save unnecessary calculation
2015-01-28 11:45:47 +08:00
ruil2
051a16e02e Merge pull request #1762 from sijchen/fix_sta
[Encoder] fix statistics: updating should be independent with log interval
2015-01-28 10:51:51 +08:00
Sijia Chen
5752888c81 1, fix a potential overflow
2,    remove some unnecessary multiplier and add input check of spatial BR
2015-01-28 10:51:27 +08:00
Martin Storsjö
23b20fb14c Simplify code in HorFilterInput16bit in MC
This avoids a gcc optimizer bug (which seems to be present in some
gcc 4.6 and 4.7 versions) at the -O3 level.
2015-01-27 09:41:00 +02:00
Martin Storsjö
279e14b34e Add const to some inline functions within MC 2015-01-27 09:41:00 +02:00
Martin Storsjö
478af8f00c Unify the pfChromaMc function signature with the decoder version
Instead of passing a struct with x/y, pass them as two separate
parameters.
2015-01-27 09:40:59 +02:00
Martin Storsjö
9fc9acfd14 Avoid a duplicate local typedef 2015-01-27 09:40:59 +02:00
Martin Storsjö
7d9fc35235 Unify the encoder MC init function with the decoder
This simplifies the code a little, by passing a pointer to the sub-struct
SMcFunc instead of to the full SWelsFuncPtrList, which isn't necessary.
2015-01-27 09:40:59 +02:00
ruil2
5b27407993 Merge pull request #1757 from sijchen/sps_list4
[Encoder] add input checking and fix a bs length under new strategy
2015-01-27 10:43:20 +08:00
ruil2
1b48e6c88c Merge pull request #1756 from sijchen/savc4
[Encoder] Implementation of bSimulcastAVC and UT
2015-01-27 10:42:50 +08:00
Sijia Chen
d557578be3 fix statistics: updating should be independent with log interval 2015-01-27 10:12:51 +08:00
Martin Storsjö
4ca8ad2612 Initialize pCodecInstance in the constructor
This avoids using uninitialized memory if SetCodecInstance
isn't ever called (as in DecUT_ParseSyntax).
2015-01-26 13:16:09 +02:00
Sijia Chen
deccd1eadb fix profileidc 2015-01-26 16:36:42 +08:00
Sijia Chen
e2fb48d404 change the trace to warning 2015-01-26 15:42:09 +08:00
Sijia Chen
8d5ec6759d add support of SimulcastAVC functions 2015-01-26 15:25:09 +08:00
Sijia Chen
f13624316e fix level-idc related input checking and a statistics calculation
will change bs but tested there is little impact on RD
being reviewed at: https://rbcommons.com/s/OpenH264/r/1084/
2015-01-26 15:20:58 +08:00
Sijia Chen
45e3424364 add input checking and fix a bs length under new strategy 2015-01-26 11:12:24 +08:00
sijchen
7f967f6fc4 Merge pull request #1750 from syureyi/crqp
to support different chroma qp
2015-01-23 13:30:21 +08:00
zhuiling
a45c661525 to support different chroma qp
fix travis ci error
2015-01-23 09:06:09 +08:00
dong zhang
6dcaf2f890 fix crash in SGE test 2015-01-22 09:10:28 +08:00
ruil2
e7fff10d91 Merge pull request #1745 from sijchen/fix_ut
[UT] fix a random failure of UT
2015-01-21 17:31:34 +08:00
Sijia Chen
d74234d975 enhance max-br checking logic 2015-01-21 16:54:43 +08:00
Sijia Chen
6664593ef7 Merge branch 'master' of https://github.com/cisco/openh264 into fix_max_br 2015-01-21 16:35:31 +08:00
Sijia Chen
5b10c1ff8d fix random failure of UT under randon seed 1421732719 2015-01-20 15:47:05 +08:00
dong zhang
bd7fabd892 modify decoder console log level to WELS_LOG_WARNING
change the postion of setting EC method
2015-01-20 13:18:33 +08:00
Sijia Chen
ee40ba6392 improve the para checking of max-br 2015-01-20 10:31:13 +08:00
sijchen
8bef6bc942 Merge pull request #1738 from huili2/init_EC_modify
modify EC init position
2015-01-19 16:36:29 +08:00
Sijia Chen
d9502aa71d rename the strategy to enum 2015-01-19 10:49:38 +08:00
huili2
50ce93e31c modify EC init position 2015-01-18 18:07:27 -08:00
Martin Storsjö
9e00bf89aa Use VerifyVersionInfo instead of GetVersionEx
The GetVersionEx function has been deprecated since Windows 8.1.
VerifyVersionInfo exists at least since Windows 2000.

This fixes warnings about use of deprecated functions in MSVC.
2015-01-16 13:38:21 +02:00
Martin Storsjö
b83b19254d Add a cast when converting from uint64_t to int
This silences warnings with MSVC.
2015-01-16 13:38:07 +02:00
ruil2
aea1017562 Merge pull request #1732 from sijchen/sps_list2
[Encoder] add new SpsPpsStrategy and UT
2015-01-16 10:53:45 +08:00
Martin Storsjö
d6b4b5365d Declare a float constant as float instead of as double
This avoids warnings about converting from double to float
in MSVC.
2015-01-15 12:38:42 +02:00
Martin Storsjö
75bbc286e1 Add explicit casts when converting from double to int32_t
This fixes build warnings with MSVC.
2015-01-15 12:38:39 +02:00
Martin Storsjö
c8972f1c32 Consistently use the right type for log prints
These fields were originally int64_t. Even though long long is
the same size as int64_t in all setups, some compilers treat
it as a different type than long long (in 64 bit environments,
int64_t is a long, not a long long, even if they are the same
size).

%"PRId64" is used for printing int64_t, while %lld is used
for printing long long.

This fixes build warnings with gcc.
2015-01-15 12:33:44 +02:00
Sijia Chen
98ed302990 add new SpsPpsStrategy and UT 2015-01-15 18:04:39 +08:00
sijchen
e9ec603fd7 Merge pull request #1727 from huili2/addUT_parseonly_frameincomplete
add UT for incomplete frame for parse only
2015-01-15 16:23:05 +08:00
sijchen
dbcbe180e6 Merge pull request #1729 from ruil2/rc_submit1
add rc function
2015-01-15 16:22:39 +08:00
dongzha
b603844126 Merge pull request #1730 from HaiboZhu/Debug_EC_off_Delay_mode_early_exit_process
Fix the bug that the pDec not set to NULL when early exit
2015-01-15 14:08:26 +08:00
ruil2
d7304bbaf4 Merge pull request #1728 from sijchen/fix_mbidx
[Encoder] expand the mb_idx range so as to support frame size > 32767
2015-01-15 11:33:15 +08:00
Haibo Zhu
264cf57616 Fix the bug that the pDec not set to NULL when early exit
Add more judgement for diff set EC mode under no-delay call
2015-01-14 19:22:34 -08:00
ruil2
5b5cc8434e add rc function 2015-01-15 11:14:05 +08:00
huili2
ea533e6405 add UT for incomplete frame for parse only 2015-01-14 18:00:33 -08:00
dongzha
993caea18c Merge pull request #1721 from huili2/DecodeFrameNodelay
add new API as DecodeFrameNoDelay for immediate decoding
2015-01-15 09:54:10 +08:00
dongzha
cb49f8ecbd Merge pull request #1718 from huili2/sps_avc_flag_remove
allow non-avc check when subset SPS exists
2015-01-15 09:53:15 +08:00
Sijia Chen
c02d9b0865 expand the mb_idx range so as to support frame size > 32767 2015-01-14 17:59:16 +08:00
Martin Storsjö
f594d96a51 Log all provided parameters in WelsEncoderApplyLTR
This fixes warnings with gcc and clang.
2015-01-14 09:06:36 +02:00
ruil2
34661f1d86 Merge pull request #1715 from huili2/parseonly_flowchart_modify
modify parse only flowchart to use DecodeFrameConstruction()
2015-01-13 16:11:02 +08:00
ruil2
cdd072e1d4 Merge pull request #1714 from sijchen/fix_ref4
[Encoder] enhance param checking with num-ref and related logging
2015-01-13 16:10:20 +08:00
ruil2
47dd4de412 Merge pull request #1717 from sijchen/fix_ltr1
[Encoder] fix for the valgrid warning of issue#1362
2015-01-13 15:30:53 +08:00
huili2
1518b5da58 allow non-avc check when subset SPS exists 2015-01-12 22:29:18 -08:00
huili2
8e35224134 modify parse only flowchart to use DecodeFrameConstruction() 2015-01-11 23:16:24 -08:00
Sijia Chen
ea06cbe06b enhance param checking with num-ref and related logging 2015-01-12 10:39:51 +08:00
ruil2
04cb9f3477 Merge pull request #1678 from sijchen/savc1
[Encoder] interface for simulcast avc
2015-01-12 09:23:17 +08:00
Martin Storsjö
44bce08d60 Avoid a spurious valgrind warning in DecoderIntraPredictionTest.WelsDecoderI16x16LumaPredPlane_sse2
valgrind thinks xmm2 is uninitialized - in fact it is, but
its value here doesn't really matter. Instead set it to a known value
before using it in SUMW_HORIZON.
2015-01-10 13:25:00 +02:00
Sijia Chen
a4ae5e3747 add fix for the valgrid warning of issue#1362 2015-01-09 16:17:51 +08:00
Sijia Chen
76ef30dc82 refactor 2015-01-09 15:55:03 +08:00
dongzha
a5cb0ea22c Merge pull request #1711 from huili2/parseonly_noEC
disable EC for parseonly
2015-01-09 09:23:55 +08:00
huili2
900a908929 disable EC for parseonly 2015-01-08 00:16:01 -08:00
huili2
e48585236e prevent error propagation for parse only when frame is not complete 2015-01-07 22:34:55 -08:00
Ethan Hugg
71123f29ef Merge pull request #1702 from mstorsjo/adjust-comment
Clarify the comment about ABI issues with WelsGetCodecVersion
2015-01-07 09:07:12 -08:00
Ethan Hugg
178a18b30e Merge pull request #1703 from mstorsjo/add-cast
Add a cast to silence GCC warnings about comparison between signed and unsigned
2015-01-07 09:05:42 -08:00
Martin Storsjö
5c3c2a569c Add a cast to silence GCC warnings about comparison between signed and unsigned 2015-01-07 09:15:48 +02:00
Martin Storsjö
aa1ec23ecd Clarify the comment about ABI issues with WelsGetCodecVersion
The incompatibility between mingw and msvc is smaller than it seemed
at first; this turned out to only be a bug in older versions.
2015-01-07 09:15:34 +02:00
huili2
62c6a1e099 Merge pull request #1705 from HaiboZhu/Debug_Delay_mode_rawdata_update_error
Fix a bug when EC disable under delay mode
2015-01-07 15:12:11 +08:00
Haibo Zhu
207082e237 Fix a bug when EC disable under delay mode (buf point not update when early exit) 2015-01-06 17:48:58 -08:00
huili2
e8b68d2460 bug fix for parseonly for complete frame judge: reset total_mb if correct. 2015-01-05 23:07:17 -08:00
huili2
ac08cc4b2f Merge pull request #1694 from zhilwang/asm-SetNoneZero
Add asm code for NoneZeroCount and refine related code
2015-01-06 13:37:56 +08:00
sijchen
9a89ee72b0 Merge pull request #1698 from ruil2/fix_param
fix bug when some parameters change dynamically
2015-01-06 09:37:48 +08:00
ruil2
c72d3ad51a Merge pull request #1697 from huili2/parseonly_frame_complete_return
output error when frame incomplete for parse only usage
2015-01-05 17:06:56 +08:00
ruil2
ce14a0e4f9 fix bug when some parameters change dynamically 2015-01-05 17:01:35 +08:00
huili2
b719c3b0d5 output error when frame incomplete for parse only usage 2015-01-04 17:13:57 -08:00
Martin Storsjö
3422d3b976 Declare the g_strCodecVer variable as const
Previously, the variable itself wasn't const (which meant that
it could be set to point to another const string instead).

By declaring it as const, gcc doesn't warn about it being unused,
and we can get rid of a workaround.
2015-01-04 21:00:23 +02:00
zhiliang wang
01b74ea7c1 Add asm code for NoneZeroCount and refine related code 2015-01-04 16:39:17 +08:00
ruil2
2ef9a8aee9 Merge pull request #1692 from mstorsjo/improved-version-function
Add a new public function WelsGetCodecVersionEx
2015-01-04 09:14:29 +08:00
Martin Storsjö
50dc4757e4 Add a new public function WelsGetCodecVersionEx
This function doesn't return a struct, but fills in a struct via
a provided pointer.

The ABI of returning a struct is different between MSVC and mingw.

This allows using the same function from mingw, even though the DLL
has been built with MSVC.
2015-01-03 01:09:04 +02:00
Martin Storsjö
ba314d16e7 Add void to the parameter list of WelsGetCodecVersion
When the header is used from C instead of C++, an empty parameter
list means that it can take any number of parameters, and can cause
warnings like "function declaration isn’t a prototype" with some
C compilers. Clarify this by explicitly adding void to this function.
2014-12-31 17:07:36 +02:00
huili2
e3e5208509 add new API as DecodeFrameNoDelay for immediate decoding, which will be recommended decoding method for h.264 bitstream 2014-12-30 23:43:47 -08:00
huili2
47d8a840c0 Merge pull request #1682 from huili2/parseonly_initial_no_colorformat
disable color format check for parse only
2014-12-31 13:14:47 +08:00
Haibo Zhu
81805ab23d Force NO deblocking when no MB decoded in current slice
Remove the judgment outside of the function
2014-12-30 18:25:54 -08:00
Haibo Zhu
a53dc467f6 Change default EC mode to ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE 2014-12-29 22:17:38 -08:00
HaiboZhu
d2d4ab8c67 Merge pull request #1680 from dongzha/SpeedupDecoding
speedup decoding
2014-12-29 17:17:25 +08:00
dong zhang
dc86cfe5d8 speedup decoding 2014-12-29 16:40:26 +08:00
huili2
b12b39a47b disable color format check for parse only 2014-12-28 23:43:09 -08:00
Haibo Zhu
7ee00b0618 Reset AU uiStartPos to 0 in ResetCurrentAccessUnit for svc
Reset uiStartPos to 0 when init and forceReset
2014-12-28 23:14:33 -08:00
Sijia Chen
6050bf89f6 add interface of simulcast avc, the actual support is coming later 2014-12-29 10:54:01 +08:00
sijchen
26ccd837f1 Merge pull request #1672 from huili2/parseonly_sizemodif
unify parseonly to have 0x0001
2014-12-26 09:58:28 +08:00
Haibo Zhu
586893ca4b Add SPS/SubSPS/PPS update when AU number==0 and iOverwriteFlags==true
Add TotalNumMbRec>0 judgement for EC
2014-12-25 15:03:47 -08:00
sijchen
b455c035f7 Merge pull request #1670 from ruil2/level
add profile and level checking in ParamValidation
2014-12-25 17:37:01 +08:00
ruil2
00a2dc290c modify trace info for LEVEL_UNKNOWN 2014-12-25 16:58:29 +08:00
sijchen
bac135ae81 Merge pull request #1665 from ruil2/frame_rate
refine frame rate
2014-12-25 16:53:52 +08:00
huili2
9c0bbeb4da unify parseonly to have 0x0001 2014-12-24 23:11:49 -08:00
ruil2
0babd8d7ab add profile and level checking in ParamValidation 2014-12-24 15:40:30 +08:00
ruil2
13f6ff59cc add RC_TIMESTAMP_MODE mode 2014-12-24 14:57:03 +08:00
Martin Storsjö
8b7be9f3bc Initialize a local variable
This fixes warnings with GCC about a variable that may be used
uninitialized (if iResProperty was an incorrect value).
2014-12-23 23:18:20 +02:00
Martin Storsjö
8de54078d7 Use an unsigned variable for comparison with unsigned values
This avoids warnings about comparison between signed and unsigned.
2014-12-23 23:17:18 +02:00
Martin Storsjö
328094acfd Remove a write-only variable
This fixes warnings with GCC about a variable that is set but
not used.
2014-12-23 23:16:56 +02:00
ruil2
cf6450b269 refine frame rate 2014-12-23 17:30:01 +08:00
sijchen
9cc395fc4e Merge pull request #1632 from ruil2/encoder_refine
use the same complexity computation branch for screen and camera
2014-12-23 10:51:53 +08:00
huili2
2c99f5810e Merge pull request #1659 from syureyi/scalinglist
Scalinglist
2014-12-23 10:50:49 +08:00
Martin Storsjö
bdbda13929 Use the correct types instead of void pointers in function signatures in rc.h 2014-12-22 23:54:06 +02:00
sijchen
692614b057 Merge pull request #1660 from ruil2/frame_rate
using function pointer to make different branch for different rc
2014-12-22 15:55:46 +08:00
Sijia Chen
eb8e25a038 update the version header file for 1.3 2014-12-22 14:13:30 +08:00
ruil2
e3bf63db59 using function pointer to make different branch for different rc 2014-12-22 12:00:39 +08:00
sijchen
9a602cac1b Merge pull request #1657 from mstorsjo/clip-bitrate
Make sure the random test bitrate is high enough
2014-12-21 18:49:26 -08:00
Martin Storsjö
7411469e1d Avoid a warning about an unused static variable 2014-12-19 11:06:51 +02:00
dongzha
809adc4129 Merge pull request #1654 from syureyi/newest
maintain codec demo
2014-12-19 14:05:07 +08:00
zhuiling
f0934c7bf3 maintain codec demo 2014-12-19 13:53:29 +08:00
ruil2
3ae2507c99 remove macro definition to the header file 2014-12-19 10:53:06 +08:00
HaiboZhu
afd82b2cfa Merge pull request #1652 from huili2/newseq_bugfix
use picture-level new seq begin detection for output functions
2014-12-19 09:55:26 +08:00
Martin Storsjö
8bfeae27a4 Add a public function for getting the codec version
If the codec library is loaded dynamically, it may be necessary that
the loaded library actually matches the version that was used when
it was built, to avoid issues due to ABI differences. Therefore add
a public function to allow getting the version of the currently
loaded library.
2014-12-18 13:20:33 +02:00
Martin Storsjö
4fb442a983 Captizalize OpenH264 correctly in the version header 2014-12-18 13:18:30 +02:00
ruil2
91574afca4 Merge pull request #1603 from sijchen/add_ver1
add generating script and the first version of codec_ver.h
2014-12-18 17:33:29 +08:00
huili2
b8ce2eb40e use picture-level new seq begin detection for output functions 2014-12-18 01:19:33 -08:00
Sijia Chen
e6134b5972 skip the git version hash in the header 2014-12-18 16:07:37 +08:00
sijchen
5b2469c0b5 Merge pull request #1642 from mstorsjo/avoid-rebuilds
Avoid rebuilds if the version header hasn't changed
2014-12-18 15:51:07 +08:00
sijchen
4db34bdf43 Merge pull request #1634 from ruil2/trace
use WELS_LOG_ERROR as default trace level in console app
2014-12-18 10:11:38 +08:00
sijchen
b208cac1c5 Merge pull request #1638 from ruil2/default_trace
modify WELS_LOG_WARNING as the default trace level
2014-12-18 10:11:19 +08:00
huili2
916d24d99e Merge pull request #1650 from huili2/bugfix_cabac_mbqpdelta
unify spsid for pic and add check for mb_qp_delta
2014-12-18 10:01:37 +08:00
HaiboZhu
7f27198c68 Merge pull request #1648 from huili2/bugfix_cabacinitidc
add check for cabac_init_idc range in parsing
2014-12-18 09:07:17 +08:00
huili2
208400eeb4 unify spsid for pic and add check for mb_qp_delta 2014-12-17 00:31:20 -08:00
ruil2
ab480fe387 Merge pull request #1649 from sijchen/fix_trace
[Encoder] fix a potential problem of trace
2014-12-17 16:05:32 +08:00
ruil2
58e868c074 Merge pull request #1643 from mstorsjo/check-num-refs
If lowering the maximum number of ref frames, check iNumRefFrames as well
2014-12-17 15:51:52 +08:00
Sijia Chen
1b26bd4b88 put this file into good format 2014-12-17 14:15:10 +08:00
Sijia Chen
3c08f04993 add fix for protection of wrong reading if input is invalid 2014-12-17 14:14:23 +08:00
huili2
030d320e43 Merge pull request #1646 from dongzha/cabacfix
cabac fix
2014-12-17 11:18:23 +08:00
huili2
182ae421a1 Merge pull request #1647 from HaiboZhu/Debug_Check_Ref_Picture_Complete
Change the name and call logic of CheckRefPicturesComplete function
2014-12-17 11:18:11 +08:00
huili2
9f0ed3fc4b add check for cabac_init_idc range in parsing 2014-12-16 18:13:21 -08:00
ruil2
ac992acaa9 Merge pull request #1640 from mstorsjo/fix-tests
Fix occasional failures in some tests
2014-12-17 09:29:36 +08:00
dong zhang
490a3e5562 cabac fix 2014-12-17 09:27:41 +08:00
Haibo Zhu
590eef6059 Change the name and call logic of CheckRefPicturesComplete function. 2014-12-16 17:26:13 -08:00
Martin Storsjö
f89780ddd8 Use the correct types instead of void pointers in function signatures
This gets rid of 50 lines of code with just casts of void pointers,
making the code shorter and clearer.
2014-12-16 22:13:38 +02:00
Martin Storsjö
4746ce8fd4 If lowering the maximum number of ref frames, check iNumRefFrames as well
Make sure we don't set iMaxNumRefFrames lower than iNumRefFrames.

This fixes occasional test failures in
EncodeDecodeTestAPI.SetOptionEncParamExt.
2014-12-16 13:56:50 +02:00
Martin Storsjö
f90cd367d2 Avoid rebuilds if the version header hasn't changed
When generating the version header, don't overwrite it if the
new version is identical to the old one.
2014-12-16 12:23:50 +02:00