Zeeshan Ali (Khattak) [Fri, 2 Jan 2009 13:50:39 +0000 (13:50 +0000)]
Add a basic release plan.
svn path=/trunk/; revision=408
Zeeshan Ali (Khattak) [Tue, 30 Dec 2008 16:04:37 +0000 (16:04 +0000)]
Don't put iconList in description if there isn't any icon.
Providing an empty iconList was causing problems with gupnp-*-cp and PS3.
PS3 was just ignoring the whole Media Server instance and gupnp-*-cp were
segfaulting (that bug has long been fixed in gupnp though).
svn path=/trunk/; revision=407
Zeeshan Ali (Khattak) [Mon, 29 Dec 2008 16:10:03 +0000 (16:10 +0000)]
Choose the highest ranking RTP depayloader.
svn path=/trunk/; revision=406
Zeeshan Ali (Khattak) [Mon, 29 Dec 2008 16:09:59 +0000 (16:09 +0000)]
Ask for compatible pad rather than by name.
svn path=/trunk/; revision=405
Zeeshan Ali (Khattak) [Mon, 29 Dec 2008 16:09:56 +0000 (16:09 +0000)]
Refactor get_rtp_depayloader().
svn path=/trunk/; revision=404
Zeeshan Ali (Khattak) [Mon, 29 Dec 2008 16:09:52 +0000 (16:09 +0000)]
Autoplug an RTP depayloader if needed.
This fixes the artifacts/hickups in case of DVB streams on the client-side.
svn path=/trunk/; revision=403
Zeeshan Ali (Khattak) [Sun, 28 Dec 2008 16:48:10 +0000 (16:48 +0000)]
Set the "tcp-timeout" to 1 min for rtspsrc.
This is to make sure we wait for DVBDaemon to start the stream.
svn path=/trunk/; revision=402
Zeeshan Ali (Khattak) [Sun, 28 Dec 2008 16:48:07 +0000 (16:48 +0000)]
Handle dynamic pads.
If source element doesn't have any pads, wait for a pad to be added to it
before linking it to sink.
svn path=/trunk/; revision=401
Zeeshan Ali (Khattak) [Sun, 28 Dec 2008 16:48:03 +0000 (16:48 +0000)]
throw an error if elements fail to link.
svn path=/trunk/; revision=400
Zeeshan Ali (Khattak) [Sun, 28 Dec 2008 16:48:00 +0000 (16:48 +0000)]
GIO api update.
GLib.File.load_contents() doesn't return unowned string anymore.
svn path=/trunk/; revision=399
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:02:21 +0000 (12:02 +0000)]
Streamer properly handles interactive contents.
Currently just images.
svn path=/trunk/; revision=398
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:02:16 +0000 (12:02 +0000)]
Rename Streamer.handle_item_stream to handle_streaming_item.
svn path=/trunk/; revision=397
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:02:08 +0000 (12:02 +0000)]
Refactor Streamer.handle_item_request().
svn path=/trunk/; revision=396
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:02:04 +0000 (12:02 +0000)]
Send a 404 if Streamer fails to create a stream from item.
Streamer.handle_item() sets the appropriate status code on HTTP message
if it fails to handle it.
svn path=/trunk/; revision=395
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:02:00 +0000 (12:02 +0000)]
Entertain Streamer.item_requested in DVBChannelGroup.
svn path=/trunk/; revision=394
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:55 +0000 (12:01 +0000)]
DVBChannelGroup.find_channel() doesn't need didl_writer arg.
svn path=/trunk/; revision=393
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:50 +0000 (12:01 +0000)]
Streamer only entertains 'HEAD' and 'GET' requests.
svn path=/trunk/; revision=392
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:45 +0000 (12:01 +0000)]
Streamer only adds headers if values provided by MediaItem.
svn path=/trunk/; revision=391
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:40 +0000 (12:01 +0000)]
DVBChannel constructor should chain-up to it's parent.
svn path=/trunk/; revision=390
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:35 +0000 (12:01 +0000)]
Add a prefix to Streamer's hosted path.
This is to make sure it doesn't conflict with any other paths hosted by the
HTTP server.
svn path=/trunk/; revision=389
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:31 +0000 (12:01 +0000)]
TrackerItem* should throw the error rather than acting on it.
svn path=/trunk/; revision=388
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:26 +0000 (12:01 +0000)]
Remove leaky hack to assign unowned strings to weak fields.
The fields are no longer 'weak' so unowned strings can simply be assigned
to them and vala will take care of them for us.
svn path=/trunk/; revision=387
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:21 +0000 (12:01 +0000)]
Mimetype is "video/mpeg" for radio channels as well.
This is since they are also contained in an mpeg transport stream. The
UPnP type for items however remains different so CPs and MRs can still
differentiate between them.
svn path=/trunk/; revision=386
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:11 +0000 (12:01 +0000)]
Correct(swap) the logic of differenciating audio from video.
svn path=/trunk/; revision=385
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:06 +0000 (12:01 +0000)]
Correct the leaky hack to initialize DIDLLiteResource fields.
svn path=/trunk/; revision=384
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:01:01 +0000 (12:01 +0000)]
Initialize the important fields of DVBChannel.
svn path=/trunk/; revision=383
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:57 +0000 (12:00 +0000)]
Catch the error from DVBChannel creation method.
svn path=/trunk/; revision=382
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:53 +0000 (12:00 +0000)]
Refactor DVBChannelGroup construction method.
svn path=/trunk/; revision=381
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:48 +0000 (12:00 +0000)]
Let DVBContentDir create the ChannelList proxy.
svn path=/trunk/; revision=380
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:44 +0000 (12:00 +0000)]
Update the child_count once it's known.
svn path=/trunk/; revision=379
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:40 +0000 (12:00 +0000)]
Don't throw an error if there are no channels in group.
svn path=/trunk/; revision=378
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:35 +0000 (12:00 +0000)]
Add DVB plugin.
Right now it only builds, haven't tested because of broken python jhbuild.
svn path=/trunk/; revision=377
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:29 +0000 (12:00 +0000)]
Streamer only provide headers on "HEAD" requests.
svn path=/trunk/; revision=376
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:25 +0000 (12:00 +0000)]
Streamer puts essential headers into streams.
Streamer puts "Content-Type" and "Content-Length" headers into streams.
svn path=/trunk/; revision=375
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:21 +0000 (12:00 +0000)]
MediaTracker provides the item when requested by Streamer.
svn path=/trunk/; revision=374
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:11 +0000 (12:00 +0000)]
Initialize the local variable before using.
svn path=/trunk/; revision=373
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 12:00:06 +0000 (12:00 +0000)]
MediaTracker keeps a ref to Streamer instance.
svn path=/trunk/; revision=372
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:58 +0000 (11:59 +0000)]
Add API to get the MediaItem, given it's ID.
svn path=/trunk/; revision=371
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:53 +0000 (11:59 +0000)]
Use ID of MediaItem instead of URI in the proxy URIs.
On getting an HTTP request for an item, Streamer will emit a signal to get
the MediaItem instance requested.
svn path=/trunk/; revision=370
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:47 +0000 (11:59 +0000)]
Define and use enums for metadata array indices.
svn path=/trunk/; revision=369
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:42 +0000 (11:59 +0000)]
Include file size of the item in the DIDL.
svn path=/trunk/; revision=368
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:37 +0000 (11:59 +0000)]
No need to keep the keys in the TrackerItem class.
svn path=/trunk/; revision=367
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:31 +0000 (11:59 +0000)]
MediaItem keeps a res struct instead of res fields itself.
svn path=/trunk/; revision=366
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:26 +0000 (11:59 +0000)]
Add the original res at the end of the DIDL.
For compatibility with crappy MediaRenderers just takes the first res
from the DIDL rather than the one they can handle.
svn path=/trunk/; revision=365
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:15 +0000 (11:59 +0000)]
Tracker items fetch metadata at contruction time.
svn path=/trunk/; revision=364
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:10 +0000 (11:59 +0000)]
Handle important messages on the pipeline bus.
svn path=/trunk/; revision=363
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:59:05 +0000 (11:59 +0000)]
MediaItem adds transcoded resources to the DIDL.
ATM it's just the HTTP URI that the new Streamer API creates for us.
svn path=/trunk/; revision=362
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:58:59 +0000 (11:58 +0000)]
MediaItem now just use Streamer instead of GUPnP.Context.
svn path=/trunk/; revision=361
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:58:53 +0000 (11:58 +0000)]
Add gstreamer CFLAGS and LIBS to tracker plugin build.
svn path=/trunk/; revision=360
Zeeshan Ali (Khattak) [Thu, 25 Dec 2008 11:58:46 +0000 (11:58 +0000)]
Support streaming from URIs other than HTTP.
This could be any URI that gstreamer have a source element to handle it
through.
svn path=/trunk/; revision=359
Zeeshan Ali (Khattak) [Tue, 16 Dec 2008 14:31:38 +0000 (14:31 +0000)]
Allow URIs of protocols other than HTTP.
We don't assume the protocol to be HTTP anymore but guess it from URI.
svn path=/trunk/; revision=358
Zeeshan Ali (Khattak) [Tue, 16 Dec 2008 14:31:34 +0000 (14:31 +0000)]
Introduce an Error to serialize method.
svn path=/trunk/; revision=357
Zeeshan Ali (Khattak) [Tue, 16 Dec 2008 14:31:30 +0000 (14:31 +0000)]
Use mpeg2 video inside mpeg transport stream.
Use mpeg2 video inside mpeg transport stream rather than H.263 in AVI.
svn path=/trunk/; revision=356
Zeeshan Ali (Khattak) [Tue, 16 Dec 2008 14:31:26 +0000 (14:31 +0000)]
Tell libsoup to not accumulate the chunks.
Otherwise the memory usage keeps rising and rising.
svn path=/trunk/; revision=355
Zeeshan Ali (Khattak) [Tue, 16 Dec 2008 14:31:22 +0000 (14:31 +0000)]
Stream should only end if the abort signal is for it's message.
svn path=/trunk/; revision=354
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:23:04 +0000 (20:23 +0000)]
Test plugin only gets built/installed if enabled.
svn path=/trunk/; revision=353
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:23:00 +0000 (20:23 +0000)]
Use fakesink instead of appsink.
appsink is currently in gst-plugins-bad and no distro ships it.
svn path=/trunk/; revision=352
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:56 +0000 (20:22 +0000)]
Minor refactoring.
svn path=/trunk/; revision=351
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:46 +0000 (20:22 +0000)]
Don't send out prerolled buffers.
Apparently this was causing the problems of receiving side unable to
handle (recognise and decode) the incoming stream.
svn path=/trunk/; revision=350
Zeeshan Ali (Khattak) [Sun, 14 Dec 2008 20:22:41 +0000 (20:22 +0000)]
Use H263 enclosed in AVI container.
Use H263 enclosed in AVI container instead of theora in ogg.
svn path=/trunk/; revision=349
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