diff options
author | John Koleszar <jkoleszar@google.com> | 2012-07-13 15:21:29 -0700 |
---|---|---|
committer | John Koleszar <jkoleszar@google.com> | 2012-07-17 11:46:03 -0700 |
commit | c6b9039fd94aede59ac1086a379955137fc8e1b8 (patch) | |
tree | f9b20b2ca2114fe9303c8226bb3b368568fd5509 /vp8/decoder/onyxd_if.c | |
parent | 8697c6e454e02c6cf644daa9d29fabd07e846f18 (diff) | |
download | libvpx-c6b9039fd94aede59ac1086a379955137fc8e1b8.tar.gz |
Restyle code
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
Diffstat (limited to 'vp8/decoder/onyxd_if.c')
-rw-r--r-- | vp8/decoder/onyxd_if.c | 728 |
1 files changed, 344 insertions, 384 deletions
diff --git a/vp8/decoder/onyxd_if.c b/vp8/decoder/onyxd_if.c index 201585f8b..992b5db08 100644 --- a/vp8/decoder/onyxd_if.c +++ b/vp8/decoder/onyxd_if.c @@ -35,223 +35,206 @@ extern void vp8_init_loop_filter(VP8_COMMON *cm); extern void vp8cx_init_de_quantizer(VP8D_COMP *pbi); -static int get_free_fb (VP8_COMMON *cm); -static void ref_cnt_fb (int *buf, int *idx, int new_idx); +static int get_free_fb(VP8_COMMON *cm); +static void ref_cnt_fb(int *buf, int *idx, int new_idx); #if CONFIG_DEBUG -void vp8_recon_write_yuv_frame(char *name, YV12_BUFFER_CONFIG *s) -{ - FILE *yuv_file = fopen((char *)name, "ab"); - unsigned char *src = s->y_buffer; - int h = s->y_height; +void vp8_recon_write_yuv_frame(char *name, YV12_BUFFER_CONFIG *s) { + FILE *yuv_file = fopen((char *)name, "ab"); + unsigned char *src = s->y_buffer; + int h = s->y_height; - do - { - fwrite(src, s->y_width, 1, yuv_file); - src += s->y_stride; - } - while (--h); + do { + fwrite(src, s->y_width, 1, yuv_file); + src += s->y_stride; + } while (--h); - src = s->u_buffer; - h = s->uv_height; + src = s->u_buffer; + h = s->uv_height; - do - { - fwrite(src, s->uv_width, 1, yuv_file); - src += s->uv_stride; - } - while (--h); + do { + fwrite(src, s->uv_width, 1, yuv_file); + src += s->uv_stride; + } while (--h); - src = s->v_buffer; - h = s->uv_height; + src = s->v_buffer; + h = s->uv_height; - do - { - fwrite(src, s->uv_width, 1, yuv_file); - src += s->uv_stride; - } - while (--h); + do { + fwrite(src, s->uv_width, 1, yuv_file); + src += s->uv_stride; + } while (--h); - fclose(yuv_file); + fclose(yuv_file); } #endif -//#define WRITE_RECON_BUFFER 1 +// #define WRITE_RECON_BUFFER 1 #if WRITE_RECON_BUFFER -void write_dx_frame_to_file(YV12_BUFFER_CONFIG *frame, int this_frame) -{ +void write_dx_frame_to_file(YV12_BUFFER_CONFIG *frame, int this_frame) { - // write the frame - FILE *yframe; - int i; - char filename[255]; + // write the frame + FILE *yframe; + int i; + char filename[255]; - sprintf(filename, "dx\\y%04d.raw", this_frame); - yframe = fopen(filename, "wb"); + sprintf(filename, "dx\\y%04d.raw", this_frame); + yframe = fopen(filename, "wb"); - for (i = 0; i < frame->y_height; i++) - fwrite(frame->y_buffer + i * frame->y_stride, - frame->y_width, 1, yframe); + for (i = 0; i < frame->y_height; i++) + fwrite(frame->y_buffer + i * frame->y_stride, + frame->y_width, 1, yframe); - fclose(yframe); - sprintf(filename, "dx\\u%04d.raw", this_frame); - yframe = fopen(filename, "wb"); + fclose(yframe); + sprintf(filename, "dx\\u%04d.raw", this_frame); + yframe = fopen(filename, "wb"); - for (i = 0; i < frame->uv_height; i++) - fwrite(frame->u_buffer + i * frame->uv_stride, - frame->uv_width, 1, yframe); + for (i = 0; i < frame->uv_height; i++) + fwrite(frame->u_buffer + i * frame->uv_stride, + frame->uv_width, 1, yframe); - fclose(yframe); - sprintf(filename, "dx\\v%04d.raw", this_frame); - yframe = fopen(filename, "wb"); + fclose(yframe); + sprintf(filename, "dx\\v%04d.raw", this_frame); + yframe = fopen(filename, "wb"); - for (i = 0; i < frame->uv_height; i++) - fwrite(frame->v_buffer + i * frame->uv_stride, - frame->uv_width, 1, yframe); + for (i = 0; i < frame->uv_height; i++) + fwrite(frame->v_buffer + i * frame->uv_stride, + frame->uv_width, 1, yframe); - fclose(yframe); + fclose(yframe); } #endif -void vp8dx_initialize() -{ - static int init_done = 0; +void vp8dx_initialize() { + static int init_done = 0; - if (!init_done) - { - vp8_initialize_common(); - vp8_init_quant_tables(); - vp8_scale_machine_specific_config(); - init_done = 1; - } + if (!init_done) { + vp8_initialize_common(); + vp8_init_quant_tables(); + vp8_scale_machine_specific_config(); + init_done = 1; + } } -VP8D_PTR vp8dx_create_decompressor(VP8D_CONFIG *oxcf) -{ - VP8D_COMP *pbi = vpx_memalign(32, sizeof(VP8D_COMP)); +VP8D_PTR vp8dx_create_decompressor(VP8D_CONFIG *oxcf) { + VP8D_COMP *pbi = vpx_memalign(32, sizeof(VP8D_COMP)); - if (!pbi) - return NULL; + if (!pbi) + return NULL; - vpx_memset(pbi, 0, sizeof(VP8D_COMP)); + vpx_memset(pbi, 0, sizeof(VP8D_COMP)); - if (setjmp(pbi->common.error.jmp)) - { - pbi->common.error.setjmp = 0; - vp8dx_remove_decompressor(pbi); - return 0; - } + if (setjmp(pbi->common.error.jmp)) { + pbi->common.error.setjmp = 0; + vp8dx_remove_decompressor(pbi); + return 0; + } - pbi->common.error.setjmp = 1; - vp8dx_initialize(); + pbi->common.error.setjmp = 1; + vp8dx_initialize(); - vp8_create_common(&pbi->common); - vp8_dmachine_specific_config(pbi); + vp8_create_common(&pbi->common); + vp8_dmachine_specific_config(pbi); - pbi->common.current_video_frame = 0; - pbi->ready_for_new_data = 1; + pbi->common.current_video_frame = 0; + pbi->ready_for_new_data = 1; - /* vp8cx_init_de_quantizer() is first called here. Add check in frame_init_dequantizer() to avoid - * unnecessary calling of vp8cx_init_de_quantizer() for every frame. - */ - vp8cx_init_de_quantizer(pbi); + /* vp8cx_init_de_quantizer() is first called here. Add check in frame_init_dequantizer() to avoid + * unnecessary calling of vp8cx_init_de_quantizer() for every frame. + */ + vp8cx_init_de_quantizer(pbi); - vp8_loop_filter_init(&pbi->common); + vp8_loop_filter_init(&pbi->common); - pbi->common.error.setjmp = 0; + pbi->common.error.setjmp = 0; - pbi->decoded_key_frame = 0; + pbi->decoded_key_frame = 0; - return (VP8D_PTR) pbi; + return (VP8D_PTR) pbi; } -void vp8dx_remove_decompressor(VP8D_PTR ptr) -{ - VP8D_COMP *pbi = (VP8D_COMP *) ptr; +void vp8dx_remove_decompressor(VP8D_PTR ptr) { + VP8D_COMP *pbi = (VP8D_COMP *) ptr; - if (!pbi) - return; + if (!pbi) + return; - // Delete sementation map - if (pbi->common.last_frame_seg_map != 0) - vpx_free(pbi->common.last_frame_seg_map); + // Delete sementation map + if (pbi->common.last_frame_seg_map != 0) + vpx_free(pbi->common.last_frame_seg_map); - vp8_remove_common(&pbi->common); - vpx_free(pbi->mbc); - vpx_free(pbi); + vp8_remove_common(&pbi->common); + vpx_free(pbi->mbc); + vpx_free(pbi); } -vpx_codec_err_t vp8dx_get_reference(VP8D_PTR ptr, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd) -{ - VP8D_COMP *pbi = (VP8D_COMP *) ptr; - VP8_COMMON *cm = &pbi->common; - int ref_fb_idx; - - if (ref_frame_flag == VP8_LAST_FLAG) - ref_fb_idx = cm->lst_fb_idx; - else if (ref_frame_flag == VP8_GOLD_FLAG) - ref_fb_idx = cm->gld_fb_idx; - else if (ref_frame_flag == VP8_ALT_FLAG) - ref_fb_idx = cm->alt_fb_idx; - else{ - vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR, - "Invalid reference frame"); - return pbi->common.error.error_code; - } +vpx_codec_err_t vp8dx_get_reference(VP8D_PTR ptr, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd) { + VP8D_COMP *pbi = (VP8D_COMP *) ptr; + VP8_COMMON *cm = &pbi->common; + int ref_fb_idx; + + if (ref_frame_flag == VP8_LAST_FLAG) + ref_fb_idx = cm->lst_fb_idx; + else if (ref_frame_flag == VP8_GOLD_FLAG) + ref_fb_idx = cm->gld_fb_idx; + else if (ref_frame_flag == VP8_ALT_FLAG) + ref_fb_idx = cm->alt_fb_idx; + else { + vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR, + "Invalid reference frame"); + return pbi->common.error.error_code; + } - if(cm->yv12_fb[ref_fb_idx].y_height != sd->y_height || - cm->yv12_fb[ref_fb_idx].y_width != sd->y_width || - cm->yv12_fb[ref_fb_idx].uv_height != sd->uv_height || - cm->yv12_fb[ref_fb_idx].uv_width != sd->uv_width){ - vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR, - "Incorrect buffer dimensions"); - } - else - vp8_yv12_copy_frame_ptr(&cm->yv12_fb[ref_fb_idx], sd); + if (cm->yv12_fb[ref_fb_idx].y_height != sd->y_height || + cm->yv12_fb[ref_fb_idx].y_width != sd->y_width || + cm->yv12_fb[ref_fb_idx].uv_height != sd->uv_height || + cm->yv12_fb[ref_fb_idx].uv_width != sd->uv_width) { + vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR, + "Incorrect buffer dimensions"); + } else + vp8_yv12_copy_frame_ptr(&cm->yv12_fb[ref_fb_idx], sd); - return pbi->common.error.error_code; + return pbi->common.error.error_code; } -vpx_codec_err_t vp8dx_set_reference(VP8D_PTR ptr, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd) -{ - VP8D_COMP *pbi = (VP8D_COMP *) ptr; - VP8_COMMON *cm = &pbi->common; - int *ref_fb_ptr = NULL; - int free_fb; - - if (ref_frame_flag == VP8_LAST_FLAG) - ref_fb_ptr = &cm->lst_fb_idx; - else if (ref_frame_flag == VP8_GOLD_FLAG) - ref_fb_ptr = &cm->gld_fb_idx; - else if (ref_frame_flag == VP8_ALT_FLAG) - ref_fb_ptr = &cm->alt_fb_idx; - else{ - vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR, - "Invalid reference frame"); - return pbi->common.error.error_code; - } +vpx_codec_err_t vp8dx_set_reference(VP8D_PTR ptr, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd) { + VP8D_COMP *pbi = (VP8D_COMP *) ptr; + VP8_COMMON *cm = &pbi->common; + int *ref_fb_ptr = NULL; + int free_fb; + + if (ref_frame_flag == VP8_LAST_FLAG) + ref_fb_ptr = &cm->lst_fb_idx; + else if (ref_frame_flag == VP8_GOLD_FLAG) + ref_fb_ptr = &cm->gld_fb_idx; + else if (ref_frame_flag == VP8_ALT_FLAG) + ref_fb_ptr = &cm->alt_fb_idx; + else { + vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR, + "Invalid reference frame"); + return pbi->common.error.error_code; + } - if(cm->yv12_fb[*ref_fb_ptr].y_height != sd->y_height || - cm->yv12_fb[*ref_fb_ptr].y_width != sd->y_width || - cm->yv12_fb[*ref_fb_ptr].uv_height != sd->uv_height || - cm->yv12_fb[*ref_fb_ptr].uv_width != sd->uv_width){ - vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR, - "Incorrect buffer dimensions"); - } - else{ - /* Find an empty frame buffer. */ - free_fb = get_free_fb(cm); - /* Decrease fb_idx_ref_cnt since it will be increased again in - * ref_cnt_fb() below. */ - cm->fb_idx_ref_cnt[free_fb]--; - - /* Manage the reference counters and copy image. */ - ref_cnt_fb (cm->fb_idx_ref_cnt, ref_fb_ptr, free_fb); - vp8_yv12_copy_frame_ptr(sd, &cm->yv12_fb[*ref_fb_ptr]); - } + if (cm->yv12_fb[*ref_fb_ptr].y_height != sd->y_height || + cm->yv12_fb[*ref_fb_ptr].y_width != sd->y_width || + cm->yv12_fb[*ref_fb_ptr].uv_height != sd->uv_height || + cm->yv12_fb[*ref_fb_ptr].uv_width != sd->uv_width) { + vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR, + "Incorrect buffer dimensions"); + } else { + /* Find an empty frame buffer. */ + free_fb = get_free_fb(cm); + /* Decrease fb_idx_ref_cnt since it will be increased again in + * ref_cnt_fb() below. */ + cm->fb_idx_ref_cnt[free_fb]--; + + /* Manage the reference counters and copy image. */ + ref_cnt_fb(cm->fb_idx_ref_cnt, ref_fb_ptr, free_fb); + vp8_yv12_copy_frame_ptr(sd, &cm->yv12_fb[*ref_fb_ptr]); + } - return pbi->common.error.error_code; + return pbi->common.error.error_code; } /*For ARM NEON, d8-d15 are callee-saved registers, and need to be saved by us.*/ @@ -260,84 +243,77 @@ extern void vp8_push_neon(int64_t *store); extern void vp8_pop_neon(int64_t *store); #endif -static int get_free_fb (VP8_COMMON *cm) -{ - int i; - for (i = 0; i < NUM_YV12_BUFFERS; i++) - if (cm->fb_idx_ref_cnt[i] == 0) - break; +static int get_free_fb(VP8_COMMON *cm) { + int i; + for (i = 0; i < NUM_YV12_BUFFERS; i++) + if (cm->fb_idx_ref_cnt[i] == 0) + break; - assert(i < NUM_YV12_BUFFERS); - cm->fb_idx_ref_cnt[i] = 1; - return i; + assert(i < NUM_YV12_BUFFERS); + cm->fb_idx_ref_cnt[i] = 1; + return i; } -static void ref_cnt_fb (int *buf, int *idx, int new_idx) -{ - if (buf[*idx] > 0) - buf[*idx]--; +static void ref_cnt_fb(int *buf, int *idx, int new_idx) { + if (buf[*idx] > 0) + buf[*idx]--; - *idx = new_idx; + *idx = new_idx; - buf[new_idx]++; + buf[new_idx]++; } /* If any buffer copy / swapping is signalled it should be done here. */ -static int swap_frame_buffers (VP8_COMMON *cm) -{ - int err = 0; - - /* The alternate reference frame or golden frame can be updated - * using the new, last, or golden/alt ref frame. If it - * is updated using the newly decoded frame it is a refresh. - * An update using the last or golden/alt ref frame is a copy. - */ - if (cm->copy_buffer_to_arf) - { - int new_fb = 0; - - if (cm->copy_buffer_to_arf == 1) - new_fb = cm->lst_fb_idx; - else if (cm->copy_buffer_to_arf == 2) - new_fb = cm->gld_fb_idx; - else - err = -1; +static int swap_frame_buffers(VP8_COMMON *cm) { + int err = 0; + + /* The alternate reference frame or golden frame can be updated + * using the new, last, or golden/alt ref frame. If it + * is updated using the newly decoded frame it is a refresh. + * An update using the last or golden/alt ref frame is a copy. + */ + if (cm->copy_buffer_to_arf) { + int new_fb = 0; + + if (cm->copy_buffer_to_arf == 1) + new_fb = cm->lst_fb_idx; + else if (cm->copy_buffer_to_arf == 2) + new_fb = cm->gld_fb_idx; + else + err = -1; - ref_cnt_fb (cm->fb_idx_ref_cnt, &cm->alt_fb_idx, new_fb); - } + ref_cnt_fb(cm->fb_idx_ref_cnt, &cm->alt_fb_idx, new_fb); + } - if (cm->copy_buffer_to_gf) - { - int new_fb = 0; + if (cm->copy_buffer_to_gf) { + int new_fb = 0; - if (cm->copy_buffer_to_gf == 1) - new_fb = cm->lst_fb_idx; - else if (cm->copy_buffer_to_gf == 2) - new_fb = cm->alt_fb_idx; - else - err = -1; + if (cm->copy_buffer_to_gf == 1) + new_fb = cm->lst_fb_idx; + else if (cm->copy_buffer_to_gf == 2) + new_fb = cm->alt_fb_idx; + else + err = -1; - ref_cnt_fb (cm->fb_idx_ref_cnt, &cm->gld_fb_idx, new_fb); - } + ref_cnt_fb(cm->fb_idx_ref_cnt, &cm->gld_fb_idx, new_fb); + } - if (cm->refresh_golden_frame) - ref_cnt_fb (cm->fb_idx_ref_cnt, &cm->gld_fb_idx, cm->new_fb_idx); + if (cm->refresh_golden_frame) + ref_cnt_fb(cm->fb_idx_ref_cnt, &cm->gld_fb_idx, cm->new_fb_idx); - if (cm->refresh_alt_ref_frame) - ref_cnt_fb (cm->fb_idx_ref_cnt, &cm->alt_fb_idx, cm->new_fb_idx); + if (cm->refresh_alt_ref_frame) + ref_cnt_fb(cm->fb_idx_ref_cnt, &cm->alt_fb_idx, cm->new_fb_idx); - if (cm->refresh_last_frame) - { - ref_cnt_fb (cm->fb_idx_ref_cnt, &cm->lst_fb_idx, cm->new_fb_idx); + if (cm->refresh_last_frame) { + ref_cnt_fb(cm->fb_idx_ref_cnt, &cm->lst_fb_idx, cm->new_fb_idx); - cm->frame_to_show = &cm->yv12_fb[cm->lst_fb_idx]; - } - else - cm->frame_to_show = &cm->yv12_fb[cm->new_fb_idx]; + cm->frame_to_show = &cm->yv12_fb[cm->lst_fb_idx]; + } else + cm->frame_to_show = &cm->yv12_fb[cm->new_fb_idx]; - cm->fb_idx_ref_cnt[cm->new_fb_idx]--; + cm->fb_idx_ref_cnt[cm->new_fb_idx]--; - return err; + return err; } /* @@ -356,233 +332,217 @@ static void vp8_print_yuv_rec_mb(VP8_COMMON *cm, int mb_row, int mb_col) } */ -int vp8dx_receive_compressed_data(VP8D_PTR ptr, unsigned long size, const unsigned char *source, int64_t time_stamp) -{ +int vp8dx_receive_compressed_data(VP8D_PTR ptr, unsigned long size, const unsigned char *source, int64_t time_stamp) { #if HAVE_ARMV7 - int64_t dx_store_reg[8]; + int64_t dx_store_reg[8]; #endif - VP8D_COMP *pbi = (VP8D_COMP *) ptr; - VP8_COMMON *cm = &pbi->common; - int retcode = 0; + VP8D_COMP *pbi = (VP8D_COMP *) ptr; + VP8_COMMON *cm = &pbi->common; + int retcode = 0; - /*if(pbi->ready_for_new_data == 0) - return -1;*/ + /*if(pbi->ready_for_new_data == 0) + return -1;*/ - if (ptr == 0) - { - return -1; - } + if (ptr == 0) { + return -1; + } - pbi->common.error.error_code = VPX_CODEC_OK; + pbi->common.error.error_code = VPX_CODEC_OK; - pbi->Source = source; - pbi->source_sz = size; + pbi->Source = source; + pbi->source_sz = size; - if (pbi->source_sz == 0) - { - /* This is used to signal that we are missing frames. - * We do not know if the missing frame(s) was supposed to update - * any of the reference buffers, but we act conservative and - * mark only the last buffer as corrupted. - */ - cm->yv12_fb[cm->lst_fb_idx].corrupted = 1; - } + if (pbi->source_sz == 0) { + /* This is used to signal that we are missing frames. + * We do not know if the missing frame(s) was supposed to update + * any of the reference buffers, but we act conservative and + * mark only the last buffer as corrupted. + */ + cm->yv12_fb[cm->lst_fb_idx].corrupted = 1; + } #if HAVE_ARMV7 #if CONFIG_RUNTIME_CPU_DETECT - if (cm->rtcd.flags & HAS_NEON) + if (cm->rtcd.flags & HAS_NEON) #endif - { - vp8_push_neon(dx_store_reg); - } + { + vp8_push_neon(dx_store_reg); + } #endif - cm->new_fb_idx = get_free_fb (cm); + cm->new_fb_idx = get_free_fb(cm); - if (setjmp(pbi->common.error.jmp)) - { + if (setjmp(pbi->common.error.jmp)) { #if HAVE_ARMV7 #if CONFIG_RUNTIME_CPU_DETECT - if (cm->rtcd.flags & HAS_NEON) + if (cm->rtcd.flags & HAS_NEON) #endif - { - vp8_pop_neon(dx_store_reg); - } + { + vp8_pop_neon(dx_store_reg); + } #endif - pbi->common.error.setjmp = 0; + pbi->common.error.setjmp = 0; - /* We do not know if the missing frame(s) was supposed to update - * any of the reference buffers, but we act conservative and - * mark only the last buffer as corrupted. - */ - cm->yv12_fb[cm->lst_fb_idx].corrupted = 1; + /* We do not know if the missing frame(s) was supposed to update + * any of the reference buffers, but we act conservative and + * mark only the last buffer as corrupted. + */ + cm->yv12_fb[cm->lst_fb_idx].corrupted = 1; - if (cm->fb_idx_ref_cnt[cm->new_fb_idx] > 0) - cm->fb_idx_ref_cnt[cm->new_fb_idx]--; - return -1; - } + if (cm->fb_idx_ref_cnt[cm->new_fb_idx] > 0) + cm->fb_idx_ref_cnt[cm->new_fb_idx]--; + return -1; + } - pbi->common.error.setjmp = 1; + pbi->common.error.setjmp = 1; - retcode = vp8_decode_frame(pbi); + retcode = vp8_decode_frame(pbi); - if (retcode < 0) - { + if (retcode < 0) { #if HAVE_ARMV7 #if CONFIG_RUNTIME_CPU_DETECT - if (cm->rtcd.flags & HAS_NEON) -#endif - { - vp8_pop_neon(dx_store_reg); - } + if (cm->rtcd.flags & HAS_NEON) #endif - pbi->common.error.error_code = VPX_CODEC_ERROR; - pbi->common.error.setjmp = 0; - if (cm->fb_idx_ref_cnt[cm->new_fb_idx] > 0) - cm->fb_idx_ref_cnt[cm->new_fb_idx]--; - return retcode; + { + vp8_pop_neon(dx_store_reg); } +#endif + pbi->common.error.error_code = VPX_CODEC_ERROR; + pbi->common.error.setjmp = 0; + if (cm->fb_idx_ref_cnt[cm->new_fb_idx] > 0) + cm->fb_idx_ref_cnt[cm->new_fb_idx]--; + return retcode; + } - { - if (swap_frame_buffers (cm)) - { + { + if (swap_frame_buffers(cm)) { #if HAVE_ARMV7 #if CONFIG_RUNTIME_CPU_DETECT - if (cm->rtcd.flags & HAS_NEON) + if (cm->rtcd.flags & HAS_NEON) #endif - { - vp8_pop_neon(dx_store_reg); - } + { + vp8_pop_neon(dx_store_reg); + } #endif - pbi->common.error.error_code = VPX_CODEC_ERROR; - pbi->common.error.setjmp = 0; - return -1; - } + pbi->common.error.error_code = VPX_CODEC_ERROR; + pbi->common.error.setjmp = 0; + return -1; + } #if WRITE_RECON_BUFFER - if(cm->show_frame) - write_dx_frame_to_file(cm->frame_to_show, - cm->current_video_frame); - else - write_dx_frame_to_file(cm->frame_to_show, - cm->current_video_frame+1000); + if (cm->show_frame) + write_dx_frame_to_file(cm->frame_to_show, + cm->current_video_frame); + else + write_dx_frame_to_file(cm->frame_to_show, + cm->current_video_frame + 1000); #endif - if(cm->filter_level) - { - /* Apply the loop filter if appropriate. */ - vp8_loop_filter_frame(cm, &pbi->mb); - } - vp8_yv12_extend_frame_borders_ptr(cm->frame_to_show); + if (cm->filter_level) { + /* Apply the loop filter if appropriate. */ + vp8_loop_filter_frame(cm, &pbi->mb); } + vp8_yv12_extend_frame_borders_ptr(cm->frame_to_show); + } #if CONFIG_DEBUG - if(cm->show_frame) - vp8_recon_write_yuv_frame("recon.yuv", cm->frame_to_show); + if (cm->show_frame) + vp8_recon_write_yuv_frame("recon.yuv", cm->frame_to_show); #endif - vp8_clear_system_state(); + vp8_clear_system_state(); - if(cm->show_frame) - { - vpx_memcpy(cm->prev_mip, cm->mip, - (cm->mb_cols + 1) * (cm->mb_rows + 1)* sizeof(MODE_INFO)); - } - else - { - vpx_memset(cm->prev_mip, 0, - (cm->mb_cols + 1) * (cm->mb_rows + 1)* sizeof(MODE_INFO)); - } + if (cm->show_frame) { + vpx_memcpy(cm->prev_mip, cm->mip, + (cm->mb_cols + 1) * (cm->mb_rows + 1)* sizeof(MODE_INFO)); + } else { + vpx_memset(cm->prev_mip, 0, + (cm->mb_cols + 1) * (cm->mb_rows + 1)* sizeof(MODE_INFO)); + } - /*vp8_print_modes_and_motion_vectors( cm->mi, cm->mb_rows,cm->mb_cols, cm->current_video_frame);*/ + /*vp8_print_modes_and_motion_vectors( cm->mi, cm->mb_rows,cm->mb_cols, cm->current_video_frame);*/ - if (cm->show_frame) - cm->current_video_frame++; + if (cm->show_frame) + cm->current_video_frame++; - pbi->ready_for_new_data = 0; - pbi->last_time_stamp = time_stamp; - pbi->source_sz = 0; + pbi->ready_for_new_data = 0; + pbi->last_time_stamp = time_stamp; + pbi->source_sz = 0; #if 0 - { - int i; - int64_t earliest_time = pbi->dr[0].time_stamp; - int64_t latest_time = pbi->dr[0].time_stamp; - int64_t time_diff = 0; - int bytes = 0; - - pbi->dr[pbi->common.current_video_frame&0xf].size = pbi->bc.pos + pbi->bc2.pos + 4;; - pbi->dr[pbi->common.current_video_frame&0xf].time_stamp = time_stamp; + { + int i; + int64_t earliest_time = pbi->dr[0].time_stamp; + int64_t latest_time = pbi->dr[0].time_stamp; + int64_t time_diff = 0; + int bytes = 0; - for (i = 0; i < 16; i++) - { + pbi->dr[pbi->common.current_video_frame & 0xf].size = pbi->bc.pos + pbi->bc2.pos + 4;; + pbi->dr[pbi->common.current_video_frame & 0xf].time_stamp = time_stamp; - bytes += pbi->dr[i].size; + for (i = 0; i < 16; i++) { - if (pbi->dr[i].time_stamp < earliest_time) - earliest_time = pbi->dr[i].time_stamp; + bytes += pbi->dr[i].size; - if (pbi->dr[i].time_stamp > latest_time) - latest_time = pbi->dr[i].time_stamp; - } + if (pbi->dr[i].time_stamp < earliest_time) + earliest_time = pbi->dr[i].time_stamp; - time_diff = latest_time - earliest_time; + if (pbi->dr[i].time_stamp > latest_time) + latest_time = pbi->dr[i].time_stamp; + } - if (time_diff > 0) - { - pbi->common.bitrate = 80000.00 * bytes / time_diff ; - pbi->common.framerate = 160000000.00 / time_diff ; - } + time_diff = latest_time - earliest_time; + if (time_diff > 0) { + pbi->common.bitrate = 80000.00 * bytes / time_diff; + pbi->common.framerate = 160000000.00 / time_diff; } + + } #endif #if HAVE_ARMV7 #if CONFIG_RUNTIME_CPU_DETECT - if (cm->rtcd.flags & HAS_NEON) + if (cm->rtcd.flags & HAS_NEON) #endif - { - vp8_pop_neon(dx_store_reg); - } + { + vp8_pop_neon(dx_store_reg); + } #endif - pbi->common.error.setjmp = 0; - return retcode; + pbi->common.error.setjmp = 0; + return retcode; } -int vp8dx_get_raw_frame(VP8D_PTR ptr, YV12_BUFFER_CONFIG *sd, int64_t *time_stamp, int64_t *time_end_stamp, vp8_ppflags_t *flags) -{ - int ret = -1; - VP8D_COMP *pbi = (VP8D_COMP *) ptr; +int vp8dx_get_raw_frame(VP8D_PTR ptr, YV12_BUFFER_CONFIG *sd, int64_t *time_stamp, int64_t *time_end_stamp, vp8_ppflags_t *flags) { + int ret = -1; + VP8D_COMP *pbi = (VP8D_COMP *) ptr; - if (pbi->ready_for_new_data == 1) - return ret; + if (pbi->ready_for_new_data == 1) + return ret; - /* ie no raw frame to show!!! */ - if (pbi->common.show_frame == 0) - return ret; + /* ie no raw frame to show!!! */ + if (pbi->common.show_frame == 0) + return ret; - pbi->ready_for_new_data = 1; - *time_stamp = pbi->last_time_stamp; - *time_end_stamp = 0; + pbi->ready_for_new_data = 1; + *time_stamp = pbi->last_time_stamp; + *time_end_stamp = 0; - sd->clrtype = pbi->common.clr_type; + sd->clrtype = pbi->common.clr_type; #if CONFIG_POSTPROC - ret = vp8_post_proc_frame(&pbi->common, sd, flags); + ret = vp8_post_proc_frame(&pbi->common, sd, flags); #else - if (pbi->common.frame_to_show) - { - *sd = *pbi->common.frame_to_show; - sd->y_width = pbi->common.Width; - sd->y_height = pbi->common.Height; - sd->uv_height = pbi->common.Height / 2; - ret = 0; - } - else - { - ret = -1; - } + if (pbi->common.frame_to_show) { + *sd = *pbi->common.frame_to_show; + sd->y_width = pbi->common.Width; + sd->y_height = pbi->common.Height; + sd->uv_height = pbi->common.Height / 2; + ret = 0; + } else { + ret = -1; + } #endif /*!CONFIG_POSTPROC*/ - vp8_clear_system_state(); - return ret; + vp8_clear_system_state(); + return ret; } |