1. 11 Jun, 2012 2 commits
    • John Koleszar's avatar
      Fix pedantic compiler warnings · 0164a1cc
      John Koleszar authored
      Allows building the library with the gcc -pedantic option, for improved
      portabilty. In particular, this commit removes usage of C99/C++ style
      single-line comments and dynamic struct initializers. This is a
      continuation of the work done in commit 97b766a4, which removed most
      of these warnings for decode only builds.
      
      Change-Id: Id453d9c1d9f44cc0381b10c3869fabb0184d5966
      0164a1cc
    • John Koleszar's avatar
      Fix bad merge · 52ec78be
      John Koleszar authored
      Change-Id: I45849dde0ee9b7e87fa32adb65ade8486bb66556
      52ec78be
  2. 07 Jun, 2012 1 commit
  3. 06 Jun, 2012 1 commit
    • Marco Paniconi's avatar
      Reset Q for key frame when spatial resizing occurs. · baedcedc
      Marco Paniconi authored
      The logic for spatial resizing is done after the Q is selected for the
      frame. This causes a problem that the Q we select for the (resized)
      key frame may be based on a different resolution than the frame we
      will encode.
      
      This fix is to ensure that, when resize is on, the selected Q is still
      based on the resolution of the frame to be encoded.
      
      Change-Id: Ia49a9eac5f64e48d1c00dfc7ed4ce26fe84d3fa1
      baedcedc
  4. 04 Jun, 2012 3 commits
    • Johann's avatar
      Remove extra enum · 965d8686
      Johann authored
      VP8_REFFRAME is the same as vpx_ref_frame_type
      
      Change-Id: I63c2ddfb39f6ec87d1e5eb6a8852846464552b1b
      965d8686
    • Johann's avatar
      Remove redundant assignment · 2b10528a
      Johann authored
      clang complains about self-assignment
      
      Change-Id: Iead70eed0a960e84a4b167f67f05b05e2965b3b6
      2b10528a
    • Johann's avatar
      Explicitly discard fwrite/fread return values · c8a88a76
      Johann authored
      Using if(); triggers an empty body warning with clang
      
      Change-Id: I0fa2ee676400a974b40f8eaafca9ae668107eebb
      c8a88a76
  5. 31 May, 2012 4 commits
  6. 30 May, 2012 5 commits
    • Stefan Holmer's avatar
      Added another denoising threshold for finding DC shifts. · dd6134b4
      Stefan Holmer authored
      Compares the sum of differences between the input block and the averaged
      block. If they differ too much the block will not be filtered. Negligible
      perfomance hit.
      
      Change-Id: Ib1c31a265efd4d100b3abc4a1ea6675038c8ddde
      dd6134b4
    • Alpha Lam's avatar
      Make libvpx Chromium build friendly · fc2fc899
      Alpha Lam authored
      Add PRIVATE macro for adding private_extern directive for yasm
      to hide global symbols. This is only enabled if -DCHROMIUM is used
      with YASM.
      
      Also fixed a small problem with	rtcd_defs.sh to guard TEMPORAL_DENOISING.
      
      Change-Id: I9027fce3ebddcf20078293e4b86b396f21da7857
      fc2fc899
    • Jim Bankoski's avatar
      fix denoiser for temporal patterns and rd · f78e5a04
      Jim Bankoski authored
      This extends the denoiser to work for temporally scalable
      coding.
      
      I believe this also fixes a very rare but really bad bug in the original
      implementation.
      
      Change-Id: I8b3593a8c54b86eb76f785af1970935f7d56262a
      f78e5a04
    • Christian Duvivier's avatar
      Inline Intrinsic optimized Denoiser · 5715c39c
      Christian Duvivier authored
      Faster version of denoiser, cut cost by 1.7x for C path, by 3.3x for
      SSE2 path.
      
      Change-Id: I154786308550763bc0e3497e5fa5bfd1ce651beb
      5715c39c
    • Stefan Holmer's avatar
      Added another denoising threshold for finding DC shifts. · d8500344
      Stefan Holmer authored
      Compares the sum of differences between the input block and the averaged
      block. If they differ too much the block will not be filtered. Negligible
      perfomance hit.
      
      Change-Id: Ib1c31a265efd4d100b3abc4a1ea6675038c8ddde
      d8500344
  7. 24 May, 2012 2 commits
    • Jim Bankoski's avatar
      fix denoiser for temporal patterns and rd · 57faddb7
      Jim Bankoski authored
      This extends the denoiser to work for temporally scalable
      coding.
      
      I believe this also fixes a very rare but really bad bug in the original
      implementation.
      
      
      Change-Id: I8b3593a8c54b86eb76f785af1970935f7d56262a
      57faddb7
    • Alpha Lam's avatar
      Make libvpx Chromium build friendly · 0f7e4665
      Alpha Lam authored
      Add PRIVATE macro for adding private_extern directive for yasm
      to hide global symbols. This is only enabled if -DCHROMIUM is used
      with YASM.
      
      Also fixed a small problem with	rtcd_defs.sh to guard TEMPORAL_DENOISING.
      
      Change-Id: I9027fce3ebddcf20078293e4b86b396f21da7857
      0f7e4665
  8. 23 May, 2012 5 commits
    • Attila Nagy's avatar
      Fix another multithreaded encoder loopfilter race condition · 48908530
      Attila Nagy authored
      After a key frame encoding, the frame type could change while
      filtering is still going on. Pass the frame type as parameter to the
      loopfilter function and don't read it from common storage.
      
      vp8cx_set_alt_lf_level has to be done before packing the stream.
      Currently alt_lf_level is not used so there hasn't been any visible
      problem here.
      
      Change-Id: Ia114162158cd833c2b16e3b89303cc9c91f19165
      48908530
    • John Koleszar's avatar
      Prevent external frame size changes in two-pass · 410ae576
      John Koleszar authored
      The two-pass code does not support the case where the application
      changes the frame size dynamically. Add this case to the validation
      checks in the vpx_codec_enc_config_set() path.
      
      Change-Id: Idadc42c7c3bd566ecdbce30d8dd720add097f992
      410ae576
    • John Koleszar's avatar
      Fix memory leak in vpx_codec_enc_config_set() · cf097015
      John Koleszar authored
      Resolution changes in calls to vpx_codec_enc_config_set() would cause
      a memory leak due to failing to release the lookahead and alt ref
      buffers.
      
      Change-Id: I48392ea25e71fe2760d60cfde3fb3874598cc85f
      cf097015
    • Yunqing Wang's avatar
      multi-res: modify memory allocation code · ad479a9b
      Yunqing Wang authored
      Reverted part of change in memory alllocation code, which ensures
      that the function returns 0 and encoder works correctly when
      CONFIG_MULTI_RES_ENCODING isn't turned on.
      
      Change-Id: Id5d5e7f2c8bd9e961a6dca79d257e8185f0d592a
      ad479a9b
    • Attila Nagy's avatar
      Fix another multithreaded encoder loopfilter race condition · ea392d47
      Attila Nagy authored
      After a key frame encoding, the frame type could change while
      filtering is still going on. Pass the frame type as parameter to the
      loopfilter function and don't read it from common storage.
      
      vp8cx_set_alt_lf_level has to be done before packing the stream.
      Currently alt_lf_level is not used so there hasn't been any visible
      problem here.
      
      Change-Id: Ia114162158cd833c2b16e3b89303cc9c91f19165
      ea392d47
  9. 22 May, 2012 2 commits
    • John Koleszar's avatar
      Move all tests to test/ directory · 2d225689
      John Koleszar authored
      Consolodate the unit tests under vp8/ to the test/ directory
      
      Change-Id: I6d6a0fb60f5e3874a4d6710e9e121dd3e81a93db
      2d225689
    • John Koleszar's avatar
      Build unit tests monolithically · e82d261d
      John Koleszar authored
      Rework unit tests  to have a single executable rather than many, which
      should avoid pollution of the visual studio project namespace, improve
      build times, and make it easier to use the gtest test sharding system
      when we get these going on the continuous build cluster.
      
      Change-Id: If4c3e5d4b3515522869de6c89455c2a64697cca6
      e82d261d
  10. 21 May, 2012 1 commit
  11. 16 May, 2012 1 commit
    • Yunqing Wang's avatar
      multi-res: force Key frame sychronization · 65dd157c
      Yunqing Wang authored
      In multi-resolution encoding, frame_type decision for each frame
      is made by the lowest-resolution encoder. For all other higher-
      resolution encoders, kf_mode is always set to VPX_KF_DISABLED,
      and they are forced to use the same frame_type picked by the
      lowest-resolution encoder.
      
      Change-Id: Ic4d52ec65bbc012ca9c2d236210e28a295591eaf
      65dd157c
  12. 11 May, 2012 1 commit
  13. 08 May, 2012 2 commits
    • John Koleszar's avatar
      Use consistent range for VP8E_SET_NOISE_SENSITIVITY · c8f4c187
      John Koleszar authored
      Accept the same range of inputs for the VP8E_SET_NOISE_SENSITIVITY
      control, regardless of whether temporal denoising is enabled or not.
      This is important for maintaining compatibility with existing
      applications.
      
      Change-Id: I94cd4bb09bf7c803516701a394cf1a63bfec0097
      c8f4c187
    • Jim Bankoski's avatar
      vp8e - boolcoder unit test · 9851486b
      Jim Bankoski authored
      Adds a unit test to the boolcoder that tests encoding 
      and decoding thousands of different bits, with different 
      probabilities in different patterns.   
      
      Code borrowed from the webp project - and its committers.
      
      Change-Id: Icabbb884d57e666496490c961dd29b246144ab3e
      9851486b
  14. 04 May, 2012 6 commits
    • John Koleszar's avatar
      fix vp8_ namespace issues · 14d827f4
      John Koleszar authored
      Make functions only referenced from one translation unit static. Other
      symbols with extern linkage get a vp8/vpx prefix.
      
      Change-Id: I928c7e0d0d36e89ac78cb54ff8bb28748727834f
      14d827f4
    • John Koleszar's avatar
      Formalize encodeframe.c forward delclarations · 22f56b93
      John Koleszar authored
      Change If4321cc5 fixed a bug caused by forward declarations not being
      kept in sync across C files, resulting in a function call with the
      wrong arguments. The commit moves the affected function declarations
      into a header file, along with the other symbols from encodeframe.c
      that were being sloppily shared.
      
      Change-Id: I76a7b4c66d4fe175f9cbef7e52148655e4bb9ba1
      22f56b93
    • Attila Nagy's avatar
      Fix multi-resolution threaded encoding · 3e32105d
      Attila Nagy authored
      mb_row and mb_col was not passed to vp8cx_encode_inter_macroblock in
      threaded encoding.
      
      Change-Id: If4321cc59bf91e991aa31e772f882ed5f2bbb201
      3e32105d
    • John Koleszar's avatar
      remove deprecated pre-v0.9.0 API · 2bf8fb58
      John Koleszar authored
      Remove a bunch of compatibility code dating back to before the initial
      libvpx release.
      
      Change-Id: Ie50b81e7d665955bec3d692cd6521c9583e85ca3
      2bf8fb58
    • Attila Nagy's avatar
      Make global data const · f039a85f
      Attila Nagy authored
      Removes all runtime initialization of global data. This commit is a
      squashed version of the following series cherry-picked from master.
      This is necessary because of a change that was merged to the tester
      that depends on the scaler being moved to the RTCD framework, which
      is a worthwhile thing to include in Eider anyway.
      
        - a91b42f0 Makes all global data in entropy.c const
        - b35a0db0 Makes all global data in tokenize.c const
        - 441cac8e Makes all mode token tables const
        - 5948a021 Ports vpx_xcaler to new RTCD method
        - 317d4244 Makes all mode token tables const part 2
      
      Change-Id: Ifeaea24df2b731e7c509fa6c6ef6891a374afc26
      f039a85f
    • Attila Nagy's avatar
      Fix multi-resolution threaded encoding · 357800e7
      Attila Nagy authored
      mb_row and mb_col was not passed to vp8cx_encode_inter_macroblock in
      threaded encoding.
      
      Change-Id: If4321cc59bf91e991aa31e772f882ed5f2bbb201
      357800e7
  15. 03 May, 2012 1 commit
    • John Koleszar's avatar
      multi-res: restore v1.0.0 API · 25a36d6b
      John Koleszar authored
      Move the notion of 0 bitrate implying skip deeper into the codec,
      rather than doing it at the multi-encoder API level. This preserves
      v1.0.0 ABI compatibility, rather than forcing a bump to v2.0.0 over a
      minor change. Also, this allows the case where the application can
      selectively enable and disable the larger resolution(s) without having
      to reinitialize the codec instace (for instance, if no target is
      receiving the full resolution stream).
      
      It's not clear how deep to push this check. It may be valuable to
      allow the framerate adaptation code to run, for example. Currently put
      the check as early as possible for simplicity, should reevaluate this
      as this feature gains real use.
      
      Change-Id: I371709b8c6b52185a1c71a166a131ecc244582f0
      25a36d6b
  16. 02 May, 2012 3 commits
    • John Koleszar's avatar
      Add VPX_TS_ prefix to MAX_LAYERS, MAX_PERIODICITY · d46ddd08
      John Koleszar authored
      Preserved the prior names for compatibility, will remove in the future.
      
      Change-Id: I8773f959ebce72f60168a2972f7a8ffe6642b9b2
      d46ddd08
    • Timothy B. Terriberry's avatar
      Fix TEXTRELs in the ARM asm. · e50c8427
      Timothy B. Terriberry authored
      Besides imposing a performance penalty at startup in most
       configurations, these relocations break the dynamic linker for
       native Fennec, since it does not support them at all.
      
      Change-Id: Id5dc768609354ebb4379966eb61a7313e6fd18de
      e50c8427
    • Timothy B. Terriberry's avatar
      Fix trailing commas in enums. · 22ae1403
      Timothy B. Terriberry authored
      These are warnings in most builds, but show up as compile errors on
       some platforms when these headers are included from C++ code.
      
      Change-Id: I6c523b4dbbc699075fe73830442b51922e5a61d5
      22ae1403