History

lavfi/dnn_io_proc: Return Specific Error Codes

This commit returns specific error codes from the functions in the dnn_io_proc instead of DNN_ERROR.

Shubhanshu Saxena committed 4 years ago

Commit d0587da1 parent b602f112 files · +30 −26Browse files

Showing the changes to libavfilter (2 of 2 files). Show all

Unified · Split

2 files
  1. libavfilter/dnn/dnn_io_proc.c +26 −22
  2. libavfilter/dnn/dnn_io_proc.h +4 −4
libavfilter/dnn/dnn_io_proc.c+26−22
@@ -24,16 +24,16 @@ · 23 unmodified lines
2424 #include "libavutil/avassert.h"
2525 #include "libavutil/detection_bbox.h"
2626
27−DNNReturnType ff_proc_from_dnn_to_frame(AVFrame *frame, DNNData *output, void *log_ctx)
27+int ff_proc_from_dnn_to_frame(AVFrame *frame, DNNData *output, void *log_ctx)
2828 {
2929 struct SwsContext *sws_ctx;
3030 int bytewidth = av_image_get_linesize(frame->format, frame->width, 0);
3131 if (bytewidth < 0) {
32− return DNN_ERROR;
32+ return AVERROR(EINVAL);
3333 }
3434 if (output->dt != DNN_FLOAT) {
3535 avpriv_report_missing_feature(log_ctx, "data type rather than DNN_FLOAT");
36− return DNN_ERROR;
36+ return AVERROR(ENOSYS);
3737 }
3838
3939 switch (frame->format) {
@@ -51,7 +51,7 @@ DNNReturnType ff_proc_from_dnn_to_frame(AVFrame *frame, DNNData *output, void *l · 11 unmodified lines
5151 "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n",
5252 av_get_pix_fmt_name(AV_PIX_FMT_GRAYF32), frame->width * 3, frame->height,
5353 av_get_pix_fmt_name(AV_PIX_FMT_GRAY8), frame->width * 3, frame->height);
54− return DNN_ERROR;
54+ return AVERROR(EINVAL);
5555 }
5656 sws_scale(sws_ctx, (const uint8_t *[4]){(const uint8_t *)output->data, 0, 0, 0},
5757 (const int[4]){frame->width * 3 * sizeof(float), 0, 0, 0}, 0, frame->height,
@@ -82,7 +82,7 @@ DNNReturnType ff_proc_from_dnn_to_frame(AVFrame *frame, DNNData *output, void *l · 24 unmodified lines
8282 "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n",
8383 av_get_pix_fmt_name(AV_PIX_FMT_GRAYF32), frame->width, frame->height,
8484 av_get_pix_fmt_name(AV_PIX_FMT_GRAY8), frame->width, frame->height);
85− return DNN_ERROR;
85+ return AVERROR(EINVAL);
8686 }
8787 sws_scale(sws_ctx, (const uint8_t *[4]){(const uint8_t *)output->data, 0, 0, 0},
8888 (const int[4]){frame->width * sizeof(float), 0, 0, 0}, 0, frame->height,
@@ -91,22 +91,22 @@ DNNReturnType ff_proc_from_dnn_to_frame(AVFrame *frame, DNNData *output, void *l · 2 unmodified lines
9191 return DNN_SUCCESS;
9292 default:
9393 avpriv_report_missing_feature(log_ctx, "%s", av_get_pix_fmt_name(frame->format));
94− return DNN_ERROR;
94+ return AVERROR(ENOSYS);
9595 }
9696
9797 return DNN_SUCCESS;
9898 }
9999
100−DNNReturnType ff_proc_from_frame_to_dnn(AVFrame *frame, DNNData *input, void *log_ctx)
100+int ff_proc_from_frame_to_dnn(AVFrame *frame, DNNData *input, void *log_ctx)
101101 {
102102 struct SwsContext *sws_ctx;
103103 int bytewidth = av_image_get_linesize(frame->format, frame->width, 0);
104104 if (bytewidth < 0) {
105− return DNN_ERROR;
105+ return AVERROR(EINVAL);
106106 }
107107 if (input->dt != DNN_FLOAT) {
108108 avpriv_report_missing_feature(log_ctx, "data type rather than DNN_FLOAT");
109− return DNN_ERROR;
109+ return AVERROR(ENOSYS);
110110 }
111111
112112 switch (frame->format) {
@@ -124,7 +124,7 @@ DNNReturnType ff_proc_from_frame_to_dnn(AVFrame *frame, DNNData *input, void *lo · 11 unmodified lines
124124 "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n",
125125 av_get_pix_fmt_name(AV_PIX_FMT_GRAY8), frame->width * 3, frame->height,
126126 av_get_pix_fmt_name(AV_PIX_FMT_GRAYF32),frame->width * 3, frame->height);
127− return DNN_ERROR;
127+ return AVERROR(EINVAL);
128128 }
129129 sws_scale(sws_ctx, (const uint8_t **)frame->data,
130130 frame->linesize, 0, frame->height,
@@ -156,7 +156,7 @@ DNNReturnType ff_proc_from_frame_to_dnn(AVFrame *frame, DNNData *input, void *lo · 25 unmodified lines
156156 "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n",
157157 av_get_pix_fmt_name(AV_PIX_FMT_GRAY8), frame->width, frame->height,
158158 av_get_pix_fmt_name(AV_PIX_FMT_GRAYF32),frame->width, frame->height);
159− return DNN_ERROR;
159+ return AVERROR(EINVAL);
160160 }
161161 sws_scale(sws_ctx, (const uint8_t **)frame->data,
162162 frame->linesize, 0, frame->height,
@@ -166,7 +166,7 @@ DNNReturnType ff_proc_from_frame_to_dnn(AVFrame *frame, DNNData *input, void *lo · 3 unmodified lines
166166 break;
167167 default:
168168 avpriv_report_missing_feature(log_ctx, "%s", av_get_pix_fmt_name(frame->format));
169− return DNN_ERROR;
169+ return AVERROR(ENOSYS);
170170 }
171171
172172 return DNN_SUCCESS;
@@ -190,13 +190,14 @@ static enum AVPixelFormat get_pixel_format(DNNData *data) · 17 unmodified lines
190190 return AV_PIX_FMT_BGR24;
191191 }
192192
193−DNNReturnType ff_frame_to_dnn_classify(AVFrame *frame, DNNData *input, uint32_t bbox_index, void *log_ctx)
193+int ff_frame_to_dnn_classify(AVFrame *frame, DNNData *input, uint32_t bbox_index, void *log_ctx)
194194 {
195195 const AVPixFmtDescriptor *desc;
196196 int offsetx[4], offsety[4];
197197 uint8_t *bbox_data[4];
198198 struct SwsContext *sws_ctx;
199199 int linesizes[4];
200+ int ret = DNN_SUCCESS;
200201 enum AVPixelFormat fmt;
201202 int left, top, width, height;
202203 const AVDetectionBBoxHeader *header;
@@ -221,13 +222,14 @@ DNNReturnType ff_frame_to_dnn_classify(AVFrame *frame, DNNData *input, uint32_t · 18 unmodified lines
221222 "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n",
222223 av_get_pix_fmt_name(frame->format), width, height,
223224 av_get_pix_fmt_name(fmt), input->width, input->height);
224− return DNN_ERROR;
225+ return AVERROR(EINVAL);
225226 }
226227
227− if (av_image_fill_linesizes(linesizes, fmt, input->width) < 0) {
228+ ret = av_image_fill_linesizes(linesizes, fmt, input->width);
229+ if (ret < 0) {
228230 av_log(log_ctx, AV_LOG_ERROR, "unable to get linesizes with av_image_fill_linesizes");
229231 sws_freeContext(sws_ctx);
230− return DNN_ERROR;
232+ return ret;
231233 }
232234
233235 desc = av_pix_fmt_desc_get(frame->format);
@@ -246,13 +248,14 @@ DNNReturnType ff_frame_to_dnn_classify(AVFrame *frame, DNNData *input, uint32_t · 12 unmodified lines
246248
247249 sws_freeContext(sws_ctx);
248250
249− return DNN_SUCCESS;
251+ return ret;
250252 }
251253
252−DNNReturnType ff_frame_to_dnn_detect(AVFrame *frame, DNNData *input, void *log_ctx)
254+int ff_frame_to_dnn_detect(AVFrame *frame, DNNData *input, void *log_ctx)
253255 {
254256 struct SwsContext *sws_ctx;
255257 int linesizes[4];
258+ int ret = DNN_SUCCESS;
256259 enum AVPixelFormat fmt = get_pixel_format(input);
257260 sws_ctx = sws_getContext(frame->width, frame->height, frame->format,
258261 input->width, input->height, fmt,
@@ -262,18 +265,19 @@ DNNReturnType ff_frame_to_dnn_detect(AVFrame *frame, DNNData *input, void *log_c · 3 unmodified lines
262265 "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n",
263266 av_get_pix_fmt_name(frame->format), frame->width, frame->height,
264267 av_get_pix_fmt_name(fmt), input->width, input->height);
265− return DNN_ERROR;
268+ return AVERROR(EINVAL);
266269 }
267270
268− if (av_image_fill_linesizes(linesizes, fmt, input->width) < 0) {
271+ ret = av_image_fill_linesizes(linesizes, fmt, input->width);
272+ if (ret < 0) {
269273 av_log(log_ctx, AV_LOG_ERROR, "unable to get linesizes with av_image_fill_linesizes");
270274 sws_freeContext(sws_ctx);
271− return DNN_ERROR;
275+ return ret;
272276 }
273277
274278 sws_scale(sws_ctx, (const uint8_t *const *)frame->data, frame->linesize, 0, frame->height,
275279 (uint8_t *const [4]){input->data, 0, 0, 0}, linesizes);
276280
277281 sws_freeContext(sws_ctx);
278− return DNN_SUCCESS;
282+ return ret;
279283 }
libavfilter/dnn/dnn_io_proc.h+4−4
@@ -30,9 +30,9 @@ · 29 unmodified lines
3030 #include "../dnn_interface.h"
3131 #include "libavutil/frame.h"
3232
33−DNNReturnType ff_proc_from_frame_to_dnn(AVFrame *frame, DNNData *input, void *log_ctx);
34−DNNReturnType ff_proc_from_dnn_to_frame(AVFrame *frame, DNNData *output, void *log_ctx);
35−DNNReturnType ff_frame_to_dnn_detect(AVFrame *frame, DNNData *input, void *log_ctx);
36−DNNReturnType ff_frame_to_dnn_classify(AVFrame *frame, DNNData *input, uint32_t bbox_index, void *log_ctx);
33+int ff_proc_from_frame_to_dnn(AVFrame *frame, DNNData *input, void *log_ctx);
34+int ff_proc_from_dnn_to_frame(AVFrame *frame, DNNData *output, void *log_ctx);
35+int ff_frame_to_dnn_detect(AVFrame *frame, DNNData *input, void *log_ctx);
36+int ff_frame_to_dnn_classify(AVFrame *frame, DNNData *input, uint32_t bbox_index, void *log_ctx);
3737
3838 #endif

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