Changeset 151903 in webkit


Ignore:
Timestamp:
Jun 24, 2013 2:32:54 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, rolling out r151021.
http://trac.webkit.org/changeset/151021
https://bugs.webkit.org/show_bug.cgi?id=117924

caused regressions on Qt and GTK (#117141 and #117688)
(Requested by philn on #webkit).

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init):
(webKitWebSrcFinalize):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStop):
(webKitWebSrcStart):
(webKitWebSrcChangeState):
(webKitWebSrcQueryWithParent):
(webKitWebSrcGetUri):
(webKitWebSrcSetUri):
(webKitWebSrcNeedDataMainCb):
(webKitWebSrcEnoughDataMainCb):
(webKitWebSrcSeekMainCb):
(webKitWebSrcSeekDataCb):
(StreamingClient::StreamingClient):
(StreamingClient::~StreamingClient):
(StreamingClient::didReceiveResponse):
(StreamingClient::didReceiveData):
(StreamingClient::didFinishLoading):
(StreamingClient::wasBlocked):
(StreamingClient::cannotShowURL):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r151896 r151903  
     12013-06-24  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, rolling out r151021.
     4        http://trac.webkit.org/changeset/151021
     5        https://bugs.webkit.org/show_bug.cgi?id=117924
     6
     7        caused regressions on Qt and GTK (#117141 and #117688)
     8        (Requested by philn on #webkit).
     9
     10        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
     11        (webkit_web_src_init):
     12        (webKitWebSrcFinalize):
     13        (webKitWebSrcSetProperty):
     14        (webKitWebSrcGetProperty):
     15        (webKitWebSrcStop):
     16        (webKitWebSrcStart):
     17        (webKitWebSrcChangeState):
     18        (webKitWebSrcQueryWithParent):
     19        (webKitWebSrcGetUri):
     20        (webKitWebSrcSetUri):
     21        (webKitWebSrcNeedDataMainCb):
     22        (webKitWebSrcEnoughDataMainCb):
     23        (webKitWebSrcSeekMainCb):
     24        (webKitWebSrcSeekDataCb):
     25        (StreamingClient::StreamingClient):
     26        (StreamingClient::~StreamingClient):
     27        (StreamingClient::didReceiveResponse):
     28        (StreamingClient::didReceiveData):
     29        (StreamingClient::didFinishLoading):
     30        (StreamingClient::wasBlocked):
     31        (StreamingClient::cannotShowURL):
     32
    1332013-06-24  Christophe Dumez  <ch.dumez@sisa.samsung.com>
    234
  • trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp

    r151731 r151903  
    4343#include <wtf/text/CString.h>
    4444
    45 /* Premisses:
    46  * - webkitsrc may be created from any thread inside gstreamer
    47  * - client holds reference to src, so that src is never deleted while client exists
    48  * - if the src exists, appsrc also exists
    49  * - client is created on start
    50  * - client is deleted on stop after cancelling resource handle
    51  * - client callbacks are always invoked from main thread
    52  * - resource handle methods must always be called from main thread
    53  */
    54 
    5545using namespace WebCore;
    5646
     
    9585    guint64 requestedOffset;
    9686
    97     guint startID;
    98     guint stopID;
    9987    guint needDataID;
    10088    guint enoughDataID;
     
    148136static void webKitWebSrcEnoughDataCb(GstAppSrc*, gpointer userData);
    149137static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer userData);
     138
     139static void webKitWebSrcStop(WebKitWebSrc*, bool);
    150140
    151141static GstAppSrcCallbacks appsrcCallbacks = {
     
    240230    src->priv = priv;
    241231
     232    priv->client = new StreamingClient(src);
     233
    242234    priv->appsrc = GST_APP_SRC(gst_element_factory_make("appsrc", 0));
    243235    if (!priv->appsrc) {
     
    288280        g_object_set(priv->appsrc, "min-percent", 20, NULL);
    289281
    290     gst_app_src_set_caps(priv->appsrc, 0);
    291     gst_app_src_set_size(priv->appsrc, -1);
     282    webKitWebSrcStop(src, false);
    292283}
    293284
     
    312303    WebKitWebSrcPrivate* priv = src->priv;
    313304
     305    delete priv->client;
     306
    314307    g_free(priv->uri);
    315308
     
    324317    switch (propID) {
    325318    case PROP_IRADIO_MODE:
    326         GST_OBJECT_LOCK(src);
    327319        priv->iradioMode = g_value_get_boolean(value);
    328         GST_OBJECT_UNLOCK(src);
    329320        break;
    330321    case PROP_LOCATION:
     
    346337    WebKitWebSrcPrivate* priv = src->priv;
    347338
    348     GST_OBJECT_LOCK(src);
    349339    switch (propID) {
    350340    case PROP_IRADIO_MODE:
     
    370360        break;
    371361    }
    372     GST_OBJECT_UNLOCK(src);
    373 }
    374 
    375 // must be called on main thread and with object unlocked
    376 static gboolean webKitWebSrcStop(WebKitWebSrc* src)
    377 {
    378     WebKitWebSrcPrivate* priv = src->priv;
    379     gboolean seeking;
    380 
    381     GST_OBJECT_LOCK(src);
    382 
    383     seeking = priv->seekID;
    384 
    385     if (priv->startID) {
    386         g_source_remove(priv->startID);
    387         priv->startID = 0;
    388     }
     362}
     363
     364
     365static void webKitWebSrcStop(WebKitWebSrc* src, bool seeking)
     366{
     367    WebKitWebSrcPrivate* priv = src->priv;
    389368
    390369    if (priv->resourceHandle) {
     
    394373    priv->resourceHandle = 0;
    395374
    396     if (priv->client) {
    397         delete priv->client;
    398         priv->client = 0;
    399     }
    400 
    401375    if (priv->frame && !seeking)
    402376        priv->frame.clear();
     
    411385    }
    412386
     387    GST_OBJECT_LOCK(src);
    413388    if (priv->needDataID)
    414389        g_source_remove(priv->needDataID);
     
    424399
    425400    priv->paused = FALSE;
     401    GST_OBJECT_UNLOCK(src);
    426402
    427403    g_free(priv->iradioName);
     
    436412    g_free(priv->iradioTitle);
    437413    priv->iradioTitle = 0;
    438 
    439     priv->offset = 0;
    440     priv->seekable = FALSE;
    441 
    442     if (!seeking) {
    443         priv->size = 0;
    444         priv->requestedOffset = 0;
    445     }
    446 
    447     priv->stopID = 0;
    448     GST_OBJECT_UNLOCK(src);
    449414
    450415    if (priv->appsrc) {
     
    454419    }
    455420
     421    priv->offset = 0;
     422    priv->seekable = FALSE;
     423
     424    if (!seeking) {
     425        priv->size = 0;
     426        priv->requestedOffset = 0;
     427    }
     428
    456429    GST_DEBUG_OBJECT(src, "Stopped request");
    457 
    458     return FALSE;
    459 }
    460 
    461 // must be called on main thread and with object unlocked
    462 static gboolean webKitWebSrcStart(WebKitWebSrc* src)
    463 {
    464     WebKitWebSrcPrivate* priv = src->priv;
    465 
    466     GST_OBJECT_LOCK(src);
     430}
     431
     432static bool webKitWebSrcStart(WebKitWebSrc* src)
     433{
     434    WebKitWebSrcPrivate* priv = src->priv;
     435
    467436    if (!priv->uri) {
    468437        GST_ERROR_OBJECT(src, "No URI provided");
    469         GST_OBJECT_UNLOCK(src);
    470         webKitWebSrcStop(src);
    471         return FALSE;
    472     }
    473 
     438        return false;
     439    }
     440   
    474441    KURL url = KURL(KURL(), priv->uri);
    475442
     
    506473    request.setHTTPHeaderField("transferMode.dlna", "Streaming");
    507474
    508     priv->client = new StreamingClient(src);
    509475    priv->resourceHandle = ResourceHandle::create(context, request, priv->client, false, false);
    510476    if (!priv->resourceHandle) {
    511477        GST_ERROR_OBJECT(src, "Failed to create ResourceHandle");
    512         GST_OBJECT_UNLOCK(src);
    513         webKitWebSrcStop(src);
    514     } else {
    515         GST_OBJECT_UNLOCK(src);
    516         GST_DEBUG_OBJECT(src, "Started request");
    517     }
    518     return FALSE;
     478        return false;
     479    }
     480
     481    GST_DEBUG_OBJECT(src, "Started request");
     482
     483    return true;
    519484}
    520485
     
    547512    case GST_STATE_CHANGE_READY_TO_PAUSED:
    548513        GST_DEBUG_OBJECT(src, "READY->PAUSED");
    549         GST_OBJECT_LOCK(src);
    550         priv->startID = g_timeout_add_full(G_PRIORITY_DEFAULT, 0, (GSourceFunc) webKitWebSrcStart, gst_object_ref(src), (GDestroyNotify) gst_object_unref);
    551         GST_OBJECT_UNLOCK(src);
     514        if (!webKitWebSrcStart(src))
     515            ret = GST_STATE_CHANGE_FAILURE;
    552516        break;
    553517    case GST_STATE_CHANGE_PAUSED_TO_READY:
    554518        GST_DEBUG_OBJECT(src, "PAUSED->READY");
    555         GST_OBJECT_LOCK(src);
    556         priv->stopID = g_timeout_add_full(G_PRIORITY_DEFAULT, 0, (GSourceFunc) webKitWebSrcStop, gst_object_ref(src), (GDestroyNotify) gst_object_unref);
    557         GST_OBJECT_UNLOCK(src);
     519        webKitWebSrcStop(src, false);
    558520        break;
    559521    default:
     
    566528static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQuery* query)
    567529{
    568     WebKitWebSrc* src = WEBKIT_WEB_SRC(GST_ELEMENT(parent));
     530    WebKitWebSrc* webkitSrc = WEBKIT_WEB_SRC(GST_ELEMENT(parent));
    569531    gboolean result = FALSE;
    570532
     
    575537        gst_query_parse_duration(query, &format, NULL);
    576538
    577         GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format));
    578         GST_OBJECT_LOCK(src);
    579         if ((format == GST_FORMAT_BYTES) && (src->priv->size > 0)) {
    580             gst_query_set_duration(query, format, src->priv->size);
     539        GST_DEBUG_OBJECT(webkitSrc, "duration query in format %s", gst_format_get_name(format));
     540        if ((format == GST_FORMAT_BYTES) && (webkitSrc->priv->size > 0)) {
     541            gst_query_set_duration(query, format, webkitSrc->priv->size);
    581542            result = TRUE;
    582543        }
    583         GST_OBJECT_UNLOCK(src);
    584544        break;
    585545    }
    586546    case GST_QUERY_URI: {
    587         GST_OBJECT_LOCK(src);
    588         gst_query_set_uri(query, src->priv->uri);
    589         GST_OBJECT_UNLOCK(src);
     547        gst_query_set_uri(query, webkitSrc->priv->uri);
    590548        result = TRUE;
    591549        break;
     
    628586static gchar* webKitWebSrcGetUri(GstURIHandler* handler)
    629587{
    630     WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
    631     gchar* ret;
    632 
    633     GST_OBJECT_LOCK(src);
    634     ret = g_strdup(src->priv->uri);
    635     GST_OBJECT_UNLOCK(src);
    636     return ret;
     588    return g_strdup(WEBKIT_WEB_SRC(handler)->priv->uri);
    637589}
    638590
     
    647599    }
    648600
    649     GST_OBJECT_LOCK(src);
    650601    g_free(priv->uri);
    651602    priv->uri = 0;
    652603
    653     if (!uri) {
    654         GST_OBJECT_UNLOCK(src);
     604    if (!uri)
    655605        return TRUE;
    656     }
    657606
    658607    KURL url(KURL(), uri);
    659608
    660609    if (!url.isValid() || !url.protocolIsInHTTPFamily()) {
    661         GST_OBJECT_UNLOCK(src);
    662610        g_set_error(error, GST_URI_ERROR, GST_URI_ERROR_BAD_URI, "Invalid URI '%s'", uri);
    663611        return FALSE;
     
    665613
    666614    priv->uri = g_strdup(url.string().utf8().data());
    667     GST_OBJECT_UNLOCK(src);
    668615    return TRUE;
    669616}
     
    683630static const gchar* webKitWebSrcGetUri(GstURIHandler* handler)
    684631{
    685     WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
    686     gchar* ret;
    687 
    688     GST_OBJECT_LOCK(src);
    689     ret = g_strdup(src->priv->uri);
    690     GST_OBJECT_UNLOCK(src);
    691     return ret;
     632    return g_strdup(WEBKIT_WEB_SRC(handler)->priv->uri);
    692633}
    693634
     
    702643    }
    703644
    704     GST_OBJECT_LOCK(src);
    705645    g_free(priv->uri);
    706646    priv->uri = 0;
    707647
    708     if (!uri) {
    709         GST_OBJECT_UNLOCK(src);
     648    if (!uri)
    710649        return TRUE;
    711     }
    712650
    713651    KURL url(KURL(), uri);
    714652
    715653    if (!url.isValid() || !url.protocolIsInHTTPFamily()) {
    716         GST_OBJECT_UNLOCK(src);
    717654        GST_ERROR_OBJECT(src, "Invalid URI '%s'", uri);
    718655        return FALSE;
     
    720657
    721658    priv->uri = g_strdup(url.string().utf8().data());
    722     GST_OBJECT_UNLOCK(src);
    723659    return TRUE;
    724660}
     
    741677    WebKitWebSrcPrivate* priv = src->priv;
    742678
     679    priv->resourceHandle->setDefersLoading(false);
     680
    743681    GST_OBJECT_LOCK(src);
    744     // already stopped
    745     if (!priv->needDataID) {
    746         GST_OBJECT_UNLOCK(src);
    747         return FALSE;
    748     }
    749 
    750682    priv->paused = FALSE;
    751683    priv->needDataID = 0;
    752684    GST_OBJECT_UNLOCK(src);
    753 
    754     if (priv->resourceHandle)
    755         priv->resourceHandle->setDefersLoading(false);
    756685    return FALSE;
    757686}
     
    778707    WebKitWebSrcPrivate* priv = src->priv;
    779708
     709    priv->resourceHandle->setDefersLoading(true);
     710
    780711    GST_OBJECT_LOCK(src);
    781     // already stopped
    782     if (!priv->enoughDataID) {
    783         GST_OBJECT_UNLOCK(src);
    784         return FALSE;
    785     }
    786 
    787712    priv->paused = TRUE;
    788713    priv->enoughDataID = 0;
    789714    GST_OBJECT_UNLOCK(src);
    790715
    791     if (priv->resourceHandle)
    792         priv->resourceHandle->setDefersLoading(true);
    793716    return FALSE;
    794717}
     
    813736static gboolean webKitWebSrcSeekMainCb(WebKitWebSrc* src)
    814737{
    815     webKitWebSrcStop(src);
     738    webKitWebSrcStop(src, true);
    816739    webKitWebSrcStart(src);
    817740
     
    825748
    826749    GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset);
    827     GST_OBJECT_LOCK(src);
    828     if (offset == priv->offset && priv->requestedOffset == priv->offset) {
    829         GST_OBJECT_UNLOCK(src);
     750    if (offset == priv->offset && priv->requestedOffset == priv->offset)
    830751        return TRUE;
    831     }
    832 
    833     if (!priv->seekable) {
    834         GST_OBJECT_UNLOCK(src);
     752
     753    if (!priv->seekable)
    835754        return FALSE;
    836     }
    837     if (offset > priv->size) {
    838         GST_OBJECT_UNLOCK(src);
     755    if (offset > priv->size)
    839756        return FALSE;
    840     }
    841757
    842758    GST_DEBUG_OBJECT(src, "Doing range-request seek");
    843759    priv->requestedOffset = offset;
    844760
     761    GST_OBJECT_LOCK(src);
    845762    if (priv->seekID)
    846763        g_source_remove(priv->seekID);
    847764    priv->seekID = g_timeout_add_full(G_PRIORITY_DEFAULT, 0, (GSourceFunc) webKitWebSrcSeekMainCb, gst_object_ref(src), (GDestroyNotify) gst_object_unref);
    848765    GST_OBJECT_UNLOCK(src);
    849 
     766   
    850767    return TRUE;
    851768}
     
    864781}
    865782
    866 StreamingClient::StreamingClient(WebKitWebSrc* src)
    867     : m_src(static_cast<WebKitWebSrc*>(gst_object_ref(src)))
     783StreamingClient::StreamingClient(WebKitWebSrc* src) : m_src(src)
    868784{
    869785
     
    872788StreamingClient::~StreamingClient()
    873789{
    874     gst_object_unref(m_src);
     790
    875791}
    876792
     
    879795}
    880796
    881 void StreamingClient::didReceiveResponse(ResourceHandle *handle, const ResourceResponse& response)
     797void StreamingClient::didReceiveResponse(ResourceHandle*, const ResourceResponse& response)
    882798{
    883799    WebKitWebSrcPrivate* priv = m_src->priv;
     
    885801    GST_DEBUG_OBJECT(m_src, "Received response: %d", response.httpStatusCode());
    886802
    887     GST_OBJECT_LOCK(m_src);
    888 
    889803    // If we seeked we need 206 == PARTIAL_CONTENT
    890     if (handle != priv->resourceHandle || (priv->requestedOffset && response.httpStatusCode() != 206)) {
    891         GST_OBJECT_UNLOCK(m_src);
     804    if (priv->requestedOffset && response.httpStatusCode() != 206) {
    892805        GST_ELEMENT_ERROR(m_src, RESOURCE, READ, (0), (0));
    893806        gst_app_src_end_of_stream(priv->appsrc);
    894         webKitWebSrcStop(m_src);
     807        webKitWebSrcStop(m_src, false);
    895808        return;
    896809    }
    897810
    898811    long long length = response.expectedContentLength();
    899     if (length > 0)
     812    if (length > 0) {
    900813        length += priv->requestedOffset;
     814        gst_app_src_set_size(priv->appsrc, length);
     815
     816#ifndef GST_API_VERSION_1
     817        if (!priv->haveAppSrc27) {
     818            gst_segment_set_duration(&GST_BASE_SRC(priv->appsrc)->segment, GST_FORMAT_BYTES, length);
     819            gst_element_post_message(GST_ELEMENT(priv->appsrc),
     820                                     gst_message_new_duration(GST_OBJECT(priv->appsrc),
     821                                                              GST_FORMAT_BYTES, length));
     822        }
     823#endif
     824    }
    901825
    902826    priv->size = length >= 0 ? length : 0;
    903827    priv->seekable = length > 0 && g_ascii_strcasecmp("none", response.httpHeaderField("Accept-Ranges").utf8().data());
     828
     829    // icecast stuff
     830    String value = response.httpHeaderField("icy-metaint");
     831    if (!value.isEmpty()) {
     832        gchar* endptr = 0;
     833        gint64 icyMetaInt = g_ascii_strtoll(value.utf8().data(), &endptr, 10);
     834           
     835        if (endptr && *endptr == '\0' && icyMetaInt > 0) {
     836            GRefPtr<GstCaps> caps = adoptGRef(gst_caps_new_simple("application/x-icy", "metadata-interval", G_TYPE_INT, (gint) icyMetaInt, NULL));
     837
     838            gst_app_src_set_caps(priv->appsrc, caps.get());
     839        }
     840    }
    904841
    905842#ifdef GST_API_VERSION_1
     
    908845    GstTagList* tags = gst_tag_list_new();
    909846#endif
    910     String value = response.httpHeaderField("icy-name");
     847    value = response.httpHeaderField("icy-name");
    911848    if (!value.isEmpty()) {
    912849        g_free(priv->iradioName);
     
    937874    }
    938875
    939     GST_OBJECT_UNLOCK(m_src);
    940 
    941     // notify size/duration
    942     if (length > 0) {
    943         gst_app_src_set_size(priv->appsrc, length);
    944 
    945 #ifndef GST_API_VERSION_1
    946         if (!priv->haveAppSrc27) {
    947             gst_segment_set_duration(&GST_BASE_SRC(priv->appsrc)->segment, GST_FORMAT_BYTES, length);
    948             gst_element_post_message(GST_ELEMENT(priv->appsrc),
    949                 gst_message_new_duration(GST_OBJECT(priv->appsrc),
    950                     GST_FORMAT_BYTES, length));
    951         }
    952 #endif
    953     } else
    954         gst_app_src_set_size(priv->appsrc, -1);
    955 
    956     // icecast stuff
    957     value = response.httpHeaderField("icy-metaint");
    958     if (!value.isEmpty()) {
    959         gchar* endptr = 0;
    960         gint64 icyMetaInt = g_ascii_strtoll(value.utf8().data(), &endptr, 10);
    961 
    962         if (endptr && *endptr == '\0' && icyMetaInt > 0) {
    963             GRefPtr<GstCaps> caps = adoptGRef(gst_caps_new_simple("application/x-icy", "metadata-interval", G_TYPE_INT, (gint) icyMetaInt, NULL));
    964 
    965             gst_app_src_set_caps(priv->appsrc, caps.get());
    966         }
    967     } else
    968         gst_app_src_set_caps(priv->appsrc, 0);
    969 
    970     // notify tags
    971876    if (gst_tag_list_is_empty(tags))
    972877#ifdef GST_API_VERSION_1
     
    976881#endif
    977882    else
    978         notifyGstTagsOnPad(GST_ELEMENT(m_src), priv->srcpad, tags);
     883        notifyGstTagsOnPad(GST_ELEMENT(m_src), m_src->priv->srcpad, tags);
    979884}
    980885
     
    982887{
    983888    WebKitWebSrcPrivate* priv = m_src->priv;
    984 
    985     GST_OBJECT_LOCK(m_src);
    986889
    987890    GST_LOG_OBJECT(m_src, "Have %d bytes of data", priv->buffer ? getGstBufferSize(priv->buffer.get()) : length);
     
    995898
    996899    if (priv->seekID || handle != priv->resourceHandle) {
    997         GST_OBJECT_UNLOCK(m_src);
    998900        GST_DEBUG_OBJECT(m_src, "Seek in progress, ignoring data");
    999901        priv->buffer.clear();
     
    1020922    GST_BUFFER_OFFSET_END(priv->buffer.get()) = priv->offset;
    1021923
    1022     GST_OBJECT_UNLOCK(m_src);
    1023 
    1024924    GstFlowReturn ret = gst_app_src_push_buffer(priv->appsrc, priv->buffer.leakRef());
    1025925#ifdef GST_API_VERSION_1
     
    1055955    GST_DEBUG_OBJECT(m_src, "Have EOS");
    1056956
    1057     GST_OBJECT_LOCK(m_src);
    1058     if (!priv->seekID) {
    1059         GST_OBJECT_UNLOCK(m_src);
     957    if (!priv->seekID)
    1060958        gst_app_src_end_of_stream(m_src->priv->appsrc);
    1061     } else
    1062         GST_OBJECT_UNLOCK(m_src);
    1063959}
    1064960
     
    1072968void StreamingClient::wasBlocked(ResourceHandle*)
    1073969{
    1074     GOwnPtr<gchar> uri;
    1075 
    1076970    GST_ERROR_OBJECT(m_src, "Request was blocked");
    1077 
    1078     GST_OBJECT_LOCK(m_src);
    1079     uri.set(g_strdup(m_src->priv->uri));
    1080     GST_OBJECT_UNLOCK(m_src);
    1081 
    1082     GST_ELEMENT_ERROR(m_src, RESOURCE, OPEN_READ, ("Access to \"%s\" was blocked", uri.get()), (0));
     971    GST_ELEMENT_ERROR(m_src, RESOURCE, OPEN_READ, ("Access to \"%s\" was blocked", m_src->priv->uri), (0));
    1083972}
    1084973
    1085974void StreamingClient::cannotShowURL(ResourceHandle*)
    1086975{
    1087     GOwnPtr<gchar> uri;
    1088 
    1089976    GST_ERROR_OBJECT(m_src, "Cannot show URL");
    1090 
    1091     GST_OBJECT_LOCK(m_src);
    1092     uri.set(g_strdup(m_src->priv->uri));
    1093     GST_OBJECT_UNLOCK(m_src);
    1094 
    1095     GST_ELEMENT_ERROR(m_src, RESOURCE, OPEN_READ, ("Can't show \"%s\"", uri.get()), (0));
     977    GST_ELEMENT_ERROR(m_src, RESOURCE, OPEN_READ, ("Can't show \"%s\"", m_src->priv->uri), (0));
    1096978}
    1097979
Note: See TracChangeset for help on using the changeset viewer.