Commit Graph

78 Commits

Author SHA1 Message Date
Dmitry Kovalev
6440e2955d Merge "Merging error-resilient example into simple_encoder." 2014-03-03 12:10:37 -08:00
Dmitry Kovalev
4334c07357 Reusing mem_get_le{16, 32} defined in vpx_ports/mem_opts.h.
Change-Id: If4b5209ac14aaba6f1c1014bc0497baa8eabfaff
2014-02-26 16:32:09 -08:00
Dmitry Kovalev
194e6f2983 Merging error-resilient example into simple_encoder.
The only difference between two examples was a setting of
g_error_resilient flag in error-resilient example. Moving this
functionality into simple_encoder with additional command line option.

Change-Id: I0245793320125926e1bf208cc1e87aef39ca478d
2014-02-25 16:34:49 -08:00
James Zern
8e3ef6c0e1 Merge "move nestegg to third_party" 2014-02-22 11:43:37 -08:00
James Zern
20eb5cb653 move vp9_spatial_scalable_encoder.c to examples/
Change-Id: Id5c889cb87ad33a21d83a415a23e957e8ee3218f
2014-02-21 17:57:27 -08:00
James Zern
bb3b9aa93f move nestegg to third_party
Change-Id: Idf58109195a88dec66c5e1ea6a51c61e6c659ff1
2014-02-21 17:16:04 -08:00
James Zern
354c566044 restore examples to doxygen output
these were incorrectly stripped in:
50fa585 Removing examples code generation and making them static.

Change-Id: Idb475ad5b303634311e9f616604312cb925cc6a9
2014-02-14 19:38:20 -08:00
Dmitry Kovalev
8837b022d9 Adapting vp8_set_maps.c example to use new APIs.
Change-Id: Id6e6b5a96c907261abe4348624241b4568707c1d
2014-02-13 14:18:05 -08:00
Dmitry Kovalev
14db3bf532 Using video writer API from vp9_spatial_scalable_encoder.
Change-Id: I6c2748bef22cdbbc9574d7a8dfc1ed55f4f6b05f
2014-02-12 11:23:49 -08:00
Dmitry Kovalev
c761bd78fa Merge "Cleaning up {simple, twopass}_encoder examples." 2014-02-10 14:27:48 -08:00
Dmitry Kovalev
592936b497 Cleaning up {simple, twopass}_encoder examples.
Change-Id: Ide9c408f4cee7408741ef8c0ffac01645a5a67ca
2014-02-07 11:37:39 -08:00
Dmitry Kovalev
4f8a30b116 Converting vpx_temporal_scalable_patterns to use VpxVideoWriter.
Change-Id: I69e868295b9798ba1599a411926de0891680032f
2014-02-07 11:07:55 -08:00
Dmitry Kovalev
6adaec4f50 Merge "Adding video reader/writer APIs." 2014-02-06 12:52:32 -08:00
Marco Paniconi
4864ab21b0 Layer based rate control for CBR mode.
This patch adds a buffer-based rate control for temporal layers,
under CBR mode.

Added vpx_temporal_scalable_patters.c encoder for testing temporal
layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).

Updated datarate unittest with tests for temporal layer rate-targeting.

Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
2014-02-06 09:24:45 -08:00
Dmitry Kovalev
37e6fd3d76 Adding video reader/writer APIs.
Right now only IVF format is supported which is enough for example code.
Other formats like y4m, webm, raw yuv will be supported later.

Change-Id: I34c6f20731c1851947587ca5c589d7856b675164
2014-02-05 20:34:51 -08:00
James Zern
77bbcab591 examples.mk: build examples/*.c directly
since
50fa585 Removing examples code generation and making them static.

the examples have been c files, not generated from text. this removes
GEN_EXAMPLES and replaces it with EXAMPLES, building the source directly
rather than copying it to the build folder

Change-Id: I5445bc49553419e3d2430963517d2c18cdba1f82
2014-02-05 16:55:01 -08:00
Marco Paniconi
7ec838edc4 Revert "Layer based rate control for CBR mode."
This reverts commit 6be2b750b8

Change-Id: Ic52acd98b37c3ba49d4999b463389eb564f49c4b
2014-02-03 12:28:32 -08:00
Marco Paniconi
6be2b750b8 Layer based rate control for CBR mode.
This patch adds a buffer-based rate control for temporal layers,
under CBR mode.

Added vpx_temporal_scalable_patters.c encoder for testing temporal
layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).

Updated datarate unittest with tests for temporal layer rate-targeting.

Change-Id: I9cb6cce2494390ae6096ee17774af7fb9308bde7
2014-02-02 14:30:43 -08:00
Dmitry Kovalev
a8b547ea4d Merge "vpxenc: Relocate rate/quantizer histogram code." 2014-01-29 12:47:12 -08:00
Dmitry Kovalev
f11da2b550 vpxenc: Relocate rate/quantizer histogram code.
Adding rate_hist.{h, c} files.

Change-Id: Iaa28af6b25ec8982966a7296a073d6017b3a7f96
2014-01-29 12:28:29 -08:00
Dmitry Kovalev
99d39e5b99 Merge "Adapting decode_with_drops example to use new file reading API." 2014-01-29 11:21:08 -08:00
Dmitry Kovalev
834f2fbcec Adapting decode_with_drops example to use new file reading API.
Change-Id: Idd1acfcf8bb16a2ddb9c6c1c841a7741e90589d9
2014-01-29 11:02:17 -08:00
Dmitry Kovalev
2e862ce71c Adapting postproc example to use new file reading API.
Change-Id: Ib3747c81db8cc89b5d7012db557411a3b49712aa
2014-01-29 10:55:59 -08:00
Dmitry Kovalev
00bfacb769 Merge "Adapting simple_decoder to use new file reading API." 2014-01-27 14:22:15 -08:00
Dmitry Kovalev
7ec2769687 Adapting simple_decoder to use new file reading API.
Change-Id: I374a0c4bb4a66c0d3dc874c6e57fdee9d1ab72df
2014-01-27 13:40:29 -08:00
Deb Mukherjee
cacea00fac Adds a stand-alone resize utility for testing
Adds a stand-alone resize_util app for testing. The app
will not be built in the shared library configurations
so as not to require the APIs to be exposed.

Change-Id: I4718c8bff1abf4e57c2ab2d84be8738fc0048200
2014-01-25 10:19:47 -08:00
Dmitry Kovalev
c2b336815d Implementing simple API to read video files.
New API is supposed to be used from example code. Current implementation
only supports IVF containers (will be extended to Y4M).

Change-Id: Ib7da87237690b1a28297bdf03bc41c6836a84b7e
2014-01-24 11:20:09 -08:00
Dmitry Kovalev
16954cb327 Merge "Moving vp8_multi_resolution_encoder to examples folder." 2014-01-21 10:16:22 -08:00
Dmitry Kovalev
5ab63583db Moving y4m encoding functions into separate files.
Change-Id: I03f614872167841515a74740d654c008b60104a4
2014-01-17 17:02:37 -08:00
Dmitry Kovalev
98254a441b Moving vp8_multi_resolution_encoder to examples folder.
Change-Id: If0e1cd13aecd1620d26c28bf95e4f84469f78456
2014-01-17 16:57:37 -08:00
Dmitry Kovalev
50fa58592b Removing examples code generation and making them static.
All documentation will be provided as comments in the source files.

Change-Id: Ie609852747733c181191f864204c787a6b23ef3a
2014-01-07 15:15:25 -08:00
Tom Finegan
249366b1ac vpxenc: Move config check code into its own source files.
- Add command line args that allow display of warnings without prompting
  for user input.
- Extend warning code to make it somewhat scalable.

Change-Id: I2bad8f9315f6eed120c2e1bbe0a2a5ede15fbf35
2013-11-25 12:05:45 -08:00
Tom Finegan
49dc9cafa6 vpxenc: Add vpxenc.h and move/rename the global_config struct
- Rename the struct to VpxEncoderConfig.
- The idea behind this is to enable checking the global settings against
  stream specific settings in source files other than vpxenc.c.

Change-Id: Ic736cbb714845b9466acb34671780d65b83ad1a8
2013-11-21 16:46:40 -08:00
Tom Finegan
2abe2d4664 vpxdec: Relocate WebM input support.
- Move it to webmdec.c and webmdec.h.
- Also, tidy up obvious style nits in the vicinity of code I was
  already touching.

Change-Id: Ie2898d06e73c1e9030d9c8d465b73ee7edc3c02a
2013-11-19 10:26:51 -08:00
Tom Finegan
00a35aab7c vpx[dec|enc]: Extract IVF support from the apps.
- 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
2013-11-15 08:33:24 -08:00
Tom Finegan
78cb2e6553 vpxenc: clean up; move stats code out of vpxenc.c
Change-Id: I6b245ef5017c49373ba33e30f8fbf3d1b97409b5
2013-11-11 16:30:18 -08:00
Ivan Maltz
741c14fcf0 Merge "Move SVC per-frame loop from sample app into libvpx proper" 2013-11-06 17:24:05 -08:00
Ivan Maltz
1ed0e1beb5 Move SVC per-frame loop from sample app into libvpx proper
SVC multiple layer per frame encoding is invoked with vpx_svc_init and
vpx_svc_encode. These interfaces are designed to be invoked from ffmpeg.
Additional improvements:
- make dummy frame handling a bit more explicit
- fixed bug with single layer encodes
- track individual frame sizes and psnrs instead of averages
- parameterized quantizer, 16th scalefactors, more logging,
- enabled single layer encodes to generate baseline
- include new mode for 3 layer I frame with 5 total layers

Change-Id: I46cfa600d102e208c6af8acd6132e0cc25cda8d4
2013-11-06 14:49:27 -08:00
Tom Finegan
03848f5ca7 Move WebM writing support out of vpxenc.c.
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
2013-11-06 06:49:55 -08:00
Dmitry Kovalev
86f4681450 Moving libmkv library to third_party folder.
Change-Id: Id0bfaedf54ff3f59d4cf361c170a0b5a5711e5f2
2013-10-07 13:06:53 -07:00
James Zern
a0fcbcfa5f fix vp8-only build
Change-Id: Id9ce44f3364dd57b30ea491d956a2a0d6186be05
2013-09-17 18:47:25 -07:00
Ivan Maltz
01b35c3c16 API extensions and sample app for spacial scalable encoder
Sample app: vp9_spatial_scalable_encoder
vpx_codec_control extensions:
  VP9E_SET_SVC
  VP9E_SET_WIDTH, VP9E_SET_HEIGHT, VP9E_SET_LAYER
  VP9E_SET_MIN_Q, VP9E_SET_MAX_Q
expanded buffer size for vp9_convolve

modified setting of initial width in vp9_onyx_if.c so that layer size
can be set prior to initial encode

Default number of layers set to 3 (VPX_SS_DEFAULT_LAYERS)
Number of layers set explicitly in vpx_codec_enc_cfg.ss_number_layers

Change-Id: I2c7a6fe6d665113671337032f7ad032430ac4197
2013-09-09 15:57:56 -07:00
Martin Storsjo
a37e84d1d0 msvs: Don't link to winmm.lib
Linking to this library doesn't seem to be necessary, and this library
isn't available in the windows phone API subset.

Change-Id: I179837d6f9c7407f1cb6101533dc978316a30adf
2013-05-21 09:57:04 +03:00
Martin Storsjo
9a5cac0a55 msvs: Pass dependency project vcxproj files to the project generation script
This is required since the dependencies are specified within the
vcxproj files themselves, not in the solution file. This doesn't
do anything for the old vcproj files.

Change-Id: If7818d8e9dbf4aac5bcb34abe648946cf24db51c
2013-05-21 09:57:03 +03:00
Martin Storsjo
0b4637e021 msvs: Support producing both vcproj and vcxproj depending on configure variables
Change-Id: Ifa27c7064118c24401ea4e55a64e129c4f503cd5
2013-05-21 09:57:02 +03:00
John Koleszar
7d8fc26c9c vpxdec: support scaling output
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
2013-03-04 13:21:54 -08:00
John Koleszar
7dfec96059 vpxenc: support scaling prior to encoding
Scales the input of the encoder using libyuv's "box filter". Each stream
may have a different width and height specified. If the width (or
height) parameter is missing (or is explicitly set to 0) then the value
will be calculated based on the specified height (or width) and the
input file's dimensions, preserving its aspect ratio. Leaving the height
unspecified behaves similarly.

Change-Id: I700ef89ce54fb87588420a71c39c0e3e73b1a40e
2013-03-04 13:21:47 -08:00
John Koleszar
1760c39bce Revert "make: flatten object file directories"
This reverts commit b72373de79.

Change-Id: Ic1601160e11df1a018ef12da25967cfb5eebd5ba
2012-11-27 16:36:39 -08:00
John Koleszar
a9c7597adc support building vp8 and vp9 into a single lib
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
2012-11-15 10:46:17 -08:00
John Koleszar
b72373de79 make: flatten object file directories
Rather than building an object file directory heirarchy matching the
source tree's layout, rename the object files so that the object
file name contains the path in the source file tree. The intent here
is to allow two files in different parts of the source tree to have
the same name and still not collide when put into an ar archive.

Change-Id: Id627737dc95ffc65b738501215f34a995148c5a2
2012-11-15 10:44:58 -08:00