Summary: | [GStreamer] [GTK] WebKit does not build with GStreamer 1.4 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Adrian Perez <aperez> | ||||||||||
Component: | WebKitGTK | Assignee: | Adrian Perez <aperez> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | cgarcia, commit-queue, mrobinson, pnormand, scampa.giovanni, vjaquez | ||||||||||
Priority: | P2 | ||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Attachments: |
|
Description
Adrian Perez
2014-07-21 02:04:52 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); ^ 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? Created attachment 235270 [details]
Patch
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? 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. *** Bug 134924 has been marked as a duplicate of this bug. *** (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. (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. Created attachment 235272 [details]
Patch
Created attachment 235273 [details]
Patch
Comment on attachment 235273 [details]
Patch
Perfect! Thanks :)
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 Created attachment 235275 [details]
Patch
Comment on attachment 235275 [details] Patch Clearing flags on attachment: 235275 Committed r171339: <http://trac.webkit.org/changeset/171339> All reviewed patches have been landed. Closing bug. |