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
1313 #include "vp9/common/vp9_common.h"
1414 #include "vpx_dsp/psnr.h"
1515
16−void vp9_extrc_init(EXT_RATECTRL *ext_ratectrl) { vp9_zero(*ext_ratectrl); }
16+vpx_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+}
1723
18−void vp9_extrc_create(vpx_rc_funcs_t funcs, vpx_rc_config_t ratectrl_config,
19− EXT_RATECTRL *ext_ratectrl) {
24+vpx_codec_err_t vp9_extrc_create(vpx_rc_funcs_t funcs,
25+ vpx_rc_config_t ratectrl_config,
26+ EXT_RATECTRL *ext_ratectrl) {
27+ vpx_rc_status_t rc_status;
2028 vpx_rc_firstpass_stats_t *rc_firstpass_stats;
29+ if (ext_ratectrl == NULL) {
30+ return VPX_CODEC_ERROR;
31+ }
2132 vp9_extrc_delete(ext_ratectrl);
2233 ext_ratectrl->funcs = funcs;
2334 ext_ratectrl->ratectrl_config = ratectrl_config;
24− ext_ratectrl->funcs.create_model(ext_ratectrl->funcs.priv,
25− &ext_ratectrl->ratectrl_config,
26− &ext_ratectrl->model);
35+ rc_status = ext_ratectrl->funcs.create_model(ext_ratectrl->funcs.priv,
36+ &ext_ratectrl->ratectrl_config,
37+ &ext_ratectrl->model);
38+ if (rc_status == VPX_RC_ERROR) {
39+ return VPX_CODEC_ERROR;
40+ }
2741 rc_firstpass_stats = &ext_ratectrl->rc_firstpass_stats;
2842 rc_firstpass_stats->num_frames = ratectrl_config.show_frame_count;
2943 rc_firstpass_stats->frame_stats =
3044 vpx_malloc(sizeof(*rc_firstpass_stats->frame_stats) *
3145 rc_firstpass_stats->num_frames);
46+ if (rc_firstpass_stats->frame_stats == NULL) {
47+ return VPX_CODEC_MEM_ERROR;
48+ }
3249 ext_ratectrl->ready = 1;
50+ return VPX_CODEC_OK;
3351 }
3452
35−void vp9_extrc_delete(EXT_RATECTRL *ext_ratectrl) {
53+vpx_codec_err_t vp9_extrc_delete(EXT_RATECTRL *ext_ratectrl) {
54+ if (ext_ratectrl == NULL) {
55+ return VPX_CODEC_ERROR;
56+ }
3657 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+ }
3863 vpx_free(ext_ratectrl->rc_firstpass_stats.frame_stats);
3964 }
40− vp9_extrc_init(ext_ratectrl);
65+ return vp9_extrc_init(ext_ratectrl);
4166 }
4267
4368 static 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
2222 vpx_rc_firstpass_stats_t rc_firstpass_stats;
2323 } EXT_RATECTRL;
2424
25−void vp9_extrc_init(EXT_RATECTRL *ext_ratectrl);
25+vpx_codec_err_t vp9_extrc_init(EXT_RATECTRL *ext_ratectrl);
2626
27−void vp9_extrc_create(vpx_rc_funcs_t funcs, vpx_rc_config_t ratectrl_config,
28− EXT_RATECTRL *ext_ratectrl);
27+vpx_codec_err_t vp9_extrc_create(vpx_rc_funcs_t funcs,
28+ vpx_rc_config_t ratectrl_config,
29+ EXT_RATECTRL *ext_ratectrl);
2930
30−void vp9_extrc_delete(EXT_RATECTRL *ext_ratectrl);
31+vpx_codec_err_t vp9_extrc_delete(EXT_RATECTRL *ext_ratectrl);
3132
3233 void vp9_extrc_send_firstpass_stats(EXT_RATECTRL *ext_ratectrl,
3334 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