1. 10 Feb, 2014 1 commit
    • Frank Galligan's avatar
      Add get release decoder frame buffer functions. · e8e15279
      Frank Galligan authored
      This CL changes libvpx to call a function when a frame buffer
      is needed for decode. Libvpx will call a release callback when
      no other frames reference the frame buffer. This CL adds a
      default implementation of the frame buffer callbacks. Currently
      only VP9 is supported. A future CL will add support for
      applications to supply their own frame buffer callbacks.
      
      Change-Id: I1405a320118f1cdd95f80c670d52b085a62cb10d
      e8e15279
  2. 24 Jan, 2014 1 commit
    • Frank Galligan's avatar
      Revert external frame buffer code. · b1c72b63
      Frank Galligan authored
      A future CL will add external frame buffers
      differently.
      
      Squash commit of four revert commits:
      Revert "Increase required number of external frame buffers"
      
      This reverts commit 9e41d569.
      
      Revert "Add external constants."
      
      This reverts commit bbf53047.
      
      Revert "Add frame buffer lru cache."
      
      This reverts commit fbada948.
      
      Conflicts:
      	vpxdec.c
      
      Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005
      
      Revert "Add support to pass in external frame buffers."
      
      This reverts commit 10f89169.
      
      Conflicts:
      	test/external_frame_buffer_test.cc
      	vp9/common/vp9_alloccommon.c
      	vp9/common/vp9_reconinter.c
      	vp9/decoder/vp9_decodeframe.c
      	vp9/encoder/vp9_onyx_if.c
      	vp9/vp9_dx_iface.c
      	vpx/vpx_decoder.h
      	vpx/vpx_external_frame_buffer.h
      	vpx_scale/generic/yv12config.c
      	vpxdec.c
      
      Change-Id: I7434cf590f1c852b38569980e4247fad0d939c2e
      b1c72b63
  3. 10 Jan, 2014 1 commit
  4. 27 Dec, 2013 1 commit
  5. 18 Dec, 2013 1 commit
  6. 16 Dec, 2013 2 commits
  7. 22 Nov, 2013 1 commit
    • Adrian Grange's avatar
      Fix decoder to handle display size correctly · 2117fe05
      Adrian Grange authored
      The decoder ignored the display width & height
      specified in the frame header.
      
      This patch adds a control, VP9D_GET_DISPLAY_SIZE, to
      allow the application to obtain the display width and
      height from the frame header.
      
      vpxdec has been modified to scale the output frame to
      this size.
      
      Should the request for the display size fail vpxdec will
      use the native width and height of the raw decoded
      frame instead.
      
      Change-Id: I25db04407426dac730263720c75a7dd6400af68a
      2117fe05
  8. 24 Oct, 2013 1 commit
  9. 15 Oct, 2013 1 commit
    • Yaowu Xu's avatar
      Prevent access to invalid pointer · ff1083c1
      Yaowu Xu authored
      The commit added check to make sure no invalid memory access even when
      the decoder instance is never initialized.
      
      Change-Id: I4da343d0b3c78c27777ac7f5ce7688562c69f0c5
      ff1083c1
  10. 30 Sep, 2013 1 commit
  11. 04 Sep, 2013 1 commit
    • Jim Bankoski's avatar
      make vp9 postproc a config option · 79401542
      Jim Bankoski authored
      Vp9 postproc is disabled for now as its not been shown to help and
      may be merged with vp8.
      
      Change-Id: I25620d6cd34c6e10331b18c7b5ef7482e39c6057
      79401542
  12. 22 Aug, 2013 1 commit
  13. 15 Aug, 2013 1 commit
  14. 12 Jul, 2013 3 commits
  15. 11 Jul, 2013 1 commit
  16. 12 Jun, 2013 1 commit
    • Scott LaVarnway's avatar
      Quick fix to stop vpxdec infinite loop · 9dead02b
      Scott LaVarnway authored
      vpxdec stays in a loop when decoding vp9.  This patch is a
      quick fix to stop the loop when all data has been decoded.
      Eventually we should move the vp9_get_raw_frame() call into
      vp8_get_frame().
      
      Change-Id: I3f97b6b4e1fe9ba69f746a29fc54c3304956f661
      9dead02b
  17. 07 Jun, 2013 1 commit
  18. 29 May, 2013 1 commit
    • Dmitry Kovalev's avatar
      Compressed/uncompressed frame header changes. · 18c83b37
      Dmitry Kovalev authored
      Adding API to read/write uncompressed frame header bits (it is not final
      yet). Separate functions to read/write uncompressed header. Moving
      clr_type, error_resilient_mode, refresh_frame_context,
      frame_parallel_decoding_mode, frame_context_idx from compressed partition
      to uncompressed frame header.
      
      Change-Id: Id3ed8a387980c652ae147549412f4ec24a0a5bd0
      18c83b37
  19. 28 May, 2013 1 commit
  20. 21 May, 2013 1 commit
    • Dmitry Kovalev's avatar
      Adding API to read/write uncompressed frame header bits. · df037b61
      Dmitry Kovalev authored
      The API is not final yet and can be changed. Actual layout of
      uncompressed frame part will be finalized later. Right now moving
      clr_type, error_resilient_mode, refresh_frame_context,
      frame_parallel_decoding_mode from first compressed partition to
      uncompressed frame part.
      
      Change-Id: I3afc5d4ea92c5a114f4c3d88f96858cccc15b76e
      df037b61
  21. 20 May, 2013 1 commit
    • Jingning Han's avatar
      Give VP9 a different sync code from VP8 · 2c93a8ed
      Jingning Han authored
      The new code is 0x49, 0x83, 0x42
      
      There is nothing particularly special about this code bitstream wise.
      Its derivation is the word "sync" coded using 4x6bit alphabetic indices.
      
      Change-Id: Ie2430a854af32ddc5a5c25a6c1c90cf6497ba647
      2c93a8ed
  22. 15 May, 2013 1 commit
  23. 29 Apr, 2013 1 commit
    • Johann's avatar
      Match unsigned types · d82eb9d1
      Johann authored
      Fixes build warning in MSVC:
      vp9\vp9_dx_iface.c(420) : warning C4018: '<' : signed/unsigned mismatch
      vp9\vp9_dx_iface.c(423) : warning C4018: '<' : signed/unsigned mismatch
      
      Change-Id: Ia238071aee94b2f882c1e74c380adc3df506dfb6
      d82eb9d1
  24. 23 Apr, 2013 1 commit
    • Johann's avatar
      Improve sign consistency. · ac980b71
      Johann authored
      Fix warning on windows: signed/unsigned mismatch on lines 415, 454
      
      Comparison was between size_t data_sz >= int index_sz on 415 and
      unsigned int data_sz >= int index_sz on 454. Both might be changed to
      size_t but that would be tracing and replacing all comparisons is
      outside the scope of this change.
      
      In the rest of these two functions ensure unsigned values are used
      consistently.
      
      Change-Id: I922b399ceca612a92f44b9d1d331c1c6bae9d768
      ac980b71
  25. 02 Apr, 2013 1 commit
  26. 27 Mar, 2013 1 commit
  27. 14 Mar, 2013 2 commits
    • John Koleszar's avatar
      Fix pulsing issue with scaling · 9b7be888
      John Koleszar authored
      Updates the YV12_BUFFER_CONFIG structure to be crop-aware. The
      exiting width/height parameters are left unchanged, storing the
      width and height algined to a 16 byte boundary. The cropped
      dimensions are added as new fields.
      
      This fixes a nasty visual pulse when switching between scaled and
      unscaled frame dimensions due to a mismatch between the scaling
      ratio and the 16-byte aligned sizes.
      
      Change-Id: Id4a3f6aea6b9b9ae38bdfa1b87b7eb2cfcdd57b6
      9b7be888
    • John Koleszar's avatar
      Add VP9_GET_REFERENCE control · b3c350a1
      John Koleszar authored
      This is like VP8_COPY_REFERENCE, but returns a pointer to the reference
      frame rather than a copy of it. This is useful when the application
      doesn't know what the size of the reference is, as is the case when
      scaling is in effect.
      
      Change-Id: I63667109f65510364d0e397ebe56217140772085
      b3c350a1
  28. 13 Mar, 2013 1 commit
    • John Koleszar's avatar
      fix superframe index marker masks · bd9cd9a1
      John Koleszar authored
      The superframe index marker byte carries data in the lower 5 bits. Only the
      upper 3 should be used as part of the mask to detect it. By masking with
      0xf0, the previous code was incorrect for frames over 65k bytes.
      
      Change-Id: I6248889f5af227457f359a56b2348ef6db87a3b4
      bd9cd9a1
  29. 05 Mar, 2013 1 commit
    • John Koleszar's avatar
      Add 'superframe' index · 522d4bf8
      John Koleszar authored
      A 'superframe' is a group of frames that share the same PTS, but have a
      defined decoding order. This commit adds the ability to append an index
      to such a group of frames, allowing for random access to the constituent
      frames. This could be useful for frame-level parallelism or partial
      decoding in a multilayer scenario.
      
      Decoding the stream serially without such an index should work as a
      fallback, and VP9/TestSuperframeIndexIsOptional verifies that.
      
      Change-Id: Idff83b7560e1a7077d8fb067bfbc45b567e78b1c
      522d4bf8
  30. 04 Mar, 2013 1 commit
    • Jingning Han's avatar
      Support 16K sequence coding · 5957b2b5
      Jingning Han authored
      Fixed a couple of variable/function definitions, as well as header
      handling to support 16K sequence coding at high bit-rates.
      
      The width and height are each specified by two bytes in the header.
      Use an extra byte to explicitly indicate the scaling factors in
      both directions, each ranging from 0 to 15.
      
      Tested coding up to 16400x16400 dimension.
      
      Change-Id: Ibc2225c6036620270f2c0cf5172d1760aaec10ec
      5957b2b5
  31. 05 Feb, 2013 1 commit
    • Ronald S. Bultje's avatar
      [WIP] Add column-based tiling. · 1407bdc2
      Ronald S. Bultje authored
      This patch adds column-based tiling. The idea is to make each tile
      independently decodable (after reading the common frame header) and
      also independendly encodable (minus within-frame cost adjustments in
      the RD loop) to speed-up hardware & software en/decoders if they used
      multi-threading. Column-based tiling has the added advantage (over
      other tiling methods) that it minimizes realtime use-case latency,
      since all threads can start encoding data as soon as the first SB-row
      worth of data is available to the encoder.
      
      There is some test code that does random tile ordering in the decoder,
      to confirm that each tile is indeed independently decodable from other
      tiles in the same frame. At tile edges, all contexts assume default
      values (i.e. 0, 0 motion vector, no coefficients, DC intra4x4 mode),
      and motion vector search and ordering do not cross tiles in the same
      frame.
      t log
      
      Tile independence is not maintained between frames ATM, i.e. tile 0 of
      frame 1 is free to use motion vectors that point into any tile of frame
      0. We support 1 (i.e. no tiling), 2 or 4 column-tiles.
      
      The loopfilter crosses tile boundaries. I discussed this briefly with Aki
      and he says that's OK. An in-loop loopfilter would need to do some sync
      between tile threads, but that shouldn't be a big issue.
      
      Resuls: with tiling disabled, we go up slightly because of improved edge
      use in the intra4x4 prediction. With 2 tiles, we lose about ~1% on derf,
      ~0.35% on HD and ~0.55% on STD/HD. With 4 tiles, we lose another ~1.5%
      on derf ~0.77% on HD and ~0.85% on STD/HD. Most of this loss is
      concentrated in the low-bitrate end of clips, and most of it is because
      of the loss of edges at tile boundaries and the resulting loss of intra
      predictors.
      
      TODO:
      - more tiles (perhaps allow row-based tiling also, and max. 8 tiles)?
      - maybe optionally (for EC purposes), motion vectors themselves
        should not cross tile edges, or we should emulate such borders as
        if they were off-frame, to limit error propagation to within one
        tile only. This doesn't have to be the default behaviour but could
        be an optional bitstream flag.
      
      Change-Id: I5951c3a0742a767b20bc9fb5af685d9892c2c96f
      1407bdc2
  32. 24 Jan, 2013 1 commit
    • Deb Mukherjee's avatar
      Adds an error-resilient mode with test · 01cafaab
      Deb Mukherjee authored
      Adds an error-resilient mode where frames can be continued
      to be decoded even when there are errors (due to network losses)
      on a prior frame. Specifically, backward updates are turned off
      and probabilities of various symbols are reset to defaults at
      the beginning of each frame. Further, the last frame's mvs are
      not used for the mv reference list, and the sorting of the
      initial list based on search on previous frames is turned off
      as well.
      
      Also adds a test where an arbitrary set of frames are skipped
      from decoding to simulate errors. The test verifies (1) that if
      the error frames are droppable - i.e. frame buffer updates have
      been turned off - there are no mismatch errors for the remaining
      frames after the error frames; and (2) if the error-frames are non
      droppable, there are not only no decoding errors but the mismatch
      PSNR between the decoder's version of the post-error frames and the
      encoder's version is at least 20 dB.
      
      Change-Id: Ie6e2bcd436b1e8643270356d3a930e8989ff52a5
      01cafaab
  33. 16 Jan, 2013 1 commit
    • John Koleszar's avatar
      Start to anonymize reference frames · da832a80
      John Koleszar authored
      Remove lst_fb_idx, gld_fb_idx, alt_fb_idx, refresh_last_frame,
      refresh_golden_frame, refresh_alt_ref_frame from common. Gold/Alt are
      encode side conventions. From the decoder's perspective, we want to be
      dealing with numbered references.
      
      Updates to active_ref 2 signal mode context switches, vestigial from
      refresh_alt_ref_frame. This needs some clean up to make sense with
      increased numbers of reference frames, as well as reimplementing the
      swapping of alt/golden which was previously done using the
      buffer-to-buffer copy mechanism removed in an earlier commit.
      
      Change-Id: I7334445158b7666f9295d2a2dd22aa03f4485f58
      da832a80
  34. 11 Jan, 2013 1 commit
  35. 18 Dec, 2012 1 commit
  36. 27 Nov, 2012 1 commit
    • John Koleszar's avatar
      Add vp9_ prefix to all vp9 files · fcccbcbb
      John Koleszar authored
      Support for gyp which doesn't support multiple objects in the same
      static library having the same basename.
      
      Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
      fcccbcbb