summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2010-10-23 17:21:56 +0000
committerjstebbins <[email protected]>2010-10-23 17:21:56 +0000
commit598eb7d0143f7c3cddea494fa9c626478fce2cf2 (patch)
tree6aedebdd1720e1e35b0872babeaa66167bb00e44
parent07331bb1e1c3d237fd63579d82c82440a7380883 (diff)
Add build option --enable-ff-mpeg2 to use ffmpeg for mpeg2 decoding
instead of mpeg2dec. disabled by default. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3610 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--libhb/module.defs3
-rw-r--r--libhb/scan.c8
-rw-r--r--libhb/work.c7
-rw-r--r--make/configure.py3
4 files changed, 21 insertions, 0 deletions
diff --git a/libhb/module.defs b/libhb/module.defs
index 4759a921a..6518bcc8d 100644
--- a/libhb/module.defs
+++ b/libhb/module.defs
@@ -34,6 +34,9 @@ LIBHB.out += $(LIBHB.a)
###############################################################################
+ifeq (1,$(FEATURE.ff.mpeg2))
+LIBHB.GCC.D += USE_FF_MPEG2
+endif
LIBHB.GCC.D += __LIBHB__ USE_PTHREAD
LIBHB.GCC.I += $(LIBHB.build/) $(CONTRIB.build/)include
diff --git a/libhb/scan.c b/libhb/scan.c
index 445314bcd..901551f55 100644
--- a/libhb/scan.c
+++ b/libhb/scan.c
@@ -5,6 +5,7 @@
It may be used under the terms of the GNU General Public License. */
#include "hb.h"
+#include "hbffmpeg.h"
#include "a52dec/a52.h"
#include "dca.h"
@@ -526,6 +527,13 @@ static int DecodePreviews( hb_scan_t * data, hb_title_t * title )
hb_deep_log( 2, "scan: preview %d", i + 1 );
int vcodec = title->video_codec? title->video_codec : WORK_DECMPEG2;
+#if defined(USE_FF_MPEG2)
+ if (vcodec == WORK_DECMPEG2)
+ {
+ vcodec = WORK_DECAVCODECV;
+ title->video_codec_param = CODEC_ID_MPEG2VIDEO;
+ }
+#endif
hb_work_object_t *vid_decoder = hb_get_work( vcodec );
vid_decoder->codec_param = title->video_codec_param;
vid_decoder->title = title;
diff --git a/libhb/work.c b/libhb/work.c
index 7caa0691e..c9d32de91 100644
--- a/libhb/work.c
+++ b/libhb/work.c
@@ -637,6 +637,13 @@ static void do_job( hb_job_t * job, int cpu_count )
/* Video decoder */
int vcodec = title->video_codec? title->video_codec : WORK_DECMPEG2;
+#if defined(USE_FF_MPEG2)
+ if (vcodec == WORK_DECMPEG2)
+ {
+ vcodec = WORK_DECAVCODECV;
+ title->video_codec_param = CODEC_ID_MPEG2VIDEO;
+ }
+#endif
hb_list_add( job->list_work, ( w = hb_get_work( vcodec ) ) );
w->codec_param = title->video_codec_param;
w->fifo_in = job->fifo_mpeg2;
diff --git a/make/configure.py b/make/configure.py
index 6702ee28d..c069fc342 100644
--- a/make/configure.py
+++ b/make/configure.py
@@ -1059,6 +1059,8 @@ def createCLI():
grp.add_option( '--disable-gtk-update-checks', default=False, action='store_true', help=h )
h = IfHost( 'enable GTK GUI (mingw)', '*-*-mingw*', none=optparse.SUPPRESS_HELP ).value
grp.add_option( '--enable-gtk-mingw', default=False, action='store_true', help=h )
+ h = IfHost( 'enable use of ffmpeg mpeg2 decoding', '*-*-*', none=optparse.SUPPRESS_HELP ).value
+ grp.add_option( '--enable-ff-mpeg2', default=False, action='store_true', help=h )
h = IfHost( 'disable Xcode', '*-*-darwin*', none=optparse.SUPPRESS_HELP ).value
grp.add_option( '--disable-xcode', default=False, action='store_true', help=h )
@@ -1455,6 +1457,7 @@ int main ()
doc.add( 'FEATURE.gtk', int( not options.disable_gtk ))
doc.add( 'FEATURE.gtk.update.checks', int( not options.disable_gtk_update_checks ))
doc.add( 'FEATURE.gtk.mingw', int( options.enable_gtk_mingw ))
+ doc.add( 'FEATURE.ff.mpeg2', int( options.enable_ff_mpeg2 ))
doc.add( 'FEATURE.xcode', int( not (Tools.xcodebuild.fail or options.disable_xcode or options.cross) ))
if not Tools.xcodebuild.fail and not options.disable_xcode: