File: stream_libarchive.h

package info (click to toggle)
mpv 0.41.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 16,404 kB
  • sloc: ansic: 155,875; python: 1,235; sh: 643; javascript: 612; cpp: 468; objc: 302; pascal: 49; xml: 29; makefile: 18
file content (35 lines) | stat: -rw-r--r-- 872 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <locale.h>
#include "osdep/io.h"

#ifdef __APPLE__
# include <string.h>
# include <xlocale.h>
#endif

struct mp_log;

struct mp_archive {
    locale_t locale;
    struct mp_log *log;
    struct archive *arch;
    struct stream *primary_src;
    char buffer[4096];
    int flags;
    int num_volumes; // INT_MAX if unknown (initial state)

    // Current entry, as set by mp_archive_next_entry().
    struct archive_entry *entry;
    char *entry_filename;
    int entry_num;
};

void mp_archive_free(struct mp_archive *mpa);

#define MP_ARCHIVE_FLAG_UNSAFE          (1 << 0)
#define MP_ARCHIVE_FLAG_NO_VOLUMES      (1 << 1)
#define MP_ARCHIVE_FLAG_PRIV            (1 << 2)

struct mp_archive *mp_archive_new(struct mp_log *log, struct stream *src,
                                  int flags, int max_volumes);

bool mp_archive_next_entry(struct mp_archive *mpa);