Commit Graph

111 Commits

Author SHA1 Message Date
Deb Mukherjee
a349ee3bf5 Resolves some lint errors
And also fixes some style consistency issues.

Change-Id: I3dc6d44e17d2d6075dc9b02c4255a7395046c5e0
2014-10-13 16:05:44 -07:00
Deb Mukherjee
7a2a611667 Refactoring of highbitdepth bitshift operations
Moves the high bitdepth bit-shift operations to tools_common.c

Change-Id: Ifab91574362609cd224d2d6bae5fde00652eb3e4
2014-10-08 10:44:45 -07:00
Deb Mukherjee
a30774c50d Adds support of 440 content.
Adds enums and corresponding vpx level code.

Change-Id: Ia402d47490a4466988d7edc6b7e3e5163f20a381
2014-10-01 16:51:48 -07:00
Deb Mukherjee
9ed23de13f Miscellaneous decoder changes for high bitdepth
Also includes yv12 config changes.

Change-Id: Iacf40d8bf486815b54c32a127ce3cd4516b7e44f
2014-09-29 11:27:45 -07:00
Frank Galligan
175d9dfe0a Remove memset of every external frame buffer.
Libvpx was memseting every external frame buffer before decode. This
was to work around a valgrind issue in our C loop filter. Most of
the time this was not needed and we have noticed some significant
performance loss on some platforms. Now we require the application to
zero out the buffers if it is using external frame buffers.

Change-Id: I7330d00a315e65137ed30edd5f813e8929b76242
2014-09-15 15:37:36 -07:00
Dmitry Kovalev
9cdaa3d72e Removing legacy compatibility layer.
Change-Id: I6fdcea0e0faf42386dd2b8f972a3b3fb2c21b2c7
2014-09-02 18:11:55 -07:00
Deb Mukherjee
5acfafb18e Adds config opt for highbitdepth + misc. vpx
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles.
Also includes most vpx level high bit-depth functions. However
encode/decode in the highbitdepth profiles will not work until
the rest of the code is in place.

Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
2014-09-02 14:37:10 -07:00
Deb Mukherjee
270a05a315 Merge "Set scaled img format correctly in vpxdec" 2014-08-26 10:36:47 -07:00
James Zern
7690d88deb vpxdec: fix --keep-going with --disable-vp8
the parsing of this flag was mistakenly put in a CONFIG_VP8_DECODER
conditional block in:
95853db vpxdec: add --keep-going option

Change-Id: Ie83ca0399fd3f3d4b0a9d03b7ca5536b310e1f02
2014-08-22 18:01:28 -07:00
Deb Mukherjee
e9f85d3ff1 Set scaled img format correctly in vpxdec
Use img->fmt rather than hardcoded I420P to support
profiles 1-3.

Change-Id: I31fc89e545208243e133512d41e2d97995a968ce
2014-08-22 13:14:58 -07:00
James Zern
7b0faffcf8 Merge changes I13d975d1,I26710359
* changes:
  vpxenc: fix compile with --disable-libyuv
  vpxdec: fix compile with --disable-libyuv
2014-08-19 15:16:29 -07:00
Jim Bankoski
7ae326923e vpxdec.c : resolve uninitialized member warning
Change-Id: Icd07ee241b1e36bb4c9e40e592bae259e65f2ce4
2014-08-19 06:44:10 -07:00
James Zern
1e681d98ac vpxdec: fix compile with --disable-libyuv
Change-Id: I267103595f28c9d9dce2bc38e6db4e371acc7235
2014-08-15 21:00:09 -07:00
Deb Mukherjee
17ea6ab67b Initialization to prevent asan failure on google3
Reinstates an assignment to prevent an asan failurere on google3.
Not sure why the failure happens. This was removed in a recent patch
https://gerrit.chromium.org/gerrit/#/c/71068/.

Change-Id: Ifd9ccffd4c2164f4de38b21821ffb28bd779b0f3
2014-08-13 08:41:40 -07:00
Jim Bankoski
f452961765 fixes several -Wunused-function warnings
Change-Id: I4dc2cb255f4fe30998b6ee61184895dee9f5da8e
2014-08-12 16:51:07 -07:00
Jim Bankoski
5c41891864 vpxdec warning errors addressed
Change-Id: I4e2aeaef3e6efd5be3cb963d2eba5e08dc89b803
2014-08-04 12:07:43 -07:00
Deb Mukherjee
090f4d4b5a Adds support for raw yuv files for 422/444
Adds support for raw yuv inputs in 422/444 sampling for use
in profiles 1 and 3.
New options added to vpxenc are:
--i422 and --i444, which are to be used in conjunction with
--width, --height, and --fps for proper raw yuv handling.
A new option is added to vpxdec:
--rawvideo, which enforces raw yuv video output for the
bit-stream decoded irrespective of 420, 422 or 444 sampling.
The existing options --i420 and --yv12
are specialized for use only for 420 content.

Change-Id: I2e3028380709afa673bf2e2c25ad5e271a626055
2014-07-16 09:44:30 -07:00
Deb Mukherjee
f332c6305e Renames interface field in VpxInterface
Renames interface to codec_interface since it is a reserved
word on windows.

Change-Id: I84f2cbf257a4c44f16dc2464127e35ee405c2c3e
2014-07-15 16:55:12 -07:00
Deb Mukherjee
449e5f2aba Misc. bit-depth related changes
Sets the bit-depth field as default 8 in the image structure in vp8.
Generalizes yuv read in preparation for support for reading 422/444
for 8-bit and 10/12-bit.

Change-Id: I560c13c348b122fd028e408431156376b895058c
2014-07-14 11:48:04 -07:00
Deb Mukherjee
5820c5d614 Adds support for reading and writing 10/12-bit y4m
The y4m extension used is the same as the one used in ffmpeg/x264.
The patch is adapted from the highbitdepth branch.

Also adds unit tests for y4m header parsing and md5 check
of the raw frame data, as well as y4m writing.

[build fix for Mac/VS by not using tuples with strings]

Change-Id: I40897ee37d289e4b6cea6fedc67047d692b8cb46
2014-07-05 16:00:54 -07:00
Dmitry Kovalev
3643544fe0 Merge "Reverting "Adds support for reading and writing 10/12-bit y4m" for now because of Mac Build Failure." 2014-07-03 12:59:31 -07:00
Dmitry Kovalev
79199e465a Reverting "Adds support for reading and writing 10/12-bit y4m" for now because of Mac Build Failure.
This reverts commit 82dc1332af

Change-Id: I824bf42bf47c7df6985c79e451d6af913030d374
2014-07-02 22:23:38 -07:00
James Zern
4ac3b7ab13 Merge "vpxdec: add --keep-going option" 2014-07-02 19:28:40 -07:00
Deb Mukherjee
82dc1332af Adds support for reading and writing 10/12-bit y4m
The y4m extension used is the same as the one used in ffmpeg/x264.
The patch is adapted from the highbitdepth branch.

Also adds unit tests for y4m header parsing and md5 check
of the raw frame data, as well as y4m writing.

Change-Id: Ie2794daf6dbafd2f128464f9b9da520fc54c0dd6
2014-07-02 05:41:14 -07:00
James Zern
95853db8e2 vpxdec: add --keep-going option
for debugging purposes.
continues decoding after receiving a decode error. will still exit with
an error after the current loop, ignoring remaining --loops

Change-Id: I011a71b866ff493a3f3bbb59e9bff998d19daee3
2014-07-01 19:05:23 -07:00
Deb Mukherjee
47031c0a54 Updates libyuv to version 1005
Also adds compile check and a libyuv configure flag

Change-Id: Ib9f0f4a71c4083e6f0aea7b5a5d175531ef0f66b
2014-05-20 17:19:57 -07:00
James Zern
b6cce760de vpxdec: add some missing CONFIG_WEBM_IO checks
fixes build of this file in the dist directory when using
'--enable-install-srcs'

Change-Id: I7743611bea9e0bddb473777e2e007e6eadebfc1f
2014-05-12 22:43:11 -07:00
Deb Mukherjee
20c30771b0 Rename FilterMode for compatibility with libyuv
Renames FilterMode to FilterModeEnum for compatibility
with google3 libyuv

Change-Id: Iec845e6a6aeac4171790c87ce3dd9000ab840a36
2014-04-22 11:15:19 -07:00
Vignesh Venkatasubramanian
0ffa3836f3 Adding a configure flag to control WebM container support
Adding a --(enable|disable)-webm-io flag to control WebM container input and
output support. For now, enabling WebM IO by default only when there is a C++
compiler. Doing so because eventually we will move WebM IO to libwebm and it
is built using C++.

Change-Id: I210ac36c23528e382ed41d3c4322291720481492
2014-03-14 14:44:47 -07: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
James Yu
6d15132742 Change dx_time data type in vpxdec.c
Change dx_time data type to int64_t to prevent
test time overflow when decoding long video.

Change-Id: I3dd5e324a246843e07e635fd25c50e71e385ed70
Signed-off-by: James Yu <james.yu@linaro.org>
2014-02-25 09:17:06 +08:00
Jim Bankoski
24025c0477 vp9_cx_iface vp9_dx_iface vpxdec vs warnings
Change-Id: I747982e7d1157a8b45f4034ddf207306f9f957e0
2014-02-15 09:14:02 -08:00
Alex Converse
2eccbd0f4b Fix build error caused by a merge conflict.
Commit 70d9664f removed 'int i' required by a4f30a50.

Change-Id: I4e7e14e9e8532f753e43a57b5bba4589d58e0c32
2014-02-13 17:05:13 -08:00
Frank Galligan
fb8c246b70 Merge "Add VP9 decoder support for external frame buffers" 2014-02-13 15:29:52 -08:00
Frank Galligan
a4f30a5023 Add VP9 decoder support for external frame buffers
Added support for external frame buffers to libvpx's VP9 decoder.
If the external frame buffer functions are set then libvpx will
call the get function whenever it needs a new frame buffer to
decode a frame into. And it will call the release function
whenever there are no more references to that buffer.

Change-Id: Id2934d005f606af6e052fb6db0d5b7c02f567522
2014-02-13 13:14:19 -08:00
Dmitry Kovalev
2bdd43d8d4 Adding and reusing vpx_img_plane_{width, height}() functions.
Change-Id: I668afb50614644d2eac2e968e1fafd6d73170bec
2014-02-12 18:36:36 -08:00
Dmitry Kovalev
70d9664fb2 Adding API to get vpx encoder/decoder interface.
Change-Id: I137e5e6585356792913e1e84da6c0a439c5153a5
2014-02-11 21:12:23 -08:00
James Zern
75d7ee3330 vpxdec: normalize frame size types
int -> size_t for threshold values. this silences a few signed/unsigned
comparison warnings

Change-Id: Ic7b7af61f75f60a1b6d04167640cea2d09bbd967
2014-02-04 20:06:28 -08:00
James Zern
4a703576f7 remove duplicate const from vpx_codec_iface_t use
the public typedef already includes a const, quiets
'same type qualifier used more than once' warnings

Change-Id: Ib118b3b116fba59d4c6ead84d85b26e5d3ed363d
2014-01-31 16:32:42 -08:00
Dmitry Kovalev
5260b39e5f vpxdec: restoring old md5 behavior for y4m files.
Fix of https://code.google.com/p/webm/issues/detail?id=698 issue.

Change-Id: I7a92d91481dbbae28d8953f146e9faafdcd7a310
2014-01-28 11:12:58 -08:00
Frank Galligan
c6d537155c Merge "Revert external frame buffer code." 2014-01-24 11:31:23 -08:00
Frank Galligan
b1c72b633e Revert external frame buffer code.
A future CL will add external frame buffers
differently.

Squash commit of four revert commits:
Revert "Increase required number of external frame buffers"

This reverts commit 9e41d569d7.

Revert "Add external constants."

This reverts commit bbf53047b0.

Revert "Add frame buffer lru cache."

This reverts commit fbada948fa.

Conflicts:
	vpxdec.c

Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005

Revert "Add support to pass in external frame buffers."

This reverts commit 10f891696b.

Conflicts:
	test/external_frame_buffer_test.cc
	vp9/common/vp9_alloccommon.c
	vp9/common/vp9_reconinter.c
	vp9/decoder/vp9_decodeframe.c
	vp9/encoder/vp9_onyx_if.c
	vp9/vp9_dx_iface.c
	vpx/vpx_decoder.h
	vpx/vpx_external_frame_buffer.h
	vpx_scale/generic/yv12config.c
	vpxdec.c

Change-Id: I7434cf590f1c852b38569980e4247fad0d939c2e
2014-01-24 10:10:20 -08:00
Dmitry Kovalev
f2acb455a2 vpxdec: grouping together code with the same if conditions
Change-Id: I5e546fce725b8c4722da5494e9423154e870fd58
2014-01-23 17:20:34 -08:00
Dmitry Kovalev
a97b23ba5d vpxdec: Disable writing of Y4M header when --md5 argument is specified.
Change-Id: I2380b1b80f48496732b69c8255a485024d375f0f
2014-01-22 11:53:49 -08:00
Dmitry Kovalev
79b9baa958 Merge "Removing out_open() & out_close() functions from vpxdec." 2014-01-22 11:28:22 -08:00
Adrian Grange
82f6af6009 Tidy up comments & remove commented out code.
Change-Id: I46dd5ce06f36362c6274511cd1531d93926aa9bc
2014-01-22 09:59:01 -08:00
Dmitry Kovalev
347b30603a Removing out_open() & out_close() functions from vpxdec.
Change-Id: I60f2ce77638cf7d2116bc1e64b466942c76644e0
2014-01-22 09:04:07 -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
3c054811bd Adding vpx_image_scale() function in vpxdec.
Change-Id: I29eaffff5089b26e8778a977c3b3da11800f1c49
2014-01-17 12:19:19 -08:00
Dmitry Kovalev
cf46bc7bfe Removing out_put() function from vpxdec.c.
Adding two new functions: update_image_md5() and write_image_file().

Change-Id: Ic3e7e6ef08e70fb15ab021c92127872f29bcad9b
2014-01-17 10:57:55 -08:00