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 |
- |
|
|