diff options
Diffstat (limited to 'qt4/qhandbrake.cpp')
-rw-r--r-- | qt4/qhandbrake.cpp | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/qt4/qhandbrake.cpp b/qt4/qhandbrake.cpp deleted file mode 100644 index ba08975de..000000000 --- a/qt4/qhandbrake.cpp +++ /dev/null @@ -1,128 +0,0 @@ -#include "qhandbrake.h" - -QHandBrake::QHandBrake( QObject *parent ) : QObject( parent ) -{ - hbHandle = hb_init_express( HB_DEBUG_NONE, 1 ); - hbTitle = NULL; -} - -QHandBrake::~QHandBrake() -{ - hb_close( &hbHandle ); -} - -QString displayDuration( const QTime t ) -{ - return QString( "%1 %2, %3 %4, %5 %6").arg(t.hour()).arg(t.hour() == 1 ? "hour" : "hours").arg(t.minute()).arg(t.minute() == 1 ? "minute" : "minutes").arg(t.second()).arg(t.second() == 1 ? "second" : "seconds"); -} - -QStandardItemModel *QHandBrake::titleListModel() -{ - hb_list_t *hbTitles; - int i, titleCount; - - hbTitles = hb_get_titles( hbHandle ); - titleCount = hb_list_count( hbTitles ); - titleModel = new QStandardItemModel( titleCount, 2, this ); - - titleModel->setHorizontalHeaderItem( 0, new QStandardItem("Title") ); - titleModel->setHorizontalHeaderItem( 1, new QStandardItem("Duration") ); - - for( i = 0; i < titleCount; ++i ) - { - hb_title_t *t = ( hb_title_t * )hb_list_item( hbTitles, i ); - - QTime d = QTime( t->hours, t->minutes, t->seconds ); - QString s = QString( "Title %1" ).arg( t->index ); - QStandardItem *siTitle = new QStandardItem( s ); - QStandardItem *siDuration = new QStandardItem( displayDuration( d ) ); - titleModel->setItem( i, 0, siTitle ); - titleModel->setItem( i, 1, siDuration ); - - siTitle->setCheckable( true ); - siTitle->setEditable( false ); - siTitle->setData( i, Qt::UserRole ); - - siDuration->setEditable( false ); - } - - return titleModel; -} - -void QHandBrake::startScan( const QString sDevice ) -{ - hb_state_t s; - int titleCurrent = 0; - int titleCount = 0; - - if( sDevice.isEmpty() ) - { - qDebug("Passed an empty device/path"); - return; - } - - hb_scan( hbHandle, sDevice.toLocal8Bit(), 0 ); - - do { - hb_get_state( hbHandle, &s ); - qApp->processEvents(); - if( s.state == HB_STATE_SCANNING ) - { - titleCurrent = s.param.scanning.title_cur; - titleCount = s.param.scanning.title_count; - - if( titleCurrent > 0 ) - { - emit scanProgress( titleCurrent, titleCount ); - qApp->processEvents(); - } - } - } while( s.state != HB_STATE_SCANDONE ); - - if( hb_list_count( hb_get_titles( hbHandle ) ) ) - { - emit scanProgress( titleCount, titleCount ); - } - else - { - qDebug("Scanning failed"); - return; - } -} - -void QHandBrake::encode() -{ - if( hbHandle == NULL ) - { - qDebug("Encode called too early"); - return; - } - - int i; - hb_list_t *titles = hb_get_titles( hbHandle ); - - for( i = 0; i < titleModel->rowCount(); ++i ) - { - QStandardItem *si = titleModel->item( i, 0 ); - if( si->checkState() == Qt::Checked ) - { - hbTitle = ( hb_title_t * )hb_list_item( titles, si->data( Qt::UserRole ).toInt() ); - hb_job_t *job = hbTitle->job; - // FIXME hardcoded params here! need to fix - job->pixel_ratio = 1; - job->vcodec = HB_VCODEC_FFMPEG; - job->vquality = -1.0; - job->vbitrate = 1600; - job->acodec = HB_ACODEC_LAME; - job->audios[0] = -1; - job->mux = HB_MUX_MP4; - job->subtitle = -1; - job->pass = 0; - job->file = strdup("/tmp/foo.mp4"); - hb_add( hbHandle, job ); - } - } - - fprintf(stderr, "Calling hb_start...\n"); - hb_start( hbHandle ); -} |