summaryrefslogtreecommitdiff
path: root/vpxdec.c
AgeCommit message (Collapse)Author
2014-01-24Merge "Revert external frame buffer code."Frank Galligan
2014-01-24Revert external frame buffer code.Frank Galligan
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-23vpxdec: grouping together code with the same if conditionsDmitry Kovalev
Change-Id: I5e546fce725b8c4722da5494e9423154e870fd58
2014-01-22vpxdec: Disable writing of Y4M header when --md5 argument is specified.Dmitry Kovalev
Change-Id: I2380b1b80f48496732b69c8255a485024d375f0f
2014-01-22Merge "Removing out_open() & out_close() functions from vpxdec."Dmitry Kovalev
2014-01-22Tidy up comments & remove commented out code.Adrian Grange
Change-Id: I46dd5ce06f36362c6274511cd1531d93926aa9bc
2014-01-22Removing out_open() & out_close() functions from vpxdec.Dmitry Kovalev
Change-Id: I60f2ce77638cf7d2116bc1e64b466942c76644e0
2014-01-17Moving y4m encoding functions into separate files.Dmitry Kovalev
Change-Id: I03f614872167841515a74740d654c008b60104a4
2014-01-17Adding vpx_image_scale() function in vpxdec.Dmitry Kovalev
Change-Id: I29eaffff5089b26e8778a977c3b3da11800f1c49
2014-01-17Removing out_put() function from vpxdec.c.Dmitry Kovalev
Adding two new functions: update_image_md5() and write_image_file(). Change-Id: Ic3e7e6ef08e70fb15ab021c92127872f29bcad9b
2014-01-15Removing VP8_FOURCC_MASK & VP9_FOURCC_MASK.Dmitry Kovalev
There is no reason to have fourcc masks, everything just works without them. Change-Id: I1d48100e7b7d5ef55ec49a708ba6adcb9ab4ecd8
2014-01-15Merge "Removing VpxInputContext dependency from {ivf, raw}_read_frame()."Dmitry Kovalev
2014-01-14Merge "Change the strategy for deciding the display size"Adrian Grange
2014-01-13Removing VpxInputContext dependency from {ivf, raw}_read_frame().Dmitry Kovalev
File type check inside ivf_read_frame() is not necessary (it is done before this function get called). Change-Id: Iede8feb358d25878b340473d85c3b01d701fc624
2014-01-13Change the strategy for deciding the display sizeAdrian Grange
There are three contributors to the definition of how the display size is set: (1) display width/height set in the container. (2) display size (optional in the frame header) (3) decoded frame size (from the frame header) This patch modifies the way that vpxdec defines the display size to give preference to these three criteria in the order given above. If the container sets a non-zero size, it is used, otherwise the display size specified in the first decoded frame is used (if specified), with the raw decoded frame size of the first frame used as a last resort. The display size set in frames other than the first is always ignored in this implementation. Change-Id: I7e98d817d3f5894d559dd2aeb0a6cb1959b9092b
2014-01-13Adding raw_read_frame() function to vpxdec.Dmitry Kovalev
Change-Id: Ie2a4606daf35b327d6f2ac8d7fd8f6cacf4c5b6a
2013-12-27Removing CONFIG_MD5.Dmitry Kovalev
We don't need compile time md5 configuration because --md5 is a runtime option. Change-Id: Ic0a2427ae5de5a18f31e5ee60c3732481b377ca1
2013-12-15Add frame buffer lru cache.Frank Galligan
Add an option for libvpx to return the least recently used frame buffer. Change-Id: I886a96ffb94984f1c42de53086e0131922df3260
2013-12-15Add support to pass in external frame buffers.Frank Galligan
VP9 decoder can now use frame buffers passed in by the application. Change-Id: I599527ec85c577f3f5552831d79a693884fafb73
2013-12-04Modified spatial scalable encoder & unit testsAdrian Grange
Modifications to the spatial scalable encoder to match changes made to the scaling code in the decoder. In particular, the use of a dummy first frame was removed now that the decoder is able to handle a smaller first frame. SvcTest.FirstFrameHasLayers unit test re-enabled. Change-Id: Ic2e91fbe4eadf95895569947670d36d68abaf458
2013-11-22Merge "Fix bug in extend_frame chroma extended too far"Yaowu Xu
2013-11-22Fix decoder to handle display size correctlyAdrian Grange
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-22Fix bug in extend_frame chroma extended too farAdrian Grange
This fixes issue 667. In the case where the frame was an odd number of pixels wide or high, the border was being extended by one col or row too far. The calculation of color plane dimensions was modified to use those already computed at the time the frame buffer was allocated. Also freed the temporary scaling buffer in vpxdec to prevent a memory leak. Change-Id: Ied04bdcdfd77469731408c05da205db1a6f89bf5
2013-11-19vpxdec: Relocate WebM input support.Tom Finegan
- 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-18vpxdec: Include frame number when decode fails.Tom Finegan
Change-Id: I6ea460af884d522319735e4416a2dd66c2f35d27
2013-11-16vpxdec: Restore IVF support.Tom Finegan
Refactored IVF frame reading code out into ivf_read_frame(). Forgot to actually make the function call in read_frame(). Change-Id: Ie9f6917e70bd26d0352a761932465c60a29a1f81
2013-11-15vpx[dec|enc]: Extract IVF support from the apps.Tom Finegan
- 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-11vpx[dec|enc]: Clean up target OS based IO focused preproc abuse.Tom Finegan
Relocate it to tools_common.h so we can stop duping this code everywhere. BUG=https://code.google.com/p/webm/issues/detail?id=660 Change-Id: If8aa49b74d297273cd9fd7006b2767837055a359
2013-11-06Move WebM writing support out of vpxenc.c.Tom Finegan
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-10-24vpxdec: Fix webm fps check.Frank Galligan
If the webm file did not have a Cues then vpxdec would fail when creating a y4m file. If there is no Cues element print out a warning and set fps to 30. Change-Id: Ieea7040265dfdac7dff4ccf917c6f756160a96bc
2013-06-12vpxdec: add --loops optionJohn Koleszar
Allows vpxdec to operate multiple times on the same input. Mostly useful for debugging/development. Change-Id: Icf25ece22e387052eade4438971eee5ff4f798ba
2013-06-11Merge branch 'master' into experimentalJohn Koleszar
Change-Id: Ie648398b82f7311143709f55c0e30ba452f50eff
2013-06-10Fix a crash in vpxdecJohn Koleszar
If the codec fails to return a frame on the second frame (as in a VP8 alt-ref, then img will be a null pointer and dereferencing it while trying to write the color format (again) will crash. Change-Id: Ie48710d4c5715f532d453c879c71c20ccdeb81cc
2013-06-07Modified vpxdec loopScott LaVarnway
to work like vpxenc. This is required for the frame-based multithreading. Change-Id: I338ae9c7d52b0541f3536cc033d6b89f00866e74
2013-05-09Subsampling aware allocs and bitstreamJohn Koleszar
Make framebuffer allocations according to the chroma subsamping factors in use. A bit is placed in the raw part of the frame header for each of the two subsampling factors. This will be moved in a future commit to make them part of the TBD feature set bits, probably only set on keyframes, etc. Change-Id: I59ed38d3a3c0d4af3c7c277617de28d04a001853
2013-04-30Change to fourcc to enable decoding of ffmpeg files.Jim Bankoski
Change-Id: Ia16f167d904d53bc38cb3a8c841c6c52daad500f (cherry picked from commit 296421d84cd1ffd074ff3fe4a772238c897f1bda) reverts: dbd050c vpxdec: correct VP[89] fourccs
2013-04-29Change to fourcc to enable decoding of ffmpeg files.Jim Bankoski
Change-Id: Ia16f167d904d53bc38cb3a8c841c6c52daad500f
2013-04-18vpxdec: correct VP[89] fourccsJames Zern
should have no effect as they are used in nestegg mappings, but aligns the defines with vpxenc.c Change-Id: Ic2295cd63701894c2963274239602b54cbb58631
2013-03-11vpxdec: fix use of uninitialized do_scale argumentJohn Koleszar
This fixes a potential crash with VP8 streams that have an alt-ref on the first frame, as well as potentially scaling the output in cases where that wasn't desired. Change-Id: I1fd74b5ab43329fbbffecb004dfd44de34c4dc22
2013-03-04vpxdec: support scaling outputJohn Koleszar
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
2012-11-15webm: add support for V_VP9John Koleszar
Tags VP9 tracks with the V_VP9 video type when writing to .webm files, and supports decoding both from vpxdec without specifying --codec. Change-Id: I0ef61dee06f4db2a74032b142a4b4976c51faf6e
2012-11-15support building vp8 and vp9 into a single libJohn Koleszar
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
2012-11-07Rough merge of master into experimentalJohn Koleszar
Creates a merge between the master and experimental branches. Fixes a number of conflicts in the build system to allow *either* VP8 or VP9 to be built. Specifically either: $ configure --disable-vp9 $ configure --disable-vp8 --disable-unit-tests VP9 still exports its symbols and files as VP8, so that will be resolved in the next commit. Unit tests are broken in VP9, but this isn't a new issue. They are fixed upstream on origin/experimental as of this writing, but rebasing this merge proved difficult, so will tackle that in a second merge commit. Change-Id: I2b7d852c18efd58d1ebc621b8041fe0260442c21
2012-11-06vpxdec: merge with masterJohn Koleszar
Change-Id: I69fd876dd51eb2b4a4a449faa5922225e9508b42
2012-11-01Rename vp8/ codec directory to vp9/.Ronald S. Bultje
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
2012-10-11added the ablility to skip first n frames for vpxdecYaowu Xu
Change-Id: Id7d1f25078be92dd6cda246738ad6fb50579f555
2012-09-19Moved vp8dx_get_raw_frame() call to vp8_get_frame()Scott LaVarnway
This change is necessary for the frame-based multithreading implementation. Since the postproc occurs in this call, vpxdec was modified to time around vpx_codec_get_frame() Change-Id: I389acf78b6003cd35e41becc16c893f7d3028523
2012-08-20silent compiling warnings for VC9 buildYaowu Xu
Change-Id: Iaa947e640f27e6f6eaf7d845f243536bca2df513
2012-07-23Dll build of libvpxJim Bankoski
Change-Id: I74e50b4dfbe73eb98e1dce1695a9973f637220c0
2012-07-17Restyle codeJohn Koleszar
Approximate the Google style guide[1] so that that there's a written document to follow and tools to check compliance[2]. [1]: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml [2]: http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py Change-Id: Idf40e3d8dddcc72150f6af127b13e5dab838685f