1. 09 Aug, 2012 1 commit
  2. 29 Jun, 2012 1 commit
    • John Koleszar's avatar
      Build unit test driver from the default target · acd147c5
      John Koleszar authored
      We need an easy way to build the unit test driver without running the
      tests. This enables passing options like --gtest_filter to the
      executable, which can't be done very cleanly when running under
      `make test`.
      
      Fixed a number of compiler errors/warnings when building the tests
      in various configurations by Jenkins.
      
      Change-Id: I9198122600bcf02520688e5f052ab379f963b77b
      acd147c5
  3. 21 Jun, 2012 1 commit
    • John Koleszar's avatar
      Add support for downloading test data · 00748632
      John Koleszar authored
      The commit introduces a make target 'testdata' that downloads the
      required test data from the WebM project website. The data will also
      be downloaded if invoking `make test` but is not a strict requirement
      for only building the test executable.
      
      The download directory is taken from the LIBVPX_TEST_DATA_PATH
      environment variable, or may be specified as part of the make command.
      If unset, it defaults to the current directory. It's expected that
      most developers will want to set this environment variable to a place
      outside their source/build trees, to avoid having to download the data
      more than once.
      
      To add test data file:
      
        1) add a line to test/test.mk:
      
            LIBVPX_TEST_DATA-yes += foo-bar-file.y4m
      
        2) add its sha1sum to the test/test-data.sha1 file in the following
           format:
      
            528cc88c821e5f5b133c2b40f9c8e3f22eaacc4c  foo-bar-file.y4m
      
        3) upload the file to the website
      
            $ gsutil cp foo-bar-file.y4m gs://downloads.webmproject.org/test_data/libvpx
      
      This implementation will check the integrity of the test data
      automatically if the `sha1sum` executable is available.
      
      Change-Id: If6910fe304bb3f5cdcc5cb9e5f9afa5be74720d2
      00748632
  4. 15 Jun, 2012 1 commit
    • Rob Bradford's avatar
      Fix pkg-config file to pull in libm · 576629ba
      Rob Bradford authored
      vpx uses symbols in libm and thus we need to provide an indication to
      the user of libvpx that if they want to link against libvpx they must
      also link against libm.
      
      Change-Id: I31d4068bf7f6f5b1fd222bcdf9e6a1a92fb6696f
      576629ba
  5. 09 Jun, 2012 1 commit
  6. 01 Jun, 2012 1 commit
    • John Koleszar's avatar
      Fix MSVS builds for unit test changes · 7f63bfa6
      John Koleszar authored
      Update the Visual Studio builds to support the new monolithic unit
      test binary.
      
      Includes minor semi-cosmetic refactoring of solution.mk, as the
      %vpx.vcproj match is no longer appropriate given the test_libvpx
      target.
      
      Change-Id: I29e6e07c39e72b54a4b3eaca5b9b7877ef3fb134
      7f63bfa6
  7. 22 May, 2012 2 commits
    • John Koleszar's avatar
      Build unit tests monolithically · e82d261d
      John Koleszar authored
      Rework unit tests  to have a single executable rather than many, which
      should avoid pollution of the visual studio project namespace, improve
      build times, and make it easier to use the gtest test sharding system
      when we get these going on the continuous build cluster.
      
      Change-Id: If4c3e5d4b3515522869de6c89455c2a64697cca6
      e82d261d
    • John Koleszar's avatar
      configure: initial support for CXX, CXXFLAGS variables · 8631c1b8
      John Koleszar authored
      Use CXX rather than assuming g++ to invoke the compiler. Also introduce
      separate CXXFLAGS, as certain CFLAGS we enable by default cause warnings
      with g++.
      
      Change-Id: Ia2f40ef27c93e45c971d070cc58bdcde9da2ac7c
      8631c1b8
  8. 04 May, 2012 1 commit
    • John Koleszar's avatar
      remove deprecated pre-v0.9.0 API · 2bf8fb58
      John Koleszar authored
      Remove a bunch of compatibility code dating back to before the initial
      libvpx release.
      
      Change-Id: Ie50b81e7d665955bec3d692cd6521c9583e85ca3
      2bf8fb58
  9. 02 May, 2012 1 commit
  10. 20 Apr, 2012 1 commit
  11. 16 Mar, 2012 1 commit
    • Johann's avatar
      darwin universal builds need BUILD_PFX · 56e8485c
      Johann authored
      Universal builds create subdirectories for each target. Without
      BUILD_PFX we only generated one vpx_rtcd.h instead of one for each.
      
      Change-Id: I1caed4e018c8865ffc8da15e434cae2b96154fb4
      56e8485c
  12. 14 Mar, 2012 1 commit
  13. 06 Mar, 2012 1 commit
    • Johann's avatar
      include CHANGELOG in CODEC_SRCS · 5d88a82a
      Johann authored
      build/make/version.sh requires CHANGELOG to generate vpx_version.h
      The file is already included when building the documentation. However,
      documentation is not build if doxygen/php are not present.
      
      This is necessary when using '--enable-install-srcs --enable-codec-srcs'
      and 'make dist'
      
      Change-Id: Icada883a056a4713d24934ea44e0f6969b68f9c2
      5d88a82a
  14. 17 Feb, 2012 1 commit
  15. 15 Feb, 2012 1 commit
  16. 30 Jan, 2012 1 commit
    • John Koleszar's avatar
      New RTCD implementation · a910049a
      John Koleszar authored
      This is a proof of concept RTCD implementation to replace the current
      system of nested includes, prototypes, INVOKE macros, etc. Currently
      only the decoder specific functions are implemented in the new system.
      Additional functions will be added in subsequent commits.
      
      Overview:
        RTCD "functions" are implemented as either a global function pointer
        or a macro (when only one eligible specialization available).
        Functions which have RTCD specializations are listed using a simple
        DSL identifying the function's base name, its prototype, and the
        architecture extensions that specializations are available for.
      
      Advantages over the old system:
        - No INVOKE macros. A call to an RTCD function looks like an ordinary
          function call.
        - No need to pass vtables around.
        - If there is only one eligible function to call, the function is
          called directly, rather than indirecting through a function pointer.
        - Supports the notion of "required" extensions, so in combination with
          the above, on x86_64 if the best function available is sse2 or lower
          it will be called directly, since all x86_64 platforms implement
          sse2.
        - Elides all references to functions which will never be called, which
          could reduce binary size. For example if sse2 is required and there
          are both mmx and sse2 implementations of a certain function, the
          code will have no link time references to the mmx code.
        - Significantly easier to add a new function, just one file to edit.
      
      Disadvantages:
        - Requires global writable data (though this is not a new requirement)
        - 1 new generated source file.
      
      Change-Id: Iae6edab65315f79c168485c96872641c5aa09d55
      a910049a
  17. 05 Nov, 2011 1 commit
    • James Zern's avatar
      fix file permissions · f89ea343
      James Zern authored
      all of googletest import (0ab00a22) was marked executable
      
      Change-Id: Id7b7ee03efc21ab998bb03349bd91644e8af25da
      f89ea343
  18. 04 Nov, 2011 1 commit
  19. 20 Sep, 2011 1 commit
  20. 12 Aug, 2011 1 commit
  21. 03 Aug, 2011 2 commits
  22. 01 Aug, 2011 1 commit
  23. 29 Jul, 2011 1 commit
    • John Koleszar's avatar
      install asm_offsets.h · 8ef25de3
      John Koleszar authored
      Ensure vpx_ports/asm_offsets.h is installed with make dist
      
      Change-Id: If9f32273fff975d60de1583b039dbbce8a7ccd27
      8ef25de3
  24. 25 Jul, 2011 1 commit
  25. 22 Jun, 2011 1 commit
  26. 14 Jun, 2011 1 commit
    • Tero Rintaluoma's avatar
      Update -linux-rvct targets · 5405bd97
      Tero Rintaluoma authored
      - Updated -linux-rvct targets to support RVDS 4.0 and later.
      - Changed optimization flag to -Otime because -O3 ruined performance
        for RVCT linux targets.
      - Added support for --enable-small for RVCT
      - RVCT created library should be able to link with GCC
      - Supports building shared linux libraries
      
      Change-Id: Ic62589950d86c3420fd4d908b8efb870806d1233
      5405bd97
  27. 10 Jun, 2011 1 commit
    • Tero Rintaluoma's avatar
      Fix make clean for asm offset files · 66533b1a
      Tero Rintaluoma authored
      Automatically created assembly offset files added to CLEAN-OBJS list
      for proper cleanup. This will fix following build error:
      1) Build for the workstation
      ./conigure
      make
      make clean
      2) Build for ARM platform
      ./configure --target=armv7-linux-gcc
      make ==> this will fail because it uses old asm_*_offset.asm files
      
      Change-Id: Id5275c470390ca81b8db086a15ad75af39b80703
      66533b1a
  28. 08 Jun, 2011 2 commits
  29. 06 Jun, 2011 1 commit
  30. 31 Mar, 2011 1 commit
    • Ralph Giles's avatar
      Generate a vpx.pc file for pkg-config. · 607f8420
      Ralph Giles authored
      Rules are added to libs.mk to generate a vpx.pc, which is
      installed as pkgconfig/vpx.pc under the target library directory.
      This also requires the install path prefix be exported directly
      in config.mk.
      
      Some systems use a tool called pkg-config to query information
      about intalled libraries or other resources, based on database
      files provided by the packages themselves at install time.
      
      Providing such a file for libvpx simplifies integration with
      other build systems, and provides an easy avenue for developers
      to test against their own builds of the library.
      
      Change-Id: I4e32a8fbb53fc331aa95eb207c63dd70a76d18ed
      607f8420
  31. 24 Mar, 2011 1 commit
    • Johann's avatar
      use asm_offsets with vp8_regular_quantize_b_sse2 · 8edaf6e2
      Johann authored
      remove helper function and avoid shadowing all the arguments to the
      stack on 64bit systems
      
      when running with --good --cpu-used=0:
      ~2% on linux x86 and x86_64
      ~2% on win32 x86 msys and visual studio
      more on darwin10 x86_64
      significantly more on
      x86_64-win64-vs9
      
      Change-Id: Ib7be12edf511fbf2922f191afd5b33b19a0c4ae6
      8edaf6e2
  32. 10 Mar, 2011 1 commit
    • Johann's avatar
      obj_int_extract for Visual Studio · 128d2c23
      Johann authored
      Enable extraction of assembly offsets from compiled examples in MSVS.
      This will allow us to remove some stub functions from x86 assembly since
      we will be able to reliably determine structure offsets at compile time.
      
      see ARM code for examples:
      vp8/encoder/arm/armv5te/
      vpx_scale/arm/neon/
      
      Change-Id: I1852dc6b56ede0bf1dddb5552196222a7c6a902f
      128d2c23
  33. 22 Feb, 2011 1 commit
    • Johann's avatar
      purge wince configuration · 418f4219
      Johann authored
      this has been broken since the initial release
      
      Change-Id: If0d4deb2de9f7d0c4c05641e2bbf9cc1bf11e171
      418f4219
  34. 08 Feb, 2011 1 commit
    • Johann's avatar
      clarify *_offsets.asm differences · 40dcae9c
      Johann authored
      it's difficult to mux the *_offsets.c files because of header conflicts.
      make three instead, name them consistently and partititon the contents
      to allow building them as required.
      
      Change-Id: I8f9768c09279f934f44b6c5b0ec363f7943bb796
      40dcae9c
  35. 07 Feb, 2011 1 commit
    • Johann's avatar
      move one of the offset files · 3273c7b6
      Johann authored
      common/arm/vpx_asm_offsets moves up a level. prepare for muxing with
      encoder/arm/vpx_vp8_enc_asm_offsets
      
      Change-Id: I89a04a5235447e66571995c9d9b4b6edcb038e24
      3273c7b6
  36. 25 Oct, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Add runtime CPU detection support for ARM. · b71962fd
      Timothy B. Terriberry authored
      The primary goal is to allow a binary to be built which supports
       NEON, but can fall back to non-NEON routines, since some Android
       devices do not have NEON, even if they are otherwise ARMv7 (e.g.,
       Tegra).
      The configure-generated flags HAVE_ARMV7, etc., are used to decide
       which versions of each function to build, and when
       CONFIG_RUNTIME_CPU_DETECT is enabled, the correct version is chosen
       at run time.
      In order for this to work, the CFLAGS must be set to something
       appropriate (e.g., without -mfpu=neon for ARMv7, and with
       appropriate -march and -mcpu for even earlier configurations), or
       the native C code will not be able to run.
      The ASFLAGS must remain set for the most advanced instruction set
       required at build time, since the ARM assembler will refuse to emit
       them otherwise.
      I have not attempted to make any changes to configure to do this
       automatically.
      Doing so will probably require the addition of new configure options.
      
      Many of the hooks for RTCD on ARM were already there, but a lot of
       the code had bit-rotted, and a good deal of the ARM-specific code
       is not integrated into the RTCD structs at all.
      I did not try to resolve the latter, merely to add the minimal amount
       of protection around them to allow RTCD to work.
      Those functions that were called based on an ifdef at the calling
       site were expanded to check the RTCD flags at that site, but they
       should be added to an RTCD struct somewhere in the future.
      The functions invoked with global function pointers still are, but
       these should be moved into an RTCD struct for thread safety (I
       believe every platform currently supported has atomic pointer
       stores, but this is not guaranteed).
      
      The encoder's boolhuff functions did not even have _c and armv7
       suffixes, and the correct version was resolved at link time.
      The token packing functions did have appropriate suffixes, but the
       version was selected with a define, with no associated RTCD struct.
      However, for both of these, the only armv7 instruction they actually
       used was rbit, and this was completely superfluous, so I reworked
       them to avoid it.
      The only non-ARMv4 instruction remaining in them is clz, which is
       ARMv5 (not even ARMv5TE is required).
      Considering that there are no ARM-specific configs which are not at
       least ARMv5TE, I did not try to detect these at runtime, and simply
       enable them for ARMv5 and above.
      
      Finally, the NEON register saving code was completely non-reentrant,
       since it saved the registers to a global, static variable.
      I moved the storage for this onto the stack.
      A single binary built with this code was tested on an ARM11 (ARMv6)
       and a Cortex A8 (ARMv7 w/NEON), for both the encoder and decoder,
       and produced identical output, while using the correct accelerated
       functions on each.
      I did not test on any earlier processors.
      
      Change-Id: I45cbd63a614f4554c3b325c45d46c0806f009eaa
      b71962fd
  37. 13 Oct, 2010 1 commit