[vlmc-devel] Use named media players
Rohit Yadav
bhaisaab at apache.org
Sat Feb 8 19:25:05 CET 2014
Hi Tony,
Thanks for your interest. Anyone of the VLMC team will announce when
we'll have our debian builds working (again). For now you may clone
the repo and try to build on Linux, or wait till we figure out
building and packaging again. Patches welcome, as always!
Regards.
PS. JFYI, the project was unmaintained for a very long time and it's
only recently Hugo have been working on it again and most of us barely
get free time during weekends even.
On Sat, Feb 8, 2014 at 11:33 PM, Tony Walker Arts
<tony at tonywalkerarts.org.uk> wrote:
> I would like to contribute to the VLMC project as a beta tester. I have old
> 15 years experience editing video. I have used Final Cut Pro. Adobe
> Premiere, Media 100 & Avid.
>
> I can test VLMC on Linux. I am using Elementary OS Luna (Ubuntu).
>
> Best wishes, Tony
> --
>
>
> On 8 February 2014 17:48, Hugo Beauzée-Luyssen <git at videolan.org> wrote:
>>
>> vlmc | branch: master | Hugo Beauzée-Luyssen <hugo at beauzee.fr> | Sat Feb
>> 8 15:51:07 2014 +0200| [00b286e02115523887904b3b43072119058734b2] |
>> committer: Hugo Beauzée-Luyssen
>>
>> Use named media players
>>
>> >
>> > http://git.videolan.org/gitweb.cgi/vlmc.git/?a=commit;h=00b286e02115523887904b3b43072119058734b2
>> ---
>>
>> src/LibVLCpp/VLCMediaPlayer.cpp | 28 ++++++++++++++++++++++++----
>> src/LibVLCpp/VLCMediaPlayer.h | 6 +++++-
>> src/Media/Transcoder.cpp | 2 +-
>> src/Metadata/MetaDataManager.cpp | 2 +-
>> src/Renderer/GenericRenderer.cpp | 2 +-
>> src/Settings/SettingValue.cpp | 2 +-
>> src/Workflow/ClipWorkflow.cpp | 2 ++
>> 7 files changed, 35 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/LibVLCpp/VLCMediaPlayer.cpp
>> b/src/LibVLCpp/VLCMediaPlayer.cpp
>> index c0b8520..580746d 100644
>> --- a/src/LibVLCpp/VLCMediaPlayer.cpp
>> +++ b/src/LibVLCpp/VLCMediaPlayer.cpp
>> @@ -29,7 +29,8 @@
>>
>> using namespace LibVLCpp;
>>
>> -MediaPlayer::MediaPlayer() : m_media( NULL )
>> +MediaPlayer::MediaPlayer()
>> + : m_media( NULL )
>> {
>> m_internalPtr = libvlc_media_player_new(
>> LibVLCpp::Instance::getInstance()->getInternalPtr() );
>> // Initialize the event manager
>> @@ -37,7 +38,19 @@ MediaPlayer::MediaPlayer() : m_media( NULL )
>> registerEvents();
>> }
>>
>> -MediaPlayer::MediaPlayer( Media* media ) : m_media( media )
>> +MediaPlayer::MediaPlayer( const QString& name )
>> + : m_name( name )
>> + , m_media( NULL )
>> +{
>> + m_internalPtr = libvlc_media_player_new(
>> LibVLCpp::Instance::getInstance()->getInternalPtr() );
>> + // Initialize the event manager
>> + p_em = libvlc_media_player_event_manager( m_internalPtr );
>> + registerEvents();
>> +}
>> +
>> +MediaPlayer::MediaPlayer( const QString& name, Media* media )
>> + : m_name( name )
>> + , m_media( media )
>> {
>> m_internalPtr = libvlc_media_player_new_from_media(
>> media->getInternalPtr() );
>>
>> @@ -120,12 +133,14 @@ MediaPlayer::callbacks( const libvlc_event_t* event,
>> void* ptr )
>> {
>> Q_ASSERT_X( event->type >= libvlc_MediaPlayerMediaChanged &&
>> event->type < libvlc_MediaListItemAdded, "event
>> callback", "Only libvlc_MediaPlayer* events are supported" );
>> +
>> + MediaPlayer* self = reinterpret_cast<MediaPlayer*>( ptr );
>> +
>> if (event->type != libvlc_MediaPlayerPositionChanged &&
>> event->type != libvlc_MediaPlayerTimeChanged)
>> {
>> - qDebug() << ptr << libvlc_event_type_name(event->type);
>> + qDebug() << self->m_name << "Event received:" <<
>> libvlc_event_type_name(event->type);
>> }
>> - MediaPlayer* self = reinterpret_cast<MediaPlayer*>( ptr );
>>
>> self->checkForWaitedEvents( event );
>>
>> @@ -384,3 +399,8 @@ MediaPlayer::waitForEvent( unsigned long
>> timeoutDuration )
>> return Timeout;
>> return ( found ? Success : Canceled );
>> }
>> +
>> +void MediaPlayer::setName(const QString &name)
>> +{
>> + m_name = name;
>> +}
>> diff --git a/src/LibVLCpp/VLCMediaPlayer.h b/src/LibVLCpp/VLCMediaPlayer.h
>> index 8f6c442..9004d50 100644
>> --- a/src/LibVLCpp/VLCMediaPlayer.h
>> +++ b/src/LibVLCpp/VLCMediaPlayer.h
>> @@ -51,7 +51,8 @@ namespace LibVLCpp
>> typedef bool (*CheckEventCallback)(const MediaPlayer*, const
>> libvlc_event_t*);
>>
>> MediaPlayer();
>> - MediaPlayer( Media* media );
>> + MediaPlayer(const QString &name);
>> + MediaPlayer(const QString &name, Media* media );
>> ~MediaPlayer();
>> void play();
>> void pause();
>> @@ -133,12 +134,15 @@ namespace LibVLCpp
>> */
>> MediaPlayer::EventWaitResult waitForEvent( unsigned long
>> timeout = ULONG_MAX );
>>
>> + void setName( const QString& name
>> );
>> +
>> private:
>> static void callbacks( const
>> libvlc_event_t* event, void* self );
>> void registerEvents();
>> void checkForWaitedEvents( const
>> libvlc_event_t* event );
>>
>> private:
>> + QString m_name;
>> libvlc_event_manager_t* p_em;
>> Media* m_media;
>>
>> diff --git a/src/Media/Transcoder.cpp b/src/Media/Transcoder.cpp
>> index 21e08cd..e46de35 100644
>> --- a/src/Media/Transcoder.cpp
>> +++ b/src/Media/Transcoder.cpp
>> @@ -51,7 +51,7 @@ Transcoder::transcodeToPs()
>> m_destinationFile = outputDir + '/' + m_media->fileInfo()->baseName()
>> + ".ps";
>> QString option = ":sout=file://" + m_destinationFile;
>> media->addOption( option.toUtf8().constData() );
>> - LibVLCpp::MediaPlayer *mp = new LibVLCpp::MediaPlayer( media );
>> + LibVLCpp::MediaPlayer *mp = new LibVLCpp::MediaPlayer(
>> "Transcoder", media );
>> connect( mp, SIGNAL( positionChanged( float ) ), this, SIGNAL(
>> progress( float ) ) );
>> connect( mp, SIGNAL( endReached() ), this, SLOT( transcodeFinished()
>> ) );
>> emit notify( "Transcoding " + m_media->fileInfo()->absoluteFilePath()
>> + " to " + m_destinationFile );
>> diff --git a/src/Metadata/MetaDataManager.cpp
>> b/src/Metadata/MetaDataManager.cpp
>> index 2adbbb2..156fd20 100644
>> --- a/src/Metadata/MetaDataManager.cpp
>> +++ b/src/Metadata/MetaDataManager.cpp
>> @@ -46,7 +46,7 @@ MetaDataManager::launchComputing( Media *media )
>> {
>> emit startingComputing( media );
>> m_computeInProgress = true;
>> - m_mediaPlayer = new LibVLCpp::MediaPlayer;
>> + m_mediaPlayer = new LibVLCpp::MediaPlayer( "MetaDataManager" );
>> MetaDataWorker* worker = new MetaDataWorker( m_mediaPlayer, media );
>> connect( worker, SIGNAL( computed() ),
>> this, SLOT( computingCompleted() ),
>> diff --git a/src/Renderer/GenericRenderer.cpp
>> b/src/Renderer/GenericRenderer.cpp
>> index 3cc5799..583d240 100644
>> --- a/src/Renderer/GenericRenderer.cpp
>> +++ b/src/Renderer/GenericRenderer.cpp
>> @@ -28,7 +28,7 @@
>> GenericRenderer::GenericRenderer() :
>> m_paused( false )
>> {
>> - m_mediaPlayer = new LibVLCpp::MediaPlayer();
>> + m_mediaPlayer = new LibVLCpp::MediaPlayer( "Renderer" );
>> m_mediaPlayer->disableTitle();
>> }
>>
>> diff --git a/src/Settings/SettingValue.cpp b/src/Settings/SettingValue.cpp
>> index ff9c230..36ac70a 100644
>> --- a/src/Settings/SettingValue.cpp
>> +++ b/src/Settings/SettingValue.cpp
>> @@ -93,7 +93,7 @@ SettingValue::flags() const
>> void
>> SettingValue::setLimits( const QVariant& min, const QVariant& max )
>> {
>> - Q_ASSERT_X( ( ( m_flags & Clamped ) != 0 ), "SettingVaklue", "Setting
>> limits to a non-clamped value" );
>> + Q_ASSERT_X( ( ( m_flags & Clamped ) != 0 ), "SettingValue", "Setting
>> limits to a non-clamped value" );
>> if ( min.isValid() == true )
>> m_min = min;
>> if ( max.isValid() == true )
>> diff --git a/src/Workflow/ClipWorkflow.cpp b/src/Workflow/ClipWorkflow.cpp
>> index 15dd794..6758fbb 100644
>> --- a/src/Workflow/ClipWorkflow.cpp
>> +++ b/src/Workflow/ClipWorkflow.cpp
>> @@ -31,6 +31,7 @@
>> #include "VLCMediaPlayer.h"
>>
>> #include <QReadWriteLock>
>> +#include <QStringBuilder>
>> #include <QWaitCondition>
>> #include <QtDebug>
>>
>> @@ -65,6 +66,7 @@ ClipWorkflow::initialize()
>> initializeVlcOutput();
>> m_vlcMedia->addOption( createSoutChain() );
>> m_mediaPlayer =
>> MemoryPool<LibVLCpp::MediaPlayer>::getInstance()->get();
>> + m_mediaPlayer->setName( "ClipWorkflow " %
>> m_clipHelper->uuid().toString() );
>> m_mediaPlayer->setMedia( m_vlcMedia );
>> m_mediaPlayer->disableTitle();
>>
>>
>> _______________________________________________
>> Vlmc-devel mailing list
>> Vlmc-devel at videolan.org
>> https://mailman.videolan.org/listinfo/vlmc-devel
>
>
>
>
> --
> --
> Tony Walker
> Tony Walker Arts
> --
> www.tonywalkerarts.org.uk
> www.facebook.com/tonywalkerarts
> --
>
>
>
>
> _______________________________________________
> Vlmc-devel mailing list
> Vlmc-devel at videolan.org
> https://mailman.videolan.org/listinfo/vlmc-devel
>
More information about the Vlmc-devel
mailing list