Commit graph

51 commits

Author SHA1 Message Date
Arttu Ylä-Outinen e69088026e Write slice header before joining child streams.
The lengths of the leaf streams must be available when the slice header
is written. Writing the header before joining child streams removes the
need to copy leaf bitstreams instead of moving them.
2015-07-08 13:14:17 +03:00
Arttu Ylä-Outinen cecea44d37 Rename config_t to kvz_config. 2015-07-02 16:58:28 +03:00
Arttu Ylä-Outinen 25706af770 Add a function for moving bitstream data.
Replaces calls to bitstream_append with bitstream_move where possible.
2015-07-02 16:35:47 +03:00
Arttu Ylä-Outinen fe3b629905 Move poc from image_t to image_list_t. 2015-07-02 16:24:25 +03:00
Ari Koivula fc58748ae8 Output bitstream through API.
- Use the existing bitstream_t type to give access to the bitstream.
  We can extend it later to make it a linked list like I was planning
  to do with the payload type.
- The main encoder now also stores the bitstream in memory.
2015-07-02 16:10:51 +03:00
Arttu Ylä-Outinen 664de9ade0 Keep track of bits written in current gop.
Adds cur_gop_bits_coded into encoder_state_config_global_t. The count is
updated whenever a frame is written.
2015-05-19 10:42:23 +03:00
Arttu Ylä-Outinen 5b8cd76f01 Keep track of total number of bits coded.
Adds total_bits_coded into encoder_state_config_global_t. The count is
updated whenever a frame is written.
2015-05-15 13:57:50 +03:00
Arttu Ylä-Outinen 815a2bea55 Use bitstream_tell to get stream position. 2015-05-15 13:57:50 +03:00
Ari Koivula 9015aab996 Clean up IDR handling code.
- IDR was called RADL, probably because the NAL type is IDR_W_RADL.
- Move things around to make it clearer what is happening.
2015-04-30 20:46:07 +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
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 5d71fb3136 Fixed leaf aligning 2015-04-01 08:49:22 +03:00
Marko Viitanen 815e0b8897 Moved reference list printing to encoder_compute_stats() 2015-03-30 10:09:32 +03:00
Marko Viitanen 1dc53be8fc Fixed leaf aligning 2015-03-26 13:54:17 +02:00
Marko Viitanen 5071b5c990 Moved reference list sorting and parsing to encoder_state_new_frame()
* fixed a bug in reference verification and added an error state
2015-03-26 10:58:56 +02:00
Marko Viitanen c40ca49b6c When GOP is used, verify the references are available 2015-03-26 10:38:21 +02:00
Marko Viitanen fe581b881e Changed GOP structure to enable coding sequences not divisible by gop_len 2015-03-25 16:00:20 +02:00
Marko Viitanen c649c90f3a Changes to enable adaptation to any GOP len 2015-03-24 12:01:57 +02:00
Marko Viitanen 7dab3ea0f6 Replaced temporary reference lists with the ones in gop configurations 2015-03-20 10:25:40 +02:00
Marko Viitanen a4b5f46b46 Fixed reference list delta and num_ref_idx_lX_active values 2015-03-11 15:19:32 +02:00
Marko Viitanen 866c3bfdf1 Setting gop_len to 0 now works 2015-03-10 12:16:57 +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
Marko Viitanen ec02642cc8 Added more bits to POC counter and fixed num_reorder_pic and max_dec_pic_buffering values 2015-03-10 09:06:32 +02:00
Marko Viitanen 13c925b701 Testset of data for reference picture lists 2015-03-06 16:28:23 +02:00
Marko Viitanen 43b086caed Added missing slice header flag "mvd_l1_zero_flag" 2015-03-06 16:27:42 +02:00
Ari Koivula 2f79bfebf7 Rename parameter encoder_state to state in all functions.
- It's so widely used that there isn't really need to emphasize that
  it's the encoders state. Also, it isn't really the encoders state,
  but encoding jobs state.
2015-03-04 17:31:07 +02:00
Ari Koivula fe55961f84 Rename struct image to image_t. 2015-03-04 14:01:17 +02:00
Ari Koivula 5b12830756 Rename struct config to config_t. 2015-03-04 14:01:16 +02:00
Ari Koivula 8cd8240f7a Rename struct bitstream to bitstream_t. 2015-03-04 14:01:15 +02:00
Ari Koivula 7ca688b376 Rename struct videoframe to videoframe_t. 2015-03-04 14:01:15 +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
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
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 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 1b19afc706 Flush output buffer after every frame. 2015-01-22 12:29:06 +02:00
Ari Koivula 8ac66934c0 Clean up NAL header code.
- Use long start code for RADL NAL units if they are the first NAL in the
  access unit.
- Ffmpeg mpegts was complaining about start codes not being present.
  There wasn't anything wrong that I could find though, besides the
  missing intra long start code.
2015-01-20 17:34:59 +02:00
Ari Koivula afb9e8c3f4 Remove extra parameter sets. 2014-10-16 12:21:36 +03:00
Ari Koivula 79b86ce6e1 Add --tr-depth-intra command line option.
Conflicts:
	src/encoder.c
2014-09-04 13:42:24 +03:00
Marko Viitanen fe236de807 Fixed sps_max_dec_pic_buffering value to include current picture 2014-09-01 10:31:11 +03:00
Ari Koivula 931ec7301c Put slice delta QP to bitstream.
- Before slice delta QP was always 0. Now if global->QP is changed before
  contexts are set, the delta qp is put to the bitstream, allowing for rough
  frame level rate control.
2014-08-25 16:43:23 +03:00
Laurent Fasnacht 8502f3d850 Improve logging 2014-08-11 11:57:07 +02:00
Laurent Fasnacht abfbb7cad3 Fix duplicate type key in threadqueue.log 2014-07-07 11:36:50 +02:00
Laurent Fasnacht 9ab9defe67 Bitstream length per frame works again 2014-06-19 10:24:03 +02:00
Marko Viitanen bfa37b876b Conformance fix: set sps_max_dec_pic_buffering to correct value 2014-06-17 12:30:32 +03:00
Laurent Fasnacht fddcbabe28 bitstream writing is now a "normal" job in a thread 2014-06-16 10:51:32 +02:00
Laurent Fasnacht 14df6de0d0 Checkpoint on frame checksum 2014-06-12 11:47:00 +02:00
Laurent Fasnacht 22df7cf98b Use an assert instead of a dumb assignment 2014-06-12 11:47:00 +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
Ari Koivula 31b1bbc215 Address implicit declaration of warnings. 2014-06-04 18:00:50 +03:00