[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/asobj/NetStreamFfmpeg.cp... [gnash
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/asobj/NetStreamFfmpeg.cp... [gnash_0_8_3_branch] |
Date: |
Wed, 21 May 2008 11:35:49 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Branch: gnash_0_8_3_branch
Changes by: Sandro Santilli <strk> 08/05/21 11:35:49
Modified files:
. : ChangeLog
server/asobj : NetStreamFfmpeg.cpp NetStreamFfmpeg.h
Log message:
Don't lock input mutex while holding it on ::startPlayback.
Doesn't fix the .join() hung, but helgrind is kind of happier.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&only_with_tag=gnash_0_8_3_branch&r1=1.6573.2.31&r2=1.6573.2.32
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.cpp?cvsroot=gnash&only_with_tag=gnash_0_8_3_branch&r1=1.116.2.4&r2=1.116.2.5
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.h?cvsroot=gnash&only_with_tag=gnash_0_8_3_branch&r1=1.60.2.1&r2=1.60.2.2
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6573.2.31
retrieving revision 1.6573.2.32
diff -u -b -r1.6573.2.31 -r1.6573.2.32
--- ChangeLog 21 May 2008 09:15:08 -0000 1.6573.2.31
+++ ChangeLog 21 May 2008 11:35:48 -0000 1.6573.2.32
@@ -1,3 +1,9 @@
+2008-05-21 Sandro Santilli <address@hidden>
+
+ * server/asobj/NetStreamFfmpeg.{cpp,h}:
+ Don't lock input mutex while holding it on ::startPlayback.
+ Doesn't fix the .join() hung, but helgrind is kind of happier.
+
2008-05-20 Bastiaan Jacques <address@hidden>
* server/asobj/NetStreamFfmpeg.cpp: Set playStop when playback stops
Index: server/asobj/NetStreamFfmpeg.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.cpp,v
retrieving revision 1.116.2.4
retrieving revision 1.116.2.5
diff -u -b -r1.116.2.4 -r1.116.2.5
--- server/asobj/NetStreamFfmpeg.cpp 21 May 2008 09:15:11 -0000
1.116.2.4
+++ server/asobj/NetStreamFfmpeg.cpp 21 May 2008 11:35:49 -0000
1.116.2.5
@@ -396,8 +396,8 @@
/// @param ns the netstream to use for reading
/// @return a pointer to the AVInputFormat structure containing
/// information about the input format, or NULL.
-static AVInputFormat*
-probeStream(NetStreamFfmpeg* ns)
+AVInputFormat*
+NetStreamFfmpeg::probeStream()
{
boost::scoped_array<boost::uint8_t> buffer(new boost::uint8_t[2048]);
@@ -407,7 +407,10 @@
probe_data.buf = buffer.get();
probe_data.buf_size = 2048;
- if (ns->readPacket(ns, probe_data.buf, probe_data.buf_size) < 1)
+ // Avoid calling readPacket to avoid locking (we should be already
locked)
+ tu_file& nc = *_downloader;
+ size_t ret = nc.read_bytes(probe_data.buf, probe_data.buf_size);
+ if (ret < 1)
{
log_error(_("Gnash could not read from movie url"));
return NULL;
@@ -509,7 +512,7 @@
// XXX should we call avcodec_init() first?
av_register_all();
- AVInputFormat* inputFmt = probeStream(this);
+ AVInputFormat* inputFmt = probeStream();
if (!inputFmt)
{
log_error(_("Couldn't determine stream input format from URL
%s"), url.c_str());
Index: server/asobj/NetStreamFfmpeg.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.h,v
retrieving revision 1.60.2.1
retrieving revision 1.60.2.2
diff -u -b -r1.60.2.1 -r1.60.2.2
--- server/asobj/NetStreamFfmpeg.h 20 May 2008 08:02:54 -0000 1.60.2.1
+++ server/asobj/NetStreamFfmpeg.h 21 May 2008 11:35:49 -0000 1.60.2.2
@@ -240,6 +240,12 @@
// Decoder buffer
boost::uint8_t* _decoderBuffer;
+
+ // Read some data from input to figure format
+ //
+ // does NOT lock _netcon_mutex (assuming locked already)
+ //
+ AVInputFormat* probeStream();
};
- [Gnash-commit] gnash ChangeLog server/asobj/NetStreamFfmpeg.cp... [gnash_0_8_3_branch],
Sandro Santilli <=