Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1451)

Side by Side Diff: source/libvpx/vp9/decoder/vp9_decoder.c

Issue 1302353004: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include <assert.h> 11 #include <assert.h>
12 #include <limits.h> 12 #include <limits.h>
13 #include <stdio.h> 13 #include <stdio.h>
14 14
15 #include "./vp9_rtcd.h" 15 #include "./vp9_rtcd.h"
16 #include "./vpx_dsp_rtcd.h" 16 #include "./vpx_dsp_rtcd.h"
17 #include "./vpx_scale_rtcd.h" 17 #include "./vpx_scale_rtcd.h"
18 18
19 #include "vpx_mem/vpx_mem.h" 19 #include "vpx_mem/vpx_mem.h"
20 #include "vpx_ports/system_state.h"
20 #include "vpx_ports/vpx_once.h" 21 #include "vpx_ports/vpx_once.h"
21 #include "vpx_ports/vpx_timer.h" 22 #include "vpx_ports/vpx_timer.h"
22 #include "vpx_scale/vpx_scale.h" 23 #include "vpx_scale/vpx_scale.h"
23 #include "vpx_util/vpx_thread.h" 24 #include "vpx_util/vpx_thread.h"
24 25
25 #include "vp9/common/vp9_alloccommon.h" 26 #include "vp9/common/vp9_alloccommon.h"
26 #include "vp9/common/vp9_loopfilter.h" 27 #include "vp9/common/vp9_loopfilter.h"
27 #include "vp9/common/vp9_onyxc_int.h" 28 #include "vp9/common/vp9_onyxc_int.h"
28 #if CONFIG_VP9_POSTPROC 29 #if CONFIG_VP9_POSTPROC
29 #include "vp9/common/vp9_postproc.h" 30 #include "vp9/common/vp9_postproc.h"
30 #endif 31 #endif
31 #include "vp9/common/vp9_quant_common.h" 32 #include "vp9/common/vp9_quant_common.h"
32 #include "vp9/common/vp9_reconintra.h" 33 #include "vp9/common/vp9_reconintra.h"
33 #include "vp9/common/vp9_systemdependent.h"
34 34
35 #include "vp9/decoder/vp9_decodeframe.h" 35 #include "vp9/decoder/vp9_decodeframe.h"
36 #include "vp9/decoder/vp9_decoder.h" 36 #include "vp9/decoder/vp9_decoder.h"
37 #include "vp9/decoder/vp9_detokenize.h" 37 #include "vp9/decoder/vp9_detokenize.h"
38 38
39 static void initialize_dec(void) { 39 static void initialize_dec(void) {
40 static volatile int init_done = 0; 40 static volatile int init_done = 0;
41 41
42 if (!init_done) { 42 if (!init_done) {
43 vp9_rtcd(); 43 vp9_rtcd();
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 for (; ref_index < REF_FRAMES && !cm->show_existing_frame; ++ref_index) { 358 for (; ref_index < REF_FRAMES && !cm->show_existing_frame; ++ref_index) {
359 const int old_idx = cm->ref_frame_map[ref_index]; 359 const int old_idx = cm->ref_frame_map[ref_index];
360 decrease_ref_count(old_idx, frame_bufs, pool); 360 decrease_ref_count(old_idx, frame_bufs, pool);
361 } 361 }
362 pbi->hold_ref_buf = 0; 362 pbi->hold_ref_buf = 0;
363 } 363 }
364 // Release current frame. 364 // Release current frame.
365 decrease_ref_count(cm->new_fb_idx, frame_bufs, pool); 365 decrease_ref_count(cm->new_fb_idx, frame_bufs, pool);
366 unlock_buffer_pool(pool); 366 unlock_buffer_pool(pool);
367 367
368 vp9_clear_system_state(); 368 vpx_clear_system_state();
369 return -1; 369 return -1;
370 } 370 }
371 371
372 cm->error.setjmp = 1; 372 cm->error.setjmp = 1;
373 vp9_decode_frame(pbi, source, source + size, psource); 373 vp9_decode_frame(pbi, source, source + size, psource);
374 374
375 swap_frame_buffers(pbi); 375 swap_frame_buffers(pbi);
376 376
377 vp9_clear_system_state(); 377 vpx_clear_system_state();
378 378
379 if (!cm->show_existing_frame) { 379 if (!cm->show_existing_frame) {
380 cm->last_show_frame = cm->show_frame; 380 cm->last_show_frame = cm->show_frame;
381 cm->prev_frame = cm->cur_frame; 381 cm->prev_frame = cm->cur_frame;
382 if (cm->seg.enabled && !pbi->frame_parallel_decode) 382 if (cm->seg.enabled && !pbi->frame_parallel_decode)
383 vp9_swap_current_and_last_seg_map(cm); 383 vp9_swap_current_and_last_seg_map(cm);
384 } 384 }
385 385
386 // Update progress in frame parallel decode. 386 // Update progress in frame parallel decode.
387 if (pbi->frame_parallel_decode) { 387 if (pbi->frame_parallel_decode) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 if (!cm->show_existing_frame) { 433 if (!cm->show_existing_frame) {
434 ret = vp9_post_proc_frame(cm, sd, flags); 434 ret = vp9_post_proc_frame(cm, sd, flags);
435 } else { 435 } else {
436 *sd = *cm->frame_to_show; 436 *sd = *cm->frame_to_show;
437 ret = 0; 437 ret = 0;
438 } 438 }
439 #else 439 #else
440 *sd = *cm->frame_to_show; 440 *sd = *cm->frame_to_show;
441 ret = 0; 441 ret = 0;
442 #endif /*!CONFIG_POSTPROC*/ 442 #endif /*!CONFIG_POSTPROC*/
443 vp9_clear_system_state(); 443 vpx_clear_system_state();
444 return ret; 444 return ret;
445 } 445 }
446 446
447 vpx_codec_err_t vp9_parse_superframe_index(const uint8_t *data, 447 vpx_codec_err_t vp9_parse_superframe_index(const uint8_t *data,
448 size_t data_sz, 448 size_t data_sz,
449 uint32_t sizes[8], int *count, 449 uint32_t sizes[8], int *count,
450 vpx_decrypt_cb decrypt_cb, 450 vpx_decrypt_cb decrypt_cb,
451 void *decrypt_state) { 451 void *decrypt_state) {
452 // A chunk ending with a byte matching 0xc0 is an invalid chunk unless 452 // A chunk ending with a byte matching 0xc0 is an invalid chunk unless
453 // it is a super frame index. If the last byte of real video compression 453 // it is a super frame index. If the last byte of real video compression
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 500
501 for (j = 0; j < mag; ++j) 501 for (j = 0; j < mag; ++j)
502 this_sz |= (*x++) << (j * 8); 502 this_sz |= (*x++) << (j * 8);
503 sizes[i] = this_sz; 503 sizes[i] = this_sz;
504 } 504 }
505 *count = frames; 505 *count = frames;
506 } 506 }
507 } 507 }
508 return VPX_CODEC_OK; 508 return VPX_CODEC_OK;
509 } 509 }
OLDNEW
« no previous file with comments | « source/libvpx/vp9/decoder/vp9_decodemv.c ('k') | source/libvpx/vp9/encoder/arm/neon/vp9_avg_neon.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698