1. 13 Jan, 2014 3 commits
    • Dmitry Kovalev's avatar
      Removing VpxInputContext dependency from {ivf, raw}_read_frame(). · 0eac753d
      Dmitry Kovalev authored
      File type check inside ivf_read_frame() is not necessary (it is done
      before this function get called).
      
      Change-Id: Iede8feb358d25878b340473d85c3b01d701fc624
      0eac753d
    • Adrian Grange's avatar
      Change the strategy for deciding the display size · 482c39c0
      Adrian Grange authored
      There are three contributors to the definition of how the
      display size is set:
      
      (1) display width/height set in the container.
      (2) display size (optional in the frame header)
      (3) decoded frame size (from the frame header)
      
      This patch modifies the way that vpxdec defines the display
      size to give preference to these three criteria in the order
      given above. If the container sets a non-zero size, it is
      used, otherwise the display size specified in the first
      decoded frame is used (if specified), with the raw
      decoded frame size of the first frame used as a last resort.
      
      The display size set in frames other than the first is
      always ignored in this implementation.
      
      Change-Id: I7e98d817d3f5894d559dd2aeb0a6cb1959b9092b
      482c39c0
    • Dmitry Kovalev's avatar
      Adding raw_read_frame() function to vpxdec. · f0fde243
      Dmitry Kovalev authored
      Change-Id: Ie2a4606daf35b327d6f2ac8d7fd8f6cacf4c5b6a
      f0fde243
  2. 28 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Removing CONFIG_MD5. · d24f4e49
      Dmitry Kovalev authored
      We don't need compile time md5 configuration because --md5 is a runtime
      option.
      
      Change-Id: Ic0a2427ae5de5a18f31e5ee60c3732481b377ca1
      d24f4e49
  3. 16 Dec, 2013 2 commits
  4. 04 Dec, 2013 1 commit
    • Adrian Grange's avatar
      Modified spatial scalable encoder & unit tests · 475d1d60
      Adrian Grange authored
      Modifications to the spatial scalable encoder to match
      changes made to the scaling code in the decoder.
      
      In particular, the use of a dummy first frame was removed
      now that the decoder is able to handle a smaller first
      frame.
      
      SvcTest.FirstFrameHasLayers unit test re-enabled.
      
      Change-Id: Ic2e91fbe4eadf95895569947670d36d68abaf458
      475d1d60
  5. 02 Dec, 2013 1 commit
    • Adrian Grange's avatar
      Fix bug in extend_frame chroma extended too far · 2e88f2f2
      Adrian Grange authored
      This fixes issue 667.
      
      In the case where the frame was an odd number of pixels
      wide or high, the border was being extended by one col
      or row too far.
      
      The calculation of color plane dimensions was modified
      to use those already computed at the time the frame
      buffer was allocated.
      
      Also freed the temporary scaling buffer in vpxdec to
      prevent a memory leak.
      
      Change-Id: I195bc81d84c0fc5d8260c1232200d62399e4b51f
      2e88f2f2
  6. 22 Nov, 2013 2 commits
    • 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
    • Adrian Grange's avatar
      Fix bug in extend_frame chroma extended too far · d427fab5
      Adrian Grange authored
      This fixes issue 667.
      
      In the case where the frame was an odd number of pixels
      wide or high, the border was being extended by one col
      or row too far.
      
      The calculation of color plane dimensions was modified
      to use those already computed at the time the frame
      buffer was allocated.
      
      Also freed the temporary scaling buffer in vpxdec to
      prevent a memory leak.
      
      Change-Id: Ied04bdcdfd77469731408c05da205db1a6f89bf5
      d427fab5
  7. 19 Nov, 2013 2 commits
  8. 16 Nov, 2013 1 commit
    • Tom Finegan's avatar
      vpxdec: Restore IVF support. · 5ae4ba57
      Tom Finegan authored
      Refactored IVF frame reading code out into ivf_read_frame(). Forgot
      to actually make the function call in read_frame().
      
      Change-Id: Ie9f6917e70bd26d0352a761932465c60a29a1f81
      5ae4ba57
  9. 15 Nov, 2013 1 commit
    • Tom Finegan's avatar
      vpx[dec|enc]: Extract IVF support from the apps. · 00a35aab
      Tom Finegan authored
      - Move IVF reading support into ivfdec.c and ivfdec.h
      - Move IVF writing support into ivfenc.c and ivfenc.h
      - Removed IVF writing code from the SVC example in favor of ivfenc.
      
      Change-Id: I70adf6240d0320fdd232d8546ed573f0f68dd793
      00a35aab
  10. 11 Nov, 2013 1 commit
  11. 06 Nov, 2013 1 commit
    • Tom Finegan's avatar
      Move WebM writing support out of vpxenc.c. · 03848f5c
      Tom Finegan authored
      This is mainly a clean up patchset. It moves the WebM writing support
      out of vpxenc and into its own source file. Changes to tools_common and
      vpxdec result from relocation of shared bits of code.
      
      Change-Id: Iee55d3285f56e0a548f791094fb14c5ac5346a26
      03848f5c
  12. 24 Oct, 2013 1 commit
    • Frank Galligan's avatar
      vpxdec: Fix webm fps check. · a9e00cd4
      Frank Galligan authored
      If the webm file did not have a Cues then vpxdec would fail
      when creating a y4m file. If there is no Cues element print
      out a warning and set fps to 30.
      
      Change-Id: Ieea7040265dfdac7dff4ccf917c6f756160a96bc
      a9e00cd4
  13. 12 Jun, 2013 1 commit
    • John Koleszar's avatar
      vpxdec: add --loops option · 9596a4cc
      John Koleszar authored
      Allows vpxdec to operate multiple times on the same input. Mostly
      useful for debugging/development.
      
      Change-Id: Icf25ece22e387052eade4438971eee5ff4f798ba
      9596a4cc
  14. 10 Jun, 2013 1 commit
    • John Koleszar's avatar
      Fix a crash in vpxdec · c0e561d1
      John Koleszar authored
      If the codec fails to return a frame on the second frame (as in a VP8 alt-ref,
      then img will be a null pointer and dereferencing it while trying to write
      the color format (again) will crash.
      
      Change-Id: Ie48710d4c5715f532d453c879c71c20ccdeb81cc
      c0e561d1
  15. 07 Jun, 2013 1 commit
    • Scott LaVarnway's avatar
      Modified vpxdec loop · c3ae212e
      Scott LaVarnway authored
      to work like vpxenc.  This is required for the frame-based
      multithreading.
      
      
      Change-Id: I338ae9c7d52b0541f3536cc033d6b89f00866e74
      c3ae212e
  16. 10 May, 2013 1 commit
    • John Koleszar's avatar
      Subsampling aware allocs and bitstream · da58436f
      John Koleszar authored
      Make framebuffer allocations according to the chroma subsamping
      factors in use. A bit is placed in the raw part of the frame header for
      each of the two subsampling factors. This will be moved in a future
      commit to make them part of the TBD feature set bits, probably only set
      on keyframes, etc.
      
      Change-Id: I59ed38d3a3c0d4af3c7c277617de28d04a001853
      da58436f
  17. 30 Apr, 2013 1 commit
  18. 29 Apr, 2013 1 commit
  19. 18 Apr, 2013 1 commit
    • James Zern's avatar
      vpxdec: correct VP[89] fourccs · dbd050c5
      James Zern authored
      should have no effect as they are used in nestegg mappings, but aligns
      the defines with vpxenc.c
      
      Change-Id: Ic2295cd63701894c2963274239602b54cbb58631
      dbd050c5
  20. 14 Mar, 2013 1 commit
    • 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
  21. 11 Mar, 2013 1 commit
    • John Koleszar's avatar
      vpxdec: fix use of uninitialized do_scale argument · 83f2a112
      John Koleszar authored
      This fixes a potential crash with VP8 streams that have an alt-ref on
      the first frame, as well as potentially scaling the output in cases
      where that wasn't desired.
      
      Change-Id: I1fd74b5ab43329fbbffecb004dfd44de34c4dc22
      83f2a112
  22. 04 Mar, 2013 1 commit
    • John Koleszar's avatar
      vpxdec: support scaling output · 7d8fc26c
      John Koleszar authored
      Adds an option, --scale, that will rescale any frames produced by
      the decoder that don't match the resolution of the first frame to
      that resolution. This is useful for playback of files that use
      spatial resampling.
      
      Change-Id: I867adc650d535df7ec5b107549359712ea3aaaa0
      7d8fc26c
  23. 27 Feb, 2013 1 commit
    • John Koleszar's avatar
      vpxdec: support scaling output · 0d2517ce
      John Koleszar authored
      Adds an option, --scale, that will rescale any frames produced by
      the decoder that don't match the resolution of the first frame to
      that resolution. This is useful for playback of files that use
      spatial resampling.
      
      Change-Id: I867adc650d535df7ec5b107549359712ea3aaaa0
      0d2517ce
  24. 15 Nov, 2012 2 commits
  25. 06 Nov, 2012 1 commit
  26. 01 Nov, 2012 1 commit
  27. 11 Oct, 2012 1 commit
  28. 19 Sep, 2012 1 commit
    • Scott LaVarnway's avatar
      Moved vp8dx_get_raw_frame() call to vp8_get_frame() · e278673c
      Scott LaVarnway authored
      This change is necessary for the frame-based multithreading
      implementation.
      Since the postproc occurs in this call, vpxdec was modified to time around
      vpx_codec_get_frame()
      
      Change-Id: I389acf78b6003cd35e41becc16c893f7d3028523
      e278673c
  29. 20 Aug, 2012 1 commit
  30. 23 Jul, 2012 1 commit
  31. 17 Jul, 2012 1 commit
  32. 11 Jun, 2012 1 commit
    • 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
  33. 04 Jun, 2012 1 commit
  34. 15 Mar, 2012 1 commit
    • Yaowu Xu's avatar
      WebM Experimental Codec Branch Snapshot · 6035da54
      Yaowu Xu authored
      This is a code snapshot of experimental work currently ongoing for a
      next-generation codec.
      
      The codebase has been cut down considerably from the libvpx baseline.
      For example, we are currently only supporting VBR 2-pass rate control
      and have removed most of the code relating to coding speed, threading,
      error resilience, partitions and various other features.  This is in
      part to make the codebase easier to work on and experiment with, but
      also because we want to have an open discussion about how the bitstream
      will be structured and partitioned and not have that conversation
      constrained by past work.
      
      Our basic working pattern has been to initially encapsulate experiments
      using configure options linked to #IF CONFIG_XXX statements in the
      code. Once experiments have matured and we are reasonably happy that
      they give benefit and can be merged without breaking other experiments,
      we remove the conditional compile statements and merge them in.
      
      Current changes include:
      * Temporal coding experiment for segments (though still only 4 max, it
        will likely be increased).
      * Segment feature experiment - to allow various bits of information to
        be coded at the segment level. Features tested so far include mode
        and reference frame information, limiting end of block offset and
        transform size, alongside Q and loop filter parameters, but this set
        is very fluid.
      * Support for 8x8 transform - 8x8 dct with 2nd order 2x2 haar is used
        in MBs using 16x16 prediction modes within inter frames.
      * Compound prediction (combination of signals from existing predictors
        to create a new predictor).
      * 8 tap interpolation filters and 1/8th pel motion vectors.
      * Loop filter modifications.
      * Various entropy modifications and changes to how entropy contexts and
        updates are handled.
      * Extended quantizer range matched to transform precision improvements.
      
      There are also ongoing further experiments that we hope to merge in the
      near future: For example, coding of motion and other aspects of the
      prediction signal to better support larger image formats, use of larger
      block sizes (e.g. 32x32 and up) and lossless non-transform based coding
      options (especially for key frames). It is our hope that we will be
      able to make regular updates and we will warmly welcome community
      contributions.
      
      Please be warned that, at this stage, the codebase is currently slower
      than VP8 stable branch as most new code has not been optimized, and
      even the 'C' has been deliberately written to be simple and obvious,
      not fast.
      
      The following graphs have the initial test results, numbers in the
      tables measure the compression improvement in terms of percentage. The
      build has  the following optional experiments configured:
      --enable-experimental --enable-enhanced_interp --enable-uvintra
      --enable-high_precision_mv --enable-sixteenth_subpel_uv
      
      CIF Size clips:
      http://getwebm.org/tmp/cif/
      HD size clips:
      http://getwebm.org/tmp/hd/
      (stable_20120309 represents encoding results of WebM master branch
      build as of commit#7a159071)
      
      They were encoded using the following encode parameters:
      --good --cpu-used=0 -t 0 --lag-in-frames=25 --min-q=0 --max-q=63
      --end-usage=0 --auto-alt-ref=1 -p 2 --pass=2 --kf-max-dist=9999
      --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50
      --minsection-pct=0 --maxsection-pct=800 --sharpness=0
      --arnr-maxframes=7 --arnr-strength=3(for HD,6 for CIF)
      --arnr-type=3
      
      Change-Id: I5c62ed09cfff5815a2bb34e7820d6a810c23183c
      6035da54