WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-162893-20161004101848.patch (text/plain), 6.25 KB, created by
Enrique Ocaña
on 2016-10-04 03:21:59 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Enrique Ocaña
Created:
2016-10-04 03:21:59 PDT
Size:
6.25 KB
patch
obsolete
>Subversion Revision: 206578 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 9f533e27abda04fef654f5635a9c9a458746759a..ef0133cba19ab687da1a9fa66be26ea273a87f08 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,22 @@ >+2016-10-04 Enrique Ocaña González <eocanha@igalia.com> >+ >+ [GStreamer] GStreamer Media Description >+ https://bugs.webkit.org/show_bug.cgi?id=162893 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Implement the MediaDescription interface for the GStreamer platform. >+ >+ * platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp: Added. >+ (WebCore::GStreamerMediaDescription::codec): >+ (WebCore::GStreamerMediaDescription::isVideo): >+ (WebCore::GStreamerMediaDescription::isAudio): >+ (WebCore::GStreamerMediaDescription::isText): >+ * platform/graphics/gstreamer/mse/GStreamerMediaDescription.h: Added. >+ (WebCore::GStreamerMediaDescription::create): >+ (WebCore::GStreamerMediaDescription::~GStreamerMediaDescription): >+ (WebCore::GStreamerMediaDescription::GStreamerMediaDescription): >+ > 2016-10-03 Enrique Ocaña González <eocanha@igalia.com> > > [GStreamer][MSE][EME] Append Pipeline >diff --git a/Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp b/Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..0956a2d013d865102c210cd1a541eb8ec9ae7446 >--- /dev/null >+++ b/Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp >@@ -0,0 +1,76 @@ >+/* >+ * Copyright (C) 2016 Metrological Group B.V. >+ * Copyright (C) 2016 Igalia S.L >+ * >+ * This library is free software; you can redistribute it and/or >+ * modify it under the terms of the GNU Library General Public >+ * License as published by the Free Software Foundation; either >+ * version 2 of the License, or (at your option) any later version. >+ * >+ * This library 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 >+ * Library General Public License for more details. >+ * >+ * You should have received a copy of the GNU Library General Public License >+ * aint with this library; see the file COPYING.LIB. If not, write to >+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >+ * Boston, MA 02110-1301, USA. >+ */ >+ >+#include "config.h" >+#include "GStreamerMediaDescription.h" >+ >+#include "GUniquePtrGStreamer.h" >+ >+#include <gst/pbutils/pbutils.h> >+#include <wtf/text/AtomicString.h> >+#include <wtf/text/WTFString.h> >+ >+#if ENABLE(VIDEO) && USE(GSTREAMER) && ENABLE(MEDIA_SOURCE) && ENABLE(VIDEO_TRACK) >+ >+namespace WebCore { >+ >+AtomicString GStreamerMediaDescription::codec() const >+{ >+ GUniquePtr<gchar> description(gst_pb_utils_get_codec_description(m_caps.get())); >+ String codecName(description.get()); >+ >+ // Report "H.264 (Main Profile)" and "H.264 (High Profile)" just as "H.264" to allow changes between both variants >+ // go unnoticed to the SourceBuffer layer. >+ if (codecName.startsWith("H.264")) { >+ size_t braceStart = codecName.find(" ("); >+ size_t braceEnd = codecName.find(")"); >+ if (braceStart != notFound && braceEnd != notFound) >+ codecName.remove(braceStart, braceEnd-braceStart); >+ } >+ AtomicString simpleCodecName(codecName); >+ >+ return simpleCodecName; >+} >+ >+bool GStreamerMediaDescription::isVideo() const >+{ >+ GstStructure* structure = gst_caps_get_structure(m_caps.get(), 0); >+ const gchar* name = gst_structure_get_name(structure); >+ >+ return g_str_has_prefix(name, "video/"); >+} >+ >+bool GStreamerMediaDescription::isAudio() const >+{ >+ GstStructure* structure = gst_caps_get_structure(m_caps.get(), 0); >+ const gchar* name = gst_structure_get_name(structure); >+ >+ return g_str_has_prefix(name, "audio/"); >+} >+ >+bool GStreamerMediaDescription::isText() const >+{ >+ // FIXME: Implement proper text track support. >+ return false; >+} >+ >+} // namespace WebCore. >+ >+#endif // USE(GSTREAMER) >diff --git a/Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.h b/Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.h >new file mode 100644 >index 0000000000000000000000000000000000000000..8b09e9fd8724bd102ea50baa40257bb09e1e2dac >--- /dev/null >+++ b/Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.h >@@ -0,0 +1,60 @@ >+/* >+ * Copyright (C) 2016 Metrological Group B.V. >+ * Copyright (C) 2016 Igalia S.L >+ * >+ * This library is free software; you can redistribute it and/or >+ * modify it under the terms of the GNU Library General Public >+ * License as published by the Free Software Foundation; either >+ * version 2 of the License, or (at your option) any later version. >+ * >+ * This library 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 >+ * Library General Public License for more details. >+ * >+ * You should have received a copy of the GNU Library General Public License >+ * aint with this library; see the file COPYING.LIB. If not, write to >+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >+ * Boston, MA 02110-1301, USA. >+ */ >+ >+#ifndef GStreamerMediaDescription_h >+#define GStreamerMediaDescription_h >+ >+#if ENABLE(VIDEO) && USE(GSTREAMER) && ENABLE(MEDIA_SOURCE) && ENABLE(VIDEO_TRACK) >+ >+#include "GRefPtrGStreamer.h" >+#include "MediaDescription.h" >+ >+#include <gst/gst.h> >+ >+namespace WebCore { >+ >+class GStreamerMediaDescription : public MediaDescription { >+private: >+ GRefPtr<GstCaps> m_caps; >+public: >+ static PassRefPtr<GStreamerMediaDescription> create(GstCaps* caps) >+ { >+ return adoptRef(new GStreamerMediaDescription(caps)); >+ } >+ >+ virtual ~GStreamerMediaDescription() { } >+ >+ AtomicString codec() const override; >+ bool isVideo() const override; >+ bool isAudio() const override; >+ bool isText() const override; >+ >+private: >+ GStreamerMediaDescription(GstCaps* caps) >+ : MediaDescription() >+ , m_caps(caps) >+ { >+ } >+}; >+ >+} // namespace WebCore. >+ >+#endif // USE(GSTREAMER) >+#endif
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 162893
:
290586
|
291758
|
292249
|
292404
|
292889