Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 549840
Collapse All | Expand All

(-)a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (-25 / +24 lines)
Lines 354-360 static void webKitWebSrcSetProperty(GObject* object, guint propID, const GValue* Link Here
354
354
355
    switch (propID) {
355
    switch (propID) {
356
    case PROP_IRADIO_MODE: {
356
    case PROP_IRADIO_MODE: {
357
        GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
357
        WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
358
        priv->iradioMode = g_value_get_boolean(value);
358
        priv->iradioMode = g_value_get_boolean(value);
359
        break;
359
        break;
360
    }
360
    }
Lines 376-382 static void webKitWebSrcGetProperty(GObject* object, guint propID, GValue* value Link Here
376
    WebKitWebSrc* src = WEBKIT_WEB_SRC(object);
376
    WebKitWebSrc* src = WEBKIT_WEB_SRC(object);
377
    WebKitWebSrcPrivate* priv = src->priv;
377
    WebKitWebSrcPrivate* priv = src->priv;
378
378
379
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
379
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
380
    switch (propID) {
380
    switch (propID) {
381
    case PROP_IRADIO_MODE:
381
    case PROP_IRADIO_MODE:
382
        g_value_set_boolean(value, priv->iradioMode);
382
        g_value_set_boolean(value, priv->iradioMode);
Lines 429-435 static gboolean webKitWebSrcStop(WebKitWebSrc* src) Link Here
429
429
430
    ASSERT(isMainThread());
430
    ASSERT(isMainThread());
431
431
432
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
432
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
433
433
434
    bool seeking = priv->seekID;
434
    bool seeking = priv->seekID;
435
435
Lines 493-499 static gboolean webKitWebSrcStart(WebKitWebSrc* src) Link Here
493
493
494
    ASSERT(isMainThread());
494
    ASSERT(isMainThread());
495
495
496
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
496
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
497
497
498
    priv->startID = 0;
498
    priv->startID = 0;
499
499
Lines 584-590 static GstStateChangeReturn webKitWebSrcChangeState(GstElement* element, GstStat Link Here
584
        return ret;
584
        return ret;
585
    }
585
    }
586
586
587
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
587
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
588
    switch (transition) {
588
    switch (transition) {
589
    case GST_STATE_CHANGE_READY_TO_PAUSED:
589
    case GST_STATE_CHANGE_READY_TO_PAUSED:
590
        GST_DEBUG_OBJECT(src, "READY->PAUSED");
590
        GST_DEBUG_OBJECT(src, "READY->PAUSED");
Lines 615-621 static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ Link Here
615
        gst_query_parse_duration(query, &format, NULL);
615
        gst_query_parse_duration(query, &format, NULL);
616
616
617
        GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format));
617
        GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format));
618
        GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
618
        WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
619
        if (format == GST_FORMAT_BYTES && src->priv->size > 0) {
619
        if (format == GST_FORMAT_BYTES && src->priv->size > 0) {
620
            gst_query_set_duration(query, format, src->priv->size);
620
            gst_query_set_duration(query, format, src->priv->size);
621
            result = TRUE;
621
            result = TRUE;
Lines 623-629 static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ Link Here
623
        break;
623
        break;
624
    }
624
    }
625
    case GST_QUERY_URI: {
625
    case GST_QUERY_URI: {
626
        GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
626
        WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
627
        gst_query_set_uri(query, src->priv->uri);
627
        gst_query_set_uri(query, src->priv->uri);
628
        result = TRUE;
628
        result = TRUE;
629
        break;
629
        break;
Lines 668-674 static gchar* webKitWebSrcGetUri(GstURIHandler* handler) Link Here
668
    WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
668
    WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
669
    gchar* ret;
669
    gchar* ret;
670
670
671
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
671
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
672
    ret = g_strdup(src->priv->uri);
672
    ret = g_strdup(src->priv->uri);
673
    return ret;
673
    return ret;
674
}
674
}
Lines 683-689 static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri, GEr Link Here
683
        return FALSE;
683
        return FALSE;
684
    }
684
    }
685
685
686
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
686
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
687
687
688
    g_free(priv->uri);
688
    g_free(priv->uri);
689
    priv->uri = 0;
689
    priv->uri = 0;
Lines 719-725 static const gchar* webKitWebSrcGetUri(GstURIHandler* handler) Link Here
719
    WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
719
    WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
720
    gchar* ret;
720
    gchar* ret;
721
721
722
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
722
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
723
    ret = g_strdup(src->priv->uri);
723
    ret = g_strdup(src->priv->uri);
724
    return ret;
724
    return ret;
725
}
725
}
Lines 734-740 static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri) Link Here
734
        return FALSE;
734
        return FALSE;
735
    }
735
    }
736
736
737
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
737
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
738
738
739
    g_free(priv->uri);
739
    g_free(priv->uri);
740
    priv->uri = 0;
740
    priv->uri = 0;
Lines 772-778 static gboolean webKitWebSrcNeedDataMainCb(WebKitWebSrc* src) Link Here
772
772
773
    ASSERT(isMainThread());
773
    ASSERT(isMainThread());
774
774
775
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
775
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
776
    // already stopped
776
    // already stopped
777
    if (!priv->needDataID)
777
    if (!priv->needDataID)
778
        return FALSE;
778
        return FALSE;
Lines 793-799 static void webKitWebSrcNeedDataCb(GstAppSrc*, guint length, gpointer userData) Link Here
793
793
794
    GST_DEBUG_OBJECT(src, "Need more data: %u", length);
794
    GST_DEBUG_OBJECT(src, "Need more data: %u", length);
795
795
796
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
796
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
797
    if (priv->needDataID || !priv->paused) {
797
    if (priv->needDataID || !priv->paused) {
798
        return;
798
        return;
799
    }
799
    }
Lines 807-813 static gboolean webKitWebSrcEnoughDataMainCb(WebKitWebSrc* src) Link Here
807
807
808
    ASSERT(isMainThread());
808
    ASSERT(isMainThread());
809
809
810
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
810
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
811
    // already stopped
811
    // already stopped
812
    if (!priv->enoughDataID)
812
    if (!priv->enoughDataID)
813
        return FALSE;
813
        return FALSE;
Lines 828-834 static void webKitWebSrcEnoughDataCb(GstAppSrc*, gpointer userData) Link Here
828
828
829
    GST_DEBUG_OBJECT(src, "Have enough data");
829
    GST_DEBUG_OBJECT(src, "Have enough data");
830
830
831
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
831
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
832
    if (priv->enoughDataID || priv->paused) {
832
    if (priv->enoughDataID || priv->paused) {
833
        return;
833
        return;
834
    }
834
    }
Lines 842-848 static gboolean webKitWebSrcSeekMainCb(WebKitWebSrc* src) Link Here
842
842
843
    ASSERT(isMainThread());
843
    ASSERT(isMainThread());
844
844
845
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
845
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
846
    // already stopped
846
    // already stopped
847
    if (!priv->seekID)
847
    if (!priv->seekID)
848
        return FALSE;
848
        return FALSE;
Lines 860-866 static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user Link Here
860
    WebKitWebSrcPrivate* priv = src->priv;
860
    WebKitWebSrcPrivate* priv = src->priv;
861
861
862
    GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset);
862
    GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset);
863
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
863
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
864
    if (offset == priv->offset && priv->requestedOffset == priv->offset)
864
    if (offset == priv->offset && priv->requestedOffset == priv->offset)
865
        return TRUE;
865
        return TRUE;
866
866
Lines 879-885 static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user Link Here
879
void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player)
879
void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player)
880
{
880
{
881
    ASSERT(player);
881
    ASSERT(player);
882
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
882
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
883
    src->priv->player = player;
883
    src->priv->player = player;
884
    s_cachedResourceLoader = player->cachedResourceLoader();
884
    s_cachedResourceLoader = player->cachedResourceLoader();
885
}
885
}
Lines 906-912 char* StreamingClient::createReadBuffer(size_t requestedSize, size_t& actualSize Link Here
906
    mapGstBuffer(buffer);
906
    mapGstBuffer(buffer);
907
#endif
907
#endif
908
908
909
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
909
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
910
    priv->buffer = adoptGRef(buffer);
910
    priv->buffer = adoptGRef(buffer);
911
    locker.unlock();
911
    locker.unlock();
912
912
Lines 921-927 void StreamingClient::handleResponseReceived(const ResourceResponse& response) Link Here
921
921
922
    GST_DEBUG_OBJECT(src, "Received response: %d", response.httpStatusCode());
922
    GST_DEBUG_OBJECT(src, "Received response: %d", response.httpStatusCode());
923
923
924
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
924
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
925
925
926
    // If we seeked we need 206 == PARTIAL_CONTENT
926
    // If we seeked we need 206 == PARTIAL_CONTENT
927
    if (priv->requestedOffset && response.httpStatusCode() != 206) {
927
    if (priv->requestedOffset && response.httpStatusCode() != 206) {
Lines 1020-1026 void StreamingClient::handleDataReceived(const char* data, int length) Link Here
1020
    WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src.get());
1020
    WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src.get());
1021
    WebKitWebSrcPrivate* priv = src->priv;
1021
    WebKitWebSrcPrivate* priv = src->priv;
1022
1022
1023
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
1023
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
1024
1024
1025
    GST_LOG_OBJECT(src, "Have %d bytes of data", priv->buffer ? getGstBufferSize(priv->buffer.get()) : length);
1025
    GST_LOG_OBJECT(src, "Have %d bytes of data", priv->buffer ? getGstBufferSize(priv->buffer.get()) : length);
1026
1026
Lines 1074-1080 void StreamingClient::handleNotifyFinished() Link Here
1074
1074
1075
    GST_DEBUG_OBJECT(src, "Have EOS");
1075
    GST_DEBUG_OBJECT(src, "Have EOS");
1076
1076
1077
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
1077
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
1078
    if (!priv->seekID) {
1078
    if (!priv->seekID) {
1079
        locker.unlock();
1079
        locker.unlock();
1080
        gst_app_src_end_of_stream(priv->appsrc);
1080
        gst_app_src_end_of_stream(priv->appsrc);
Lines 1210-1216 void ResourceHandleStreamingClient::wasBlocked(ResourceHandle*) Link Here
1210
1210
1211
    GST_ERROR_OBJECT(src, "Request was blocked");
1211
    GST_ERROR_OBJECT(src, "Request was blocked");
1212
1212
1213
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
1213
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
1214
    uri.set(g_strdup(src->priv->uri));
1214
    uri.set(g_strdup(src->priv->uri));
1215
    locker.unlock();
1215
    locker.unlock();
1216
1216
Lines 1224-1230 void ResourceHandleStreamingClient::cannotShowURL(ResourceHandle*) Link Here
1224
1224
1225
    GST_ERROR_OBJECT(src, "Cannot show URL");
1225
    GST_ERROR_OBJECT(src, "Cannot show URL");
1226
1226
1227
    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
1227
    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
1228
    uri.set(g_strdup(src->priv->uri));
1228
    uri.set(g_strdup(src->priv->uri));
1229
    locker.unlock();
1229
    locker.unlock();
1230
1230
1231
- 

Return to bug 549840