[vlc-commits] demux: adaptative: add FakeEsOutID

Francois Cartegnie git at videolan.org
Sun Sep 6 21:08:54 CEST 2015


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Fri Sep  4 13:23:52 2015 +0200| [0e6eebdfe90c1497b17ce74b6937665d840019c2] | committer: Francois Cartegnie

demux: adaptative: add FakeEsOutID

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0e6eebdfe90c1497b17ce74b6937665d840019c2
---

 modules/demux/Makefile.am                         |    2 +
 modules/demux/adaptative/plumbing/FakeESOutID.cpp |   52 +++++++++++++++++++++
 modules/demux/adaptative/plumbing/FakeESOutID.hpp |   46 ++++++++++++++++++
 3 files changed, 100 insertions(+)

diff --git a/modules/demux/Makefile.am b/modules/demux/Makefile.am
index a3598c8..52f6d38 100644
--- a/modules/demux/Makefile.am
+++ b/modules/demux/Makefile.am
@@ -298,6 +298,8 @@ libadaptative_plugin_la_SOURCES = \
     demux/adaptative/http/HTTPConnectionManager.h \
     demux/adaptative/http/Sockets.hpp \
     demux/adaptative/http/Sockets.cpp \
+    demux/adaptative/plumbing/FakeESOutID.cpp \
+    demux/adaptative/plumbing/FakeESOutID.hpp \
     demux/adaptative/plumbing/StreamOutput.cpp \
     demux/adaptative/plumbing/StreamOutput.hpp \
     demux/adaptative/PlaylistManager.cpp \
diff --git a/modules/demux/adaptative/plumbing/FakeESOutID.cpp b/modules/demux/adaptative/plumbing/FakeESOutID.cpp
new file mode 100644
index 0000000..6728e08
--- /dev/null
+++ b/modules/demux/adaptative/plumbing/FakeESOutID.cpp
@@ -0,0 +1,52 @@
+/*
+ * FakeESOutID.cpp
+ *****************************************************************************
+ * Copyright © 2015 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.
+ *****************************************************************************/
+#include "FakeESOutID.hpp"
+
+using namespace adaptative;
+
+FakeESOutID::FakeESOutID( FakeESOut *fakeesout_, const es_format_t *p_fmt )
+{
+    p_real_es_id = NULL;
+    fakeesout = fakeesout_;
+    es_format_Init( &fmt, 0, 0 );
+    es_format_Copy( &fmt, p_fmt );
+}
+
+FakeESOutID::~FakeESOutID()
+{
+    es_format_Clean( &fmt );
+}
+
+void FakeESOutID::setRealESID( es_out_id_t *real_es_id )
+{
+   p_real_es_id = real_es_id;
+}
+
+es_out_id_t * FakeESOutID::realESID()
+{
+    return p_real_es_id;
+}
+
+bool FakeESOutID::isCompatible( const es_format_t *p_fmt ) const
+{
+    return es_format_IsSimilar( p_fmt, &fmt ) &&
+           p_fmt->i_extra == fmt.i_extra &&
+          !memcmp( p_fmt->p_extra, fmt.p_extra, p_fmt->i_extra );
+}
diff --git a/modules/demux/adaptative/plumbing/FakeESOutID.hpp b/modules/demux/adaptative/plumbing/FakeESOutID.hpp
new file mode 100644
index 0000000..8449657
--- /dev/null
+++ b/modules/demux/adaptative/plumbing/FakeESOutID.hpp
@@ -0,0 +1,46 @@
+/*
+ * FakeESOutID.hpp
+ *****************************************************************************
+ * Copyright © 2015 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 FAKEESOUTID_HPP
+#define FAKEESOUTID_HPP
+
+#include <vlc_common.h>
+#include <vlc_es.h>
+
+namespace adaptative
+{
+    class FakeESOut;
+
+    class FakeESOutID
+    {
+        public:
+            FakeESOutID( FakeESOut *, const es_format_t * );
+            ~FakeESOutID();
+            void setRealESID( es_out_id_t * );
+            es_out_id_t * realESID();
+            bool isCompatible( const es_format_t * ) const;
+
+        private:
+            FakeESOut *fakeesout;
+            es_out_id_t *p_real_es_id;
+            es_format_t fmt;
+    };
+}
+
+#endif // FAKEESOUTID_HPP



More information about the vlc-commits mailing list