[vlmc-devel] Use named media players
Tony Walker Arts
tony at tonywalkerarts.org.uk
Sat Feb 8 19:03:40 CET 2014
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
--
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlmc-devel/attachments/20140208/f390b082/attachment.html>
More information about the Vlmc-devel
mailing list