1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 15 Nov, 2012 - 2 commits
  7. 06 Nov, 2012 - 1 commit
  8. 01 Nov, 2012 - 1 commit
  9. 11 Oct, 2012 - 1 commit
  10. 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
  11. 20 Aug, 2012 - 1 commit
  12. 23 Jul, 2012 - 1 commit
  13. 17 Jul, 2012 - 1 commit
  14. 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
  15. 04 Jun, 2012 - 1 commit
  16. 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
  17. 15 Feb, 2012 - 1 commit
  18. 05 Jan, 2012 - 1 commit
    • Deb Mukherjee's avatar
      Multiframe quality enhancement postprocessing · 87aa846b
      Deb Mukherjee authored
      Adds a multiframe postprocessing module to enhance the quality of
      certain frames that are coded at lower quality than preceding frames.
      The module can be invoked from the commandline by use of the --mfqe
      option, and will be most beneficial for enhancing the quality of
      frames decoded using scalable patterns.
      
      Uses the vp8_variance_var16x16 and vp8_variance_sad16x16 function
      pointers to compute SAD and Variance of blocks.
      
      Change-Id: Id73d2a6e3572d07f9f8e36bbce00a4fc5ffd8961
      87aa846b
  19. 10 Nov, 2011 - 1 commit
  20. 22 Sep, 2011 - 1 commit
  21. 19 May, 2011 - 1 commit
    • Stefan Holmer's avatar
      Adding error-concealment to the decoder. · d04f8523
      Stefan Holmer authored
      The error-concealer is plugged in after any motion vectors have been
      decoded. It tries to estimate any missing motion vectors from the
      motion vectors of the previous frame. Intra blocks with missing
      residual are replaced with inter blocks with estimated motion vectors.
      
      This feature was developed in a separate sandbox
      (sandbox/holmer/error-concealment).
      
      Change-Id: I5c8917b031078d79dbafd90f6006680e84a23412
      d04f8523
  22. 09 May, 2011 - 1 commit
  23. 27 Apr, 2011 - 1 commit
    • John Koleszar's avatar
      vpxdec: test for frame corruption · 4226f0ce
      John Koleszar authored
      This change simply exercises the VP8D_GET_FRAME_CORRUPTED control,
      outputting a warning message at the end if the bit was set for any
      frames. Should never produce any output for good input.
      
      Change-Id: Idaf6ba8f53660f47763cd563fa1485938580a37d
      4226f0ce
  24. 28 Jan, 2011 - 1 commit
    • Tero Rintaluoma's avatar
      Adds "armvX-none-rvct" targets · 11a222f5
      Tero Rintaluoma authored
      Adds following targets to configure script to support RVCT compilation
      without operating system support (for Profiler or bare metal images).
       - armv5te-none-rvct
       - armv6-none-rvct
       - armv7-none-rvct
      
      To strip OS specific parts from the code "os_support"-config was added
      to script and CONFIG_OS_SUPPORT flag is used in the code to exclude OS
      specific parts such as OS specific includes and function calls for
      timers and threads etc. This was done to enable RVCT compilation for
      profiling purposes or running the image on bare metal target with
      Lauterbach.
      
      Removed separate AREA directives for READONLY data in armv6 and neon
      assembly files to fix the RVCT compilation. Otherwise
      "ldr <reg>, =label" syntax would have been needed to prevent linker
      errors. This syntax is not supported by older gnu assemblers.
      
      Change-Id: I14f4c68529e8c27397502fbc3010a54e505ddb43
      11a222f5
  25. 23 Nov, 2010 - 1 commit
  26. 10 Nov, 2010 - 1 commit
    • Fritz Koenig's avatar
      postproc : Re-work posproc calling to allow more flags. · 647df00f
      Fritz Koenig authored
      Debugging in postproc needs more flags to allow for specific
      block types to be turned on or off in the visualizations.
      
      Must be enabled with --enable-postproc-visualizer during
      configuration time.
      
      Change-Id: Ia74f357ddc3ad4fb8082afd3a64f62384e4fcb2d
      647df00f
  27. 04 Nov, 2010 - 1 commit
  28. 02 Nov, 2010 - 1 commit
    • John Koleszar's avatar
      fix pipe support on windows · c377bf0e
      John Koleszar authored
      STDIO streams are opened in text mode by default on Windows. This patch
      changes the stdin/stdout streams to be in binary mode if they are being
      used for I/O from the vpxenc or vpxdec tools.
      
      Fixes issue #216. Thanks to mw AT hesotech.de for the fix.
      
      Change-Id: I34525b3ce2a4a031d5a48d36df4667589372225b
      c377bf0e
  29. 28 Oct, 2010 - 2 commits
    • Timothy B. Terriberry's avatar
      Eliminate more warnings. · 97b766a4
      Timothy B. Terriberry authored
      This eliminates a large set of warnings exposed by the Mozilla build
       system (Use of C++ comments in ISO C90 source, commas at the end of
       enum lists, a couple incomplete initializers, and signed/unsigned
       comparisons).
      It also eliminates many (but not all) of the warnings expose by newer
       GCC versions and _FORTIFY_SOURCE (e.g., calling fread and fwrite
       without checking the return values).
      There are a few spurious warnings left on my system:
      
      ../vp8/encoder/encodemb.c:274:9: warning: 'sz' may be used
       uninitialized in this function
      gcc seems to be unable to figure out that the value shortcut doesn't
       change between the two if blocks that test it here.
      
      ../vp8/encoder/onyx_if.c:5314:5: warning: comparison of unsigned
       expression >= 0 is always true
      ../vp8/encoder/onyx_if.c:5319:5: warning: comparison of unsigned
       expression >= 0 is always true
      This is true, so far as it goes, but it's comparing against an enum,
       and the C standard does not mandate that enums be unsigned, so the
       checks can't be removed.
      
      Change-Id: Iead6cd561a2afaa3d801fd63f1d8d58953da7426
      97b766a4
    • Timothy B. Terriberry's avatar
      Eliminate more warnings. · c4d7e5e6
      Timothy B. Terriberry authored
      This eliminates a large set of warnings exposed by the Mozilla build
       system (Use of C++ comments in ISO C90 source, commas at the end of
       enum lists, a couple incomplete initializers, and signed/unsigned
       comparisons).
      It also eliminates many (but not all) of the warnings expose by newer
       GCC versions and _FORTIFY_SOURCE (e.g., calling fread and fwrite
       without checking the return values).
      There are a few spurious warnings left on my system:
      
      ../vp8/encoder/encodemb.c:274:9: warning: 'sz' may be used
       uninitialized in this function
      gcc seems to be unable to figure out that the value shortcut doesn't
       change between the two if blocks that test it here.
      
      ../vp8/encoder/onyx_if.c:5314:5: warning: comparison of unsigned
       expression >= 0 is always true
      ../vp8/encoder/onyx_if.c:5319:5: warning: comparison of unsigned
       expression >= 0 is always true
      This is true, so far as it goes, but it's comparing against an enum, and the C
       standard does not mandate that enums be unsigned, so the checks can't be
       removed.
      
      Change-Id: Iaf689ae3e3d0ddc5ade00faa474debe73b8d3395
      c4d7e5e6
  30. 27 Oct, 2010 - 2 commits
  31. 26 Oct, 2010 - 6 commits
    • John Koleszar's avatar
      vpxdec: rework default output parameters · 933d44b8
      John Koleszar authored
      This patch reworks the default behavior of the tool to output Y4M
      instead of writing individual raw frames. The relevant controls are
      now:
        --yv12, --i420  - These options change the output format to be
                          raw planar data. The output will be Y4M unless
                          one of these options is specified.
      
        --flipuv        - Swaps the chroma planes. Works with Y4M output.
      
        -o, --output    - Sets the output filename. Defaults to stdout if
                          not specified. Supports escape character
                          expansion for frame width (%w) height (%h) and
                          sequence number (%1..%9). The --prefix option
                          has been removed in favor of this escape
                          expansion.
      
      Since the output defaults to stdout if -o is not specified, an
      error will be thrown if stdout is not connected to a pipe. This
      can be overridden by specifying '-o -'.
      
      Change-Id: I94e42c57ca75721fdd57a6129e79bcdb2afe5d4d
      933d44b8
    • John Koleszar's avatar
      vpxdec: replace --quiet with --verbose · 4b578ea6
      John Koleszar authored
      Be quiet by default, to play nicer with scripts.
      
      Change-Id: I68f6c88411fd5487566f268fb73b4e55ae64410c
      4b578ea6
    • John Koleszar's avatar
      vpxdec: use the same output for --progress and --summary · 5d12e04d
      John Koleszar authored
      Update the timing information in-place for the --progress
      option.
      
      Change-Id: I8efea57050db72963c0bc5c994425e7e692d1502
      5d12e04d
    • John Koleszar's avatar
      rename ivf{enc,dec} to vpx{enc,dec} · ea68ee04
      John Koleszar authored
      The new WebM output support should be preferred to IVF, but we can't
      change the default behavior of the ivf* tools. There are a few other
      default behaviors for these tools that are counterintuitive for
      historical reasons, and changing the binary name provides the
      opportunity to clean those up as well. This patch takes the first
      step by renaming the binaries.
      
      Change-Id: I647008ae37cc352dd27ec1da7ed13489e0609b24
      ea68ee04
    • John Koleszar's avatar
      ivfdec: support y4m output from raw input · cfe3f917
      John Koleszar authored
      The width and height needed to write the Y4M header can be found by
      probing the stream with vpx_codec_peek_stream_info(). This also
      has the consequence of supporting multiple codecs from raw files
      with automatic detections, should we add additional codecs in the
      future.
      
      Change-Id: I7522a8f4c7577b6ed9876d744c59cd86d30c6049
      cfe3f917
    • John Koleszar's avatar
      ivfdec: webm reader support · ad252daf
      John Koleszar authored
      This patch enables ivfdec to decode WebM files. WebM demuxing is
      provided by the Matthew Gregan's Nestegg library.
      
      This patch also makes minor changes to the timebase->framerate
      handling when doing Y4M output. For WebM files, the framerate is
      guessed by looking at the first second of video. For IVF files,
      the timebase=1/(2*fps) hack is still in place, but is only used
      if the timebase denominator is less than 1000. This is in anticipation
      of change I8d25b5b, which introduces the distinction between
      framerate and timebase to ivfenc. In the case of high resolution
      timebases, like 100ns, we would have to guess the framerate
      like we do for WebM, but since WebM support in ivfenc will
      deprecate IVF output, we just assume 30fps rather than writing the
      lookahead code.
      
      Change-Id: I1dd8600f13bf6071533d2816f005da9ede4f60a2
      ad252daf
  32. 11 Oct, 2010 - 1 commit