Ari Koivula
ea50d03e52
Add cli module and move interface stuff to there.
2015-07-02 15:45:33 +03:00
Arttu Ylä-Outinen
d27cde55a4
Add --input-fps and --bitrate parameters.
2015-05-15 13:57:51 +03:00
Marko Viitanen
fd060cf2c6
Merge branch 'bipred'
...
Conflicts:
README.md
src/config.c
src/config.h
src/encmain.c
2015-04-23 14:45:44 +03:00
Marko Viitanen
7f504b7808
Added a commandline parameter --bipred to enable bi-pred search
2015-04-21 14:35:16 +03:00
Ari Koivula
13924a2057
Add --no-info parameter.
...
- Stops encoder information from being added to bitstream.
- The version information overhead is too big when doing comparisons with
very short sequences.
2015-04-16 17:30:36 +03:00
Marko Viitanen
f28ebbcd41
Moved GOP defining to config.c and added parameter --gop
...
* Checking that intra period and gop_len match
2015-03-30 10:09:54 +03:00
Marko Viitanen
7952f892fc
Fixed GOP reference usage
2015-03-23 14:17:44 +02:00
Marko Viitanen
164b7a7743
Merge remote-tracking branch 'remotes/origin/master' into GOP
2015-03-20 11:40:15 +02:00
Marko Viitanen
f166d25dd0
Added positive and negative reference frames to the gop config
2015-03-20 10:22:53 +02:00
Arttu Ylä-Outinen
176dbb6a5b
Add --me parameter.
...
Selects the integer motion estimation algorithm (hexbs or tz).
2015-03-19 18:48:10 +02:00
Marko Viitanen
66660516b7
Merge remote-tracking branch 'remotes/github/master' into GOP
...
Conflicts:
src/cabac.h
src/config.h
src/cu.h
src/encoder_state-bitstream.c
src/encoderstate.c
2015-03-10 10:32:00 +02:00
Ari Koivula
5b12830756
Rename struct config to config_t.
2015-03-04 14:01:16 +02:00
Ari Koivula
f6147b410a
Rename struct encoder_control to encoder_control_t.
...
Conflicts:
src/encoder_state-geometry.h
src/encoderstate.h
2015-03-04 14:01:14 +02:00
Ari Koivula
b14f89c88f
Rename struct encoder_state to encoder_state_t.
2015-03-04 14:00:46 +02:00
Marko Viitanen
c3d9e0b707
Added testset of data for GOP
2015-03-03 12:22:09 +02:00
Ari Koivula
d7383ccb25
Change license to LGPL.
...
- Everyone who has contributed code to the project has been asked to license
their contributions under LPGL and they have agreed.
- COPYING file changed to say LGPLv2.1 instead of GPLv2.
- GPL changed to LGPL in the header of every single file that a header and
header added to the few that were missing one.
- Also.. Happy new year!
2015-02-25 15:19:05 +02:00
Arttu Ylä-Outinen
b6776a8cee
Add --vps-period parameter.
2015-02-18 13:55:27 +02:00
Ari Koivula
f01cbbb5ca
Add --no-signhide parameter.
2015-01-24 21:29:37 +02:00
Ari Koivula
1ccb3bd324
Move sign hiding stuff in rdoq to its own function.
...
- There is some stuff from sign hiding left intermingled with rdoq code,
but I don't want to change the code too before testing that I didn't
break anything.
2015-01-24 21:27:20 +02:00
Ari Koivula
c940ccb549
Fix gcc error.
...
encmain.c:433:13: error: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘uint64_t’
2015-01-23 15:50:14 +02:00
Ari Koivula
5d16fa6c4f
Add VPS every intra frame.
...
- Just rdo=0 for now. Later this can be extended to be configured separately.
2015-01-22 13:13:23 +02:00
Ari Koivula
d685ee86d6
Record total bitstream length correctly when using stdout.
...
- If the output is not a file, we can't check the size of the file.
2015-01-22 12:29:06 +02:00
Ari Koivula
bbae2e8a27
Update usage and readme.
2015-01-12 10:59:28 +02:00
Ari Koivula
51b5692121
Rewrite owf=auto code to be more general.
...
- Change the definition to be a bit more general. The mapping from resolution
to owf frames stays mostly the same however, but should handle weird
resolutions better.
- Move everything to config module.
- Fix handling of tiles. It had a bug where owf for tiles was always
threads * 4/3 - 1. Works as intended now.
2014-12-09 19:00:11 +02:00
Ari Lemmetti
24492adb02
Merge branch 'fme_merge'
2014-11-21 15:08:45 +02:00
Ari Lemmetti
4874f2662f
Added --subme commandline parameter for fractional pixel motion estimation: 1 == enable (default), 0 == disable.
2014-11-20 14:59:04 +02:00
Ari Koivula
3ef88dfda5
Add --owf=auto option.
...
- The optimal value for Overlapping Wave Front (OWF) depends on a bunch of
variables. Attempt to set the optimal owf value, at least for all intra.
2014-11-18 02:19:40 +02:00
Ari Lemmetti
5a946f24ea
Fixed time output formatting.
2014-11-14 16:46:41 +02:00
Daniel Eneyev
992a98c5c4
If output name is dash - write to stdout
2014-11-13 12:45:53 +03:00
Ari Koivula
75a137c1e9
Add --cpuid parameter to disable runtime optimizations.
2014-10-16 12:01:36 +03:00
Ari Koivula
8b8b53fba5
Merge branch 'sao_cabac'
2014-09-22 10:28:30 +03:00
darealshinji
61a414bced
reposition colons in usage message to match with the rest
2014-09-15 03:40:18 +02:00
Ari Koivula
79b86ce6e1
Add --tr-depth-intra command line option.
...
Conflicts:
src/encoder.c
2014-09-04 13:42:24 +03:00
Laurent Fasnacht
45faadb2c9
Fix bug where the wrong number of frames could be encoded (if one frame takes longer than the others)
2014-06-19 10:24:02 +02:00
Ari Koivula
94bc457b6c
Add option to disable fast intra search.
2014-06-17 15:32:05 +03:00
Laurent Fasnacht
ef9c2258e9
Fix frame counter and stats
2014-06-16 13:21:52 +02:00
Laurent Fasnacht
4b4702819b
Also print encoding FPS
2014-06-16 11:10:11 +02:00
Laurent Fasnacht
f99e41d41f
Improved CPU time statistics
2014-06-16 11:03:46 +02:00
Laurent Fasnacht
bf6024734a
Fix statistics with OWF
2014-06-16 10:55:00 +02:00
Laurent Fasnacht
0522a3d8e5
--owf option
2014-06-16 10:55:00 +02:00
Laurent Fasnacht
c32943f78b
OWF
2014-06-16 10:54:56 +02:00
Ari Koivula
443f2f00aa
Fix compilation for VS.
...
- VS2013 does not support variable length arrays.
2014-06-11 17:51:55 +03:00
Laurent Fasnacht
e1d9cb015a
Basic checkpointing system
2014-06-11 10:29:03 +02:00
Laurent Fasnacht
27a49d287d
Big refactor to use videoframe, image_list, and image instead of picture*
2014-06-10 09:19:06 +02:00
Laurent Fasnacht
7372f9244d
Basic infrastructure for OWF
2014-06-05 09:09:25 +02:00
Ari Lemmetti
9e649a8f38
Updated usage message
2014-06-04 15:23:27 +03:00
Laurent Fasnacht
63adb54a3d
Add --threads <int> command line parameter
2014-05-14 13:27:09 +02:00
Laurent Fasnacht
0e6f1c99fc
Refactor picture to remove hidden dependency between slice and tiles
...
picture.type -> encoder_state->global->pictype
picture.slicetype -> encoder_state->global->slicetype
picture.slice_sao_luma_flag -> 1 (was constant)
picture.slice_sao_chroma_flag -> 1 (was constant)
This may be changed later. For now it's better to avoid having slice related stuff in picture.
2014-05-07 11:55:48 +02:00
Laurent Fasnacht
6c6adf18c7
Refactor encoder_state
2014-05-07 11:47:31 +02:00
Laurent Fasnacht
c2872bd6b0
Slices and WPP in command line and encoder
2014-05-07 11:42:04 +02:00
Laurent Fasnacht
161fe38f5e
Remove USE_TILES define
2014-05-01 13:58:13 +02:00
Laurent Fasnacht
bf7e755cf7
Strategies and runtime detection/choice of best algorithm
2014-04-29 11:51:41 +02:00
Ari Koivula
cecf4b0b4e
Move __USE_MINGW_ANSI_STDIO to Makefile.
...
- I'm not too clear on how this should be used, but having it in the source
file after mingw stuff was included caused a warning about redefinition of
__USE_MINGW_ANSI_STDIO.
2014-04-28 19:37:37 +03:00
Yusuke Nakamura
c5a4e7b52c
encmain: Remove a warning on MinGW.
2014-04-26 23:56:50 +09:00
Ari Koivula
145816cfb5
Move printing of CLI stuff to stderr.
...
- Printing to stdout corrupts the stream when used with "-o -".
2014-04-26 12:56:39 +03:00
Laurent Fasnacht
73c574fb45
P-frame: first try...
2014-04-24 08:38:22 +02:00
Laurent Fasnacht
7bd6aa2e9c
encoder_control_input_init call moved to encoder_control_init
2014-04-24 08:38:13 +02:00
Laurent Fasnacht
9353f14792
Parameters for using tiles in command line arguments.
...
--tiles-width-split
--tiles-height-split
2014-04-24 08:38:11 +02:00
Laurent Fasnacht
5fea5875a5
Huge refactoring
...
Split some parts of encoder_control into encoder_state
(idea: encoder_control is immutable)
Goal is to allow multiple substreams in the future.
2014-04-22 10:39:12 +02:00
Laurent Fasnacht
83360918ba
Removed table generation from main code, moved it to tools.
2014-04-17 11:13:15 +02:00
Laurent Fasnacht
7a2b883059
Remove encoder_input width, height, height_in_lcu, and width_in_lcu
2014-04-17 11:13:12 +02:00
Laurent Fasnacht
d01e3ae67f
bitstream is a union, and is statically in encoder_control structure
2014-04-17 11:13:12 +02:00
Ari Koivula
51ba80513b
Centralize resource deallocation for encmain.
...
- CppCheck was complaining about unreleased resources for FILE*. They weren't
really because they get flushed and closed when program exits normally, but
let's close them anyway.
2014-04-17 11:58:03 +03:00
Laurent Fasnacht
9901c38dd5
scalinglist in independent file
2014-04-16 10:25:16 +02:00
Laurent Fasnacht
e135a88fb5
Remove encoder_control.cqmfile
2014-04-15 14:21:25 +02:00
Laurent Fasnacht
486768fc79
scalinglist privatization
2014-04-14 13:39:28 +02:00
Marko Viitanen
0e7a5057d1
Merge pull request #26 from lfasnacht/warnings_fix
...
Fix warnings and compile with -Werror
2014-04-14 11:30:37 +03:00
Laurent Fasnacht
89ef1161c4
Fix warnings
2014-04-14 09:37:39 +02:00
Laurent Fasnacht
418e6eae51
Changed bitstream handling to allow in-memory bitstream.
2014-04-14 08:13:00 +02:00
Ari Koivula
83d5a4753d
Move input resolution to the same line as internal resolution.
...
The \n must have been left there by accident.
2014-04-11 16:55:08 +03:00
Ari Koivula
0b5c357795
Move all output to stderr.
...
It has to be in stderr to allow piping bitstream from stdout.
2014-04-11 16:50:59 +03:00
Ari Koivula
115872b300
Add total running time to output.
2014-04-11 12:42:37 +03:00
Marko Viitanen
c38ec1aa10
Added commandline option for RDO (--rd)
2014-04-09 12:29:15 +03:00
Laurent Fasnacht
1e03cf8ac1
Add a function to free g_exp_table.
...
Even though g_exp_table has to be global (used in #define), it's better to avoid requiring other module to directly access it.
2014-04-04 14:26:39 +02:00
Ari Koivula
61ae195af7
Resolve warnings about assignments within conditions.
...
- Working towards issue #11 .
2014-04-04 13:02:06 +03:00
Ari Koivula
46d33d3945
Resolve unsigned/signed mismatch warnings.
...
- Working towards issue #11 .
2014-04-04 12:56:23 +03:00
Laurent Fasnacht
b371a8bb59
Use realloc correctly
...
Quote from MALLOC(3) manpage:
The realloc() function returns a pointer to the newly allocated memory, which is suitably aligned for any kind of
variable and may be different from ptr, or NULL if the request fails.
2014-04-04 06:37:35 +02:00
Ari Koivula
f380e7d4b0
Check for malloc failure.
2014-04-03 15:38:17 +03:00
Ari Koivula
313466fdff
Remove unused variables.
...
- Working towards issue #11 .
- Either removed or redefined variables to not cause a warning.
2014-04-03 15:37:59 +03:00
Marko Viitanen
a14fb14e33
Added new commandline parameter --no-transform-skip
2014-04-02 14:49:48 +03:00
Panu Sjövall
c8f629495d
Remove unnecessary buffer from bitstream.
...
- Writing encoded data to file is done in bitstream_put one byte at a time and nal_write only writes the packet headers
2014-03-25 11:46:56 +02:00
Ari Koivula
eacad83ff9
Fix encoder reconstruction output for non multiple of 8 sized input.
...
Output changed so that only pixels within the conformance window are output.
2014-03-19 13:24:01 +02:00
Ari Koivula
319174258b
Increment version number and update usage information.
2014-03-12 18:06:41 +02:00
Marko Viitanen
17b9c9d0b7
Unified all uses of --input-res to use 'x' as delimiter
...
Addresses issue #20
2014-03-12 15:20:57 +02:00
Marko Viitanen
d2d877933a
bugfix: only fclose recout if it was opened
2014-03-11 09:09:43 +02:00
Ari Koivula
1b2705a042
Add video dimensions to the filename of encoder reconstruction.
2014-03-10 18:10:50 +02:00
Ari Koivula
965d8c377a
Make encoder reconstruction obey --debug.
2014-03-10 18:10:49 +02:00
Ari Koivula
7e507fd615
Add --input-res CLI parameter.
...
- Also set default width and height to 0 because it makes no sense to assume
dimensions. It's kind of like defaulting to the most common altitude when
the altimeter is broken.
- Add config_validate to have a place for checks on overall cfg state.
2014-03-10 16:09:33 +02:00
Ari Koivula
a644848b36
Add --seek CLI parameter.
...
Related to issue #12 .
Motivation for adding this is that the syntax for frame accurate seeking in
ffmpeg is a little cumbersome. Also it's kind of a standard feature I guess.
2014-03-10 15:14:56 +02:00
Marko Viitanen
a935aa5d96
Untabified encmain.c and nal.c
2014-03-10 12:10:40 +02:00
Marko Viitanen
9a4b0d2cc7
Added newline after printing of real video frame size
2014-03-10 10:16:30 +02:00
Ari Koivula
1cf03cfb37
Add --no-rdoq parameter.
2014-03-05 17:02:21 +02:00
Ari Koivula
73f5c3b80e
Fix compiler warnings for VS2010 /W4 in config.c and encmain.c.
...
- Working towards issue #11 .
- Widened datatypes for cfg struct members that take values from atoi to full
ints so that bounds checking can be done after parsing without overflow.
2014-02-21 17:28:11 +02:00
Luca Barbato
47677af690
Drop remaining unused variables
2014-02-21 15:07:16 +01:00
Luca Barbato
934a4e3b88
whitespace: Drop trailing spaces
2014-02-21 15:03:35 +01:00
Ari Koivula
5760c79272
Fix crash with dimensions that are not multiples of 8.
...
The clean up of input parsing and encoder initialization code had caused the
real source input dimensions to be used for array initialization, instead of
the dimensions modified to be multiples of the smallest coding unit.
2014-02-21 12:48:33 +02:00
Marko Viitanen
bb1ae0da62
Limited maximum number of reference frames to 15
...
This now complies with the specification (when using only L0 reference list)
2014-02-20 11:09:09 +02:00
Marko Viitanen
db689227f4
Increased maximum ref frame count to 16 and set default to 3
2014-02-19 15:09:17 +02:00
Marko Viitanen
478552ea00
Added commandline parameter for reference frame number
...
Also updated README and usage with the new parameter
2014-02-18 17:45:54 +02:00
Marko Viitanen
a6e8373349
Fixed crash issue on windows when cqmfile was not specified
...
fclose(cqmfile) crashed on windows when cqmfile was NULL
2014-02-14 14:38:53 +02:00