Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:37 +0000 (20:22 +0000)]
Oops: Put the muxer after the encoder.
svn path=/trunk/; revision=348
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:32 +0000 (20:22 +0000)]
Streamer rejects the stream, rather than signal handler.
svn path=/trunk/; revision=347
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:28 +0000 (20:22 +0000)]
Add method to detect if stream has been accepted.
svn path=/trunk/; revision=346
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:23 +0000 (20:22 +0000)]
Generalize: Put common code into TestItem class.
Put common code from TestAudioItem and TestVideoItem into TestItem class.
svn path=/trunk/; revision=345
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:17 +0000 (20:22 +0000)]
Add a video item to test plugin.
Streams video from 'videotestsrc is-live=true ! theoraenc ! oggmux'.
svn path=/trunk/; revision=344
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:12 +0000 (20:22 +0000)]
Nicer title/ID for the exported audio item.
svn path=/trunk/; revision=343
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:08 +0000 (20:22 +0000)]
Tell audiotestsrc to behave like a live source.
svn path=/trunk/; revision=342
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:02 +0000 (20:22 +0000)]
Move StreamContext to Rygel as GstStream.
This is to avoid code-duplication in plugins. Now plugins just create the
gst source element they want to stream from and tell the Streamer to
stream from that.
svn path=/trunk/; revision=341
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:57 +0000 (20:21 +0000)]
StreamContext can now be told to stream from any gst (source) element.
svn path=/trunk/; revision=340
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:52 +0000 (20:21 +0000)]
No need to provide candidates to Streamer anymore.
Instead you get a new stream object for each HTTP request and you can
accept or reject it and start streaming to it in case of former.
svn path=/trunk/; revision=339
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:48 +0000 (20:21 +0000)]
Hosted path should be derived from given name.
Streamer takes a name as constructor argument and uses that to create the
server path it hosts.
svn path=/trunk/; revision=338
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:43 +0000 (20:21 +0000)]
Implement Test audio item.
It creates a small gstreamer pipeline and feeds the data produced from
that pipeline to http response messages.
svn path=/trunk/; revision=337
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:38 +0000 (20:21 +0000)]
Add gstreamer CFLAGS and LIBS to test plugin build.
svn path=/trunk/; revision=336
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:34 +0000 (20:21 +0000)]
Add a convience method to create URI from path.
svn path=/trunk/; revision=335
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:29 +0000 (20:21 +0000)]
Initialize gstreamer.
svn path=/trunk/; revision=334
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:24 +0000 (20:21 +0000)]
Provide a const for generic UPnP audio item class.
svn path=/trunk/; revision=333
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:18 +0000 (20:21 +0000)]
Basic skeleton for test plugin.
A test plugin that is supposed to host test media, mainly meant for
testing the new Streaming API and hopefully the transcoding API
that will follow soon.
svn path=/trunk/; revision=332
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:13 +0000 (20:21 +0000)]
Streamer doesn't derive from GUPnP.Context anymore.
Streamer doesn't derive from GUPnP.Context anymore but rather uses an
existing GUPnP.Conext object.
svn path=/trunk/; revision=331
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:08 +0000 (20:21 +0000)]
Add Streamer and Stream classes.
New classes for rygel and plugins to be able to stream data from sources
other than files on disk.
svn path=/trunk/; revision=330
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:21:02 +0000 (20:21 +0000)]
Refactor ContentDirectory.browse_cb ().
svn path=/trunk/; revision=329
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:20:57 +0000 (20:20 +0000)]
Introduce BrowseArgs.
Introduce a new class, whose instances holds the arguments (in and out) to
Browse action and pass these instance to all methods instead of passing
around the arguments themselves everywhere. Simplifies the code and lives
of content directory implementors.
svn path=/trunk/; revision=328
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:20:52 +0000 (20:20 +0000)]
Move most of the root container handling to base class.
So that plugins need to a bit less work.
svn path=/trunk/; revision=327
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:20:46 +0000 (20:20 +0000)]
Reflect the correct number of children in the root container.
Do create the root container before creating it's child containers but
update the number of children when we know it.
svn path=/trunk/; revision=326
Zeeshan Ali (Khattak) [Mon, 1 Dec 2008 16:39:32 +0000 (16:39 +0000)]
Some minor beautification changes.
svn path=/trunk/; revision=325
Zeeshan Ali (Khattak) [Mon, 1 Dec 2008 16:39:27 +0000 (16:39 +0000)]
A small convenience constructor for root container.
svn path=/trunk/; revision=324
Zeeshan Ali (Khattak) [Mon, 1 Dec 2008 16:39:22 +0000 (16:39 +0000)]
GConf.Client.get_string returns null if key is not found.
GConf.Client.get_string returns null if key is not found rather than
throwing an error.
svn path=/trunk/; revision=323
Zeeshan Ali (Khattak) [Mon, 1 Dec 2008 16:39:18 +0000 (16:39 +0000)]
Refactor MediaServerFactory.
Put the saving of modified desc into a separate method.
svn path=/trunk/; revision=322
Zeeshan Ali (Khattak) [Mon, 1 Dec 2008 16:39:12 +0000 (16:39 +0000)]
Refactor MediaServerFactory.
Put the creation of modified description xml into a separate method.
svn path=/trunk/; revision=321
Zeeshan Ali (Khattak) [Sat, 29 Nov 2008 23:19:50 +0000 (23:19 +0000)]
Set the default value to gconf rather than null.
svn path=/trunk/; revision=320
Zeeshan Ali (Khattak) [Sat, 29 Nov 2008 23:19:45 +0000 (23:19 +0000)]
Initialize the local variables.
svn path=/trunk/; revision=319
Zeeshan Ali (Khattak) [Fri, 28 Nov 2008 12:59:41 +0000 (12:59 +0000)]
Make the module resident rather than keeping a ref to it.
Rygel was crashing on exit because of modules being unloaded while there
were still objects of classes provided by the module. I thought I had
solved the issue by keeping a ref to each module in the PluginLoader but
the problem with that approach is that it is not guaranteed the
PluginLoader will not be freed before all the objects of classes it
provides.
svn path=/trunk/; revision=318
Zeeshan Ali (Khattak) [Thu, 27 Nov 2008 23:20:09 +0000 (23:20 +0000)]
Export the tracker logo.
Export the tracker logo to be used as the MediaServer icon.
svn path=/trunk/; revision=317
Zeeshan Ali (Khattak) [Thu, 27 Nov 2008 23:20:03 +0000 (23:20 +0000)]
Add support for icons.
Plugins can now provide icons to represent themselves. Yay!
svn path=/trunk/; revision=316
Zeeshan Ali (Khattak) [Thu, 27 Nov 2008 16:49:25 +0000 (16:49 +0000)]
Initialize the list before adding services to it.
svn path=/trunk/; revision=315
Zeeshan Ali (Khattak) [Thu, 27 Nov 2008 16:49:19 +0000 (16:49 +0000)]
Minor refactor.
svn path=/trunk/; revision=314
Zeeshan Ali (Khattak) [Wed, 26 Nov 2008 20:53:04 +0000 (20:53 +0000)]
Delete the now redundant directories.
svn path=/trunk/; revision=313
Zeeshan Ali (Khattak) [Wed, 26 Nov 2008 17:00:39 +0000 (17:00 +0000)]
Try to quit the app gracefully on SIGTERM.
svn path=/trunk/; revision=312
Zeeshan Ali (Khattak) [Wed, 26 Nov 2008 17:00:33 +0000 (17:00 +0000)]
Add API to Main for exiting the app with an exit code.
svn path=/trunk/; revision=311
Zeeshan Ali (Khattak) [Wed, 26 Nov 2008 17:00:28 +0000 (17:00 +0000)]
Turn MainLoop into a prop of the Main class.
svn path=/trunk/; revision=310
Zeeshan Ali (Khattak) [Wed, 26 Nov 2008 17:00:23 +0000 (17:00 +0000)]
Use exceptions rather than returning nulls.
svn path=/trunk/; revision=309
Zeeshan Ali (Khattak) [Wed, 26 Nov 2008 14:28:20 +0000 (14:28 +0000)]
Merge two functions together.
svn path=/trunk/; revision=308
Zeeshan Ali (Khattak) [Wed, 26 Nov 2008 14:28:15 +0000 (14:28 +0000)]
Keep the search and sort caps in a protected field.
svn path=/trunk/; revision=307
Zeeshan Ali (Khattak) [Wed, 26 Nov 2008 14:28:10 +0000 (14:28 +0000)]
Minor indentation fixes.
svn path=/trunk/; revision=306
Zeeshan Ali (Khattak) [Wed, 26 Nov 2008 14:28:06 +0000 (14:28 +0000)]
Allow service subclasses to override most of the funtionality.
Make some fields protected and some methods virtual.
svn path=/trunk/; revision=305
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:44:09 +0000 (14:44 +0000)]
Add some basic doc comments for all classes.
svn path=/trunk/; revision=304
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:44:05 +0000 (14:44 +0000)]
Oops! Had forgotten to update my email in the vapi file.
svn path=/trunk/; revision=303
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:59 +0000 (14:43 +0000)]
Rename 'media-server' dir to 'rygel'.
svn path=/trunk/; revision=302
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:52 +0000 (14:43 +0000)]
Rename 'media-providers' directory to 'plugins.
svn path=/trunk/; revision=301
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:47 +0000 (14:43 +0000)]
Fix the root gconf path to reflect the new project name.
svn path=/trunk/; revision=300
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:42 +0000 (14:43 +0000)]
Rename 'GCONF_PATH' to 'ROOT_GCONF_PATH'.
svn path=/trunk/; revision=299
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:38 +0000 (14:43 +0000)]
Rename 'UPNP_CLASS' in Service classes to 'UPNP_TYPE'.
svn path=/trunk/; revision=298
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:32 +0000 (14:43 +0000)]
set dlna_operation and dlna_flags like rhythmbox-gupnp.
Patch from Florian Steinel <Florian.Steinel@googlemail.com>.
svn path=/trunk/; revision=297
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:28 +0000 (14:43 +0000)]
Use the new Tracker interface.
Tracker now has separate objects for separate API. Patch from
Florian Steinel <Florian.Steinel@googlemail.com>.
svn path=/trunk/; revision=296
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:23 +0000 (14:43 +0000)]
Remove some unnecessary null-checks.
Thanks to Florian Steinel for pointing it out.
svn path=/trunk/; revision=295
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:18 +0000 (14:43 +0000)]
Link against libgee.
svn path=/trunk/; revision=294
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:12 +0000 (14:43 +0000)]
Complete Redesign: More power to the plugins.
List of changes:
* Plugins now loaded into separate Media Servers.
* Plugins can now implement any kind of resources (only services atm).
* Service classes are now exposed to plugins so they can inherit from them.
* MediaTracker now inherits from ContentDirectory rather than ContentProvider.
* ContentProvider is removed.
svn path=/trunk/; revision=293
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:07 +0000 (14:43 +0000)]
Bump-up required vala version to 0.5.2.
svn path=/trunk/; revision=292
Zeeshan Ali (Khattak) [Tue, 25 Nov 2008 14:43:03 +0000 (14:43 +0000)]
The service classes should know their upnp classes themselves.
svn path=/trunk/; revision=291
Zeeshan Ali (Khattak) [Tue, 18 Nov 2008 21:00:18 +0000 (21:00 +0000)]
Remove the now unneeded methods from TrackerContainer.
Had forgotten to remove add_music_item_from_db and seconds_to_iso8601 methods.
svn path=/trunk/; revision=290
Zeeshan Ali (Khattak) [Tue, 18 Nov 2008 21:00:10 +0000 (21:00 +0000)]
Vala syntax update:
- structs need to be initialized now.
- struct fields don't need to be initialized to null anymore.
- initialize all variables before using them.
svn path=/trunk/; revision=289
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 18:24:44 +0000 (18:24 +0000)]
Override GLib.Object.constructed() instead of using 'construct' keyword.
svn path=/trunk/; revision=288
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 18:10:05 +0000 (18:10 +0000)]
Avoid using 'construct' now that we have flexible construction methods.
svn path=/trunk/; revision=287
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 17:42:02 +0000 (17:42 +0000)]
Don't keep GUPnP context and D-Bus proxy objects in TrackerItem.
It can access these from the parent container object.
svn path=/trunk/; revision=286
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 17:42:00 +0000 (17:42 +0000)]
Don't hide GUPnP context and D-Bus proxy objects.
svn path=/trunk/; revision=285
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 17:41:58 +0000 (17:41 +0000)]
Rename field/variable "tracker_category" to "category".
svn path=/trunk/; revision=284
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 17:41:56 +0000 (17:41 +0000)]
Refactor: Put common Tracker item code into a separate abstract class.
All Tracker item classes now inherit from this class.
svn path=/trunk/; revision=283
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 17:41:54 +0000 (17:41 +0000)]
Refactor: Separate classes for each item type.
These tracker-specific item classes are responsible for fetching their metadata
and serializing it.
svn path=/trunk/; revision=282
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 17:41:53 +0000 (17:41 +0000)]
Declare private fields as private.
svn path=/trunk/; revision=281
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 17:41:51 +0000 (17:41 +0000)]
Refactor: Add TrackerContainer.get_file_category().
Now MediaTracker doesn't talk to tracker directly.
svn path=/trunk/; revision=280
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 17:41:49 +0000 (17:41 +0000)]
More standard-compliant SCPDs.
Based on a patch by Ross Burton <ross@opennedhand.com>.
svn path=/trunk/; revision=279
Zeeshan Ali (Khattak) [Tue, 11 Nov 2008 17:41:47 +0000 (17:41 +0000)]
Create root container after it's children.
This is to pass the correct number of children to the constructor of the
root container.
svn path=/trunk/; revision=278
Zeeshan Ali (Khattak) [Mon, 10 Nov 2008 21:33:21 +0000 (21:33 +0000)]
Refactor: A more intelligent TrackerContainer.
As a result, MediaTracker class is now very slim.
svn path=/trunk/; revision=277
Zeeshan Ali (Khattak) [Mon, 10 Nov 2008 21:33:19 +0000 (21:33 +0000)]
Replace my non-working "@gstreamer.net" email with "@gnome.org" one.
svn path=/trunk/; revision=276
Zeeshan Ali (Khattak) [Mon, 10 Nov 2008 21:33:18 +0000 (21:33 +0000)]
File.query_info () doesn't return a weak anymore.
svn path=/trunk/; revision=275
Zeeshan Ali (Khattak) [Sun, 26 Oct 2008 21:34:24 +0000 (21:34 +0000)]
Add MAINTAINERS file.
svn path=/trunk/; revision=274
Zeeshan Ali (Khattak) [Sun, 26 Oct 2008 21:34:16 +0000 (21:34 +0000)]
Project renamed to "Rygel" to be moved to GNOME SVN.
svn path=/trunk/; revision=273
Zeeshan Ali (Khattak) [Wed, 10 Sep 2008 21:21:35 +0000 (21:21 +0000)]
Refactor: Put plugin stuff into a separate module.
svn path=/trunk/; revision=272
Zeeshan Ali (Khattak) [Wed, 10 Sep 2008 21:21:25 +0000 (21:21 +0000)]
Refactor: Put TrackerContainer class into a separate module.
svn path=/trunk/; revision=271
Zeeshan Ali (Khattak) [Wed, 10 Sep 2008 21:21:14 +0000 (21:21 +0000)]
Rename Tracker.Container to GUPnP.TrackerContainer.
svn path=/trunk/; revision=270
Zeeshan Ali (Khattak) [Wed, 10 Sep 2008 21:21:05 +0000 (21:21 +0000)]
Create the root container in the contructor of the media providers.
svn path=/trunk/; revision=269
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:10:53 +0000 (21:10 +0000)]
Remove the redundant 'title' field from the Tracker.Container class.
svn path=/trunk/; revision=268
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:10:46 +0000 (21:10 +0000)]
Start utilizing the MediaContainer class in MediaTracker.
svn path=/trunk/; revision=267
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:10:38 +0000 (21:10 +0000)]
Add MediaItem to vapi file and build.
svn path=/trunk/; revision=266
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:10:31 +0000 (21:10 +0000)]
Introduce a class for media items.
svn path=/trunk/; revision=265
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:10:23 +0000 (21:10 +0000)]
Start utilizing the MediaContainer class in media providers.
svn path=/trunk/; revision=264
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:10:14 +0000 (21:10 +0000)]
Add MediaObject and MediaContainer to vapi file and build.
svn path=/trunk/; revision=263
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:10:07 +0000 (21:10 +0000)]
Introduce a class for media containers.
svn path=/trunk/; revision=262
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:09:59 +0000 (21:09 +0000)]
Introduce a new abstract class for media objects.
It will be the responsibility of derived classes to implement serializing to
DIDLLiteWriter.
svn path=/trunk/; revision=261
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:09:52 +0000 (21:09 +0000)]
Add the root_id prefix to container's id at object creation time.
svn path=/trunk/; revision=260
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:09:44 +0000 (21:09 +0000)]
Keep the parent_id of the container in the Tracker.Container class.
svn path=/trunk/; revision=259
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:09:36 +0000 (21:09 +0000)]
Remove MediaProvider.get_root_children_count().
Remove MediaProvider.get_root_children_count() and allow each provider to
add metadata of it's root container to DIDL instead.
svn path=/trunk/; revision=258
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:09:27 +0000 (21:09 +0000)]
Rename MediaManger's get_root_container_metadata() to add_root_container_metadata().
svn path=/trunk/; revision=257
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:09:20 +0000 (21:09 +0000)]
Put the code and message from exception caught on the action error.
svn path=/trunk/; revision=256
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:09:13 +0000 (21:09 +0000)]
Assign a specific code (701) to "No such object" error.
svn path=/trunk/; revision=255
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:09:04 +0000 (21:09 +0000)]
Rename MediaManager's browse_root_container() to add_root_children().
svn path=/trunk/; revision=254
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:08:56 +0000 (21:08 +0000)]
Rename MediaProvider's browse() to add_children_metadata().
svn path=/trunk/; revision=253
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:08:46 +0000 (21:08 +0000)]
Rename MediaProvider's get_metadata() to add_metadata().
svn path=/trunk/; revision=252
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:08:37 +0000 (21:08 +0000)]
MediaProviders now get a DIDLiteWriter to add metadata to and no longer return didl strings.
svn path=/trunk/; revision=251
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:08:26 +0000 (21:08 +0000)]
Remove an unneeded try&catch block.
svn path=/trunk/; revision=250
Zeeshan Ali (Khattak) [Fri, 29 Aug 2008 21:08:20 +0000 (21:08 +0000)]
MediaProvider class now requires gupnp-av package.
svn path=/trunk/; revision=249