Joey Parrish
18c08607e0
Add VPXD_SET_DECRYPTOR support to the VP9 decoder.
...
Change-Id: I88f86c8ff9af34e0b6531028b691921b54c2fc48
2014-04-23 16:11:54 -07:00
Dmitry Kovalev
ab3d8e6fc5
Renaming VP9D_CONFIG to VP9DecoderConfig.
...
Change-Id: I9677aab1c7bb0ca9e989cb21348a3a2c926d8f5a
2014-04-11 14:50:11 -07:00
Dmitry Kovalev
56c2f41ccb
Renaming VP9D_COMP & VP9Decompressor to VP9Decoder.
...
Change-Id: Ieb9b455b8aaef9884391021b7f640ef24c554687
2014-04-08 11:41:12 -07:00
Dmitry Kovalev
579504b2ef
Fixing memory leak introduced in previous commit.
...
Commit introduced the leak: "Removing XMA legacy from VP9 code."
I5e9dfc50b6312848df8c3b8276f6b4d0c7ff9cf9
Change-Id: Ia1f91bb8403bef340de9f089fa78b3fccc3e9917
2014-04-07 14:21:43 -07:00
Dmitry Kovalev
b5e12dda52
Cleaning up vp9_{cx, dx}_iface.c files.
...
Change-Id: Ib4e31ba74c4b882bd93942ef743f4a189892738d
2014-04-07 10:38:51 -07:00
Dmitry Kovalev
439c66b291
Refactoring decode_one() function.
...
Change-Id: Ic3ee3b1fb04691e8c7d16020b56e034ab8888525
2014-04-04 10:43:52 -07:00
Dmitry Kovalev
484679e401
Removing XMA legacy from VP9 code.
...
Change-Id: I5e9dfc50b6312848df8c3b8276f6b4d0c7ff9cf9
2014-04-02 19:05:59 -07:00
Dmitry Kovalev
6f139773a2
Merge "Removing redundant references to VP9D_COMP struct."
2014-03-25 16:56:33 -07:00
Dmitry Kovalev
9366624cc4
Removing redundant references to VP9D_COMP struct.
...
Change-Id: I4c4772c0e6aca2c7d7085a72412ac8dba8874a3d
2014-03-25 14:21:26 -07:00
Dmitry Kovalev
72d431b69f
Removing redundant vpx_free() call.
...
above_seg_context is alreaded freed during vp9_remove_common() call.
Change-Id: I16b72c710e71d2f143df2d47e876d220c8d374e0
2014-03-25 14:07:49 -07:00
Dmitry Kovalev
a5d51fbdf3
Merge "General cleanup in vp9_decoder.{h, c}."
2014-03-24 15:56:25 -07:00
Dmitry Kovalev
b09cbae0dd
General cleanup in vp9_decoder.{h, c}.
...
Change-Id: I68819558a9c5ac6ea85fe62260712af6f4cc46b7
2014-03-21 14:20:13 -07:00
Dmitry Kovalev
89ec46e6b8
Removing unused members from VP9D_CONFIG struct.
...
Change-Id: I83a201ab4dcf2f00131f2030f382c6dbfcb39d7e
2014-03-21 14:08:19 -07:00
Dmitry Kovalev
b8bc2d337a
Fixing warnings/errors from c++ compiler.
...
Change-Id: Ia561dda53f2dd10e3a10a2df2adb8027ab19397a
2014-03-18 10:47:51 -07:00
Dmitry Kovalev
5233e10a84
Renaming vp9_onyxd.h and vp9_onyxd_if.c to vp9_decoder.{h, c}.
...
Change-Id: Ibd0892be1ddadd93b8a22fa2c2e2053001f2948f
2014-03-06 12:08:20 -08:00
Dmitry Kovalev
ea88da7492
Removing vp9_onyxd_int.h file.
...
Moving VP9Decompressor struct from vp9_onyxd_int.h to vp9_onyxd.h.
Change-Id: Ic86c15e44130541a7f692db43ef9109293f99ae8
2014-03-05 10:39:29 -08:00
Dmitry Kovalev
af62e09684
Removing VP9D_PTR.
...
Change-Id: I17276e25db4592ffeff0961dd9eeaabe4bde110c
2014-02-27 19:08:10 -08:00
Alex Converse
6e3cf6ec1d
Stop gating non420 features with a configure flag.
...
Change-Id: I8cc38fdef6a2a0968af8dfe15e7c2b3c46c531ea
2014-02-21 12:05:29 -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
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
Frank Galligan
1604ad2149
Fix frames that have no references to them.
...
BasicRateTargeting3TemporalLayers found an error with
the get/release frame buffer management.
Change-Id: Iccff25cba1d2f276f2a0d0fb7b20cf99b4405549
2014-02-11 18:34:21 -08:00
Frank Galligan
d51ca0db00
Merge "Add get release decoder frame buffer functions."
2014-02-11 08:19:37 -08:00
Frank Galligan
e8e152799b
Add get release decoder frame buffer functions.
...
This CL changes libvpx to call a function when a frame buffer
is needed for decode. Libvpx will call a release callback when
no other frames reference the frame buffer. This CL adds a
default implementation of the frame buffer callbacks. Currently
only VP9 is supported. A future CL will add support for
applications to supply their own frame buffer callbacks.
Change-Id: I1405a320118f1cdd95f80c670d52b085a62cb10d
2014-02-10 14:08:11 -08:00
Dmitry Kovalev
0f3cffa685
Fixing undefined behavior vp9_peek_si().
...
Bitwise OR operation doesn't guarantee any subexpression evaluation order.
Just reading one bit now and ignoring the next one. For reference look at
vp9_decode_frame() implementation.
Change-Id: I4971686929838ae5ded8f43a38a2934db5e1d462
2014-02-07 14:21:19 -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 9e41d569d7c84dd9ca8f0047c15377a883945685.
Revert "Add external constants."
This reverts commit bbf53047b03106e3c2e24b28cb836cc838db5ee8.
Revert "Add frame buffer lru cache."
This reverts commit fbada948fa345e67acf9aa41a8f9a78f5dfe8648.
Conflicts:
vpxdec.c
Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005
Revert "Add support to pass in external frame buffers."
This reverts commit 10f891696bc4c972c13cc9fde2c53470501a03e2.
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
21ededd4f4
Cleaning up vp9_dx_iface.c.
...
Change-Id: I6a0dfb95c55ee6cadc7b1675782c7830e5c7caaf
2014-01-10 11:01:52 -08:00
Dmitry Kovalev
46d5cc4307
Using VP9_FRAME_MARKER instead of raw number.
...
Change-Id: I3addbf6d89a86a707c8df1a463da3e9e367910df
2013-12-27 14:50:27 -08:00
Frank Galligan
9e41d569d7
Increase required number of external frame buffers
...
Make applications pass in VPX_MAXIMUM_WORK_BUFFERS as well as
VP9_MAXIMUM_REF_BUFFERS.
Change-Id: I9c07ce83fa19c90ed43227b801b2013690e81edd
2013-12-17 17:34:36 -08:00
Frank Galligan
fbada948fa
Add frame buffer lru cache.
...
Add an option for libvpx to return the least recently used
frame buffer.
Change-Id: I886a96ffb94984f1c42de53086e0131922df3260
2013-12-15 19:57:42 -08:00
Frank Galligan
10f891696b
Add support to pass in external frame buffers.
...
VP9 decoder can now use frame buffers passed in by the application.
Change-Id: I599527ec85c577f3f5552831d79a693884fafb73
2013-12-15 18:45:46 -08:00
Adrian Grange
2117fe0593
Fix decoder to handle display size correctly
...
The decoder ignored the display width & height
specified in the frame header.
This patch adds a control, VP9D_GET_DISPLAY_SIZE, to
allow the application to obtain the display width and
height from the frame header.
vpxdec has been modified to scale the output frame to
this size.
Should the request for the display size fail vpxdec will
use the native width and height of the raw decoded
frame instead.
Change-Id: I25db04407426dac730263720c75a7dd6400af68a
2013-11-22 11:58:07 -08:00
Dmitry Kovalev
a53075f7c5
Adding VP9_FRAME_MARKER constant.
...
Also renaming SYNC_CODE_* to VP9_SYNC_CODE_*.
Change-Id: I9ff504c6ebce6cd6673d7df2085d597b818f5960
2013-10-23 17:24:17 -07:00
Yaowu Xu
ff1083c113
Prevent access to invalid pointer
...
The commit added check to make sure no invalid memory access even when
the decoder instance is never initialized.
Change-Id: I4da343d0b3c78c27777ac7f5ce7688562c69f0c5
2013-10-15 13:51:42 -07:00
Jim Bankoski
4ecdf26d9c
cpplint issues resolved in vp9_dx_iface.c
...
Change-Id: I01cbd1b00d8d8e02541b2c29b9e88e690edfcaba
2013-09-29 17:33:30 -07:00
Jim Bankoski
79401542f7
make vp9 postproc a config option
...
Vp9 postproc is disabled for now as its not been shown to help and
may be merged with vp8.
Change-Id: I25620d6cd34c6e10331b18c7b5ef7482e39c6057
2013-09-04 10:02:08 -07:00
James Zern
6167355309
vp9_peek_si: add bitstream v1 support
...
currently protected by CONFIG_NON420 as v1 is still not entirely stable
Change-Id: Id1c5081b04a2c47a842822048b8804be67d23a6d
2013-08-21 17:04:10 -07:00
James Zern
20395189cd
vp9_dx_iface: check for NULL/0-size input
...
avoids a crash caused by issue #585
Change-Id: I301595ee0227699b0da6f0dad6d870dd546e94ef
2013-08-14 18:35:22 -07:00
James Zern
563b4b20a8
vp9_dx_iface: s/vp8/vp9/ where possible
...
drop 'vp9_' from most static functions unrelated to the codec interface
itself.
Change-Id: I33e76c425bb7373570a57a61662a56d65ab4bdf3
2013-07-12 11:05:39 -07:00
James Zern
e202a2be03
vp[89]_dx_iface: delete unused function
...
static mmap_lkup
Change-Id: I24aeac1eca8453e28d58bc06925e58efc228a0a6
2013-07-11 23:03:24 -07:00
James Zern
b088998e5d
vp[89]_dx_iface: factorize vp8_mmap_*()
...
s/vp8/vpx/ -> vpx_codec_internal.h / vpx_codec.c
Change-Id: If4192b40206276a761b01d44e334fe15bcb81128
2013-07-11 23:01:26 -07:00
James Zern
7645c9ab34
vp9: fix peek_si for version==0
...
Change-Id: I6bfec4fa50dfc1a953edb1a2aa8e97e6e896bed6
2013-07-11 12:22:39 -07:00
Scott LaVarnway
9dead02b09
Quick fix to stop vpxdec infinite loop
...
vpxdec stays in a loop when decoding vp9. This patch is a
quick fix to stop the loop when all data has been decoded.
Eventually we should move the vp9_get_raw_frame() call into
vp8_get_frame().
Change-Id: I3f97b6b4e1fe9ba69f746a29fc54c3304956f661
2013-06-12 13:46:47 -04:00
John Koleszar
d0ed677a34
Merge branch 'master' into experimental
...
Change-Id: Ie648398b82f7311143709f55c0e30ba452f50eff
2013-06-11 16:29:28 -07:00
John Koleszar
e5b956f620
Add bits for colorspace, profile
...
Adds 3 bits for colorspace (sent on keyframes), 2 bits for version.
Change-Id: Iaa0cf1dcdd085cebb46e2bc4a7c78cd33cf24325
2013-06-07 00:00:16 -07:00
Dmitry Kovalev
18c83b3714
Compressed/uncompressed frame header changes.
...
Adding API to read/write uncompressed frame header bits (it is not final
yet). Separate functions to read/write uncompressed header. Moving
clr_type, error_resilient_mode, refresh_frame_context,
frame_parallel_decoding_mode, frame_context_idx from compressed partition
to uncompressed frame header.
Change-Id: Id3ed8a387980c652ae147549412f4ec24a0a5bd0
2013-05-28 18:07:54 -07:00
Dmitry Kovalev
1a24011469
Revert "Adding API to read/write uncompressed frame header bits." because of bitstream mismatches.
...
This reverts commit df037b615fcc0196386977faae060fdfd9a887a8
Change-Id: I1a529f2590df7bc912f5035d22311268933e3dd6
2013-05-28 02:24:52 -07:00
Dmitry Kovalev
df037b615f
Adding API to read/write uncompressed frame header bits.
...
The API is not final yet and can be changed. Actual layout of
uncompressed frame part will be finalized later. Right now moving
clr_type, error_resilient_mode, refresh_frame_context,
frame_parallel_decoding_mode from first compressed partition to
uncompressed frame part.
Change-Id: I3afc5d4ea92c5a114f4c3d88f96858cccc15b76e
2013-05-21 15:31:32 -07:00
Jingning Han
2c93a8ed5c
Give VP9 a different sync code from VP8
...
The new code is 0x49, 0x83, 0x42
There is nothing particularly special about this code bitstream wise.
Its derivation is the word "sync" coded using 4x6bit alphabetic indices.
Change-Id: Ie2430a854af32ddc5a5c25a6c1c90cf6497ba647
2013-05-20 11:41:31 +01:00
Dmitry Kovalev
b7a4f8a6db
Adding alpha plane to YV12_BUFFER_CONFIG structure.
...
Change-Id: I8b2687138df636b2b78c8cc5156e3882b0009de0
2013-05-15 16:29:20 -07:00
Johann
d82eb9d195
Match unsigned types
...
Fixes build warning in MSVC:
vp9\vp9_dx_iface.c(420) : warning C4018: '<' : signed/unsigned mismatch
vp9\vp9_dx_iface.c(423) : warning C4018: '<' : signed/unsigned mismatch
Change-Id: Ia238071aee94b2f882c1e74c380adc3df506dfb6
2013-04-29 14:22:30 -07:00