1. 09 Nov, 2017 1 commit
    • Jerome Jiang's avatar
      vp9: Add nonref frame buffer test. · a68bbcff
      Jerome Jiang authored
      The new test will run a SVC bitstream which has non ref frames.
      It checks the number of buffer acquired and released to make sure all
      external frame buffers are released.
      
      Add a new test bitstream:
      vp90-2-22-svc_1280x720_1.webm
      which has 400 frames in total, and 1 spatial layer and 2 temporal layers.
      There is one non ref frame every other frame.
      
      Disabled for now. Will be enabled with the fix.
      
      BUG=b/68819248
      
      Change-Id: I0515336fd9809a9e1fceba90e4dce53dabaf53a5
      a68bbcff
  2. 27 Sep, 2017 1 commit
  3. 08 Jun, 2017 1 commit
    • James Zern's avatar
      vp8_decode_frame: fix oob read on truncated key frame · 45daecb4
      James Zern authored
      the check for error correction being disabled was overriding the data
      length checks. this avoids returning incorrect information (width /
      height) for the decoded frame which could result in inconsistent sizes
      returned in to an application causing it to read beyond the bounds of
      the frame allocation.
      
      BUG=webm:1443
      BUG=b/62458770
      
      Change-Id: I063459674e01b57c0990cb29372e0eb9a1fbf342
      45daecb4
  4. 21 Dec, 2016 1 commit
  5. 22 Nov, 2016 1 commit
    • James Zern's avatar
      vp9,read_inter_block_mode_info: quiet msan warning · cb22359d
      James Zern authored
      best_sub8x8[1] won't be used meaningfully when is_compound is false, but
      may trigger an msan warning as the value is copied around and later
      clamped.
      
      BUG=667044
      
      Change-Id: Icc24c3b72cdb550bebea44d4aaa4ff8bf3fbab56
      cb22359d
  6. 16 Nov, 2016 1 commit
  7. 05 Nov, 2016 1 commit
  8. 02 Nov, 2016 1 commit
    • James Zern's avatar
      vp9,tile_worker_hook: correctly set jmp target · 1961a92a
      James Zern authored
      vp9_init_macroblockd() resets the error_info to cm's global copy; this
      needs to be set to the thread-level target to avoid jumping to the
      incorrect stack, resulting in hang or crash.
      broken since:
      1f4a6c8a vp9/tile_worker_hook: add multiple tile decoding
      includes v1.5.0, v1.6.0
      
      BUG=629481
      
      Change-Id: Icbf1696b25ba8c479e845fbf227b3c3ca73542f5
      1961a92a
  9. 29 Sep, 2016 1 commit
  10. 23 Aug, 2016 1 commit
    • James Zern's avatar
      vp8: fix decoder crash with invalid leading keyframes · 0f42d1fa
      James Zern authored
      decoding the same invalid keyframe twice would result in a crash as the
      second time through the decoder would be assumed to have been
      initialized as there was no resolution change. in this case the
      resolution was itself invalid (0x6), but vp8_peek_si() was only failing
      in the case of 0x0.
      invalid-vp80-00-comprehensive-018.ivf.2kf_0x6.ivf tests this case by
      duplicating the first keyframe and additionally adds a valid one to
      ensure decoding can resume without error.
      
      BUG=b/30593765
      
      Change-Id: If0859035908b7870d67a7f3f646b5a080252eb6d
      0f42d1fa
  11. 19 Aug, 2016 1 commit
    • James Zern's avatar
      vp9_alloc_context_buffers: clear cm->mi* on failure · 8b4c3158
      James Zern authored
      this fixes a crash in vp9_dec_setup_mi() via
      vp9_init_context_buffers() should decoding continue and the decoder
      resyncs on a smaller frame
      
      BUG=b/30593752
      
      Change-Id: I9ce8d94abe89bcd058697e8bd8599690e61bd380
      8b4c3158
  12. 28 Jan, 2016 1 commit
    • Yaowu Xu's avatar
      Add a vp9 test vector · a643964a
      Yaowu Xu authored
      This test vector exercises various idct32x32 functions in decoder.
      
      Change-Id: Ic9453f50ef4723bdaace9bd80f32540d061ef2a1
      a643964a
  13. 29 Oct, 2015 1 commit
  14. 28 Oct, 2015 2 commits
  15. 25 Sep, 2015 1 commit
  16. 08 Sep, 2015 1 commit
  17. 05 Jun, 2015 1 commit
  18. 03 Jun, 2015 1 commit
  19. 26 Feb, 2015 1 commit
    • James Zern's avatar
      tests: add a shorter 720p test clip · 7839d038
      James Zern authored
      niklas_1280_720_30.y4m 60 frames @ 30fps
      only a small number of frames are being used; this reduces the test data
      download size in non-perf-test cases by >500M.
      retain niklas_1280_720_30.yuv for encode+decode perf tests
      
      Change-Id: I56b3433104acd462f952a9554280de5a3ec0b6d2
      7839d038
  20. 05 Feb, 2015 1 commit
    • James Zern's avatar
      vp9: fix segfault w/corrupt data post frame-parallel merge · 0261fb4c
      James Zern authored
      cm->frame_bufs[].idx values were made consistent in:
      61c5e94e Use -1 consistently as invalid buffer idx
      update the initialization in swap_frame_buffers() to match.
      additionally:
        - remove some shadowed variables in the former and marked them volatile
      
      Change-Id: Ie3f9636c405bd822112bb56bd22d28024ae98909
      0261fb4c
  21. 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
  22. 23 Jan, 2015 1 commit
  23. 08 Dec, 2014 1 commit
  24. 14 Nov, 2014 1 commit
  25. 07 Nov, 2014 1 commit
  26. 06 Nov, 2014 1 commit
    • Yunqing Wang's avatar
      Modify the frame context memory deallocation · 12284334
      Yunqing Wang authored
      This patch was to fix the vpxdec fuzzing3 test failure. When an
      error occurs, setjmp() is invoked, which calls the decoder
      removing routine. In multiple thread situation, other threads
      could try to access the frame context memory that is already
      deallocated, thus causing a segfault.
      
      An invalid unit test was added for this issue.
      
      Change-Id: Ida7442154f3d89759483f0f4fe0324041fffb952
      12284334
  27. 21 Oct, 2014 1 commit
  28. 16 Oct, 2014 1 commit
    • Deb Mukherjee's avatar
      Adds a set of end-to-end encode tests · 50c59cda
      Deb Mukherjee authored
      Covers all profiles and input formats. The tests check if the
      encode succeeds and if the psnr is sane.
      
      Change-Id: I195a5330debf92562846121819b6eaf961e27c01
      50c59cda
  29. 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
  30. 10 Sep, 2014 1 commit
  31. 08 Sep, 2014 1 commit
  32. 05 Sep, 2014 2 commits
    • James Zern's avatar
      vp9: correct context buffer resize check · bb4950df
      James Zern authored
      allocations within vp9_alloc_context_buffers() rely on mi_rows/mi_cols
      individually, use those to determine whether to realloc rather than
      stride and stride * rows. this fixes a crash with some fuzzed files for
      invalid accesses into last_frame_seg_map and above_context.
      
      Change-Id: I7b9f40dcf170d443890f3bd2acd285507943c7d4
      bb4950df
    • James Zern's avatar
      vp9: fail decode if block/frame refs are corrupt · 440f5097
      James Zern authored
      proceeding using a corrupt (incompletely decoded) frame reference may
      lead to incorrect assumptions about allocation sizes leading to a crash.
      
      Change-Id: I76e74f2e1be127c2e2c7e1174bb3307497dfd23d
      440f5097
  33. 03 Sep, 2014 1 commit
  34. 02 Sep, 2014 1 commit
  35. 29 Aug, 2014 1 commit
    • James Zern's avatar
      vp9: fix m/t loop filter invalid free · fec40f92
      James Zern authored
      store the number of allocated rows in VP9LfSync, the calculated values
      can not be relied on when dealing with corrupt material.
      
      Change-Id: I13b8bcec9738c299a71df726772ab7ac05511e5b
      fec40f92
  36. 27 Aug, 2014 2 commits
    • James Zern's avatar
      vp9: fix crash in inline loopfilter w/corrupt file · cde790c3
      James Zern authored
      attempting to decode a frame after the previous frame failed has the
      potential of interrupting an earlier loop filter task
      
      Change-Id: I6f2b1ddcdf5b89c3e2ee8caf5289dada2a087d66
      cde790c3
    • James Zern's avatar
      vp9: fix crash in mt loopfilter w/corrupt file · 4f27202d
      James Zern authored
      if the first frame was corrupt and loop filter not called, the next call
      would assume the necessary allocations had been done and segfault when
      accessing a NULL pointer
      
      Change-Id: Ib6ef505e5c594e6f0fe65ab0700172bcf06b92a6
      4f27202d
  37. 30 Jul, 2014 1 commit