diff options
author | wm4 <wm4@nowhere> | 2016-07-18 12:44:56 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-07-18 12:44:56 +0200 |
commit | fb8deb69a6afc311deb2c3f9bfa13e460e03256f (patch) | |
tree | ca2a9f62c9c1b551c1a874494252641378dcda8a /demux | |
parent | 77e1e8e38e7b8d9318dc1bb437a88d8f13b7a5c9 (diff) | |
download | mpv-fb8deb69a6afc311deb2c3f9bfa13e460e03256f.tar.bz2 mpv-fb8deb69a6afc311deb2c3f9bfa13e460e03256f.tar.xz |
libarchive: unify entry iteration between stream/demux layers
No really good reason to duplicate this.
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux_libarchive.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/demux/demux_libarchive.c b/demux/demux_libarchive.c index 3f1a655726..dcdbe65fc0 100644 --- a/demux/demux_libarchive.c +++ b/demux/demux_libarchive.c @@ -65,23 +65,10 @@ static int open_file(struct demuxer *demuxer, enum demux_check check) char **files = NULL; int num_files = 0; - for (;;) { - struct archive_entry *entry; - int r = archive_read_next_header(mpa->arch, &entry); - if (r == ARCHIVE_EOF) - break; - if (r < ARCHIVE_OK) - MP_ERR(demuxer, "%s\n", archive_error_string(mpa->arch)); - if (r < ARCHIVE_WARN) - break; - if (archive_entry_filetype(entry) != AE_IFREG) - continue; - const char *fn = archive_entry_pathname(entry); - // Some archives may have no filenames. - if (!fn) - fn = talloc_asprintf(mpa, "mpv_unknown#%d\n", num_files); + while (mp_archive_next_entry(mpa)) { // stream_libarchive.c does the real work - char *f = talloc_asprintf(mpa, "archive://%s|%s", prefix, fn); + char *f = talloc_asprintf(mpa, "archive://%s|%s", prefix, + mpa->entry_filename); MP_TARRAY_APPEND(mpa, files, num_files, f); } |