av_strstart(filename, "file:", &filename);
- if (flags & AVIO_RDWR) {
+ if (flags & AVIO_FLAG_WRITE && flags & AVIO_FLAG_READ) {
access = O_CREAT | O_TRUNC | O_RDWR;
- } else if (flags & AVIO_WRONLY) {
+ } else if (flags & AVIO_FLAG_WRITE) {
access = O_CREAT | O_TRUNC | O_WRONLY;
} else {
access = O_RDONLY;
if (ret < 0)
return AVERROR(errno);
- ret |= st.st_mode&S_IRUSR ? mask&AVIO_RDONLY : 0;
- ret |= st.st_mode&S_IWUSR ? mask&AVIO_WRONLY : 0;
- ret |= st.st_mode&S_IWUSR && st.st_mode&S_IRUSR ? mask&AVIO_RDWR : 0;
+ ret |= st.st_mode&S_IRUSR ? mask&AVIO_FLAG_READ : 0;
+ ret |= st.st_mode&S_IWUSR ? mask&AVIO_FLAG_WRITE : 0;
return ret;
}
fd = strtol(filename, &final, 10);
if((filename == final) || *final ) {/* No digits found, or something like 10ab */
- if (flags & AVIO_WRONLY) {
+ if (flags & AVIO_FLAG_WRITE) {
fd = 1;
} else {
fd = 0;