summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_decodeframe.c
AgeCommit message (Collapse)Author
2014-05-29Merge "Moving itxm_add pointer from MACROBLOCKD to MACROBLOCK."Dmitry Kovalev
2014-05-21Removing decoded_key_frame flag.Dmitry Kovalev
Change-Id: I79576920efb7f3f6f197d386727409759d8bda8d
2014-05-21Moving itxm_add pointer from MACROBLOCKD to MACROBLOCK.Dmitry Kovalev
The final goal is eventually to get rid of both itxm_add and fwd_txm4x4. This patch does it in the decoder. Change-Id: Ibb3db57efbcbb1ac387c6742538a9fcf2c6f24a5
2014-05-21Fix the memory alignment issue due to patch:hkuang
https://gerrit.chromium.org/gerrit/#/c/70162/ Change-Id: I797be6a4b21460de6d791125fc20d2be3a35364f
2014-05-20Refactor decode_tiles and loopfilter code.hkuang
The current decode_tiles decodes the frame one tile by one tile and then loopfilter the whole frame or use another worker thread to do loopfiltering. |------|------|------|------| |Tile1-|Tile2-|Tile3-|Tile4-| |------|------|------|------| For example, if a tile video has one row and four cols, decode_tiles will decode the Tile1, then Tile2, then Tile3, then Tile4. And during decode each tile, decode_tile will decode row by row in each tile. For frame parallel decoding, decode_tiles will decode video in row order across the tiles. So the order will be: "Decode 1st row of Tile1" -> "Decode 1st row of Tile2" -> "Decode 1st row of Tile3" -> "Decode 1st row of Tile4" -> "Decode 2nd row of Tile1" -> "Decode 2nd row of Tile2" -> "Decode 2nd row of Tile3" -> "Decode 2nd row of Tile4"-> "loopfilter 1st row" Change-Id: I2211f9adc6d142fbf411d491031203cb8a6dbf6b
2014-05-16Removing MACROBLOCKD dependency from loop filter.Dmitry Kovalev
Change-Id: I9ef40f3d95ab8f94f69e92ea25678a40956bc1ce
2014-05-15cleanup -wextra warnings:Yaowu Xu
vp9_decoder.c vp9_dthread.c Change-Id: Iaafe941545db98e9e3559096a955894646084ac2
2014-05-15Merge "Refactor calling loopfilter code."hkuang
2014-05-15Refactor calling loopfilter code.hkuang
This change is mainly for a follow CL that will refactor the decode_tiles. Change-Id: I52de6f8dbada75a64d9a94ebb5975136ed0960b4
2014-05-14vp9_decodeframe.c: cleanup -wextra warningsYaowu Xu
Change-Id: I0315cea6a5e58182bc2556e9825ec2ef0b1480c3
2014-05-13Merge "Moving loopfilter call to vp9_decode_frame()."Dmitry Kovalev
2014-05-12Moving loopfilter call to vp9_decode_frame().Dmitry Kovalev
Inline loopfilter has been already handled in vp9_decode_frame(). Collecting all similar code in one place now. Change-Id: I358a0280fc7c2b27cca520bc1e8c16c4eb6491dd
2014-05-12Adding get_tile_buffers() function.Dmitry Kovalev
Change-Id: I910c437b80af90c50831e1fbff75842d4276a027
2014-05-11Merge "Fix check of debug counts for corrupt frame"Adrian Grange
2014-05-09Fix check of debug counts for corrupt frameAdrian Grange
Fixes the idecoder in the case where: cm->error_resilient_mode == 0, and cm->frame_parallel_decoding_mode == 0, but new_fb->corrupted == 1. The assert in debug_check_frame_counts fails to take into account the case of a corrupt frame. Change-Id: Idf318a68458cc88d65d6f3f408a10d8ffe87e43f
2014-05-08Removing VP9DecoderConfig.Dmitry Kovalev
We only used two members from that struct: max_threads and inv_tile_order. Moving them directly to VP9Decoder struct. Change-Id: If696a4e5b5b41868a55f3cc971e1d7c1dd9d5f69
2014-04-30corrupted frames shouldn't affect statsJim Bankoski
Don't update the stats if we have a corrupted frame. Change-Id: I65a13adc50e0389b4201d3b671f0225195dfaff4 TODO: Test case that shows this problem.
2014-04-23Add VPXD_SET_DECRYPTOR support to the VP9 decoder.Joey Parrish
Change-Id: I88f86c8ff9af34e0b6531028b691921b54c2fc48
2014-04-22Renaming MB_PREDICTION_MODE to PREDICTION_MODE.Dmitry Kovalev
Actually, it would be great to have two separate enums INTRA_MODES and INTER_MODES in future. Change-Id: I6c4147cf0002853da9c1e03fe9514eab876f01c8
2014-04-09Merge "Revert "Converting set_prev_mi() to get_prev_mi().""Dmitry Kovalev
2014-04-09Revert "Converting set_prev_mi() to get_prev_mi()."Dmitry Kovalev
This reverts commit 22a3e30790d141033778e430a47ba7d558237362 Change-Id: I460d905edf5fb2006da58c18fbe02c04d0c631bb
2014-04-09Merge "Fix TODO typo"James Zern
2014-04-09Merge "Converting set_prev_mi() to get_prev_mi()."Dmitry Kovalev
2014-04-09Fix TODO typoFrank Galligan
Change-Id: I7a5230852cb24ce22bfe85ea2608cdb4619b5200
2014-04-08Merge "High-level hooks for Profile 2 (10/12 bit)"Deb Mukherjee
2014-04-08Merge "Fix decoder resolution change with tiles"Frank Galligan
2014-04-08High-level hooks for Profile 2 (10/12 bit)Deb Mukherjee
Adds some high-level hooks for profile 2 before further progress on the implementation. According to the definitiion in this patch: 1. Profile 2 only supports 10 or 12 bit color but not 8 2. Profile 2 supports all color sampling modes: 444, 422 and 420, and alpha plane. 3. Profile 3 is currently undefined. Please consider the definition carefully and suggest modifications to the definition as needed. Change-Id: I5b284fc679e54ac5aee171af72fa7994cfd28995
2014-04-08Fix decoder resolution change with tilesFrank Galligan
There was a bug with the decoder that if you started the decoder with more threads than the first frame had tile columns. Afterwards tried to decode a frame with more tile columns than the first frame, the decoder would hang. E.g. run vpxdec --threads=4. The first frame had two tile columns, then the next key frame had 4 tile columns, the decoder would hang. If you started with 4 tiles and switched to 2 tiles the decoder would be fine. The issue is that the worker the thread loop is using is stale. I added a test vector "vp90-2-14-resize-848x480-1280x720.webm" that exhibited the bug. Change-Id: I7bdd47241a52ac0fe1c693a609bc779257e94229
2014-04-08Renaming VP9D_COMP & VP9Decompressor to VP9Decoder.Dmitry Kovalev
Change-Id: Ieb9b455b8aaef9884391021b7f640ef24c554687
2014-04-07Converting set_prev_mi() to get_prev_mi().Dmitry Kovalev
Change-Id: Iad4002d7aecaae0e25d88e286bacde7e6cd7264f
2014-04-03Removing interp_kernel from MACROBLOCKD.Dmitry Kovalev
Now interp_kernel is obtained when it is really required (based on mbmi->interp_filter value). Change-Id: I4c7a93c179d1045eba16e7526c293d02c9b8b47e
2014-04-01Adding return value to set_offsets() function.Dmitry Kovalev
Change-Id: I88e018442c527cf21eac791f0768e805dda244f1
2014-04-01Renaming two members in MACROBLOCKD struct.Dmitry Kovalev
Renames: mi_8x8 -> mi mode_info_stride -> mi_stride Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
2014-04-01Common configuration for MACROBLOCKD struct.Dmitry Kovalev
Change-Id: Ie2ea9dd8bd338cc9fe12ca9033df64f7644c68b3
2014-03-28Moving dqcoeff array to MACROBLOCKD in decoder.Dmitry Kovalev
Change-Id: I3e20c0cdb9d2437bddf21afb255855f2dead8e02
2014-03-26Removing prev_mi_8x8 from MACROBLOCKD.Dmitry Kovalev
Change-Id: I32beb5f18c10b5771146c55933b5555487f53633
2014-03-25Removing redundant references to VP9D_COMP struct.Dmitry Kovalev
Change-Id: I4c4772c0e6aca2c7d7085a72412ac8dba8874a3d
2014-03-25Moving above_context to VP9_COMMON.Dmitry Kovalev
Change-Id: I713af99d1e17e05a20eab20df51d74ebfd1a68d2
2014-03-24Merge "Align threading LFWorkerData to 32 bytes."Yaowu Xu
2014-03-24Merge "Making c++ compiler happier."Dmitry Kovalev
2014-03-24Align threading LFWorkerData to 32 bytes.Yaowu Xu
This is to silent a number misalignment warning reported by valgrind. Change-Id: Ia47a06010b28d7a88dde21f3e4ccb9308fc6f8cf
2014-03-21Making c++ compiler happier.Dmitry Kovalev
Change-Id: Ie224e968589bdb0774dc112e6f6df56cc0447465
2014-03-21Removing redundant {above, left}_seg_context manipulation code.Dmitry Kovalev
Change-Id: Ib3c1746e61220c629cbd971b2458aa686b5c9e36
2014-03-21Merge "Reusing {above, left}_seg_context vars in both encoder and decoder."Dmitry Kovalev
2014-03-20Reusing {above, left}_seg_context vars in both encoder and decoder.Dmitry Kovalev
Change-Id: Id1fa36c92cb007b73a450cc8552e810cedad38b9
2014-03-20Removing source & source_sz from VP9Decompressor struct.Dmitry Kovalev
Change-Id: If4c1a48c60e8b27dd021a83170289ccc5467c6de
2014-03-19Removing mi_stream.Dmitry Kovalev
Change-Id: If674140e30c223c88894b983fd22a583efb99dcf
2014-03-12Renaming decode_modes_{b, sb}.Dmitry Kovalev
decode_modes_b => decode_block decode_modes_sb => decode_partition Change-Id: I2a208f5f7bcaa1105f6a2244e37c53b8958c5d76
2014-03-12Merge "Moving mi_streams from VP9Decompressor to VP9Common."Dmitry Kovalev
2014-03-10Moving mi_streams from VP9Decompressor to VP9Common.Dmitry Kovalev
Change-Id: I7ad79c061ad4efbc4914ac49723b48183fdbdd47