Граф коммитов

107 Коммитов

Автор SHA1 Сообщение Дата
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
Dmitry Kovalev cccadd245c Removing VP8_FOURCC_MASK & VP9_FOURCC_MASK.
There is no reason to have fourcc masks, everything just works without
them.

Change-Id: I1d48100e7b7d5ef55ec49a708ba6adcb9ab4ecd8
2014-01-15 14:01:38 -08:00
Dmitry Kovalev 2123c5d65c Merge "Removing VpxInputContext dependency from {ivf, raw}_read_frame()." 2014-01-15 12:56:05 -08:00
Adrian Grange 903ba1a1ab Merge "Change the strategy for deciding the display size" 2014-01-14 07:52:37 -08:00
Dmitry Kovalev 0eac753dc0 Removing VpxInputContext dependency from {ivf, raw}_read_frame().
File type check inside ivf_read_frame() is not necessary (it is done
before this function get called).

Change-Id: Iede8feb358d25878b340473d85c3b01d701fc624
2014-01-13 11:57:55 -08:00