debian/0000755000000000000000000000000012255330213007162 5ustar debian/changelog0000644000000000000000000000777512255330127011060 0ustar transcode (3:1.1.7-8) unstable; urgency=medium * Team upload. * debian/patches: - 10_freetype.patch: Fix compilation with recent versions of freetype. (Closes: #732142) - 11_underlinkage.patch: Fix underlinkage of some plugins. -- Sebastian Ramacher Sat, 21 Dec 2013 16:14:24 +0100 transcode (3:1.1.7-7) unstable; urgency=low * Team upload. * debian/control: Bump Standards-Version to 3.9.5. * debian/patches/{08_libav9-opt,09_libav9-arch}.patch: Finish up porting to libav 9 API. -- Sebastian Ramacher Tue, 12 Nov 2013 17:24:14 +0100 transcode (3:1.1.7-6) unstable; urgency=low * Team upload. * debian/patches: - {05-libav9-gentoo.patch,06_libav9-jmm.patch}: Port to libav 9. Thanks to Gentoo and Moritz Muehlenhoff. (Closes: #720828) - 07_libav9-preset.patch: Check preset files with avpreset extension an use /usr/share/avconv to look up preset files. * debian/rules: - Remove --enable-x264 and --enable-xvid. They require --enable-experimental which is not passed. The code enabled by --enable-experimental also needs porting to libav 9. - Force the use of awk and /usr/bin/awk as shebang of the awk scripts. * Bump debhelper compat to 9. * debian/control: Remove libx264-dev and libxvidcore-dev from Build-Depends since they are not needed at the moment. -- Sebastian Ramacher Wed, 11 Sep 2013 15:53:38 +0200 transcode (3:1.1.7-5) unstable; urgency=low [ Rogério Brito ] * debian/rules: Don't disable SSE and SSE2 on amd64. (Closes: #707321) [ Fabian Greffrath ] * Fix Homepage field, we are following the transcode-tcforge fork. * Fix extracting AC3 audio tracks when audio track number is not 0 (Closes: #714958). [ Alessio Treglia ] * Upload to unstable. * Bump Standards. -- Alessio Treglia Sat, 06 Jul 2013 01:58:47 +0100 transcode (3:1.1.7-4) experimental; urgency=low * "yes-indeed-dmm-team-rocks" release: - Enable MJPEGTOOLS support. - Allow transcode to compile on non-Linux archs. Thanks to Pino Toscano for the patch (Closes: #690029) -- Alessio Treglia Wed, 10 Oct 2012 00:43:53 +0100 transcode (3:1.1.7-3) unstable; urgency=low [ Alessio Treglia ] * Depends on mawk | gawk, awk scripts don't seem to require any gawk-specific feature. (LP: #997226) * Bump Standards. [ Fabian Greffrath ] * Pass --enable-libmpeg2convert to configure to fix MPEG2 decoding (Closes: #688618). * Remove myself from Uploaders. * Remove "-vpre medium" from ffmpeg's arguments list to avoid crashes as the "medium" preset doesn't exist. (Closes: #681436) -- Alessio Treglia Mon, 08 Oct 2012 10:51:41 +0100 transcode (3:1.1.7-2) unstable; urgency=low * Upload to unstable. * Update download URL and copyright format. -- Alessio Treglia Sat, 03 Mar 2012 13:10:54 +0100 transcode (3:1.1.7-1) experimental; urgency=low * New upstream release: - Update the video stabilization plugins to version 0.80. Speed boost. - tcdemux: fixed crash when using the new -A mode. - x264: fix to work properly with libx264 >= 78; require libx264 >= 66. - Update the video stabilization plugins to version 0.79. Speed boost. - Better maximum size detection for avisplit. - ffmpeg encoder preset support. - FFMpeg 0.8.x compatibility. - video4linux: made the v1 and v2 modules independent. v1 is deprecated. - Many other fixes. Upstream development has moved to: https://bitbucket.org/france/transcode-tcforge * Build with dh-autoreconf. * Remove 02_toolame.diff, applied upstream. * Refresh 03_libav-api-fixes.diff. * Add build-dependency on libswscale-dev. * Refresh debian/copyright. -- Alessio Treglia Wed, 22 Feb 2012 02:51:24 +0100 transcode (3:1.1.5-1) unstable; urgency=low * Initial release. (Closes: #149568) -- Alessio Treglia Tue, 07 Feb 2012 18:35:15 +0100 debian/gbp.conf0000644000000000000000000000006212213400600010567 0ustar [DEFAULT] pristine-tar = True compression = bzip2 debian/patches/0000755000000000000000000000000012255327606010625 5ustar debian/patches/04_ffmpeg_options.patch0000644000000000000000000000217512213400600015151 0ustar Description: Remove "-vpre medium" from ffmpeg's command-line arguments list. Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681436 From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681436#25 --- export/ffmpeg_cfg.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) --- transcode.orig/export/ffmpeg_cfg.c +++ transcode/export/ffmpeg_cfg.c @@ -126,7 +126,7 @@ int lavc_param_gmc = 0; //int lavc_param_atag = 0; //int lavc_param_abitrate = 224; -char *lavc_param_video_preset = "medium"; +char *lavc_param_video_preset = NULL; char *lavc_param_ffmpeg_datadir = "/usr/share/ffmpeg"; TCConfigEntry lavcopts_conf[]={ @@ -237,7 +237,6 @@ TCConfigEntry lavcopts_conf[]={ {"skip_top", &lavc_param_skip_top, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000}, {"skip_bottom", &lavc_param_skip_bottom, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000}, {"fps_code", &lavc_param_fps_code, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 9}, - {"vpre", &lavc_param_video_preset, TCCONF_TYPE_STRING, 0, 0, 0}, {"ffmpeg_datadir", &lavc_param_ffmpeg_datadir, TCCONF_TYPE_STRING, 0, 0, 0}, {NULL, NULL, 0, 0, 0, 0} }; debian/patches/10_freetype.patch0000644000000000000000000000071712253112125013760 0ustar Description: Fix building against recent versions of freetype Author: Sebastian Ramacher Bug-Debian: http://bugs.debian.org/732142 Last-Update: 2013-12-14 --- transcode-1.1.7.orig/filter/subtitler/load_font.c +++ transcode-1.1.7/filter/subtitler/load_font.c @@ -48,7 +48,7 @@ Artur Zaprzala #include #include FT_FREETYPE_H -#include +#include FT_GLYPH_H /** * @file bswap.h debian/patches/ac3-audio-track-number.patch0000644000000000000000000000130312213400600015754 0ustar Description: Fix extracting AC3 audio tracks when audio track number is not 0. Author: Fabian Greffrath Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714958 --- a/import/import_vob.c +++ b/import/import_vob.c @@ -157,7 +157,7 @@ MOD_open " | tcextract -t vob -a %d -x ac3 -d %d" " | tcextract -t raw -x ac3 -d %d", input_buf, demux_buf, - vob->verbose, vob->a_track, vob->verbose, + vob->a_track, vob->verbose, vob->verbose) < 0) { tc_log_perror(MOD_NAME, "command buffer overflow"); return(TC_IMPORT_ERROR); debian/patches/01_filter_pv.c.diff0000644000000000000000000000227212213400600014151 0ustar Description: Little hack to replace xterm calls by x-terminal-emulator. Origin: Ubuntu Forwarded: Francesco Romani --- filter/preview/filter_pv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- transcode.orig/filter/preview/filter_pv.c +++ transcode/filter/preview/filter_pv.c @@ -488,7 +488,7 @@ void preview_filter(void) // build commandline tc_snprintf (buf, 1024, - "xterm -title \"Transcode Filter select\" -e %s/filter_list.awk %s %s && cat %s && rm -f %s", + "x-terminal-emulator -title \"Transcode Filter select\" -e %s/filter_list.awk %s %s && cat %s && rm -f %s", vob->mod_path, vob->mod_path, tmpfile, tmpfile, tmpfile); if ((f = popen (buf, "r")) == NULL) { perror ("popen filter select"); @@ -555,7 +555,7 @@ void preview_filter(void) memset (buf, 0, 1024); tc_snprintf (buf, 1024, - "xterm -title \"Transcode parameters\" -e %s/parse_csv.awk %s %s %s && cat %s && rm -f %s %s", + "x-terminal-emulator -title \"Transcode parameters\" -e %s/parse_csv.awk %s %s %s && cat %s && rm -f %s %s", vob->mod_path, tmpfile, filter_name, infile, infile, tmpfile, infile); if ((f = popen (buf, "r")) == NULL) { debian/patches/03_libav-api-fixes.diff0000644000000000000000000000250312213400600014715 0ustar Author: Reinhard Tartler Description: Update to libav 0.7 API Last-Modified: 2012-02-12 Forwarded: Francesco Romani --- filter/filter_pp.c | 4 ++-- import/decode_lavc.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) --- transcode.orig/filter/filter_pp.c +++ transcode/filter/filter_pp.c @@ -38,8 +38,8 @@ /* FIXME: these use the filter ID as an index--the ID can grow * arbitrarily large, so this needs to be fixed */ -static pp_mode_t *mode[100]; -static pp_context_t *context[100]; +static pp_mode *mode[100]; +static pp_context *context[100]; static int width[100], height[100]; static int pre[100]; --- transcode.orig/import/decode_lavc.c +++ transcode/import/decode_lavc.c @@ -128,7 +128,7 @@ void decode_lavc(decode_t *decode) char *mp4_ptr=NULL; int flush = 0; int mp4_size=0; - int buf_len=0; + unsigned int buf_len=0; int run=0; // decoder @@ -186,7 +186,7 @@ void decode_lavc(decode_t *decode) lavc_dec_context->error_concealment = 3; lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT; - if (avcodec_open(lavc_dec_context, lavc_dec_codec) < 0) { + if (avcodec_open2(lavc_dec_context, lavc_dec_codec, NULL) < 0) { tc_log_error(__FILE__, "Could not initialize the '%s' codec.", codec->name); goto decoder_error; debian/patches/08_libav9-opt.patch0000644000000000000000000000320712240013411014121 0ustar Description: Fix deprecated av_opt related calls Author: Sebastian Ramacher Last-Update: 2013-11-11 --- a/export/export_ffmpeg.c +++ b/export/export_ffmpeg.c @@ -240,6 +240,15 @@ opt_codec(&subtitle_stream_copy, &subtitle_codec_name, AVMEDIA_TYPE_SUBTITLE, arg); } +static int av_set_string3_fallback(void *obj, const char *name, const char *val, int alloc, const AVOption **o_out) +{ + const AVOption *o = av_opt_find(obj, name, NULL, 0, 0); + if (o_out) + *o_out = o; + return av_opt_set(obj, name, val, 0); +} + + static int opt_default(const char *opt, const char *arg){ int type; @@ -250,9 +259,9 @@ for(type=0; type= 0; type++){ /* GLUE: +if */ if (type == AVMEDIA_TYPE_VIDEO) { - const AVOption *o2 = av_find_opt(avcodec_opts[0], opt, NULL, opt_types[type], opt_types[type]); + const AVOption *o2 = av_opt_find(avcodec_opts[0], opt, NULL, opt_types[type], 0); if(o2) - ret = av_set_string3(avcodec_opts[type], opt, arg, 1, &o); + ret = av_set_string3_fallback(avcodec_opts[type], opt, arg, 1, &o); /* GLUE: +if */ } } @@ -267,7 +276,7 @@ if(opt[0] == 'a') ret = av_set_string3(avcodec_opts[AVMEDIA_TYPE_AUDIO], opt+1, arg, 1, &o); else */ if(opt[0] == 'v') - ret = av_set_string3(avcodec_opts[AVMEDIA_TYPE_VIDEO], opt+1, arg, 1, &o); + ret = av_set_string3_fallback(avcodec_opts[AVMEDIA_TYPE_VIDEO], opt+1, arg, 1, &o); /* GLUE: disabling else if(opt[0] == 's') ret = av_set_string3(avcodec_opts[AVMEDIA_TYPE_SUBTITLE], opt+1, arg, 1, &o); debian/patches/05-libav9-gentoo.patch0000644000000000000000000003101512214061355014536 0ustar Description: Fix build with ffmpeg 0.11. Origin: vendor, https://bugs.gentoo.org/show_bug.cgi?id=419551 Author: Brennan Shacklett Bug-Debian: http://bugs.debian.org/720828 Last-Update: 2013-09-11 diff -urN transcode-1.1.7-orig/encode/encode_lavc.c transcode-1.1.7/encode/encode_lavc.c --- transcode-1.1.7-orig/encode/encode_lavc.c 2011-11-19 08:50:27.000000000 -0800 +++ transcode-1.1.7/encode/encode_lavc.c 2012-07-03 10:47:03.528009149 -0700 @@ -114,6 +114,7 @@ AVFrame ff_venc_frame; AVCodecContext ff_vcontext; + AVDictionary ** ff_opts; AVCodec *ff_vcodec; @@ -1036,14 +1037,10 @@ SET_FLAG(pd, mv0); SET_FLAG(pd, cbp); SET_FLAG(pd, qpel); - SET_FLAG(pd, alt); - SET_FLAG(pd, vdpart); SET_FLAG(pd, naq); SET_FLAG(pd, ilme); SET_FLAG(pd, ildct); SET_FLAG(pd, aic); - SET_FLAG(pd, aiv); - SET_FLAG(pd, umv); SET_FLAG(pd, psnr); SET_FLAG(pd, trell); SET_FLAG(pd, gray); @@ -1064,6 +1061,18 @@ pd->ff_vcontext.flags |= CODEC_FLAG_INTERLACED_DCT; pd->ff_vcontext.flags |= CODEC_FLAG_INTERLACED_ME; } + if (pd->confdata.flags.alt) { + av_dict_set(pd->ff_opts, "alternate_scan", "1", 0); + } + if (pd->confdata.flags.vdpart) { + av_dict_set(pd->ff_opts, "data_partitioning", "1", 0); + } + if (pd->confdata.flags.umv) { + av_dict_set(pd->ff_opts, "umv", "1", 0); + } + if (pd->confdata.flags.aiv) { + av_dict_set(pd->ff_opts, "aiv", "1", 0); + } } #undef SET_FLAG @@ -1184,18 +1193,18 @@ { "mv0", PAUX(flags.mv0), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_MV0 }, { "cbp", PAUX(flags.cbp), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CBP_RD }, { "qpel", PAUX(flags.qpel), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QPEL }, - { "alt", PAUX(flags.alt), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_ALT_SCAN }, + { "alt", PAUX(flags.alt), TCCONF_TYPE_FLAG, 0, 0, 1 }, { "ilme", PAUX(flags.ilme), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_ME }, { "ildct", PAUX(flags.ildct), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_DCT }, { "naq", PAUX(flags.naq), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_NORMALIZE_AQP }, - { "vdpart", PAUX(flags.vdpart), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART }, + { "vdpart", PAUX(flags.vdpart), TCCONF_TYPE_FLAG, 0, 0, 1 }, #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) { "aic", PAUX(flags.aic), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_AIC }, #else { "aic", PAUX(flags.aic), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_AC_PRED }, #endif - { "aiv", PAUX(flags.aiv), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_AIV }, - { "umv", PAUX(flags.umv), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_UMV }, + { "aiv", PAUX(flags.aiv), TCCONF_TYPE_FLAG, 0, 0, 1 }, + { "umv", PAUX(flags.umv), TCCONF_TYPE_FLAG, 0, 0, 1 }, { "psnr", PAUX(flags.psnr), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PSNR }, #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) { "trell", PAUX(flags.trell), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_TRELLIS_QUANT }, @@ -1387,7 +1396,7 @@ pd->confdata.thread_count, (pd->confdata.thread_count > 1) ?"s" :""); } - avcodec_thread_init(&pd->ff_vcontext, pd->confdata.thread_count); + pd->ff_vcontext.thread_count = pd->confdata.thread_count; pd->ff_vcodec = avcodec_find_encoder(FF_VCODEC_ID(pd)); if (pd->ff_vcodec == NULL) { @@ -1397,11 +1406,11 @@ } TC_LOCK_LIBAVCODEC; - ret = avcodec_open(&pd->ff_vcontext, pd->ff_vcodec); + ret = avcodec_open2(&pd->ff_vcontext, pd->ff_vcodec, pd->ff_opts); TC_UNLOCK_LIBAVCODEC; if (ret < 0) { - tc_log_error(MOD_NAME, "avcodec_open() failed"); + tc_log_error(MOD_NAME, "avcodec_open2() failed"); goto failed; } /* finally, pass up the extradata, if any */ diff -urN transcode-1.1.7-orig/export/export_ffmpeg.c transcode-1.1.7/export/export_ffmpeg.c --- transcode-1.1.7-orig/export/export_ffmpeg.c 2011-11-19 08:50:27.000000000 -0800 +++ transcode-1.1.7/export/export_ffmpeg.c 2012-07-03 13:15:23.918019415 -0700 @@ -122,6 +122,7 @@ static AVFrame *lavc_convert_frame = NULL; static AVCodec *lavc_venc_codec = NULL; +static AVDictionary **lavc_venc_opts = NULL; static AVFrame *lavc_venc_frame = NULL; static AVCodecContext *lavc_venc_context; static avi_t *avifile = NULL; @@ -180,7 +181,7 @@ /* START: COPIED FROM ffmpeg-0.5_p22846(ffmpeg.c, cmdutils.c) */ -#include +#include #include #include @@ -470,7 +471,6 @@ } TC_LOCK_LIBAVCODEC; - avcodec_init(); avcodec_register_all(); TC_UNLOCK_LIBAVCODEC; @@ -634,7 +634,7 @@ lavc_param_rc_max_rate = 2516; lavc_param_rc_buffer_size = 224 * 8; lavc_param_rc_buffer_aggressivity = 99; - lavc_param_scan_offset = CODEC_FLAG_SVCD_SCAN_OFFSET; + lavc_param_scan_offset = 1; break; @@ -674,7 +674,7 @@ lavc_param_rc_buffer_size = 224 * 8; lavc_param_rc_buffer_aggressivity = 99; - lavc_param_scan_offset = CODEC_FLAG_SVCD_SCAN_OFFSET; + lavc_param_scan_offset = 1; break; @@ -887,7 +887,7 @@ lavc_venc_context->thread_count); } - avcodec_thread_init(lavc_venc_context, lavc_param_threads); + lavc_venc_context->thread_count = lavc_param_threads; if (lavc_param_intra_matrix) { char *tmp; @@ -1065,15 +1065,10 @@ lavc_venc_context->flags |= lavc_param_closedgop; lavc_venc_context->flags |= lavc_param_trunc; lavc_venc_context->flags |= lavc_param_aic; - lavc_venc_context->flags |= lavc_param_umv; lavc_venc_context->flags |= lavc_param_v4mv; - lavc_venc_context->flags |= lavc_param_data_partitioning; lavc_venc_context->flags |= lavc_param_cbp; lavc_venc_context->flags |= lavc_param_mv0; lavc_venc_context->flags |= lavc_param_qp_rd; - lavc_venc_context->flags |= lavc_param_scan_offset; - lavc_venc_context->flags |= lavc_param_ss; - lavc_venc_context->flags |= lavc_param_alt; lavc_venc_context->flags |= lavc_param_ilme; #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) lavc_venc_context->flags |= lavc_param_trell; @@ -1203,7 +1198,6 @@ lavc_venc_context->me_method = ME_ZERO + lavc_param_vme; - /* FIXME: transcode itself contains "broken ffmpeg default settings", thus we need to override them! */ if (lavc_param_video_preset) { avcodec_opts[AVMEDIA_TYPE_VIDEO] = lavc_venc_context; @@ -1241,20 +1235,39 @@ } } + if (lavc_param_scan_offset) { + av_dict_set(lavc_venc_opts, "scan_offset", "1", 0); + } + + if (lavc_param_ss) { + av_dict_set(lavc_venc_opts, "structured_slices", "1", 0); + } + + if (lavc_param_alt) { + av_dict_set(lavc_venc_opts, "alternate_scan", "1", 0); + } + + if (lavc_param_umv) { + av_dict_set(lavc_venc_opts, "umv", "1", 0); + } + + if (lavc_param_data_partitioning) { + av_dict_set(lavc_venc_opts, "vdpart", "1", 0); + } //-- open codec -- //---------------- TC_LOCK_LIBAVCODEC; - ret = avcodec_open(lavc_venc_context, lavc_venc_codec); + ret = avcodec_open2(lavc_venc_context, lavc_venc_codec, lavc_venc_opts); TC_UNLOCK_LIBAVCODEC; if (ret < 0) { tc_log_warn(MOD_NAME, "could not open FFMPEG codec"); return TC_EXPORT_ERROR; } - if (lavc_venc_context->codec->encode == NULL) { + if (av_codec_is_encoder(lavc_venc_context->codec) == 0) { tc_log_warn(MOD_NAME, "could not open FFMPEG codec " - "(lavc_venc_context->codec->encode == NULL)"); + "(av_codec_is_encoder(lavc_venc_context->codec) == 0)"); return TC_EXPORT_ERROR; } diff -urN transcode-1.1.7-orig/export/ffmpeg_cfg.c transcode-1.1.7/export/ffmpeg_cfg.c --- transcode-1.1.7-orig/export/ffmpeg_cfg.c 2011-11-19 08:50:27.000000000 -0800 +++ transcode-1.1.7/export/ffmpeg_cfg.c 2012-07-03 10:09:25.011003254 -0700 @@ -160,9 +160,9 @@ {"vcelim", &lavc_param_chroma_elim_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99}, {"vpsize", &lavc_param_packet_size, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 100000000}, {"vstrict", &lavc_param_strict, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99}, - {"vdpart", &lavc_param_data_partitioning, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART}, + {"vdpart", &lavc_param_data_partitioning, TCCONF_TYPE_FLAG, 0, 0, 1}, // {"keyint", &lavc_param_keyint, TCCONF_TYPE_INT, 0, 0, 0}, - {"gray", &lavc_param_gray, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART}, + {"gray", &lavc_param_gray, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_GRAY}, {"mpeg_quant", &lavc_param_mpeg_quant, TCCONF_TYPE_FLAG, 0, 0, 1}, {"vi_qfactor", &lavc_param_vi_qfactor, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0}, {"vi_qoffset", &lavc_param_vi_qoffset, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 31.0}, @@ -211,7 +211,7 @@ #else {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_AC_PRED}, #endif - {"umv", &lavc_param_umv, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_UMV}, + {"umv", &lavc_param_umv, TCCONF_TYPE_FLAG, 0, 0, 1}, {"ibias", &lavc_param_ibias, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512}, {"pbias", &lavc_param_pbias, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512}, {"coder", &lavc_param_coder, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10}, @@ -223,9 +223,9 @@ {"nr", &lavc_param_noise_reduction, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000000}, {"qprd", &lavc_param_qp_rd, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QP_RD}, {"threads", &lavc_param_threads, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 16}, - {"ss", &lavc_param_ss, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_SLICE_STRUCT}, - {"svcd_sof", &lavc_param_scan_offset, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_SVCD_SCAN_OFFSET}, - {"alt", &lavc_param_alt, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_ALT_SCAN}, + {"ss", &lavc_param_ss, TCCONF_TYPE_FLAG, 0, 0, 1}, + {"svcd_sof", &lavc_param_scan_offset, TCCONF_TYPE_FLAG, 0, 0, 1}, + {"alt", &lavc_param_alt, TCCONF_TYPE_FLAG, 0, 0, 1}, {"ilme", &lavc_param_ilme, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_ME}, {"inter_threshold", &lavc_param_inter_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000}, {"sc_threshold", &lavc_param_sc_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000}, diff -urN transcode-1.1.7-orig/import/decode_lavc.c transcode-1.1.7/import/decode_lavc.c --- transcode-1.1.7-orig/import/decode_lavc.c 2011-11-19 08:50:27.000000000 -0800 +++ transcode-1.1.7/import/decode_lavc.c 2012-07-03 10:21:46.085005182 -0700 @@ -181,7 +181,7 @@ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) lavc_dec_context->error_resilience = 2; #else - lavc_dec_context->error_recognition = 2; + lavc_dec_context->err_recognition = 2; #endif lavc_dec_context->error_concealment = 3; lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT; diff -urN transcode-1.1.7-orig/import/import_ffmpeg.c transcode-1.1.7/import/import_ffmpeg.c --- transcode-1.1.7-orig/import/import_ffmpeg.c 2011-11-19 08:50:27.000000000 -0800 +++ transcode-1.1.7/import/import_ffmpeg.c 2012-07-03 10:19:36.936004841 -0700 @@ -314,7 +314,7 @@ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) lavc_dec_context->error_resilience = 2; #else - lavc_dec_context->error_recognition = 2; + lavc_dec_context->err_recognition = 2; #endif lavc_dec_context->error_concealment = 3; lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT; diff -urN transcode-1.1.7-orig/import/probe_ffmpeg.c transcode-1.1.7/import/probe_ffmpeg.c --- transcode-1.1.7-orig/import/probe_ffmpeg.c 2011-11-19 08:50:27.000000000 -0800 +++ transcode-1.1.7/import/probe_ffmpeg.c 2012-07-03 10:41:42.782008306 -0700 @@ -99,8 +99,8 @@ TC_INIT_LIBAVCODEC; - ret = av_open_input_file(&lavf_dmx_context, ipipe->name, - NULL, 0, NULL); + ret = avformat_open_input(&lavf_dmx_context, ipipe->name, + NULL, NULL); if (ret != 0) { tc_log_error(__FILE__, "unable to open '%s'" " (libavformat failure)", diff -urN transcode-1.1.7-orig/libtc/tcavcodec.h transcode-1.1.7/libtc/tcavcodec.h --- transcode-1.1.7-orig/libtc/tcavcodec.h 2011-11-19 08:50:27.000000000 -0800 +++ transcode-1.1.7/libtc/tcavcodec.h 2012-07-03 10:34:43.648007213 -0700 @@ -53,7 +53,6 @@ #define TC_INIT_LIBAVCODEC do { \ TC_LOCK_LIBAVCODEC; \ - avcodec_init(); \ avcodec_register_all(); \ TC_UNLOCK_LIBAVCODEC; \ } while (0) debian/patches/06_libav9-jmm.patch0000644000000000000000000000204012214061316014102 0ustar Description: Port to libav 9 API Author: Moritz Muehlenhoff Bug-Debian: http://bugs.debian.org/720828 Last-Update: 2013-09-09 --- transcode-1.1.7.orig/import/decode_lavc.c +++ transcode-1.1.7/import/decode_lavc.c @@ -170,7 +170,7 @@ void decode_lavc(decode_t *decode) // Set these to the expected values so that ffmpeg's decoder can // properly detect interlaced input. - lavc_dec_context = avcodec_alloc_context(); + lavc_dec_context = avcodec_alloc_context3(NULL); if (lavc_dec_context == NULL) { tc_log_error(__FILE__, "Could not allocate enough memory."); goto decoder_error; --- transcode-1.1.7.orig/import/probe_ffmpeg.c +++ transcode-1.1.7/import/probe_ffmpeg.c @@ -109,7 +109,7 @@ void probe_ffmpeg(info_t *ipipe) return; } - ret = av_find_stream_info(lavf_dmx_context); + ret = avformat_find_stream_info(lavf_dmx_context, NULL); if (ret < 0) { tc_log_error(__FILE__, "unable to fetch informations from '%s'" " (libavformat failure)", debian/patches/07_libav9-preset.patch0000644000000000000000000000410512214061133014623 0ustar Description: Use presets from /usr/share/avconv and check for .avpreset Preset files now have the extensions avpreset and are located in /usr/share/avconv. Author: Sebastian Ramacher Last-Update: 2013-09-11 --- transcode-1.1.7.orig/export/export_ffmpeg.c +++ transcode-1.1.7/export/export_ffmpeg.c @@ -306,11 +306,22 @@ static int opt_preset(const char *opt, c if (*opt != 'f') { for(i=!base[0]; i<2 && !f; i++){ - snprintf(filename, sizeof(filename), "%s%s/%s.ffpreset", base[i], i ? "" : "/.ffmpeg", arg); + snprintf(filename, sizeof(filename), "%s%s/%s.avpreset", base[i], i ? "" : "/.ffmpeg", arg); f= fopen(filename, "r"); if(!f){ char *codec_name= *opt == 'v' ? video_codec_name : *opt == 'a' ? audio_codec_name : + subtitle_codec_name; + snprintf(filename, sizeof(filename), "%s%s/%s-%s.avpreset", base[i], i ? "" : "/.ffmpeg", codec_name, arg); + f= fopen(filename, "r"); + } + if(!f){ + snprintf(filename, sizeof(filename), "%s%s/%s.ffpreset", base[i], i ? "" : "/.ffmpeg", arg); + f= fopen(filename, "r"); + } + if(!f){ + char *codec_name= *opt == 'v' ? video_codec_name : + *opt == 'a' ? audio_codec_name : subtitle_codec_name; snprintf(filename, sizeof(filename), "%s%s/%s-%s.ffpreset", base[i], i ? "" : "/.ffmpeg", codec_name, arg); f= fopen(filename, "r"); --- transcode-1.1.7.orig/export/ffmpeg_cfg.c +++ transcode-1.1.7/export/ffmpeg_cfg.c @@ -127,7 +127,7 @@ int lavc_param_gmc = 0; //int lavc_param_abitrate = 224; char *lavc_param_video_preset = NULL; -char *lavc_param_ffmpeg_datadir = "/usr/share/ffmpeg"; +char *lavc_param_ffmpeg_datadir = "/usr/share/avconv"; TCConfigEntry lavcopts_conf[]={ // {"acodec", &lavc_param_acodec, TCCONF_TYPE_STRING, 0, 0, 0}, debian/patches/series0000644000000000000000000000036412255327606012045 0ustar 01_filter_pv.c.diff 03_libav-api-fixes.diff 04_ffmpeg_options.patch ac3-audio-track-number.patch 05-libav9-gentoo.patch 06_libav9-jmm.patch 07_libav9-preset.patch 08_libav9-opt.patch 09_libav9-arch.patch 10_freetype.patch 11_underlinkage.patch debian/patches/09_libav9-arch.patch0000644000000000000000000003121012240013462014236 0ustar Description: Fix multiple issues with libav 9 Origin: vendor, https://projects.archlinux.org/svntogit/packages.git/tree/trunk/transcode-1.1.7-ffmpeg2.patch?h=packages/transcode Last-Update: 2013-11-11 --- a/encode/encode_lavc.c +++ b/encode/encode_lavc.c @@ -74,6 +74,9 @@ int lmin; int lmax; int me_method; + int luma_elim_threshold; + int chroma_elim_threshold; + int quantizer_noise_shaping; /* same as above for flags */ struct { @@ -114,7 +117,7 @@ AVFrame ff_venc_frame; AVCodecContext ff_vcontext; - AVDictionary ** ff_opts; + AVDictionary * ff_opts; AVCodec *ff_vcodec; @@ -165,6 +168,7 @@ TC_CODEC_ERROR }; +#if LIBAVCODEC_VERSION_MAJOR < 55 static const enum CodecID tc_lavc_internal_codecs[] = { CODEC_ID_MPEG1VIDEO, CODEC_ID_MPEG2VIDEO, CODEC_ID_MPEG4, CODEC_ID_H263I, CODEC_ID_H263P, @@ -177,6 +181,20 @@ CODEC_ID_MSMPEG4V2, CODEC_ID_MSMPEG4V3, CODEC_ID_NONE }; +#else +static const enum AVCodecID tc_lavc_internal_codecs[] = { + AV_CODEC_ID_MPEG1VIDEO, AV_CODEC_ID_MPEG2VIDEO, AV_CODEC_ID_MPEG4, + AV_CODEC_ID_H263I, AV_CODEC_ID_H263P, + AV_CODEC_ID_H264, + AV_CODEC_ID_WMV1, AV_CODEC_ID_WMV2, + AV_CODEC_ID_RV10, + AV_CODEC_ID_HUFFYUV, AV_CODEC_ID_FFV1, + AV_CODEC_ID_DVVIDEO, + AV_CODEC_ID_MJPEG, AV_CODEC_ID_LJPEG, + AV_CODEC_ID_MSMPEG4V2, AV_CODEC_ID_MSMPEG4V3, + AV_CODEC_ID_NONE +}; +#endif static const TCFormatID tc_lavc_formats[] = { TC_FORMAT_ERROR }; @@ -938,7 +956,11 @@ static void tc_lavc_config_defaults(TCLavcPrivateData *pd) { /* first of all reinitialize lavc data */ +#if LIBAVCODEC_VERSION_MAJOR < 55 avcodec_get_context_defaults(&pd->ff_vcontext); +#else + avcodec_get_context_defaults3(&pd->ff_vcontext, NULL); +#endif pd->confdata.thread_count = 1; @@ -978,8 +1000,8 @@ pd->ff_vcontext.mpeg_quant = 0; pd->ff_vcontext.rc_initial_cplx = 0.0; pd->ff_vcontext.rc_qsquish = 1.0; - pd->ff_vcontext.luma_elim_threshold = 0; - pd->ff_vcontext.chroma_elim_threshold = 0; + pd->confdata.luma_elim_threshold = 0; + pd->confdata.chroma_elim_threshold = 0; pd->ff_vcontext.strict_std_compliance = 0; pd->ff_vcontext.dct_algo = FF_DCT_AUTO; pd->ff_vcontext.idct_algo = FF_IDCT_AUTO; @@ -1003,7 +1025,7 @@ pd->ff_vcontext.intra_quant_bias = FF_DEFAULT_QUANT_BIAS; pd->ff_vcontext.inter_quant_bias = FF_DEFAULT_QUANT_BIAS; pd->ff_vcontext.noise_reduction = 0; - pd->ff_vcontext.quantizer_noise_shaping = 0; + pd->confdata.quantizer_noise_shaping = 0; pd->ff_vcontext.flags = 0; } @@ -1035,7 +1057,6 @@ pd->ff_vcontext.flags = 0; SET_FLAG(pd, mv0); - SET_FLAG(pd, cbp); SET_FLAG(pd, qpel); SET_FLAG(pd, naq); SET_FLAG(pd, ilme); @@ -1062,17 +1083,29 @@ pd->ff_vcontext.flags |= CODEC_FLAG_INTERLACED_ME; } if (pd->confdata.flags.alt) { - av_dict_set(pd->ff_opts, "alternate_scan", "1", 0); + av_dict_set(&(pd->ff_opts), "alternate_scan", "1", 0); } if (pd->confdata.flags.vdpart) { - av_dict_set(pd->ff_opts, "data_partitioning", "1", 0); + av_dict_set(&(pd->ff_opts), "data_partitioning", "1", 0); } if (pd->confdata.flags.umv) { - av_dict_set(pd->ff_opts, "umv", "1", 0); + av_dict_set(&(pd->ff_opts), "umv", "1", 0); } if (pd->confdata.flags.aiv) { - av_dict_set(pd->ff_opts, "aiv", "1", 0); + av_dict_set(&(pd->ff_opts), "aiv", "1", 0); } + if (pd->confdata.flags.cbp) { + av_dict_set(&(pd->ff_opts), "mpv_flags", "+cbp_rd", 0); + } + + char buf[1024]; +#define set_dict_opt(val, opt) \ + snprintf(buf, sizeof(buf), "%i", pd->confdata.val);\ + av_dict_set(&(pd->ff_opts), opt, buf, 0) + + set_dict_opt(luma_elim_threshold, "luma_elim_threshold"); + set_dict_opt(chroma_elim_threshold, "chroma_elim_threshold"); + set_dict_opt(quantizer_noise_shaping, "quantizer_noise_shaping"); } #undef SET_FLAG @@ -1159,8 +1192,8 @@ { "vrc_init_cplx", PCTX(rc_initial_cplx), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 9999999.0 }, // { "vrc_init_occupancy", }, // not yet supported { "vqsquish", PCTX(rc_qsquish), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 99.0 }, - { "vlelim", PCTX(luma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 }, - { "vcelim", PCTX(chroma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 }, + { "vlelim", PAUX(luma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 }, + { "vcelim", PAUX(chroma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 }, { "vstrict", PCTX(strict_std_compliance), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 }, { "vpsize", PCTX(rtp_payload_size), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 100000000 }, { "dct", PCTX(dct_algo), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10 }, @@ -1186,12 +1219,12 @@ { "ibias", PCTX(intra_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 }, { "pbias", PCTX(inter_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 }, { "nr", PCTX(noise_reduction), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000000}, - { "qns", PCTX(quantizer_noise_shaping), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 3 }, + { "qns", PAUX(quantizer_noise_shaping), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 3 }, { "inter_matrix_file", inter_matrix_file, TCCONF_TYPE_STRING, 0, 0, 0 }, { "intra_matrix_file", intra_matrix_file, TCCONF_TYPE_STRING, 0, 0, 0 }, { "mv0", PAUX(flags.mv0), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_MV0 }, - { "cbp", PAUX(flags.cbp), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CBP_RD }, + { "cbp", PAUX(flags.cbp), TCCONF_TYPE_FLAG, 0, 0, 1 }, { "qpel", PAUX(flags.qpel), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QPEL }, { "alt", PAUX(flags.alt), TCCONF_TYPE_FLAG, 0, 0, 1 }, { "ilme", PAUX(flags.ilme), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_ME }, @@ -1354,6 +1387,8 @@ pd = self->userdata; + pd->ff_opts = NULL; + pd->flush_flag = vob->encoder_flush; /* FIXME: move into core? */ @@ -1406,7 +1441,7 @@ } TC_LOCK_LIBAVCODEC; - ret = avcodec_open2(&pd->ff_vcontext, pd->ff_vcodec, pd->ff_opts); + ret = avcodec_open2(&pd->ff_vcontext, pd->ff_vcodec, &(pd->ff_opts)); TC_UNLOCK_LIBAVCODEC; if (ret < 0) { --- a/export/export_ffmpeg.c +++ b/export/export_ffmpeg.c @@ -122,7 +122,7 @@ static AVFrame *lavc_convert_frame = NULL; static AVCodec *lavc_venc_codec = NULL; -static AVDictionary **lavc_venc_opts = NULL; +static AVDictionary *lavc_venc_opts = NULL; static AVFrame *lavc_venc_frame = NULL; static AVCodecContext *lavc_venc_context; static avi_t *avifile = NULL; @@ -506,7 +506,7 @@ codec->name, codec->fourCC, codec->comments); } - lavc_venc_context = avcodec_alloc_context(); + lavc_venc_context = avcodec_alloc_context3(NULL); lavc_venc_frame = avcodec_alloc_frame(); lavc_convert_frame= avcodec_alloc_frame(); @@ -858,8 +858,13 @@ lavc_venc_context->rc_strategy = lavc_param_vrc_strategy; lavc_venc_context->b_frame_strategy = lavc_param_vb_strategy; lavc_venc_context->b_quant_offset = lavc_param_vb_qoffset; - lavc_venc_context->luma_elim_threshold= lavc_param_luma_elim_threshold; - lavc_venc_context->chroma_elim_threshold= lavc_param_chroma_elim_threshold; + + char buf[1024]; +#define set_dict_opt(val, opt) \ + snprintf(buf, sizeof(buf), "%i", val); \ + av_dict_set(&lavc_venc_opts, opt, buf, 0) + set_dict_opt(lavc_param_luma_elim_threshold, "luma_elim_threshold"); + set_dict_opt(lavc_param_chroma_elim_threshold, "chroma_elim_threshold"); lavc_venc_context->rtp_payload_size = lavc_param_packet_size; #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) if (lavc_param_packet_size) @@ -890,7 +895,7 @@ lavc_venc_context->context_model = lavc_param_context; lavc_venc_context->scenechange_threshold= lavc_param_sc_threshold; lavc_venc_context->noise_reduction = lavc_param_noise_reduction; - lavc_venc_context->inter_threshold = lavc_param_inter_threshold; + set_dict_opt(lavc_param_inter_threshold, "inter_threshold"); lavc_venc_context->intra_dc_precision = lavc_param_intra_dc_precision; lavc_venc_context->skip_top = lavc_param_skip_top; lavc_venc_context->skip_bottom = lavc_param_skip_bottom; @@ -1086,9 +1091,11 @@ lavc_venc_context->flags |= lavc_param_trunc; lavc_venc_context->flags |= lavc_param_aic; lavc_venc_context->flags |= lavc_param_v4mv; - lavc_venc_context->flags |= lavc_param_cbp; + if(lavc_param_cbp) + av_dict_set(&lavc_venc_opts, "mpv_flags", "+cbp_rd", 0); lavc_venc_context->flags |= lavc_param_mv0; - lavc_venc_context->flags |= lavc_param_qp_rd; + if(lavc_param_qp_rd) + av_dict_set(&lavc_venc_opts, "mpv_flags", "+qp_rd", 0); lavc_venc_context->flags |= lavc_param_ilme; #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) lavc_venc_context->flags |= lavc_param_trell; @@ -1256,29 +1263,29 @@ } if (lavc_param_scan_offset) { - av_dict_set(lavc_venc_opts, "scan_offset", "1", 0); + av_dict_set(&lavc_venc_opts, "scan_offset", "1", 0); } if (lavc_param_ss) { - av_dict_set(lavc_venc_opts, "structured_slices", "1", 0); + av_dict_set(&lavc_venc_opts, "structured_slices", "1", 0); } if (lavc_param_alt) { - av_dict_set(lavc_venc_opts, "alternate_scan", "1", 0); + av_dict_set(&lavc_venc_opts, "alternate_scan", "1", 0); } if (lavc_param_umv) { - av_dict_set(lavc_venc_opts, "umv", "1", 0); + av_dict_set(&lavc_venc_opts, "umv", "1", 0); } if (lavc_param_data_partitioning) { - av_dict_set(lavc_venc_opts, "vdpart", "1", 0); + av_dict_set(&lavc_venc_opts, "vdpart", "1", 0); } //-- open codec -- //---------------- TC_LOCK_LIBAVCODEC; - ret = avcodec_open2(lavc_venc_context, lavc_venc_codec, lavc_venc_opts); + ret = avcodec_open2(lavc_venc_context, lavc_venc_codec, &lavc_venc_opts); TC_UNLOCK_LIBAVCODEC; if (ret < 0) { tc_log_warn(MOD_NAME, "could not open FFMPEG codec"); --- a/export/ffmpeg_cfg.c +++ b/export/ffmpeg_cfg.c @@ -218,10 +218,10 @@ {"context", &lavc_param_context, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10}, {"intra_matrix", &lavc_param_intra_matrix, TCCONF_TYPE_STRING, 0, 0, 0}, {"inter_matrix", &lavc_param_inter_matrix, TCCONF_TYPE_STRING, 0, 0, 0}, - {"cbp", &lavc_param_cbp, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CBP_RD}, + {"cbp", &lavc_param_cbp, TCCONF_TYPE_FLAG, 0, 0, 1}, {"mv0", &lavc_param_mv0, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_MV0}, {"nr", &lavc_param_noise_reduction, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000000}, - {"qprd", &lavc_param_qp_rd, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QP_RD}, + {"qprd", &lavc_param_qp_rd, TCCONF_TYPE_FLAG, 0, 0, 1}, {"threads", &lavc_param_threads, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 16}, {"ss", &lavc_param_ss, TCCONF_TYPE_FLAG, 0, 0, 1}, {"svcd_sof", &lavc_param_scan_offset, TCCONF_TYPE_FLAG, 0, 0, 1}, --- a/export/aud_aux.c +++ b/export/aud_aux.c @@ -346,7 +346,7 @@ //-- set parameters (bitrate, channels and sample-rate) -- //-------------------------------------------------------- - avcodec_get_context_defaults(&mpa_ctx); + avcodec_get_context_defaults3(&mpa_ctx, mpa_codec); #if LIBAVCODEC_VERSION_MAJOR < 53 mpa_ctx.codec_type = CODEC_TYPE_AUDIO; #else @@ -359,7 +359,7 @@ //-- open codec -- //---------------- TC_LOCK_LIBAVCODEC; - ret = avcodec_open(&mpa_ctx, mpa_codec); + ret = avcodec_open2(&mpa_ctx, mpa_codec, NULL); TC_UNLOCK_LIBAVCODEC; if (ret < 0) { tc_warn("tc_audio_init_ffmpeg: could not open %s codec !", --- a/import/import_ffmpeg.c +++ b/import/import_ffmpeg.c @@ -302,7 +302,7 @@ // Set these to the expected values so that ffmpeg's decoder can // properly detect interlaced input. - lavc_dec_context = avcodec_alloc_context(); + lavc_dec_context = avcodec_alloc_context3(lavc_dec_codec); if (lavc_dec_context == NULL) { tc_log_error(MOD_NAME, "Could not allocate enough memory."); return TC_IMPORT_ERROR; @@ -344,7 +344,7 @@ } TC_LOCK_LIBAVCODEC; - ret = avcodec_open(lavc_dec_context, lavc_dec_codec); + ret = avcodec_open2(lavc_dec_context, lavc_dec_codec, NULL); TC_UNLOCK_LIBAVCODEC; if (ret < 0) { tc_log_warn(MOD_NAME, "Could not initialize the '%s' codec.", debian/patches/11_underlinkage.patch0000644000000000000000000000371012255326623014616 0ustar Description: Fix underlinkage of some plugins Author: Sebastian Ramacher Last-Update: 2013-12-21 --- a/import/Makefile.am +++ b/import/Makefile.am @@ -140,12 +140,12 @@ import_dvd_la_SOURCES = import_dvd.c ac3scan.c dvd_reader.c clone.c ioaux.c frame_info.c ivtc.c import_dvd_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBDVDREAD_CFLAGS) import_dvd_la_LDFLAGS = -module -avoid-version -import_dvd_la_LIBADD = $(LIBDVDREAD_LIBS) +import_dvd_la_LIBADD = $(LIBDVDREAD_LIBS) $(PTHREAD_LIBS) import_ffmpeg_la_SOURCES = import_ffmpeg.c -import_ffmpeg_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBAVFORMAT_CFLAGS) +import_ffmpeg_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBAVFORMAT_CFLAGS) $(LIBAVCODEC_CFLAGS) import_ffmpeg_la_LDFLAGS = -module -avoid-version -import_ffmpeg_la_LIBADD = $(LIBAVFORMAT_LIBS) +import_ffmpeg_la_LIBADD = $(LIBAVFORMAT_LIBS) $(LIBAVCODEC_LIBS) import_im_la_SOURCES = import_im.c import_im_la_CPPFLAGS = $(AM_CPPFLAGS) $(IMAGEMAGICK_CFLAGS) @@ -208,6 +208,7 @@ import_vob_la_SOURCES = import_vob.c ac3scan.c clone.c ioaux.c frame_info.c ivtc.c import_vob_la_CPPFLAGS = $(AM_CPPFLAGS) import_vob_la_LDFLAGS = -module -avoid-version +import_vob_la_LIBADD = $(PTHREAD_LIBS) import_xml_la_SOURCES = import_xml.c ioxml.c probe_xml.c import_xml_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBXML2_CFLAGS) --- a/filter/extsub/Makefile.am +++ b/filter/extsub/Makefile.am @@ -11,8 +11,10 @@ filter_extsub_la_SOURCES = filter_extsub.c subproc.c subtitle_buffer.c filter_extsub_la_LDFLAGS = -module -avoid-version +filter_extsub_la_LIBADD = $(PTHREAD_LIBS) filter_extsub2_la_SOURCES = filter_extsub.c subproc.c subtitle_buffer.c filter_extsub2_la_LDFLAGS = -module -avoid-version +filter_extsub2_la_LIBADD = $(PTHREAD_LIBS) EXTRA_DIST = subproc.h subtitle_buffer.h --- a/filter/subtitler/Makefile.am +++ b/filter/subtitler/Makefile.am @@ -38,7 +38,8 @@ -lXt \ -lm \ $(FREETYPE2_LIBS) \ - $(ICONV_LIBS) + $(ICONV_LIBS) \ + $(PTHREAD_LIBS) EXTRA_DIST = \ CHANGES \ debian/rules0000755000000000000000000000325312255326425010257 0ustar #!/usr/bin/make -f DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) nooptflags += --disable-3dnow nooptflags += --disable-altivec nooptflags += --disable-mmx ifneq ($(DEB_HOST_ARCH),amd64) nooptflags += --disable-sse nooptflags += --disable-sse2 endif confflags += $(nooptflags) confflags += --enable-a52 confflags += --enable-ffmpeg confflags += --enable-freetype2 confflags += --enable-iconv confflags += --enable-imagemagick confflags += --enable-lame confflags += --enable-libavcodec confflags += --enable-libavformat confflags += --enable-libavformat confflags += --enable-libdv confflags += --enable-libdvdread confflags += --enable-libjpeg confflags += --enable-libmpeg2 confflags += --enable-libmpeg2convert confflags += --enable-libpostproc confflags += --enable-libquicktime confflags += --enable-libxml2 confflags += --enable-lzo confflags += --enable-mjpegtools confflags += --enable-ogg confflags += --enable-oss confflags += --enable-sdl confflags += --enable-theora confflags += --enable-vorbis # The following flags also need --enable-experimental, but this needs to be # ported to libav 9. # confflags += --enable-faac # confflags += --enable-x264 # confflags += --enable-xvid ifeq ($(DEB_HOST_ARCH_OS),linux) confflags += --enable-alsa confflags += --enable-v4l endif confflags += --libdir=/usr/lib # Force the use of awk (and /usr/bin/awk) export AWK=awk %: dh $@ --parallel --with autoreconf override_dh_auto_configure: dh_auto_configure -- $(confflags) override_dh_auto_install: dh_auto_install rm -f debian/tmp/usr/lib/transcode/*.la override_dh_strip: dh_strip --dbg-package=transcode-dbg debian/README.source0000644000000000000000000000043512213400600011333 0ustar This package uses quilt to manage all modifications to the upstream source. The fully patched source can be generated using the patch target provided by `debian/rules'. If you want to know more about how to use quilt to manage Debian patches, read /usr/share/doc/quilt/README.source. debian/copyright0000644000000000000000000002001512213400600011103 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Transcode Upstream-Contact: Francesco Romani Andrew Church Source: https://bitbucket.org/france/transcode-tcforge/downloads Comment: The file AUTHORS contains an (almost) complete list of upstream authors and contributors. Files: * Copyright: 2005-2010 Francesco Romani 2007 Georg Martius 2007 Allan Snider 2006 Sebastian Kun 2004 Matthias Hopf 2004 Bryan Mayland 2004-2005 Jacob Meuser 2004 Julien Tierny 2004 by Dirk Ziegelmeier 2004 Brian de Alwis 2003, 2004 Christopher Cramer 2003 Nicolas LAURENT 2003 Marrq 2003 Max Alekseyev 2003 Guillaume Cottenceau 2003 Daniel Pittman 2003 Daniel Moreno 2002-2004 Tilmann Bitterberg 2002-2003 Thomas Wehrspann 2002-2003 Marzio Malanchini 2002 Tom Barry 2002 Thanassis Tsiodras 2002 Remi Guyomarch 2002 Moritz Bunkus 2002 Chad Page 2002 Alex Stewart 2001-2003 Peter Ross 2001-2003 Thomas Östreich 2001-2003 Jan Panteltje 2001,2002 Stefan Fendt 2001 Mike Bernson 2001 Gerhard Monzel 2001 Christoph Lampert 2000-2002 Michel Lespinasse 2000 Herbert Valerio Riedel 2000 Erik Walthinsen 2000 Charles 'Buck' Krasic 1999-2001 Donald A. Graft 1999-2001 Aaron Holtzman 1999 Rainer Johanni 1999 Wim Taymans 1998-1999 Joerg Walter 1998 Justin Schoeman License: GPL-2+ Files: avilib/platform.h avilib/platform_posix.c avilib/wavlib.* Copyright: 2006-2010 - Francesco Romani License: Zlib Files: import/framegen/ping.* Copyright: No copyright holders License: other-portaudio Comment: Copyleft 1999 Phil Burk - No rights reserved Files: libdldarwin/* Copyright: 2002 Jorge Acereda 2002 Peter O'Gorman License: Expat Files: libtc/getopt1.c Copyright: 1987-2001, Free Software Foundation, Inc. License: LGPL-2.1+ Files: libtc/strlcpy.c libtc/strlcat.c Copyright: 1998, Todd C. Miller License: ISC Files: debian/* Copyright: 2012 Alessio Treglia 2009 Alessio Treglia 2001-2009 Christian Marillat License: GPL-2+ License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Comment: You should have received a copy of the GNU General Public License along with this program. If not, see . . On Debian systems the full text of the GNU General Public License can be found in the `/usr/share/common-licenses/GPL-2' file. License: Zlib This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. . Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: . 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. License: other-portaudio PortAudio Portable Real-Time Audio Library Copyright (c) 1999-2000 Ross Bencina and Phil Burk . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. License: Expat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. License: LGPL-2.1+ This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. . This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. Comment: You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . . On Debian systems the full text of the GNU Lesser General Public License can be found in the `/usr/share/common-licenses/LGPL-2.1' file. License: ISC Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. . THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. debian/source/0000755000000000000000000000000012213400600010452 5ustar debian/source/format0000644000000000000000000000001412213400600011660 0ustar 3.0 (quilt) debian/compat0000644000000000000000000000000212214056246010366 0ustar 9 debian/transcode-doc.install0000644000000000000000000000006612213400600013271 0ustar usr/share/doc/transcode/* usr/share/doc/transcode-doc debian/transcode.install0000644000000000000000000000003612214071145012534 0ustar usr/bin usr/lib usr/share/man debian/transcode-doc.doc-base0000644000000000000000000000051412213400600013276 0ustar Document: transcode-doc Title: Transcode documentation Author: Dr. Thomas Östreich Abstract: This manual describes what transcode is and how it can be used. Section: Video Format: HTML Index: /usr/share/doc/transcode-doc/html/index.html Files: /usr/share/doc/transcode-doc/html/*.html debian/watch0000644000000000000000000000014112213400600010177 0ustar version=3 https://bitbucket.org/france/transcode-tcforge/downloads/transcode-([0-9.]+)\.tar\.bz2 debian/control0000644000000000000000000000676412240015675010610 0ustar Source: transcode Section: video Priority: optional Maintainer: Debian Multimedia Maintainers Uploaders: Reinhard Tartler , Alessio Treglia Homepage: https://bitbucket.org/france/transcode-tcforge Standards-Version: 3.9.5 Build-Depends: debhelper (>= 9), dh-autoreconf, liba52-0.7.4-dev, libasound2-dev [linux-any], libavcodec-dev (>= 6:9), libavformat-dev (>= 6:9), libavutil-dev (>= 6:9), libdv4-dev, libdvdread-dev, libfaad-dev, libfreetype6-dev, libjpeg-dev, liblzo2-dev, libmagickcore-dev, libmagickwand-dev, libmjpegtools-dev, libmp3lame-dev, libmpeg2-4-dev, libpopt-dev, libpostproc-dev, libquicktime-dev, libsdl1.2-dev, libswscale-dev, libtheora-dev, libvorbis-dev, libxaw7-dev, libxft-dev, libxml2-dev, libxv-dev, libxxf86vm-dev [i386] # libx264-dev and libxvidcore-dev are only required if --enable-x264 and # --enable-xvid are passed to configure. # libx264-dev, # libxvidcore-dev, Vcs-Git: git://anonscm.debian.org/pkg-multimedia/transcode.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-multimedia/transcode.git Package: transcode Architecture: any Depends: mawk | gawk, xterm | x-terminal-emulator, ${misc:Depends}, ${shlibs:Depends} Recommends: sox, transcode-doc, twolame Suggests: mjpegtools, xvid4conf Replaces: transcode-utils Description: Text console video-stream processing tool Transcode is a text console video-stream processing tool. It supports elementary video and audio frame transformations. Some example modules are included to enable import of MPEG-1/2, Digital Video, and other formats. It also includes export modules for writing to AVI files with DivX, OpenDivX, XviD, Digital Video or other codecs. Direct DVD transcoding is also supported. A set of tools is available to extract and decode the sources into raw video/audio streams for import and to enable post-processing of AVI files. Package: transcode-dbg Priority: extra Architecture: any Section: debug Depends: transcode (= ${binary:Version}), ${misc:Depends} Description: Text console video-stream processing tool - debugging symbols Transcode is a text console video-stream processing tool. It supports elementary video and audio frame transformations. Some example modules are included to enable import of MPEG-1/2, Digital Video, and other formats. It also includes export modules for writing to AVI files with DivX, OpenDivX, XviD, Digital Video or other codecs. Direct DVD transcoding is also supported. A set of tools is available to extract and decode the sources into raw video/audio streams for import and to enable post-processing of AVI files. . This package contains the debug symbols for the transcode programs. Package: transcode-doc Section: doc Architecture: all Depends: ${misc:Depends} Suggests: doc-base Replaces: transcode (<= 2:0.6.2.20030123) Description: Text console video-stream processing tool (documentation) Transcode is a text console video-stream processing tool. It supports elementary video and audio frame transformations. Some example modules are included to enable import of MPEG-1/2, Digital Video, and other formats. It also includes export modules for writing to AVI files with DivX, OpenDivX, XviD, Digital Video or other codecs. Direct DVD transcoding is also supported. A set of tools is available to extract and decode the sources into raw video/audio streams for import and to enable post-processing of AVI files. . This package contains the documentation.