Commit | Line | Data |
---|---|---|
87958234 | 1 | /* |
2912e87a | 2 | * This file is part of Libav. |
87958234 | 3 | * |
2912e87a | 4 | * Libav is free software; you can redistribute it and/or |
87958234 SS |
5 | * modify it under the terms of the GNU Lesser General Public |
6 | * License as published by the Free Software Foundation; either | |
7 | * version 2.1 of the License, or (at your option) any later version. | |
8 | * | |
2912e87a | 9 | * Libav is distributed in the hope that it will be useful, |
87958234 SS |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 | * Lesser General Public License for more details. | |
13 | * | |
14 | * You should have received a copy of the GNU Lesser General Public | |
2912e87a | 15 | * License along with Libav; if not, write to the Free Software |
87958234 SS |
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
17 | */ | |
18 | ||
19 | #include "avutil.h" | |
20 | #include "avstring.h" | |
21 | ||
22 | int av_strerror(int errnum, char *errbuf, size_t errbuf_size) | |
23 | { | |
24 | int ret = 0; | |
25 | const char *errstr = NULL; | |
26 | ||
27 | switch (errnum) { | |
8d67218b SS |
28 | case AVERROR_BSF_NOT_FOUND: errstr = "Bitstream filter not found" ; break; |
29 | case AVERROR_DECODER_NOT_FOUND: errstr = "Decoder not found" ; break; | |
30 | case AVERROR_DEMUXER_NOT_FOUND: errstr = "Demuxer not found" ; break; | |
31 | case AVERROR_ENCODER_NOT_FOUND: errstr = "Encoder not found" ; break; | |
32 | case AVERROR_EOF: errstr = "End of file" ; break; | |
33 | case AVERROR_EXIT: errstr = "Immediate exit requested" ; break; | |
34 | case AVERROR_FILTER_NOT_FOUND: errstr = "Filter not found" ; break; | |
35 | case AVERROR_INVALIDDATA: errstr = "Invalid data found when processing input" ; break; | |
36 | case AVERROR_MUXER_NOT_FOUND: errstr = "Muxer not found" ; break; | |
37 | case AVERROR_OPTION_NOT_FOUND: errstr = "Option not found" ; break; | |
6001dad6 | 38 | case AVERROR_PATCHWELCOME: errstr = "Not yet implemented in Libav, patches welcome"; break; |
8d67218b SS |
39 | case AVERROR_PROTOCOL_NOT_FOUND:errstr = "Protocol not found" ; break; |
40 | case AVERROR_STREAM_NOT_FOUND: errstr = "Stream not found" ; break; | |
1ee5b5e8 | 41 | case AVERROR_BUG: errstr = "Bug detected, please report the issue" ; break; |
87958234 SS |
42 | } |
43 | ||
44 | if (errstr) { | |
45 | av_strlcpy(errbuf, errstr, errbuf_size); | |
46 | } else { | |
47 | #if HAVE_STRERROR_R | |
48 | ret = strerror_r(AVUNERROR(errnum), errbuf, errbuf_size); | |
e2959f45 SS |
49 | #else |
50 | ret = -1; | |
87958234 | 51 | #endif |
e2959f45 | 52 | if (ret < 0) |
441ea0ce | 53 | snprintf(errbuf, errbuf_size, "Error number %d occurred", errnum); |
87958234 SS |
54 | } |
55 | ||
56 | return ret; | |
57 | } |