gnomemm r1486 - in gstreamermm/trunk: . gstreamer/gstreamermm gstreamer/gstreamermm/private gstreamer/src
- From: jaalburqu svn gnome org
- To: svn-commits-list gnome org
- Subject: gnomemm r1486 - in gstreamermm/trunk: . gstreamer/gstreamermm gstreamer/gstreamermm/private gstreamer/src
- Date: Thu, 1 May 2008 02:43:55 +0100 (BST)
Author: jaalburqu
Date: Thu May 1 01:43:55 2008
New Revision: 1486
URL: http://svn.gnome.org/viewvc/gnomemm?rev=1486&view=rev
Log:
2008-04-30 Josà Alburquerque <jaalburqu svn gnome org>
* gstreamer/gstreamermm/Makefile.am: Added taglist.{h,c} to extra
files that should be compiled because both are generated by adding
taglist.hg to list of files in Makefile_list_of_hg.am_fragment,
editing the *.h file and then removing the *.hg from list of files in
Makefile_list_of_hg.am_fragment (see comments on this in ChangeLog)
* gstreamer/gstreamermm/private/taglist_p.h: Added this file for same
reasons as above (otherwise build process would generate this file
automatically)
* gstreamer/src/buffer.hg: Removed completed TODO's
* gstreamer/src/element.hg: Changed GQuark to const Glib::QueryQuark&
* gstreamer/src/event.ccg:
* gstreamer/src/event.hg: Added EventTag::create() and
EventTag::parse(); Used forward declarations of Gst::Structure and
Gst::TagList instead of including *.h files in header file
* gstreamer/src/message.ccg:
* gstreamer/src/message.hg: Added MessageTag class with create() and
parse() methods; Used forward declarations instead of including *.h
files in header file
Added:
gstreamermm/trunk/gstreamer/gstreamermm/private/taglist_p.h
Modified:
gstreamermm/trunk/ChangeLog
gstreamermm/trunk/gstreamer/gstreamermm/Makefile.am
gstreamermm/trunk/gstreamer/src/buffer.hg
gstreamermm/trunk/gstreamer/src/element.hg
gstreamermm/trunk/gstreamer/src/event.ccg
gstreamermm/trunk/gstreamer/src/event.hg
gstreamermm/trunk/gstreamer/src/message.ccg
gstreamermm/trunk/gstreamer/src/message.hg
Modified: gstreamermm/trunk/gstreamer/gstreamermm/Makefile.am
==============================================================================
--- gstreamermm/trunk/gstreamer/gstreamermm/Makefile.am (original)
+++ gstreamermm/trunk/gstreamer/gstreamermm/Makefile.am Thu May 1 01:43:55 2008
@@ -13,12 +13,12 @@
sublib_files_extra_posix_cc =
sublib_files_extra_win32_cc =
-sublib_files_extra_general_cc = init.cc miniobject.cc object.cc version.cc wrap.cc gst_wrap_init.cc
+sublib_files_extra_general_cc = init.cc miniobject.cc object.cc version.cc wrap.cc gst_wrap_init.cc taglist.cc
sublib_files_extra_general_deprecated_cc =
sublib_files_extra_posix_h =
sublib_files_extra_win32_h =
-sublib_files_extra_general_h = init.h miniobject.h object.h version.h wrap.h gst_wrap_init.h
+sublib_files_extra_general_h = init.h miniobject.h object.h version.h wrap.h gst_wrap_init.h taglist.h
sublib_files_extra_general_deprecated_h =
include $(top_srcdir)/build_shared/Makefile_build.am_fragment
Added: gstreamermm/trunk/gstreamer/gstreamermm/private/taglist_p.h
==============================================================================
--- (empty file)
+++ gstreamermm/trunk/gstreamer/gstreamermm/private/taglist_p.h Thu May 1 01:43:55 2008
@@ -0,0 +1,8 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GSTREAMERMM_TAGLIST_P_H
+#define _GSTREAMERMM_TAGLIST_P_H
+
+
+#endif /* _GSTREAMERMM_TAGLIST_P_H */
+
Modified: gstreamermm/trunk/gstreamer/src/buffer.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/buffer.hg (original)
+++ gstreamermm/trunk/gstreamer/src/buffer.hg Thu May 1 01:43:55 2008
@@ -70,16 +70,11 @@
//This is const because it always returns a new buffer:
_WRAP_METHOD(Glib::RefPtr<Buffer> make_metadata_writable() const, gst_buffer_make_metadata_writable)
- // TODO: Do we need to hand code this to throw an exception when the C API returns NULL ?
_WRAP_METHOD(Glib::RefPtr<Caps> get_caps(), gst_buffer_get_caps)
_WRAP_METHOD(Glib::RefPtr<Caps const> get_caps() const, gst_buffer_get_caps, constversion)
-
_WRAP_METHOD(void set_caps(const Glib::RefPtr<Caps>& caps), gst_buffer_set_caps)
-
- // TODO: Do we need to hand code this to throw an exception when the C API returns NULL ?
_WRAP_METHOD(Glib::RefPtr<Buffer> create_sub(const guint& offset, const guint& size), gst_buffer_create_sub)
_WRAP_METHOD(Glib::RefPtr<Buffer const> create_sub(const guint& offset, const guint& size) const, gst_buffer_create_sub, constversion)
-
_WRAP_METHOD(bool is_span_fast(const Glib::RefPtr<Buffer>& other_buffer) const, gst_buffer_is_span_fast)
//This is const because it always returns a new buffer:
Modified: gstreamermm/trunk/gstreamer/src/element.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/element.hg (original)
+++ gstreamermm/trunk/gstreamer/src/element.hg Thu May 1 01:43:55 2008
@@ -175,7 +175,7 @@
_WRAP_METHOD(StateChangeReturn change_state(StateChange transition), gst_element_change_state)
//TODO: Change the parameter order?
- _WRAP_METHOD(void post_message(MessageType message_type, GQuark domain, int code, const Glib::ustring& message, const Glib::ustring& debug, const Glib::ustring& filename, const Glib::ustring& function_name, int line_number), gst_element_message_full)
+ _WRAP_METHOD(void post_message(MessageType message_type, const Glib::QueryQuark& domain, int code, const Glib::ustring& message, const Glib::ustring& debug, const Glib::ustring& filename, const Glib::ustring& function_name, int line_number), gst_element_message_full)
_WRAP_METHOD(bool post_message(const Glib::RefPtr<Message>& message), gst_element_post_message)
_WRAP_METHOD(Glib::ArrayHandle<QueryType> get_query_types() const, gst_element_get_query_types)
Modified: gstreamermm/trunk/gstreamer/src/event.ccg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/event.ccg (original)
+++ gstreamermm/trunk/gstreamer/src/event.ccg Thu May 1 01:43:55 2008
@@ -20,6 +20,8 @@
*/
#include <gst/gstenumtypes.h>
+#include <gstreamermm/structure.h>
+#include <gstreamermm/taglist.h>
_PINCLUDE(gstreamermm/private/miniobject_p.h)
namespace Gst
@@ -200,13 +202,19 @@
{
}
-//TODO: Glib::RefPtr<Event> EventTag::create(TagList& taglist)
-//TODO: {
-//TODO: }
-
-//TODO: void EventTag::parse(TagList& taglist)
-//TODO: {
-//TODO: }
+Glib::RefPtr<Event> EventTag::create(TagList& taglist)
+{
+ GstEvent* event = gst_event_new_tag(taglist.gobj());
+ return Gst::Event::wrap(event, false);
+}
+
+void EventTag::parse(TagList& taglist)
+{
+ GstTagList* gst_taglist = gst_tag_list_new();
+ gst_event_parse_tag(gobj(), &gst_taglist);
+ TagList parsed_taglist(gst_taglist);
+ taglist.swap(parsed_taglist);
+}
Glib::RefPtr<Event> Event::wrap(GstEvent* event, bool take_copy) {
Modified: gstreamermm/trunk/gstreamer/src/event.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/event.hg (original)
+++ gstreamermm/trunk/gstreamer/src/event.hg Thu May 1 01:43:55 2008
@@ -20,10 +20,9 @@
*/
#include <gst/gstevent.h>
-#include <gstreamermm/miniobject.h>
-#include <gstreamermm/structure.h>
#include <gstreamermm/wrap.h>
#include <gstreamermm/format.h>
+#include <gstreamermm/clock.h>
_DEFS(gstreamermm,gst)
@@ -59,6 +58,9 @@
_WRAP_ENUM(SeekFlags, GstSeekFlags)
_WRAP_ENUM(EventTypeFlags, GstEventTypeFlags)
+class Structure;
+class TagList;
+
/** Get a printable name for the given event type.
*
* @param type the event type
@@ -498,8 +500,16 @@
public:
explicit EventTag(GstEvent* event);
- //TODO: static Glib::RefPtr<Event> create(TagList& taglist);
- //TODO: void parse(TagList& taglist);
+ /** Generates a metadata tag event from the given taglist.
+ * @param taglist metadata list
+ * @return a new Gst::Event
+ */
+ static Glib::RefPtr<Event> create(TagList& taglist);
+
+ /** Parses a tag event and stores the results in the given taglist location.
+ * @param taglist pointer to metadata list
+ */
+ void parse(TagList& taglist);
};
} //namespace Gst
Modified: gstreamermm/trunk/gstreamer/src/message.ccg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/message.ccg (original)
+++ gstreamermm/trunk/gstreamer/src/message.ccg Thu May 1 01:43:55 2008
@@ -20,6 +20,8 @@
*/
#include <gst/gstenumtypes.h>
+#include <gstreamermm/structure.h>
+#include <gstreamermm/taglist.h>
_PINCLUDE(gstreamermm/private/miniobject_p.h)
namespace Gst
@@ -244,6 +246,24 @@
{
}
+MessageTag::MessageTag(GstMessage* castitem)
+: Message(castitem)
+{
+}
+
+Glib::RefPtr<Message> MessageTag::create(const Glib::RefPtr<Object>& src, TagList& taglist)
+{
+ GstMessage* message = gst_message_new_tag(src->gobj(), taglist.gobj());
+ return Gst::Message::wrap(message, false);
+}
+
+void MessageTag::parse(TagList& taglist)
+{
+ GstTagList* gst_tag_list = gst_tag_list_new();
+ gst_message_parse_tag(gobj(), &gst_tag_list);
+ TagList result(gst_tag_list);
+ taglist.swap(result);
+}
Glib::RefPtr<Message> MessageBuffering::create(const Glib::RefPtr<Object>& src, int percent)
{
@@ -350,6 +370,9 @@
case GST_MESSAGE_INFO:
result = Glib::RefPtr<Message>( new Gst::MessageInfo(message) );
break;
+ case GST_MESSAGE_TAG:
+ result = Glib::RefPtr<Message>( new Gst::MessageTag(message) );
+ break;
case GST_MESSAGE_BUFFERING:
result = Glib::RefPtr<MessageBuffering>( new Gst::MessageBuffering(message) );
break;
@@ -392,7 +415,6 @@
case GST_MESSAGE_ASYNC_DONE:
result = Glib::RefPtr<Message>( new Gst::MessageAsyncDone(message) );
break;
- //TODO?: case GST_MESSAGE_TAG:
//TODO?: case GST_MESSAGE_STEP_DONE:
//TODO?: case GST_MESSAGE_STRUCTURE_CHANGE:
//TODO?: case GST_MESSAGE_STREAM_STATUS:
Modified: gstreamermm/trunk/gstreamer/src/message.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/message.hg (original)
+++ gstreamermm/trunk/gstreamer/src/message.hg Thu May 1 01:43:55 2008
@@ -20,10 +20,9 @@
*/
#include <gst/gstmessage.h>
-#include <gstreamermm/miniobject.h>
-#include <gstreamermm/structure.h>
#include <gstreamermm/wrap.h>
#include <gstreamermm/format.h>
+#include <gstreamermm/clock.h>
#include <gstreamermm/enums.h>
_DEFS(gstreamermm,gst)
@@ -36,6 +35,9 @@
Glib::ustring get_name(MessageType t);
Glib::QueryQuark get_quark(MessageType t);
+class Structure;
+class TagList;
+
/** Gst::Message â Lightweight objects to signal the application of pipeline
* events.
* Messages are implemented as a subclass of Gst::MiniObject with a generic
@@ -180,9 +182,14 @@
void parse(State& oldstate, State& newstate, State& pending);
};
-//TODO:class MessageTag : public Message
-//TODO:{
-//TODO:}
+class MessageTag : public Message
+{
+public:
+ explicit MessageTag(GstMessage* castitem);
+
+ static Glib::RefPtr<Message> create(const Glib::RefPtr<Object>& src, TagList& taglist);
+ void parse(TagList& taglist);
+};
class MessageBuffering : public Message
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]