Browse Source

preparser: add the possibility to preparse on an external process

* Add a new backend to preform preparsing by sending preparser request
   to an external process and wait for the preparsed media in a
   preparser responce format.

 * Use the new preparser with external process inside the playlist and
   the medialib thumbnailer.
update/opus-1.6.1
Gabriel Lafond-Thenaille 9 months ago
committed by Steve Lhomme
parent
commit
6d033e3d5e
  1. 1
      src/Makefile.am
  2. 1
      src/meson.build
  3. 1137
      src/preparser/external.c
  4. 2
      src/preparser/preparser.c
  5. 4
      src/preparser/preparser.h

1
src/Makefile.am

@ -278,6 +278,7 @@ libvlccore_la_SOURCES = \
preparser/internal.c \
preparser/preparser.c \
preparser/preparser.h \
preparser/external.c \
input/item.c \
input/access.c \
clock/clock_internal.c \

1
src/meson.build

@ -128,6 +128,7 @@ libvlccore_sources_base = files(
'playlist/sort.c',
'preparser/art.c',
'preparser/art.h',
'preparser/external.c',
'preparser/fetcher.c',
'preparser/fetcher.h',
'preparser/ipc.c',

1137
src/preparser/external.c

File diff suppressed because it is too large

2
src/preparser/preparser.c

@ -41,7 +41,7 @@ vlc_preparser_t *vlc_preparser_New(vlc_object_t *obj,
return NULL;
}
if (cfg->external_process) {
vlc_assert_unreachable();
preparser->sys = vlc_preparser_external_New(preparser, obj, cfg);
} else {
preparser->sys = vlc_preparser_internal_New(preparser, obj, cfg);
}

4
src/preparser/preparser.h

@ -59,6 +59,10 @@ void *vlc_preparser_internal_New(vlc_preparser_t *preparser,
vlc_object_t *parent,
const struct vlc_preparser_cfg *cfg);
void *vlc_preparser_external_New(vlc_preparser_t *preparser,
vlc_object_t *parent,
const struct vlc_preparser_cfg *cfg);
/* Preparser Request */
struct vlc_preparser_req_operations {
/* Called by `vlc_preparser_req_GetItem`. */

Loading…
Cancel
Save