History

Return status in vp9_extrc_create/init/delete

Bug: webm:1716

Angie Chiang committed 5 years ago

Commit f4fc5621 parent ecbb0e02 files · +39 −13Browse files

Unified · Split

2 files
  1. vp9/encoder/vp9_ext_ratectrl.c +34 −9
  2. vp9/encoder/vp9_ext_ratectrl.h +5 −4
vp9/encoder/vp9_ext_ratectrl.c+34−9
@@ -13,31 +13,56 @@ · 12 unmodified lines
13#include "vp9/common/vp9_common.h"13#include "vp9/common/vp9_common.h"
14#include "vpx_dsp/psnr.h"14#include "vpx_dsp/psnr.h"
15 15
16void vp9_extrc_init(EXT_RATECTRL *ext_ratectrl) { vp9_zero(*ext_ratectrl); }16vpx_codec_err_t vp9_extrc_init(EXT_RATECTRL *ext_ratectrl) {
17 if (ext_ratectrl == NULL) {
18 return VPX_CODEC_ERROR;
19 }
20 vp9_zero(*ext_ratectrl);
21 return VPX_CODEC_OK;
22}
17 23
18void vp9_extrc_create(vpx_rc_funcs_t funcs, vpx_rc_config_t ratectrl_config,24vpx_codec_err_t vp9_extrc_create(vpx_rc_funcs_t funcs,
19 EXT_RATECTRL *ext_ratectrl) {25 vpx_rc_config_t ratectrl_config,
26 EXT_RATECTRL *ext_ratectrl) {
27 vpx_rc_status_t rc_status;
20 vpx_rc_firstpass_stats_t *rc_firstpass_stats;28 vpx_rc_firstpass_stats_t *rc_firstpass_stats;
29 if (ext_ratectrl == NULL) {
30 return VPX_CODEC_ERROR;
31 }
21 vp9_extrc_delete(ext_ratectrl);32 vp9_extrc_delete(ext_ratectrl);
22 ext_ratectrl->funcs = funcs;33 ext_ratectrl->funcs = funcs;
23 ext_ratectrl->ratectrl_config = ratectrl_config;34 ext_ratectrl->ratectrl_config = ratectrl_config;
24 ext_ratectrl->funcs.create_model(ext_ratectrl->funcs.priv,35 rc_status = ext_ratectrl->funcs.create_model(ext_ratectrl->funcs.priv,
25 &ext_ratectrl->ratectrl_config,36 &ext_ratectrl->ratectrl_config,
26 &ext_ratectrl->model);37 &ext_ratectrl->model);
38 if (rc_status == VPX_RC_ERROR) {
39 return VPX_CODEC_ERROR;
40 }
27 rc_firstpass_stats = &ext_ratectrl->rc_firstpass_stats;41 rc_firstpass_stats = &ext_ratectrl->rc_firstpass_stats;
28 rc_firstpass_stats->num_frames = ratectrl_config.show_frame_count;42 rc_firstpass_stats->num_frames = ratectrl_config.show_frame_count;
29 rc_firstpass_stats->frame_stats =43 rc_firstpass_stats->frame_stats =
30 vpx_malloc(sizeof(*rc_firstpass_stats->frame_stats) *44 vpx_malloc(sizeof(*rc_firstpass_stats->frame_stats) *
31 rc_firstpass_stats->num_frames);45 rc_firstpass_stats->num_frames);
46 if (rc_firstpass_stats->frame_stats == NULL) {
47 return VPX_CODEC_MEM_ERROR;
48 }
32 ext_ratectrl->ready = 1;49 ext_ratectrl->ready = 1;
50 return VPX_CODEC_OK;
33}51}
34 52
35void vp9_extrc_delete(EXT_RATECTRL *ext_ratectrl) {53vpx_codec_err_t vp9_extrc_delete(EXT_RATECTRL *ext_ratectrl) {
54 if (ext_ratectrl == NULL) {
55 return VPX_CODEC_ERROR;
56 }
36 if (ext_ratectrl->ready) {57 if (ext_ratectrl->ready) {
37 ext_ratectrl->funcs.delete_model(ext_ratectrl->model);58 vpx_rc_status_t rc_status =
59 ext_ratectrl->funcs.delete_model(ext_ratectrl->model);
60 if (rc_status == VPX_RC_ERROR) {
61 return VPX_CODEC_ERROR;
62 }
38 vpx_free(ext_ratectrl->rc_firstpass_stats.frame_stats);63 vpx_free(ext_ratectrl->rc_firstpass_stats.frame_stats);
39 }64 }
40 vp9_extrc_init(ext_ratectrl);65 return vp9_extrc_init(ext_ratectrl);
41}66}
42 67
43static void gen_rc_firstpass_stats(const FIRSTPASS_STATS *stats,68static void gen_rc_firstpass_stats(const FIRSTPASS_STATS *stats,
vp9/encoder/vp9_ext_ratectrl.h+5−4
@@ -22,12 +22,13 @@ typedef struct EXT_RATECTRL { · 21 unmodified lines
22 vpx_rc_firstpass_stats_t rc_firstpass_stats;22 vpx_rc_firstpass_stats_t rc_firstpass_stats;
23} EXT_RATECTRL;23} EXT_RATECTRL;
24 24
25void vp9_extrc_init(EXT_RATECTRL *ext_ratectrl);25vpx_codec_err_t vp9_extrc_init(EXT_RATECTRL *ext_ratectrl);
26 26
27void vp9_extrc_create(vpx_rc_funcs_t funcs, vpx_rc_config_t ratectrl_config,27vpx_codec_err_t vp9_extrc_create(vpx_rc_funcs_t funcs,
28 EXT_RATECTRL *ext_ratectrl);28 vpx_rc_config_t ratectrl_config,
29 EXT_RATECTRL *ext_ratectrl);
29 30
30void vp9_extrc_delete(EXT_RATECTRL *ext_ratectrl);31vpx_codec_err_t vp9_extrc_delete(EXT_RATECTRL *ext_ratectrl);
31 32
32void vp9_extrc_send_firstpass_stats(EXT_RATECTRL *ext_ratectrl,33void vp9_extrc_send_firstpass_stats(EXT_RATECTRL *ext_ratectrl,
33 const FIRST_PASS_INFO *first_pass_info);34 const FIRST_PASS_INFO *first_pass_info);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t