Browse code

error: add error code AVERROR_OPTION_NOT_FOUND, and use it in opt.c

The new error code is better than AVERROR(ENOENT), which has a
completely different semantics ("No such file or directory").

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>

Stefano Sabatini authored on 2011/04/11 07:52:04
Showing 3 changed files
... ...
@@ -33,6 +33,7 @@ int av_strerror(int errnum, char *errbuf, size_t errbuf_size)
33 33
     case AVERROR_MUXER_NOT_FOUND:   errstr = "Muxer not found"; break;
34 34
     case AVERROR_DECODER_NOT_FOUND: errstr = "Decoder not found"; break;
35 35
     case AVERROR_ENCODER_NOT_FOUND: errstr = "Encoder not found"; break;
36
+    case AVERROR_OPTION_NOT_FOUND:  errstr = "Option not found"; break;
36 37
     case AVERROR_PROTOCOL_NOT_FOUND:errstr = "Protocol not found"; break;
37 38
     case AVERROR_FILTER_NOT_FOUND:  errstr = "Filter not found"; break;
38 39
     case AVERROR_BSF_NOT_FOUND:     errstr = "Bitstream filter not found"; break;
... ...
@@ -48,6 +48,7 @@
48 48
 #define AVERROR_MUXER_NOT_FOUND    (-MKTAG(0xF8,'M','U','X')) ///< Muxer not found
49 49
 #define AVERROR_DECODER_NOT_FOUND  (-MKTAG(0xF8,'D','E','C')) ///< Decoder not found
50 50
 #define AVERROR_ENCODER_NOT_FOUND  (-MKTAG(0xF8,'E','N','C')) ///< Encoder not found
51
+#define AVERROR_OPTION_NOT_FOUND   (-MKTAG(0xF8,'O','P','T')) ///< Option not found
51 52
 #define AVERROR_PROTOCOL_NOT_FOUND (-MKTAG(0xF8,'P','R','O')) ///< Protocol not found
52 53
 #define AVERROR_FILTER_NOT_FOUND   (-MKTAG(0xF8,'F','I','L')) ///< Filter not found
53 54
 #define AVERROR_BSF_NOT_FOUND      (-MKTAG(0xF8,'B','S','F')) ///< Bitstream filter not found
... ...
@@ -57,7 +57,7 @@ static int av_set_number2(void *obj, const char *name, double num, int den, int6
57 57
     if (o_out)
58 58
         *o_out= o;
59 59
     if (!o || o->offset<=0)
60
-        return AVERROR(ENOENT);
60
+        return AVERROR_OPTION_NOT_FOUND;
61 61
 
62 62
     if (o->max*den < num*intnum || o->min*den > num*intnum) {
63 63
         av_log(obj, AV_LOG_ERROR, "Value %lf for parameter '%s' out of range\n", num, name);
... ...
@@ -119,7 +119,7 @@ int av_set_string3(void *obj, const char *name, const char *val, int alloc, cons
119 119
     if (o_out)
120 120
         *o_out = o;
121 121
     if (!o)
122
-        return AVERROR(ENOENT);
122
+        return AVERROR_OPTION_NOT_FOUND;
123 123
     if (!val || o->offset<=0)
124 124
         return AVERROR(EINVAL);
125 125
 
... ...
@@ -490,7 +490,7 @@ static int parse_key_value_pair(void *ctx, const char **buf,
490 490
     av_log(ctx, AV_LOG_DEBUG, "Setting value '%s' for key '%s'\n", val, key);
491 491
 
492 492
     ret = av_set_string3(ctx, key, val, 1, NULL);
493
-    if (ret == AVERROR(ENOENT))
493
+    if (ret == AVERROR_OPTION_NOT_FOUND)
494 494
         av_log(ctx, AV_LOG_ERROR, "Key '%s' not found.\n", key);
495 495
 
496 496
     av_free(key);