[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