1. 27 May, 2015 1 commit
  2. 31 Jan, 2015 1 commit
    • hkuang's avatar
      Try again to merge branch 'frame-parallel' into master branch. · be6aeada
      hkuang authored
      In frame parallel decode, libvpx decoder decodes several frames on all
      cpus in parallel fashion. If not being flushed, it will only return frame
      when all the cpus are busy. If getting flushed, it will return all the
      frames in the decoder. Compare with current serial decode mode in which
      libvpx decoder is idle between decode calls, libvpx decoder is busy
      between decode calls.
      
      Current frame parallel decode will only speed up the decoding for frame
      parallel encoded videos. For non frame parallel encoded videos, frame
      parallel decode is slower than serial decode due to lack of loopfilter
      worker thread.
      
      There are still some known issues that need to be addressed. For example:
      decode frame parallel videos with segmentation enabled is not right sometimes.
      
      * frame-parallel:
        Add error handling for frame parallel decode and unit test for that.
        Fix a bug in frame parallel decode and add a unit test for that.
        Add two test vectors to test frame parallel decode.
        Add key frame seeking to webmdec and webm_video_source.
        Implement frame parallel decode for VP9.
        Increase the thread test range to cover 5, 6, 7, 8 threads.
        Fix a bug in adding frame parallel unit test.
        Add VP9 frame-parallel unit test.
        Manually pick "Make the api behavior conform to api spec." from master branch.
        Move vp9_dec_build_inter_predictors_* to decoder folder.
        Add segmentation map array for current and last frame segmentation.
        Include the right header for VP9 worker thread.
        Move vp9_thread.* to common.
        ctrl_get_reference does not need user_priv.
        Seperate the frame buffers from VP9 encoder/decoder structure.
        Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:"""
       Conflicts:
             test/codec_factory.h
             test/decode_test_driver.cc
             test/decode_test_driver.h
             test/invalid_file_test.cc
             test/test-data.sha1
             test/test.mk
             test/test_vectors.cc
             vp8/vp8_dx_iface.c
             vp9/common/vp9_alloccommon.c
             vp9/common/vp9_entropymode.c
             vp9/common/vp9_loopfilter_thread.c
             vp9/common/vp9_loopfilter_thread.h
             vp9/common/vp9_mvref_common.c
             vp9/common/vp9_onyxc_int.h
             vp9/common/vp9_reconinter.c
             vp9/decoder/vp9_decodeframe.c
             vp9/decoder/vp9_decodeframe.h
             vp9/decoder/vp9_decodemv.c
             vp9/decoder/vp9_decoder.c
             vp9/decoder/vp9_decoder.h
             vp9/encoder/vp9_encoder.c
             vp9/encoder/vp9_pickmode.c
             vp9/encoder/vp9_rdopt.c
             vp9/vp9_cx_iface.c
             vp9/vp9_dx_iface.c
      
      This reverts commit a18da976.
      
      Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02
      be6aeada
  3. 23 Jan, 2015 1 commit
  4. 14 Nov, 2014 1 commit
  5. 07 Nov, 2014 1 commit
  6. 21 Oct, 2014 1 commit
  7. 13 Oct, 2014 1 commit
    • Alex Converse's avatar
      Add a seg map preservation test vector. · 99a132f5
      Alex Converse authored
      Add a test vector to show the cases where segmentation map is preserved
      from frome to frame as outlined in the inquiry in issue 761.
      
      Change-Id: I630c6aba27d0d0b109cc7fd7c6fcd008222a0cf3
      99a132f5
  8. 03 Sep, 2014 1 commit
  9. 02 Sep, 2014 1 commit
  10. 28 Jul, 2014 1 commit
    • Jim Bankoski's avatar
      Fix reference frame size restrictions. · 899585eb
      Jim Bankoski authored
      The issue was introduced by commit g9f37d149 with adding explicit
      restrictions on reference-frame scale factors. The restriction
      is checked against aligned-by-8 frame dimensions, not against
      original ones. So, for example, frame of 35×35 actually can refer
      to frame of 70×70, but the new check won't allow this. It will
      compare 35 vs 72 (not 70), so 2x downscale limit will be exceeded.
      
      Change-Id: Ic663693034440f64ac8312cbff9e1e773a921060
      899585eb
  11. 15 Jul, 2014 1 commit
  12. 08 Jul, 2014 1 commit
  13. 01 Jul, 2014 1 commit
  14. 23 Jun, 2014 1 commit
    • Jim Bankoski's avatar
      error check vp9 superframe parsing · c3db2d8b
      Jim Bankoski authored
      This patch insures that the last byte of a chunk that contains a
      valid superframe marker byte,  actually has a proper superframe index.
      If not it returns an error.
      
      As part of doing that the file : vp90-2-15-fuzz-flicker.webm now fails
      to decode properly and moves to the invalid file test from the test
      vector suite.
      
      Change-Id: I5f1da7eb37282ec0c6394df5c73251a2df9c1744
      c3db2d8b
  15. 20 Jun, 2014 1 commit
  16. 18 Jun, 2014 1 commit
    • Alex Converse's avatar
      BITSTREAM: Handle transform size and motion vectors more logically for non-420. · 7557a65d
      Alex Converse authored
      This breaks the profile 1 bitstream.
      
      Don't force non420 uv transform size to 1/4 y size. In the 4:2:0 case the
      chroma corresponding to a luma block is 1/4 its size. In the 4:4:4 case
      chroma and luma planes are the same size. Disallowing larger transforms
      can result in a loss of compression efficiency and is inconsistent.
      
      For sub-8x8 blocks only average corresponding motion vectors.
      
      4:2:0 and profile 0 behavior remains unchanged.
      
      Change-Id: I560ae07183012c6734dd1860ea54ed6f62f3cae8
      7557a65d
  17. 13 Jun, 2014 1 commit
    • Jingning Han's avatar
      Fix out of boundary memory read in fuzz test on vpxdec · 1ba18717
      Jingning Han authored
      This commit fixes frame header decoding for superframe index, to
      prevent out of boundary memory read triggered by fuzz test
      vector. It resolves a chromium security violation issue
      crbug.com/376802.
      
      The issue was introduced in the change:
      
      Add VPXD_SET_DECRYPTOR support to the VP9 decoder.
      cl-id I88f86c8ff9af34e0b6531028b691921b54c2fc48
      
      where the buffer was read before validation check on index offset
      applied.
      
      A test vector is added accordingly.
      
      Change-Id: I41c988e776bbdd1033312a668e03a3dbcf44ca99
      1ba18717
  18. 09 May, 2014 1 commit
    • Yaowu Xu's avatar
      Add another test vector · fea5eab7
      Yaowu Xu authored
      The test vector has segment enabled with different quantizer used for
      different segments for bot the first frame(key) frame and the rest of
      non-key frames.
      
      Change-Id: I7e21122183050ee046219caba483c18cbc34afe7
      fea5eab7
  19. 07 May, 2014 1 commit
    • Yaowu Xu's avatar
      Added a test vector · f641d6bc
      Yaowu Xu authored
      The test vector is produced to have a single key frame, with segment
      map enabled and transmitted. Yet no segment feature is active.
      
      Change-Id: I365d62f00d05c07098b9a76fc8d3a991e427ec1a
      f641d6bc
  20. 09 Apr, 2014 1 commit
  21. 08 Apr, 2014 1 commit
    • Frank Galligan's avatar
      Fix decoder resolution change with tiles · 6ae58931
      Frank Galligan authored
      There was a bug with the decoder that if you started the decoder
      with more threads than the first frame had tile columns. Afterwards
      tried to decode a frame with more tile columns than the first frame,
      the decoder would hang. E.g. run vpxdec --threads=4. The first frame
      had two tile columns, then the next key frame had 4 tile columns, the
      decoder would hang. If you started with 4 tiles and switched to 2
      tiles the decoder would be fine. The issue is that the worker the thread
      loop is using is stale.
      
      I added a test vector "vp90-2-14-resize-848x480-1280x720.webm" that
      exhibited the bug.
      
      Change-Id: I7bdd47241a52ac0fe1c693a609bc779257e94229
      6ae58931
  22. 28 Mar, 2014 1 commit
    • Yaowu Xu's avatar
      [BITSTREAM]Fix the scaling calculation · 4f857bac
      Yaowu Xu authored
      For very large size video image, the scaling calculation may need use
      value beyond the range of int. This commit upgrade the value to 64bit
      to make sure the calculation do not wrap around INT_MAX.
      
      The change corrected the decoder behavior.
      
      The bug affects only very large resolution video because the scaling
      calculation was sufficient for image size smaller than 2^13.
      
      This resolves issue:
      https://code.google.com/p/webm/issues/detail?id=750
      
      Change-Id: I2d2ed303ca6482f31f819f3c07d6d3e98ef3adc5
      4f857bac
  23. 27 Mar, 2014 1 commit
  24. 25 Mar, 2014 1 commit
  25. 21 Feb, 2014 2 commits
  26. 20 Feb, 2014 1 commit
  27. 31 Jan, 2014 1 commit
    • Adrian Grange's avatar
      Disable update of last_show_frame for existing frame · 64e25974
      Adrian Grange authored
      When showing a previously decoded frame, i.e. when
      show_existing_frame=1, the update of the
      last_show_frame flag must be disabled.
      
      This is to ensure that the last_show_frame flag
      reflects the state of the flag for the immediately
      previously decoded frame rather then the value that
      was forced to ensure that a previously decoded frame
      would be displayed.
      
      This patch also adds a test vector to verify that the
      display_existing_frame flag works as expected. Code
      for generating the test vector can be found in this
      patch:
      https://gerrit.chromium.org/gerrit/#/c/68581/
      
      (Bug originally reported by Alexander Voronov
      <ru.xalba@gmail.com>).
      
      Change-Id: I731d288fba02088959f7fcc87707137fffc6acf5
      64e25974
  28. 18 Dec, 2013 1 commit
    • Yaowu Xu's avatar
      Added a test vector that exercises lpf deltas · 2424ba3d
      Yaowu Xu authored
      From frame 2, the lpf deltas are all cleared for for even frames, and
      a set of values are set and used for odd frames. The intention is to
      exercise decoding code around lpf delta/update decoding.
      
      Change-Id: Ic9ff1bc2c2a023f4805852f8573398f2ec2249d7
      2424ba3d
  29. 16 Dec, 2013 1 commit
    • Yaowu Xu's avatar
      Added a test vector · a3e919a4
      Yaowu Xu authored
      The added vector was encoded with aq mode on, with the intent to
      exercise the decode code around segment feature.
      
      Change-Id: Iedcb7261e87d3e11b25ecf031d3a69385271148e
      a3e919a4
  30. 12 Dec, 2013 1 commit
  31. 06 Dec, 2013 1 commit
    • James Zern's avatar
      add tile test vectors · 937c3b99
      James Zern authored
      3840x2160
      
      vp90-2-08-tile_1x8_frame_parallel.webm
      vp90-2-08-tile_1x8.webm
      
      vpxenc crowd_run_2160p50.y4m \
        --codec=vp9 -p 2 \
        --frame-parallel=${fpm} \
        --tile-columns=${tc} \
        --limit=10 \
        --auto-alt-ref=1 \
        --lag-in-frames=5 \
        --target-bitrate=2500
      
      Change-Id: I6dc19b4fca483d03ef9a897a843bf9037d095c8e
      937c3b99
  32. 04 Dec, 2013 2 commits
    • Jingning Han's avatar
      Add a test vector for loopfilter · ebb583d2
      Jingning Han authored
      The test vector exercises the loopfilter behavior at frame boundary.
      
      blue_sky_1080p25.y4m --good --cpu-used=2 --threads=0 --profile=0
      --lag-in-frames=25 --limit=300 --min-q=0 --max-q=63 --cq-level=20
      --end-usage=0 --auto-alt-ref=1 -p 2 --kf-max-dist=9999 --kf-min-dist=0
      --drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0
      --maxsection-pct=2000 --arnr-maxframes=7 --arnr-strength=5
      --arnr-type=3 --sharpness=0 --undershoot-pct=100 --target-bitrate=6000
      
      Change-Id: Ibd0807395d2fe87f24f81f990369678df3de7c23
      ebb583d2
    • Yaowu Xu's avatar
      Fix VP8 border replication for very small image · a0f77f6a
      Yaowu Xu authored
      Also added a test vector for this issue.
      
      Change-Id: I8a8654f9d33b27afd53c295f1ea44d198550d067
      a0f77f6a
  33. 26 Nov, 2013 1 commit
    • Yunqing Wang's avatar
      Add a noise test vector · f2341364
      Yunqing Wang authored
      Added the test vector provided by Attila, which caught the bug in
      Issue 661 "Decoder produces mismatched outputs with ssse3 enabled
      and disabled"
      
      vp90-hantro-stream-001.ivf
      size: 320x180; 20 frames
      
      Change-Id: Ic0d2b57ac7596ecb938dd55abc8c706fc2dd6d8f
      f2341364
  34. 12 Nov, 2013 1 commit
    • Jingning Han's avatar
      Add test vector for row/col tile decoding · 458951d8
      Jingning Han authored
      1920x1080
      
      vp90-2-08-tile-4x4.webm
      vp90-2-08-tile-4x4.webm.md5
      
      vpxenc blue_sky_1080p25 --frame-parallel=0 \
      --tile-columns=2 --tile-rows=2 \
      --lossless=0 --error-resilient=0 \
      --min-q=0 --max-q=30 --kf-min-dist=0 --kf-max-dist=9999 \
      --cpu-used=0 --codec=vp9 -p 2 --good --fps=25/1 --limit=5
      
      vp90-2-08-tile-4x1.webm
      vp90-2-08-tile-4x1.webm.md5
      
      vpxenc blue_sky_1080p25 --frame-parallel=0 \
      --tile-columns=0 --tile-rows=2 \
      --lossless=0 --error-resilient=0 \
      --min-q=0 --max-q=30 --kf-min-dist=0 --kf-max-dist=9999 \
      --cpu-used=0 --codec=vp9 -p 2 --good --fps=25/1 --limit=5
      
      Change-Id: I77d0ccf9b721ae5cfa72781fe0d3c534ea43b756
      458951d8
  35. 28 Oct, 2013 1 commit
    • James Zern's avatar
      add tile test vectors · ea9b2c03
      James Zern authored
      1920x1080
      
      vp90-2-08-tile_1x2_frame_parallel.webm
      vp90-2-08-tile_1x2.webm
      vp90-2-08-tile_1x4_frame_parallel.webm
      vp90-2-08-tile_1x4.webm
      
      vpxenc blue_sky_1080p25.y4m \
        --codec=vp9 -p 2 \
        --frame-parallel=${fpm} \
        --tile-columns=${tc} \
        --limit=10 \
        --auto-alt-ref=1 \
        --lag-in-frames=5 \
        --target-bitrate=2500
      
      Change-Id: Id9c94b722cc553a6865d443a94e8482c78b038bb
      ea9b2c03
  36. 14 Oct, 2013 1 commit
    • James Zern's avatar
      add a test vector with frame parallel mode enabled · 798cf80c
      James Zern authored
      vp90-2-07-frame_parallel.webm:
      vpxenc stefan_sif.y4m \
        --codec=vp9 -p 2 \
        --frame-parallel=1 \
        --limit=10 \
        --auto-alt-ref=1 \
        --lag-in-frames=5
      
      Change-Id: I7381a69aaaec238b309169a51b34cb6bf29a9c50
      798cf80c
  37. 03 Oct, 2013 1 commit
  38. 17 Sep, 2013 1 commit
    • Adrian Grange's avatar
      Modified resize unit test to output test vector · 88c8ff25
      Adrian Grange authored
      Modified the resize unit test so that it optionally
      writes the encoded bitstream to file. The macro
      WRITE_COMPRESSED_STREAM should be set to 1 to enable
      output of the test bitstream; it is set to 0 by default.
      
      Change-Id: I7d436b1942f935da97db6d84574a98d379f57fb1
      88c8ff25