new package: transcode

This commit is contained in:
Tee KOBAYASHI 2022-03-25 04:02:40 +09:00 committed by xtkoba
parent 0d6d755667
commit fc79a51a92
15 changed files with 366 additions and 0 deletions

View File

@ -0,0 +1,56 @@
# Dead upstream.
TERMUX_PKG_HOMEPAGE=https://packages.gentoo.org/packages/media-video/transcode
TERMUX_PKG_DESCRIPTION="A video stream processing utility"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1.1.7
TERMUX_PKG_SRCURL=(https://ftp-osl.osuosl.org/pub/gentoo/distfiles/transcode-${TERMUX_PKG_VERSION}.tar.bz2
https://dev.gentoo.org/~mgorny/dist/transcode-${TERMUX_PKG_VERSION}-patchset.tar.bz2)
TERMUX_PKG_SHA256=(1e4e72d8e0dd62a80b8dd90699f5ca64c9b0cb37a5c9325c184166a9654f0a92
487866077b7227fe9921b742edea9d01749edb3b7e50162923c6a60748d94248)
TERMUX_PKG_DEPENDS="freetype, gawk, imagemagick, libandroid-glob, libandroid-shmem, libdvdread, libjpeg-turbo, liblzo, libmp3lame, libogg, libtheora, libvorbis, libxml2, zlib"
TERMUX_PKG_BUILD_DEPENDS="libiconv, libx264, xvidcore"
# FFmpeg 5.0 is not yet supported by the current patchset.
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--disable-ffmpeg
--enable-freetype2
--enable-xvid
--enable-x264
--enable-ogg
--enable-vorbis
--enable-theora
--enable-lzo
--enable-libxml2
--enable-imagemagick
--with-x=no
"
termux_step_post_get_source() {
local _PATCH_FILES="
transcode-1.1.7-freetype251.patch
transcode-1.1.7-imagemagick7.patch
"
pushd transcode-${TERMUX_PKG_VERSION}-patchset
cat ${_PATCH_FILES} | patch --silent -p1 -d ..
popd
}
termux_step_pre_configure() {
autoreconf -fi
CFLAGS+=" -fcommon"
LDFLAGS+=" -landroid-glob -landroid-shmem"
local p
for p in lame xvid libdvdread pvm3 lzo a52 faac libjpegmmx libjpeg bsdav iconv; do
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+="
--with-${p}-prefix=$TERMUX_PREFIX
--with-${p}-includes=$TERMUX_PREFIX/include
--with-${p}-libs=$TERMUX_PREFIX/lib
"
done
if [ "$TERMUX_ARCH" = "i686" ]; then
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --disable-mmx"
fi
}

View File

@ -0,0 +1,108 @@
--- a/configure.in
+++ b/configure.in
@@ -776,42 +776,6 @@
LAME_CFLAGS="$lame_ii"
fi
CPPFLAGS="$save_CPPFLAGS"
-
- AC_MSG_CHECKING([lame version])
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $LAME_CFLAGS"
- LIBS="$LIBS $LAME_LIBS"
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <stdio.h>
-
-#ifdef HAVE_LAME_INC
-#include <lame/lame.h>
-#else
-#include <lame.h>
-#endif
-
-int main () {
- lame_version_t lv;
- get_lame_version_numerical(&lv);
- if(lv.alpha || lv.beta) lv.minor--;
- printf("%d%d\n", lv.major, lv.minor);
- return 0;
-}
-]])],
- [lame_version="`./conftest$ac_exeext`"],
- [AC_MSG_RESULT([failed])
- TC_PKG_ERROR(lame, lame.h, yes, lame, [http://www.mp3dev.org/],
- [cannot compile and run a test program])],,
- [AC_MSG_RESULT([cross compiling; assumed OK...])])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
-
- if test 393 -ge "$lame_version" ; then
- have_lame="no"
- TC_PKG_ERROR(lame, lame.h, yes, lame, [http://www.mp3dev.org/],
- [lame version < 3.93])
- fi
fi
TC_PKG_HAVE(lame, LAME)
@@ -820,62 +784,12 @@
dnl
TC_PKG_CHECK(xvid, no, xvid, no, xvid.h, xvidcore, xvid_global, xvid,
[http://www.xvid.org/])
-if test x"$have_xvid" = x"yes" ; then
- AC_MSG_CHECKING([xvid version >= 1.0])
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <stdio.h>
-#include <xvid.h>
-
-int main() {
- printf("%s\n", (XVID_API >= XVID_MAKE_API(4, 0)) ?"yes" :"no");
- return 0;
-}
-]])],
- [xvid_version_ok="`./conftest$ac_exeext`"],
- [AC_MSG_RESULT([failed])
- TC_PKG_ERROR(xvid, xvid.h, yes, xvid, [http://www.xvid.org/],
- [cannot compile and run a test program])],,
- [AC_MSG_RESULT([cross compiling; assumed OK...])])
- if test x"$xvid_version_ok" = x"yes"; then
- XVID_LIBS="-lxvidcore"
- else
- have_xvid="no"
- TC_PKG_ERROR(xvid, xvid.h, yes, xvid, [http://www.xvid.org/],
- [XviD version < 1.0])
- fi
-fi
TC_PKG_HAVE(xvid, XVID)
dnl
dnl x264
dnl
TC_PKG_CONFIG_CHECK(x264, no, X264, x264, [http://developers.videolan.org/x264.html])
-if test x"$have_x264" = x"yes" ; then
- AC_MSG_CHECKING([x264 version])
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <stdio.h>
-#include <stdint.h> /* required by x264.h */
-#include <x264.h>
-
-int main() {
- printf("%d\n", X264_BUILD);
- return 0;
-}
-]])],
- [x264_version="`./conftest$ac_exeext`"],
- [AC_MSG_RESULT([failed])
- TC_PKG_ERROR(x264, x264.h, yes, x264,
- [http://developers.videolan.org/x264.html],
- [cannot compile and run a test program])],
- [AC_MSG_RESULT([cross compiling; assumed OK...])
- x264_version=54])
- if test 54 -gt "$x264_version"; then
- have_x264="no"
- TC_PKG_ERROR(x264, x264.h, yes, x264,
- [http://developers.videolan.org/x264.html],
- [x264 version too old (must be at least 54)])
- fi
-fi
TC_PKG_HAVE(x264, X264)
dnl

View File

@ -0,0 +1,11 @@
--- a/export/ffmpeg_cfg.c
+++ b/export/ffmpeg_cfg.c
@@ -125,7 +125,7 @@
//int lavc_param_abitrate = 224;
char *lavc_param_video_preset = "none";
-char *lavc_param_ffmpeg_datadir = "/usr/share/ffmpeg";
+char *lavc_param_ffmpeg_datadir = "@TERMUX_PREFIX@/share/ffmpeg";
TCConfigEntry lavcopts_conf[]={
// {"acodec", &lavc_param_acodec, TCCONF_TYPE_STRING, 0, 0, 0},

View File

@ -0,0 +1,11 @@
--- a/filter/filter_compare.c
+++ b/filter/filter_compare.c
@@ -182,7 +182,7 @@
if (strlen(results_name) == 0) {
// Ponemos el nombre del fichero al original con extension dat
- strlcpy(results_name, "/tmp/compare.dat", sizeof(results_name));
+ strlcpy(results_name, "@TERMUX_PREFIX@/tmp/compare.dat", sizeof(results_name));
}
if (!(compare[instance]->results = fopen(results_name, "w")))

View File

@ -0,0 +1,11 @@
--- a/filter/filter_text.c
+++ b/filter/filter_text.c
@@ -232,7 +232,7 @@
static float elapsed_ss;
static uint8_t *buf = NULL;
static uint8_t *p, *q;
- char *default_font = "/usr/share/fonts/corefonts/arial.ttf";
+ char *default_font = "/system/fonts/DroidSans.ttf";
extern int flip; // transcode.c
if (ptr->tag & TC_AUDIO)

View File

@ -0,0 +1,11 @@
--- a/filter/parse_csv.awk.in
+++ b/filter/parse_csv.awk.in
@@ -3,7 +3,7 @@
# "strength", "Blending factor.", "%f", "0.9", "0.0", "2.0"
# "range", "Apply the filter only to a range", "%u-%u", "0-0", "0", "-1", "0", "-1"
# "pre", "Run as a PRE filter", "", "0"
-# "log", "Logfile for verbose info", "%s", "/tmp/logfile"
+# "log", "Logfile for verbose info", "%s", "@TERMUX_PREFIX@/tmp/logfile"
# "filter_logoaway.so", "remove an image from the video", "v0.1.0 (2002-12-04)", "Thomas Wehrspann", "VRY", "1"

View File

@ -0,0 +1,13 @@
--- a/filter/preview/filter_pv.c
+++ b/filter/preview/filter_pv.c
@@ -474,8 +474,8 @@
{
FILE *f;
FILE *g;
- char tmpfile[] = "/tmp/filter-select";
- char infile[] = "/tmp/filter-in";
+ char tmpfile[] = "@TERMUX_PREFIX@/tmp/filter-select";
+ char infile[] = "@TERMUX_PREFIX@/tmp/filter-in";
char buf[1024];
char filter_name[255];
char *config, *c;

View File

@ -0,0 +1,11 @@
--- a/import/clone.c
+++ b/import/clone.c
@@ -323,7 +323,7 @@
if ((a = getenv("TMPDIR")) != NULL)
tc_snprintf(b, PATH_MAX, "%s/%s", a, "fileXXXXXX");
else
- tc_snprintf(b, PATH_MAX, "%s/%s", "/tmp", "fileXXXXXX");
+ tc_snprintf(b, PATH_MAX, "%s/%s", "@TERMUX_PREFIX@/tmp", "fileXXXXXX");
name = mktemp(b);

View File

@ -0,0 +1,11 @@
--- a/import/dvd_reader.c
+++ b/import/dvd_reader.c
@@ -48,7 +48,7 @@
#endif
-static char lock_file[] = "/tmp/LCK..dvd";
+static char lock_file[] = "@TERMUX_PREFIX@/tmp/LCK..dvd";
/*
* lock - create a lock file for the device

View File

@ -0,0 +1,17 @@
--- a/import/import_mplayer.c
+++ b/import/import_mplayer.c
@@ -37,10 +37,10 @@
-#define VIDEOPIPE_TEMPLATE "/tmp/mplayer2transcode-video.XXXXXX"
-#define AUDIOPIPE_TEMPLATE "/tmp/mplayer2transcode-audio.XXXXXX"
-static char videopipe[40];
-static char audiopipe[40];
+#define VIDEOPIPE_TEMPLATE "@TERMUX_PREFIX@/tmp/mplayer2transcode-video.XXXXXX"
+#define AUDIOPIPE_TEMPLATE "@TERMUX_PREFIX@/tmp/mplayer2transcode-audio.XXXXXX"
+static char videopipe[strlen(VIDEOPIPE_TEMPLATE)+1];
+static char audiopipe[strlen(AUDIOPIPE_TEMPLATE)+1];
static FILE *videopipefd = NULL;
static FILE *audiopipefd = NULL;

View File

@ -0,0 +1,11 @@
--- a/import/import_vnc.c
+++ b/import/import_vnc.c
@@ -33,7 +33,7 @@
char fps[32];
char cmdbuf[1024];
- tc_snprintf (fifo, 256, "%s-%d", "/tmp/tc-vncfifo", getpid());
+ tc_snprintf (fifo, 256, "%s-%d", "@TERMUX_PREFIX@/tmp/tc-vncfifo", getpid());
tc_snprintf (fps, 32, "%f", vob->fps);
tc_snprintf (cmdbuf, 1024, "%s -o %s", PROGTOCALL, fifo);

View File

@ -0,0 +1,20 @@
--- a/pvm3/tcpvmexportd.c
+++ b/pvm3/tcpvmexportd.c
@@ -91,7 +91,7 @@
fprintf(stderr,"\t -c name name of slave function req in slave mode [none]\n");
fprintf(stderr,"\t -x parameters multiplex parameters [none]\n");
fprintf(stderr,"\t -t type elab video or audio frame (video|audio|system|multisystem) [video]\n");
- fprintf(stderr,"\t -f name out file name [/tmp/my_file_name]\n");
+ fprintf(stderr,"\t -f name out file name [@TERMUX_PREFIX@/tmp/my_file_name]\n");
fprintf(stderr,"\t -1 param first parameter to pass to the slave function [null]\n");
fprintf(stderr,"\t -2 param second parameter to pass to the slave function [null]\n");
fprintf(stderr,"\t -3 param third parameter to pass to the slave function [null]\n");
@@ -188,7 +188,7 @@
char s_cmd;
char *p_argv[]={"-s",(char*)0,(char*)0,(char*)0,(char*)0,(char*)0,(char*)0,(char*)0,(char*)0,(char*)0,(char*)0};
int s_slave=0,s_cont=1,s_file_dest;
- char *p_tmp_file="/tmp/my_file_name";
+ char *p_tmp_file="@TERMUX_PREFIX@/tmp/my_file_name";
pvm_config_env *p_pvm_conf;
pvm_config_filelist *p_my_filelist=NULL;
char s_hostname[MAX_BUF];

View File

@ -0,0 +1,11 @@
--- a/src/tc_defaults.h
+++ b/src/tc_defaults.h
@@ -30,7 +30,7 @@
#ifndef TC_DEFAULTS_H
#define TC_DEFAULTS_H
-#define TC_DEFAULT_MOD_PATH "/usr/local/lib/transcode"
+#define TC_DEFAULT_MOD_PATH "@TERMUX_PREFIX@/lib/transcode"
#define TC_DEFAULT_IN_FILE "/dev/zero"
#define TC_DEFAULT_OUT_FILE "/dev/null"

View File

@ -0,0 +1,53 @@
--- a/src/transcode.c
+++ b/src/transcode.c
@@ -41,6 +41,7 @@
#include <ctype.h>
#include <math.h>
+#include <stdatomic.h>
#include "cmdline.h"
@@ -215,6 +216,7 @@
/*************************************************************************/
static pthread_t event_thread_id = (pthread_t)0;
+static atomic_flag event_thread_cancel;
static const char *signame = "unknown signal";
static void tc_stop_all(void)
@@ -271,7 +273,7 @@
/* Loop waiting for external events */
for (;;) {
- pthread_testcancel();
+ if (!atomic_flag_test_and_set(&event_thread_cancel)) pthread_exit(NULL);
tc_socket_wait();
@@ -283,7 +285,7 @@
if (tc_probe_pid > 0)
kill(tc_probe_pid, SIGTERM);
}
- pthread_testcancel();
+ if (!atomic_flag_test_and_set(&event_thread_cancel)) pthread_exit(NULL);
}
return NULL;
}
@@ -305,7 +307,7 @@
void *thread_status = NULL;
// pthread_kill(event_thread_id, SIGINT);
- pthread_cancel(event_thread_id);
+ atomic_flag_clear(&event_thread_cancel);
pthread_join(event_thread_id, &thread_status);
}
}
@@ -2721,6 +2723,7 @@
tc_error("failed to initialize socket handler");
// now we start the signal handler thread
+ atomic_flag_test_and_set(&event_thread_cancel);
if (pthread_create(&event_thread_id, NULL, event_thread, &sigs_to_block) != 0)
tc_error("failed to start signal handler thread");

View File

@ -0,0 +1,11 @@
--- a/tools/avisync.c
+++ b/tools/avisync.c
@@ -103,7 +103,7 @@
/* for null frame encoding */
char nulls[32000];
long nullbytes=0;
- char tmp0[] = "/tmp/nullfile.00.avi"; /* XXX: use mktemp*() */
+ char tmp0[] = "@TERMUX_PREFIX@/tmp/nullfile.00.avi"; /* XXX: use mktemp*() */
buffer_list_t *ptr;