WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 135114
[GStreamer] [GTK] WebKit does not build with GStreamer 1.4
https://bugs.webkit.org/show_bug.cgi?id=135114
Summary
[GStreamer] [GTK] WebKit does not build with GStreamer 1.4
Adrian Perez
Reported
2014-07-21 02:04:52 PDT
Ideally, we should try to keep supporting GStreamer 1.x (where x<4) to make it make it possible for downstreams to keep using previous versions. For example distributions may want to update WebKitGTK without having to update GStreamer.
Attachments
Patch
(1.97 KB, patch)
2014-07-21 22:51 PDT
,
Adrian Perez
no flags
Details
Formatted Diff
Diff
Patch
(1.95 KB, patch)
2014-07-22 00:24 PDT
,
Adrian Perez
no flags
Details
Formatted Diff
Diff
Patch
(6.45 KB, patch)
2014-07-22 00:56 PDT
,
Adrian Perez
no flags
Details
Formatted Diff
Diff
Patch
(6.49 KB, patch)
2014-07-22 01:10 PDT
,
Adrian Perez
no flags
Details
Formatted Diff
Diff
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Adrian Perez
Comment 1
2014-07-21 02:12:54 PDT
Relevant part of the build log: ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1005:31: error: cannot initialize a variable of type 'GstMpegTsSection *' (aka '_GstMpegTsSection *') with an rvalue of type 'GstMpegtsSection *' (aka '_GstMp egtsSection *') GstMpegTsSection* section = gst_message_parse_mpegts_section(message); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1051:16: error: member access into incomplete type 'GstMpegTsSection' (aka '_GstMpegTsSection') if (section->section_type == GST_MPEGTS_SECTION_PMT) { ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:49:16: note: forward declaration of '_GstMpegTsSection' typedef struct _GstMpegTsSection GstMpegTsSection; ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1052:15: error: unknown type name 'GstMpegTsPMT'; did you mean 'GstMpegtsPMT'? const GstMpegTsPMT* pmt = gst_mpegts_section_get_pmt(section); ^~~~~~~~~~~~ GstMpegtsPMT /usr/include/gstreamer-1.0/gst/mpegts/gstmpegtssection.h:212:30: note: 'GstMpegtsPMT' declared here typedef struct _GstMpegtsPMT GstMpegtsPMT; ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1052:35: error: no matching function for call to 'gst_mpegts_section_get_pmt' const GstMpegTsPMT* pmt = gst_mpegts_section_get_pmt(section); ^~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/gstreamer-1.0/gst/mpegts/gstmpegtssection.h:374:21: note: candidate function not viable: cannot convert argument of incomplete type 'GstMpegTsSection *' (aka '_GstMpegTsSection *') to 'GstMpegtsSection *' (aka '_GstMpegtsSecti on *') const GstMpegtsPMT *gst_mpegts_section_get_pmt (GstMpegtsSection *section); ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1055:19: error: unknown type name 'GstMpegTsPMTStream'; did you mean 'GstMpegtsPMTStream'? const GstMpegTsPMTStream* stream = static_cast<const GstMpegTsPMTStream*>(((pmt->streams)->pdata)[i]); ^~~~~~~~~~~~~~~~~~ GstMpegtsPMTStream /usr/include/gstreamer-1.0/gst/mpegts/gstmpegtssection.h:211:36: note: 'GstMpegtsPMTStream' declared here typedef struct _GstMpegtsPMTStream GstMpegtsPMTStream; ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1055:66: error: unknown type name 'GstMpegTsPMTStream'; did you mean 'GstMpegtsPMTStream'? const GstMpegTsPMTStream* stream = static_cast<const GstMpegTsPMTStream*>(((pmt->streams)->pdata)[i]); ^~~~~~~~~~~~~~~~~~ GstMpegtsPMTStream /usr/include/gstreamer-1.0/gst/mpegts/gstmpegtssection.h:211:36: note: 'GstMpegtsPMTStream' declared here typedef struct _GstMpegtsPMTStream GstMpegtsPMTStream; ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1074:27: error: unknown type name 'GstMpegTsDescriptor'; did you mean 'GstMpegtsDescriptor'? const GstMpegTsDescriptor* descriptor = static_cast<const GstMpegTsDescriptor*>(((stream->descriptors)->pdata)[j]); ^~~~~~~~~~~~~~~~~~~ GstMpegtsDescriptor /usr/include/gstreamer-1.0/gst/mpegts/gstmpegtsdescriptor.h:237:37: note: 'GstMpegtsDescriptor' declared here typedef struct _GstMpegtsDescriptor GstMpegtsDescriptor; ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1074:79: error: unknown type name 'GstMpegTsDescriptor'; did you mean 'GstMpegtsDescriptor'? const GstMpegTsDescriptor* descriptor = static_cast<const GstMpegTsDescriptor*>(((stream->descriptors)->pdata)[j]); ^~~~~~~~~~~~~~~~~~~ GstMpegtsDescriptor /usr/include/gstreamer-1.0/gst/mpegts/gstmpegtsdescriptor.h:237:37: note: 'GstMpegtsDescriptor' declared here typedef struct _GstMpegtsDescriptor GstMpegtsDescriptor; ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1085:50: error: member access into incomplete type 'GstMpegTsSection' (aka '_GstMpegTsSection') AtomicString pid = String::number(section->pid); ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:49:16: note: forward declaration of '_GstMpegTsSection' typedef struct _GstMpegTsSection GstMpegTsSection; ^ ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1090:32: error: no matching function for call to 'gst_mpegts_section_get_data' GRefPtr<GBytes> data = gst_mpegts_section_get_data(section); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/gstreamer-1.0/gst/mpegts/gstmpegtssection.h:179:9: note: candidate function not viable: cannot convert argument of incomplete type 'GstMpegTsSection *' (aka '_GstMpegTsSection *') to 'GstMpegtsSection *' (aka '_GstMpegtsSectio n *') GBytes *gst_mpegts_section_get_data (GstMpegtsSection *section); ^
Víctor M. Jáquez L.
Comment 2
2014-07-21 02:20:37 PDT
The reason of this is
http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=22dfd9aef361c6e630fe32d6b7f6c07588a2dff9
Shouldn't we have a policy for GStreamer not stable API and/or gst-plugins-bad API?
Adrian Perez
Comment 3
2014-07-21 22:51:44 PDT
Created
attachment 235270
[details]
Patch
Carlos Garcia Campos
Comment 4
2014-07-21 23:57:08 PDT
Comment on
attachment 235270
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=235270&action=review
> Source/WebCore/ChangeLog:10 > + No new tests needed.
This line can be omitted.
> Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:46 > +#if GST_CHECK_VERSION(1, 3, 90) > +typedef struct _GstMpegtsDescriptor GstMpegTsDescriptor; > +typedef struct _GstMpegtsPMTStream GstMpegTsPMTStream; > +typedef struct _GstMpegtsSection GstMpegTsSection; > +typedef struct _GstMpegtsPMT GstMpegTsPMT; > +#endif > +typedef struct _GstMpegtsSection GstMpegtsSection;
I'm not sure I understand this. The current code uses GstMpegTsSection, but with gst < 1.3.90 we define GstMpegtsSection, but still using GstMpegTsSection?
Philippe Normand
Comment 5
2014-07-22 00:03:06 PDT
Comment on
attachment 235270
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=235270&action=review
>> Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:46 >> +typedef struct _GstMpegtsSection GstMpegtsSection; > > I'm not sure I understand this. The current code uses GstMpegTsSection, but with gst < 1.3.90 we define GstMpegtsSection, but still using GstMpegTsSection?
Like I said in the other bug, let's just forget about 1.3.90, make sure gstreamer-mpegts >= 1.4 is checked and only support it. 1.3.x had unstable API that we don't want to support.
Philippe Normand
Comment 6
2014-07-22 00:10:06 PDT
***
Bug 134924
has been marked as a duplicate of this bug. ***
Adrian Perez
Comment 7
2014-07-22 00:23:03 PDT
(In reply to
comment #4
)
> (From update of
attachment 235270
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=235270&action=review
> > > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:46 > > +#if GST_CHECK_VERSION(1, 3, 90) > > +typedef struct _GstMpegtsDescriptor GstMpegTsDescriptor; > > +typedef struct _GstMpegtsPMTStream GstMpegTsPMTStream; > > +typedef struct _GstMpegtsSection GstMpegTsSection; > > +typedef struct _GstMpegtsPMT GstMpegTsPMT; > > +#endif > > +typedef struct _GstMpegtsSection GstMpegtsSection; > > I'm not sure I understand this. The current code uses GstMpegTsSection, but with gst < 1.3.90 we define GstMpegtsSection, but still using GstMpegTsSection?
Ah, typing mistake. I meant to add an #else which keeps the existing declaration of the typedef for GStreamer <1.4.0.
Adrian Perez
Comment 8
2014-07-22 00:23:44 PDT
(In reply to
comment #5
)
> (From update of
attachment 235270
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=235270&action=review
> > >> Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:46 > >> +typedef struct _GstMpegtsSection GstMpegtsSection; > > > > I'm not sure I understand this. The current code uses GstMpegTsSection, but with gst < 1.3.90 we define GstMpegtsSection, but still using GstMpegTsSection? > > Like I said in the other bug, let's just forget about 1.3.90, make sure gstreamer-mpegts >= 1.4 is checked and only support it. 1.3.x had unstable API that we don't want to support.
Sure, I will change the check to use the different typedefs on 1.4.0 and above.
Adrian Perez
Comment 9
2014-07-22 00:24:56 PDT
Created
attachment 235272
[details]
Patch
Adrian Perez
Comment 10
2014-07-22 00:56:09 PDT
Created
attachment 235273
[details]
Patch
Philippe Normand
Comment 11
2014-07-22 00:58:44 PDT
Comment on
attachment 235273
[details]
Patch Perfect! Thanks :)
WebKit Commit Bot
Comment 12
2014-07-22 01:03:23 PDT
Comment on
attachment 235273
[details]
Patch Rejecting
attachment 235273
[details]
from commit-queue. Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.appspot.com', '--bot-id=webkit-cq-02', 'validate-changelog', '--check-oops', '--non-interactive', 235273, '--port=mac']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit /Volumes/Data/EWS/WebKit/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string "Unreviewed" or "Rubber stamp" (case insensitive). Full output:
http://webkit-queues.appspot.com/results/5237468114714624
Adrian Perez
Comment 13
2014-07-22 01:10:24 PDT
Created
attachment 235275
[details]
Patch
WebKit Commit Bot
Comment 14
2014-07-22 01:51:16 PDT
Comment on
attachment 235275
[details]
Patch Clearing flags on attachment: 235275 Committed
r171339
: <
http://trac.webkit.org/changeset/171339
>
WebKit Commit Bot
Comment 15
2014-07-22 01:51:21 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug