[vlc-commits] [Git][videolan/vlc][master] 2 commits: demux: adaptive: add macro to enforce inits/copy/move/assign
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Sun Jul 20 10:19:30 UTC 2025
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
d9b75dc5 by François Cartegnie at 2025-07-20T09:47:16+00:00
demux: adaptive: add macro to enforce inits/copy/move/assign
- - - - -
05ce49cd by François Cartegnie at 2025-07-20T09:47:16+00:00
demux: adaptive: rename AbstractSource to BlockStreamInterface
- - - - -
28 changed files:
- modules/demux/Makefile.am
- modules/demux/adaptive/AbstractSource.hpp → modules/demux/adaptive/BlockStreamInterface.hpp
- modules/demux/adaptive/PlaylistManager.h
- modules/demux/adaptive/SegmentTracker.hpp
- modules/demux/adaptive/Streams.hpp
- modules/demux/adaptive/http/Chunk.h
- modules/demux/adaptive/http/Downloader.hpp
- modules/demux/adaptive/http/HTTPConnection.cpp
- modules/demux/adaptive/http/HTTPConnection.hpp
- modules/demux/adaptive/http/HTTPConnectionManager.h
- modules/demux/adaptive/logic/IDownloadRateObserver.h
- modules/demux/adaptive/playlist/CodecDescription.hpp
- modules/demux/adaptive/playlist/CommonAttributesElements.h
- modules/demux/adaptive/playlist/ICanonicalUrl.hpp
- modules/demux/adaptive/playlist/Inheritables.hpp
- modules/demux/adaptive/playlist/Segment.h
- modules/demux/adaptive/playlist/SegmentBaseType.hpp
- modules/demux/adaptive/playlist/SegmentInformation.hpp
- modules/demux/adaptive/plumbing/CommandsQueue.cpp
- modules/demux/adaptive/plumbing/CommandsQueue.hpp
- modules/demux/adaptive/plumbing/Demuxer.cpp
- modules/demux/adaptive/plumbing/Demuxer.hpp
- modules/demux/adaptive/plumbing/FakeESOut.hpp
- modules/demux/adaptive/plumbing/FakeESOutID.hpp
- modules/demux/adaptive/plumbing/SourceStream.cpp
- modules/demux/adaptive/plumbing/SourceStream.hpp
- + modules/demux/adaptive/tools/Macros.hpp
- modules/demux/meson.build
Changes:
=====================================
modules/demux/Makefile.am
=====================================
@@ -393,7 +393,7 @@ libvlc_adaptive_la_SOURCES = \
demux/adaptive/plumbing/FakeESOutID.hpp \
demux/adaptive/plumbing/SourceStream.cpp \
demux/adaptive/plumbing/SourceStream.hpp \
- demux/adaptive/AbstractSource.hpp \
+ demux/adaptive/BlockStreamInterface.hpp \
demux/adaptive/ID.hpp \
demux/adaptive/ID.cpp \
demux/adaptive/PlaylistManager.cpp \
@@ -415,6 +415,7 @@ libvlc_adaptive_la_SOURCES = \
demux/adaptive/tools/FormatNamespace.hpp \
demux/adaptive/tools/Helper.cpp \
demux/adaptive/tools/Helper.h \
+ demux/adaptive/tools/Macros.hpp \
demux/adaptive/tools/MovingAverage.hpp \
demux/adaptive/tools/Properties.hpp \
demux/adaptive/tools/Retrieve.cpp \
=====================================
modules/demux/adaptive/AbstractSource.hpp → modules/demux/adaptive/BlockStreamInterface.hpp
=====================================
@@ -1,5 +1,5 @@
/*
- * AbstractSource.hpp
+ * BlockStreamInterface.hpp
*****************************************************************************
* Copyright © 2015-2019 - VideoLabs, VideoLAN and VLC Authors
*
@@ -17,20 +17,22 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#ifndef ABSTRACTSOURCE_HPP
-#define ABSTRACTSOURCE_HPP
+#ifndef BLOCKSTREAMINTERFACE_HPP
+#define BLOCKSTREAMINTERFACE_HPP
#include <vlc_common.h>
+#include "tools/Macros.hpp"
namespace adaptive
{
- class AbstractSource
+ class BlockStreamInterface
{
+ PREREQ_INTERFACE(BlockStreamInterface);
+
public:
- virtual ~AbstractSource() {}
virtual block_t *readNextBlock() = 0;
};
}
-#endif // ABSTRACTSOURCE_HPP
+#endif // BLOCKSTREAMINTERFACE_HPP
=====================================
modules/demux/adaptive/PlaylistManager.h
=====================================
@@ -23,6 +23,7 @@
#define PLAYLISTMANAGER_H_
#include "logic/AbstractAdaptationLogic.h"
+#include "tools/Macros.hpp"
#include "Streams.hpp"
#include <vector>
@@ -49,6 +50,8 @@ namespace adaptive
class PlaylistManager
{
+ PREREQ_VIRTUAL(PlaylistManager);
+
public:
PlaylistManager( demux_t *,
SharedResources *,
=====================================
modules/demux/adaptive/SegmentTracker.hpp
=====================================
@@ -24,6 +24,7 @@
#include "Time.hpp"
#include "playlist/CodecDescription.hpp"
#include "playlist/Role.hpp"
+#include "tools/Macros.hpp"
#include <vlc_common.h>
#include <list>
@@ -58,6 +59,8 @@ namespace adaptive
class TrackerEvent
{
+ PREREQ_VIRTUAL(TrackerEvent);
+
public:
enum class Type
{
@@ -190,9 +193,10 @@ namespace adaptive
class SegmentTrackerListenerInterface
{
+ PREREQ_INTERFACE(SegmentTrackerListenerInterface);
+
public:
virtual void trackerEvent(const TrackerEvent &) = 0;
- virtual ~SegmentTrackerListenerInterface() = default;
};
class SegmentTracker
=====================================
modules/demux/adaptive/Streams.hpp
=====================================
@@ -22,7 +22,7 @@
#include <vlc_common.h>
#include "StreamFormat.hpp"
-#include "AbstractSource.hpp"
+#include "BlockStreamInterface.hpp"
#include "SegmentTracker.hpp"
#include "plumbing/CommandsQueue.hpp"
@@ -50,14 +50,17 @@ namespace adaptive
using namespace http;
using namespace playlist;
- class AbstractStream : public AbstractSource,
+ class AbstractStream : public BlockStreamInterface,
public ExtraFMTInfoInterface,
public SegmentTrackerListenerInterface,
public DemuxerFactoryInterface
{
+ PREREQ_VIRTUAL(AbstractStream);
+
public:
AbstractStream(demux_t *);
virtual ~AbstractStream();
+
bool init(const StreamFormat &, SegmentTracker *);
void setLanguage(const std::string &);
=====================================
modules/demux/adaptive/http/Chunk.h
=====================================
@@ -31,6 +31,7 @@
#include "BytesRange.hpp"
#include "ConnectionParams.hpp"
#include "../ID.hpp"
+#include "../tools/Macros.hpp"
#include <vlc_threads.h>
#include <vlc_cxx_helpers.hpp>
@@ -55,8 +56,9 @@ namespace adaptive
class ChunkInterface
{
+ PREREQ_INTERFACE(ChunkInterface);
+
public:
- virtual ~ChunkInterface() {}
virtual const std::string & getContentType () const = 0;
virtual RequestStatus getRequestStatus() const = 0;
@@ -71,6 +73,7 @@ namespace adaptive
class AbstractChunkSource : public ChunkInterface
{
friend class AbstractConnectionManager;
+ PREREQ_VIRTUAL(AbstractChunkSource);
public:
const BytesRange & getBytesRange () const;
@@ -92,6 +95,8 @@ namespace adaptive
class AbstractChunk : public ChunkInterface
{
+ PREREQ_VIRTUAL(AbstractChunk);
+
public:
virtual ~AbstractChunk();
=====================================
modules/demux/adaptive/http/Downloader.hpp
=====================================
@@ -38,6 +38,9 @@ namespace adaptive
public:
Downloader();
~Downloader();
+ Downloader(Downloader&&) = delete;
+ Downloader& operator=(const Downloader&) = delete;
+ Downloader& operator=(Downloader&&) = delete;
bool start();
void schedule(HTTPChunkBufferedSource *);
void cancel(HTTPChunkBufferedSource *);
=====================================
modules/demux/adaptive/http/HTTPConnection.cpp
=====================================
@@ -24,7 +24,7 @@
#include "HTTPConnection.hpp"
#include "ConnectionParams.hpp"
#include "AuthStorage.hpp"
-#include "../AbstractSource.hpp"
+#include "../BlockStreamInterface.hpp"
#include "../plumbing/SourceStream.hpp"
#include "../tools/Compatibility.hpp"
@@ -84,7 +84,7 @@ const ConnectionParams & AbstractConnection::getRedirection() const
return locationparams;
}
-class adaptive::http::LibVLCHTTPSource : public adaptive::AbstractSource
+class adaptive::http::LibVLCHTTPSource : public adaptive::BlockStreamInterface
{
public:
LibVLCHTTPSource(vlc_object_t *p_object_, struct vlc_http_cookie_jar_t *jar)
=====================================
modules/demux/adaptive/http/HTTPConnection.hpp
=====================================
@@ -45,6 +45,9 @@ namespace adaptive
public:
AbstractConnection(vlc_object_t *);
virtual ~AbstractConnection();
+ AbstractConnection(AbstractConnection&&) = delete;
+ AbstractConnection& operator=(const AbstractConnection&) = delete;
+ AbstractConnection& operator=(AbstractConnection&&) = delete;
virtual bool prepare (const ConnectionParams &);
virtual bool canReuse (const ConnectionParams &) const = 0;
=====================================
modules/demux/adaptive/http/HTTPConnectionManager.h
=====================================
@@ -52,6 +52,9 @@ namespace adaptive
public:
AbstractConnectionManager(vlc_object_t *);
~AbstractConnectionManager();
+ AbstractConnectionManager(AbstractConnectionManager&&) = delete;
+ AbstractConnectionManager& operator=(const AbstractConnectionManager&) = delete;
+ AbstractConnectionManager& operator=(AbstractConnectionManager&&) = delete;
virtual void closeAllConnections () = 0;
virtual AbstractConnection * getConnection(ConnectionParams &) = 0;
virtual AbstractChunkSource *makeSource(const std::string &,
=====================================
modules/demux/adaptive/logic/IDownloadRateObserver.h
=====================================
@@ -25,6 +25,8 @@
#ifndef IDOWNLOADRATEOBSERVER_H_
#define IDOWNLOADRATEOBSERVER_H_
+#include "../tools/Macros.hpp"
+
#include <vlc_common.h>
#include <vlc_tick.h>
@@ -34,10 +36,11 @@ namespace adaptive
class IDownloadRateObserver
{
+ PREREQ_INTERFACE(IDownloadRateObserver);
+
public:
virtual void updateDownloadRate(const ID &, size_t,
vlc_tick_t, vlc_tick_t) = 0;
- virtual ~IDownloadRateObserver(){}
};
}
=====================================
modules/demux/adaptive/playlist/CodecDescription.hpp
=====================================
@@ -21,6 +21,7 @@
#define CODECDESCRIPTION_HPP
#include "../tools/Properties.hpp"
+#include "../tools/Macros.hpp"
#include <vlc_es.h>
#include <string>
#include <list>
@@ -31,11 +32,11 @@ namespace adaptive
{
class CodecDescription
{
+ PREREQ_VIRTUAL(CodecDescription);
+
public:
CodecDescription();
CodecDescription(const std::string &);
- CodecDescription(const CodecDescription &) = delete;
- void operator=(const CodecDescription&) = delete;
virtual ~CodecDescription();
const es_format_t *getFmt() const;
void setDimensions(unsigned, unsigned);
=====================================
modules/demux/adaptive/playlist/CommonAttributesElements.h
=====================================
@@ -26,6 +26,7 @@
#include "../tools/Compatibility.hpp"
#include "../tools/Properties.hpp"
+#include "../tools/Macros.hpp"
#include <string>
namespace adaptive
@@ -34,6 +35,8 @@ namespace adaptive
{
class CommonAttributesElements
{
+ PREREQ_VIRTUAL(CommonAttributesElements);
+
public:
CommonAttributesElements(CommonAttributesElements * = nullptr);
virtual ~CommonAttributesElements();
=====================================
modules/demux/adaptive/playlist/ICanonicalUrl.hpp
=====================================
@@ -21,6 +21,7 @@
#define CANONICALURL_HPP
#include "Url.hpp"
+#include "../tools/Macros.hpp"
namespace adaptive
{
@@ -28,6 +29,8 @@ namespace adaptive
{
class ICanonicalUrl
{
+ PREREQ_VIRTUAL(ICanonicalUrl);
+
public:
ICanonicalUrl( const ICanonicalUrl *parent = nullptr ) { setParent(parent); }
virtual ~ICanonicalUrl() = default;
=====================================
modules/demux/adaptive/playlist/Inheritables.hpp
=====================================
@@ -24,6 +24,7 @@
#include <limits>
#include <stdint.h>
#include "../Time.hpp"
+#include "../tools/Macros.hpp"
namespace adaptive
{
@@ -37,6 +38,8 @@ namespace adaptive
class AbstractAttr
{
+ PREREQ_VIRTUAL(AbstractAttr);
+
public:
enum class Type
{
@@ -55,8 +58,6 @@ namespace adaptive
};
AbstractAttr(enum Type);
virtual ~AbstractAttr();
- AbstractAttr(const AbstractAttr &) = delete;
- AbstractAttr & operator=(const AbstractAttr &) = delete;
Type getType() const;
bool operator ==(const AbstractAttr &t) const { return type == t.getType(); }
bool operator !=(const AbstractAttr &t) const { return type != t.getType(); }
=====================================
modules/demux/adaptive/playlist/Segment.h
=====================================
@@ -49,9 +49,12 @@ namespace adaptive
class ISegment : public ICanonicalUrl
{
+ PREREQ_VIRTUAL(ISegment);
+
public:
ISegment(const ICanonicalUrl *parent);
virtual ~ISegment();
+
/**
* @return true if the segment should be dropped after being read.
* That is basically true when using an Url, and false
=====================================
modules/demux/adaptive/playlist/SegmentBaseType.hpp
=====================================
@@ -34,6 +34,8 @@ namespace adaptive
public Indexable<IndexSegment>,
public AttrsNode
{
+ PREREQ_VIRTUAL(AbstractSegmentBaseType);
+
public:
AbstractSegmentBaseType( SegmentInformation *, AttrsNode::Type );
virtual ~AbstractSegmentBaseType();
=====================================
modules/demux/adaptive/playlist/SegmentInformation.hpp
=====================================
@@ -23,6 +23,7 @@
#include "ICanonicalUrl.hpp"
#include "Inheritables.hpp"
#include "Segment.h"
+#include "../tools/Macros.hpp"
#include "../encryption/CommonEncryption.hpp"
#include <vlc_common.h>
#include <vector>
@@ -47,6 +48,7 @@ namespace adaptive
public AttrsNode
{
friend class AbstractMultipleSegmentBaseType;
+ PREREQ_VIRTUAL(SegmentInformation);
public:
SegmentInformation( SegmentInformation * = 0 );
=====================================
modules/demux/adaptive/plumbing/CommandsQueue.cpp
=====================================
@@ -48,11 +48,6 @@ AbstractCommand::AbstractCommand( int type_ )
type = type_;
}
-AbstractCommand::~AbstractCommand()
-{
-
-}
-
const Times & AbstractCommand::getTimes() const
{
return times;
=====================================
modules/demux/adaptive/plumbing/CommandsQueue.hpp
=====================================
@@ -22,6 +22,7 @@
#include "FakeESOutID.hpp"
#include "../Time.hpp"
+#include "../tools/Macros.hpp"
#include <vlc_common.h>
#include <vlc_es.h>
@@ -36,8 +37,11 @@ namespace adaptive
class AbstractCommand
{
friend class CommandsFactory;
+ PREREQ_VIRTUAL(AbstractCommand);
+
public:
- virtual ~AbstractCommand();
+ AbstractCommand() = delete;
+ virtual ~AbstractCommand() = default;
virtual void Execute( ) = 0;
virtual const Times & getTimes() const;
int getType() const;
@@ -181,6 +185,8 @@ namespace adaptive
class AbstractCommandsQueue
{
+ PREREQ_VIRTUAL(AbstractCommandsQueue);
+
public:
AbstractCommandsQueue();
virtual ~AbstractCommandsQueue() = default;
=====================================
modules/demux/adaptive/plumbing/Demuxer.cpp
=====================================
@@ -29,7 +29,7 @@
#include "SourceStream.hpp"
#include "../StreamFormat.hpp"
#include "CommandsQueue.hpp"
-#include "../AbstractSource.hpp"
+#include "../BlockStreamInterface.hpp"
using namespace adaptive;
=====================================
modules/demux/adaptive/plumbing/Demuxer.hpp
=====================================
@@ -20,6 +20,8 @@
#ifndef DEMUXER_HPP
#define DEMUXER_HPP
+#include "../tools/Macros.hpp"
+
#include <vlc_common.h>
#include <vlc_tick.h>
#include <string>
@@ -32,6 +34,8 @@ namespace adaptive
class AbstractDemuxer
{
+ PREREQ_VIRTUAL(AbstractDemuxer);
+
public:
enum class Status
{
@@ -93,10 +97,11 @@ namespace adaptive
class DemuxerFactoryInterface
{
+ PREREQ_INTERFACE(DemuxerFactoryInterface);
+
public:
virtual AbstractDemuxer * newDemux(vlc_object_t *, const StreamFormat &,
es_out_t *, AbstractSourceStream *) const = 0;
- virtual ~DemuxerFactoryInterface() = default;
};
}
=====================================
modules/demux/adaptive/plumbing/FakeESOut.hpp
=====================================
@@ -22,6 +22,7 @@
#include <vlc_common.h>
#include <list>
+#include "../tools/Macros.hpp"
#include "../Time.hpp"
#include "../ID.hpp"
#include <vlc_threads.h>
@@ -30,9 +31,10 @@ namespace adaptive
{
class ExtraFMTInfoInterface
{
+ PREREQ_INTERFACE(ExtraFMTInfoInterface);
+
public:
virtual void fillExtraFMTInfo( es_format_t * ) const = 0;
- virtual ~ExtraFMTInfoInterface() = default;
};
class AbstractCommandsQueue;
@@ -43,6 +45,8 @@ namespace adaptive
class AbstractFakeEsOut
{
friend class EsOutCallbacks;
+ PREREQ_VIRTUAL(AbstractFakeEsOut);
+
public:
AbstractFakeEsOut();
virtual ~AbstractFakeEsOut();
=====================================
modules/demux/adaptive/plumbing/FakeESOutID.hpp
=====================================
@@ -21,6 +21,7 @@
#define FAKEESOUTID_HPP
#include "../ID.hpp"
+#include "../tools/Macros.hpp"
#include <vlc_common.h>
#include <vlc_es.h>
@@ -38,8 +39,9 @@ namespace adaptive
class AbstractFakeESOutID
{
+ PREREQ_INTERFACE(AbstractFakeESOutID);
+
public:
- virtual ~AbstractFakeESOutID() = default;
virtual es_out_id_t * realESID() const = 0;
virtual void create() = 0;
virtual void release() = 0;
@@ -49,6 +51,8 @@ namespace adaptive
class FakeESOutID : public AbstractFakeESOutID
{
+ PREREQ_VIRTUAL(FakeESOutID);
+
public:
FakeESOutID( FakeESOut *, const es_format_t * );
FakeESOutID( FakeESOut *, const es_format_t *, const SrcID & );
=====================================
modules/demux/adaptive/plumbing/SourceStream.cpp
=====================================
@@ -24,14 +24,14 @@
#include "SourceStream.hpp"
-#include "../AbstractSource.hpp"
+#include "../BlockStreamInterface.hpp"
#include "../http/Chunk.h"
#include <vlc_stream.h>
#include <vlc_demux.h>
using namespace adaptive;
-AbstractChunksSourceStream::AbstractChunksSourceStream(vlc_object_t *p_obj_, AbstractSource *source_)
+AbstractChunksSourceStream::AbstractChunksSourceStream(vlc_object_t *p_obj_, BlockStreamInterface *source_)
: b_eof( false )
, p_obj( p_obj_ )
, source( source_ )
@@ -102,7 +102,7 @@ stream_t * AbstractChunksSourceStream::makeStream()
return p_stream;
}
-ChunksSourceStream::ChunksSourceStream(vlc_object_t *p_obj_, AbstractSource *source_)
+ChunksSourceStream::ChunksSourceStream(vlc_object_t *p_obj_, BlockStreamInterface *source_)
: AbstractChunksSourceStream(p_obj_, source_)
{
p_block = nullptr;
@@ -176,7 +176,7 @@ int ChunksSourceStream::Seek(uint64_t)
return VLC_EGENERIC;
}
-BufferedChunksSourceStream::BufferedChunksSourceStream(vlc_object_t *p_obj_, AbstractSource *source_)
+BufferedChunksSourceStream::BufferedChunksSourceStream(vlc_object_t *p_obj_, BlockStreamInterface *source_)
: AbstractChunksSourceStream( p_obj_, source_ )
{
i_global_offset = 0;
=====================================
modules/demux/adaptive/plumbing/SourceStream.hpp
=====================================
@@ -20,17 +20,20 @@
#ifndef SOURCESTREAM_HPP
#define SOURCESTREAM_HPP
+#include "../tools/Macros.hpp"
+
#include <vlc_common.h>
#include <vlc_block_helper.h>
namespace adaptive
{
- class AbstractSource;
+ class BlockStreamInterface;
class AbstractSourceStream
{
+ PREREQ_INTERFACE(AbstractSourceStream);
+
public:
- virtual ~AbstractSourceStream() {}
virtual stream_t *makeStream() = 0;
virtual void Reset() = 0;
virtual size_t Peek(const uint8_t **, size_t) = 0;
@@ -38,8 +41,10 @@ namespace adaptive
class AbstractChunksSourceStream : public AbstractSourceStream
{
+ PREREQ_VIRTUAL(AbstractChunksSourceStream);
+
public:
- AbstractChunksSourceStream(vlc_object_t *, AbstractSource *);
+ AbstractChunksSourceStream(vlc_object_t *, BlockStreamInterface *);
virtual ~AbstractChunksSourceStream();
void Reset() override;
stream_t *makeStream() override;
@@ -49,7 +54,7 @@ namespace adaptive
virtual int Seek(uint64_t) = 0;
bool b_eof;
vlc_object_t *p_obj;
- AbstractSource *source;
+ BlockStreamInterface *source;
private:
static ssize_t read_Callback(stream_t *, void *, size_t);
@@ -61,7 +66,7 @@ namespace adaptive
class ChunksSourceStream : public AbstractChunksSourceStream
{
public:
- ChunksSourceStream(vlc_object_t *, AbstractSource *);
+ ChunksSourceStream(vlc_object_t *, BlockStreamInterface *);
virtual ~ChunksSourceStream();
void Reset() override;
@@ -77,7 +82,7 @@ namespace adaptive
class BufferedChunksSourceStream : public AbstractChunksSourceStream
{
public:
- BufferedChunksSourceStream(vlc_object_t *, AbstractSource *);
+ BufferedChunksSourceStream(vlc_object_t *, BlockStreamInterface *);
virtual ~BufferedChunksSourceStream();
void Reset() override;
=====================================
modules/demux/adaptive/tools/Macros.hpp
=====================================
@@ -0,0 +1,39 @@
+/*
+ * Macros.hpp
+ *****************************************************************************
+ * Copyright (C) 2025 VideoLabs, VideoLAN and VLC Authors
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+#ifndef MACROS_HPP
+#define MACROS_HPP
+
+#define PREREQ_COPYMOVEASSIGN(classname, op)\
+public:\
+ classname(classname&&) = op;\
+ classname(const classname&) = op;\
+ classname& operator=(classname&&) = op;\
+ classname& operator=(const classname&) = op
+
+#define PREREQ_VIRTUAL(classname)\
+ PREREQ_COPYMOVEASSIGN(classname, delete)
+
+#define PREREQ_INTERFACE(classname)\
+public:\
+ classname() = default;\
+ virtual ~classname() = default;\
+ PREREQ_COPYMOVEASSIGN(classname, default)
+
+#endif // MACROS_HPP
=====================================
modules/demux/meson.build
=====================================
@@ -614,7 +614,7 @@ vlc_modules += {
'adaptive/plumbing/FakeESOutID.hpp',
'adaptive/plumbing/SourceStream.cpp',
'adaptive/plumbing/SourceStream.hpp',
- 'adaptive/AbstractSource.hpp',
+ 'adaptive/BlockStreamInterface.hpp',
'adaptive/ID.hpp',
'adaptive/ID.cpp',
'adaptive/PlaylistManager.cpp',
@@ -635,6 +635,7 @@ vlc_modules += {
'adaptive/tools/FormatNamespace.hpp',
'adaptive/tools/Helper.cpp',
'adaptive/tools/Helper.h',
+ 'adaptive/tools/Macros.hpp',
'adaptive/tools/MovingAverage.hpp',
'adaptive/tools/Properties.hpp',
'adaptive/tools/Retrieve.cpp',
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/53ded076a8af0d0168b6c85f88f7389401b48136...05ce49cd1de59eb170769764beb842cb8cf7574f
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/53ded076a8af0d0168b6c85f88f7389401b48136...05ce49cd1de59eb170769764beb842cb8cf7574f
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list