libowl-av: Fix music player crash if adding unknown type files
Using bus message to call function flush_head/feed_head in main thread to protect private data operation. A better fix may be to listen to bus message "CODEC_NOT_FOUND" and "MISSING_PLUGIN" directly to avoid hooking into "unknown-type" signal. We will revisit it in next period. This fixes [BUGID #296] Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
This commit is contained in:
parent
e1f257af7b
commit
41ad94640b
|
@ -0,0 +1,40 @@
|
|||
Fix music player crash if adding unknown type files.
|
||||
|
||||
Using bus message to call function flush_head/feed_head in main thread
|
||||
to protect private data operation.
|
||||
|
||||
A better fix may be to listen to bus message "CODEC_NOT_FOUND" and
|
||||
"MISSING_PLUGIN" directly to avoid hooking into "unknown-type" signal.
|
||||
We will revisit it in next period.
|
||||
|
||||
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
|
||||
|
||||
diff -ruN libowl-av-orig/libowl-av/owl-tag-reader.c libowl-av/libowl-av/owl-tag-reader.c
|
||||
--- libowl-av-orig/libowl-av/owl-tag-reader.c 2010-10-12 14:30:26.000000000 +0800
|
||||
+++ libowl-av/libowl-av/owl-tag-reader.c 2010-10-12 14:32:39.000000000 +0800
|
||||
@@ -300,13 +300,23 @@
|
||||
GstCaps *caps,
|
||||
OwlTagReader *tag_reader)
|
||||
{
|
||||
+ GstMessage *message;
|
||||
+ GstBus *bus;
|
||||
+
|
||||
tag_reader->priv->current_error =
|
||||
g_error_new (OWL_TAG_READER_ERROR,
|
||||
OWL_TAG_READER_ERROR_UNKNOWN_TYPE,
|
||||
"Unknown type");
|
||||
|
||||
- flush_head (tag_reader);
|
||||
- feed_head (tag_reader);
|
||||
+ /**
|
||||
+ * Post a message to the bus, as we are in another thread here.
|
||||
+ **/
|
||||
+ message = gst_message_new_error(GST_OBJECT (decodebin),
|
||||
+ tag_reader->priv->current_error, NULL);
|
||||
+
|
||||
+ bus = gst_pipeline_get_bus (GST_PIPELINE (tag_reader->priv->pipeline));
|
||||
+ gst_bus_post (bus, message);
|
||||
+ gst_object_unref (GST_OBJECT (bus));
|
||||
}
|
||||
|
||||
/**
|
|
@ -13,10 +13,11 @@ RDEPENDS = "gst-meta-base"
|
|||
RRECOMMENDS = "gst-meta-audio gst-meta-video"
|
||||
|
||||
PV = "0.0+svnr${SRCREV}"
|
||||
PR = "r3"
|
||||
PR = "r4"
|
||||
|
||||
S = "${WORKDIR}/${PN}"
|
||||
|
||||
SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=${PN};proto=http"
|
||||
SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=${PN};proto=http \
|
||||
file://gst_change_state.patch"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
|
Loading…
Reference in New Issue