- Oct 26, 2010
-
-
John Koleszar authored
By baking the version number into the output file, a hash of the file will vary from commit to commit, even if the output is otherwise bit exact. Add a -D option to suppress this behavior, for use when bisecting or other debugging. Change-Id: I5089a8ce5719920ffaf47620fa9069b81fa15673
-
John Koleszar authored
Change-Id: I18e0a9e00731c23a2bdd1a978c8cb38f71e9029d
-
John Koleszar authored
Change-Id: I83a6f18d2314e5d97759b4ae49afaa52fd8b3c44
-
John Koleszar authored
The WebM writer requires a seekable stream. Change-Id: I192e00706a0685362d41b8d2faf80add63d564b9
-
John Koleszar authored
Requiring the output file to be specified with the -o option opens up the possibility of supporting multiple input files in the future. Change-Id: I14c9b75e9b21184b47081e1ccf30cf4c91315964
-
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
-
John Koleszar authored
Be quiet by default, to play nicer with scripts. Change-Id: I68f6c88411fd5487566f268fb73b4e55ae64410c
-
John Koleszar authored
Update the timing information in-place for the --progress option. Change-Id: I8efea57050db72963c0bc5c994425e7e692d1502
-
John Koleszar authored
When showing the command usage information for vpxenc and vpxdec, options with both a short and long version that do not take an argument were not properly aligned. Change-Id: I8d65b5ab85bcb5a5dc8bc0d4b293b5189d56dedb
-
John Koleszar authored
Saves a little typing. FPS is a well known abbreviation. Change-Id: I53730ea36afb9309732eb1c72c52d824d5365fec
-
John Koleszar authored
WebM should be preferred to IVF output, since it has wider tool support. Change-Id: I5ac3d5cb68722e6c8af917cdba32ac01dd5e0ea2
-
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
-
John Koleszar authored
This patch adds the --webm option, to allow the creation of WebM streams without having to remux ivf into webm. Change-Id: Ief93c114a6913c55a04cf51bce38f594372d0ad0
-
John Koleszar authored
Initial import of the libmkv directory from the webmquicktime[1] project, at commit fedbda1. [1]: git://review.webmproject.org/webmquicktime.git commit fedbda18de899ff94855cb334de7e471036fbf1d Change-Id: I1564a0ebfa72293fc296ee02178196530dfd90e4
-
Frank Galligan authored
Ivfenc will use timebase if it is set. If it is not set ivfenc will still double the timebase so altref frames will have a unique pts. Patch Set #3: Use integer math to generate source pts. Added a framerate parameter. Increased the default timebase to milliseconds to remove the *2 everywhere. Change-Id: I8d25b5b2cb26deef7eb72d74b5f76c98cafaf4db
-
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
-
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
-
- Oct 25, 2010
-
-
Fritz Koenig authored
-
Fritz Koenig authored
Postproc level that uses Bresenham's line algorithm to draw motion vectors onto the postproc buffer. Change-Id: I34c7daa324f2bdfee71e84fcb1c50b90fa06f6fb
-
Johann Koenig authored
-
John Koleszar authored
-
Aaron Watry authored
Solaris 10 requires -lposix4 to build successfully on gcc. I only have a Sparc machine to test with on Solaris 10, but this change leaves OpenSolaris x86 in a usable state w/ gnu-generic. I am of the belief that this change should fix Solaris 10 on Sparc, but will leave other Solaris architectures as is. If someone has an x86 Solaris 10 machine to test on, they may add x86-solaris-gcc to libvpx/configure and give it a go. Change-Id: I17a282028bb4d3e9fd8764159f95665160f7b62a
-
Martin Ettl authored
cppcheck found a leaked file descriptor in the debugging code enabled by defining ENTROPY_STATS. Fixes issue #60. Change-Id: I0c1d0669cb94d44fed77860f97b82763be06b7cb
-
John Koleszar authored
Fix out-of-tree builds using NASM. NASM expects its include paths to have a trailing slash. These aren't used used when doing in-tree builds (./configure) Change-Id: I38d469d15acb1b7e65733a2e5ca8c9d86fa4ad86
-
Johann Koenig authored
clean up compiler warnings, man in the yellow hat warnings, and start to remove unused #includes Change-Id: I6267e98d9b3024b6fb1ef2732b29067a33cb96f6
-
Johann Koenig authored
there were four versions for the regular and macroblock loopfilters: horizontal [y|uv] vertical [y|uv] this moves all the common code into 2 functions: vp8_loop_filter_neon vp8_mbloop_filter_neon this provides no gain in performance. there's a bit of jitter, but it trends down ~0.25-0.5%. however, this is a huge gain maintenance. also, there is the potential to drop some stack usage in the macroblock loopfilter. Change-Id: I91506f07d2f449631ff67ad6f1b3f3be63b81a92
-
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
-
Johann Koenig authored
onyx_if is getting pretty big. split out the temporal code to make it easier to look at. Change-Id: I207c3a94c90e91b32e3ea5e1836a53b7a990fabd
-
- Oct 22, 2010
-
-
John Koleszar authored
Change-Id: Icef5226a70260607c190126c1c0cc28b796e759c
-
Timothy B. Terriberry authored
The code was not checking for frame sizes smaller than 3 bytes, and the partition size checks might have failed if the input buffer was within 16MB of the top of the heap. In addition, the reference count on the current frame buffer was not being decremented on error, so after a small number of errors, no new frame buffer could be found and it would run off the list of them. Change-Id: I0c60dba6adb1e2a29df39754f72a56ab6c776b46
-
Timothy B. Terriberry authored
Most of the code that actually uses these matrices indexes them as if they were a single contiguous array, and coverity produces reports about the resulting accesses that overflow the static bounds of the first row. This is perfectly legal in C, but converting them to actual [16] arrays should eliminate the report, and removes a good deal of extraneous indexing and address operators from the code. Change-Id: Ibda479e2232b3e51f9edf3b355b8640520fdbf23
-
- Oct 21, 2010
-
-
Frank Galligan authored
Change the pts of the altref frame to be as close as possible to the pts of the preceding frame and still be strictly increasing. Change-Id: Iae3033a4c89ae5a9d0e5c4198e9196e5f3ee57c7
-
John Koleszar authored
-
John Koleszar authored
The first implementation of the firstpass motion map for motion compensated temporal filtering created a file, fpmotionmap.stt, in the current working directory. This was not safe for multiple encoder instances. This patch merges this data into the first pass stats packet interface, so that it is handled like the other (numerical) firstpass stats. The new stats packet is defined as follows: Numerical Stats (16 doubles) -- 128 bytes Motion Map -- 1 byte / Macroblock Padding -- to align packet to 8 bytes The fpmotionmap.stt file can still be generated for debugging purposes in the same way that the textual version of the stats are available (defining OUTPUT_FPF in firstpass.c) Change-Id: I083ffbfd95e7d6a42bb4039ba0e81f678c8183ca
-
Yunqing Wang authored
Change-Id: Ia649b500ef020225d8bbf611799d0f47658dc2ac
-
Yunqing Wang authored
-
Yunqing Wang authored
-
Yunqing Wang authored
This rewriting reflects changes made in commit "Improve the accuracy of forward walsh-hadamard transform". Since this function is not called much, only a small encoder performance gain (~0.5% ) is seen. Change-Id: Ie9df58a43028a11fd5b115c4bbe3141f7596578b
-
John Koleszar authored
Initial import of nestegg[1] parser lib, at commit 0d51131. [1]: http://github.com/kinetiknz/nestegg commit 0d51131519a1014660b5e111e28a78785d76600f Change-Id: I191d388b7e5140ef96624511ccdd65d0e183076d
-