Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 21:53:29 +0000 (21:53 +0000)]
DVB plugin uses gstreamer-0.10 package.
svn path=/trunk/; revision=470
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 21:53:25 +0000 (21:53 +0000)]
Prepare NEWS file for next (0.2) release.
svn path=/trunk/; revision=469
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 21:53:21 +0000 (21:53 +0000)]
Revert "Use the new Tracker interface."
This reverts commit
3fc46a4e4802992b18e30af3a7b5b4e4c46bc953.
svn path=/trunk/; revision=468
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 21:53:16 +0000 (21:53 +0000)]
Version bump.
svn path=/trunk/; revision=467
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 15:56:46 +0000 (15:56 +0000)]
Refer to Rygel by name in License headers.
This is as per the GNU guidelines.
svn path=/trunk/; revision=466
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 15:56:41 +0000 (15:56 +0000)]
Refer to LGPL by it's (not so) new name.
svn path=/trunk/; revision=465
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 15:56:35 +0000 (15:56 +0000)]
Relicense under LGPL version 2.
svn path=/trunk/; revision=464
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 15:56:30 +0000 (15:56 +0000)]
Require latest vala, gupnp and gupnp-av.
svn path=/trunk/; revision=463
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 15:56:26 +0000 (15:56 +0000)]
configure options for disabling dvb and tracker plugins.
svn path=/trunk/; revision=462
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 15:56:22 +0000 (15:56 +0000)]
Don't use underscores in configure options.
svn path=/trunk/; revision=461
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 15:56:10 +0000 (15:56 +0000)]
Correctly initialize the responses array list.
svn path=/trunk/; revision=460
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 15:56:06 +0000 (15:56 +0000)]
Rename StreamingResponse to LiveResponse.
svn path=/trunk/; revision=459
Zeeshan Ali (Khattak) [Mon, 19 Jan 2009 15:56:02 +0000 (15:56 +0000)]
Rename InteractiveResponse to SeekableResponse.
This is because we'll be using SeekableResponse for streaming and background
transfer as well in the very near future.
svn path=/trunk/; revision=458
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:28:23 +0000 (19:28 +0000)]
Remove MetadataExtractor class.
We'll use libowl-av's TagReader.
svn path=/trunk/; revision=457
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:28:18 +0000 (19:28 +0000)]
Use Gee.ArrayList instead of GLib.List to keep DIDLLiteResource instances.
svn path=/trunk/; revision=456
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:28:13 +0000 (19:28 +0000)]
Close the InputStream asynchronously.
svn path=/trunk/; revision=455
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:28:09 +0000 (19:28 +0000)]
Explicitly close the input stream.
svn path=/trunk/; revision=454
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:28:04 +0000 (19:28 +0000)]
Merge branch 'leak-tests' into streamer-renaming
svn path=/trunk/; revision=453
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:58 +0000 (19:27 +0000)]
Remove blank lines.
svn path=/trunk/; revision=452
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:54 +0000 (19:27 +0000)]
HTTPResponse.end takes HTTP status code to put on the message.
This is to allow the users/subclasses to be always able to end the stream
using the same single method.
svn path=/trunk/; revision=451
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:49 +0000 (19:27 +0000)]
InteractiveResponse reports partial replies.
svn path=/trunk/; revision=450
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:44 +0000 (19:27 +0000)]
More extensive use of (async) GIO.
svn path=/trunk/; revision=449
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:40 +0000 (19:27 +0000)]
Seek class should reside in the same place as HTTPResponse.
svn path=/trunk/; revision=448
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:35 +0000 (19:27 +0000)]
Put Interactive response handling into a separate class.
svn path=/trunk/; revision=447
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:31 +0000 (19:27 +0000)]
Small beautification change.
svn path=/trunk/; revision=446
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:26 +0000 (19:27 +0000)]
Rename 'eos' signal of HTTPResponse to 'ended'.
svn path=/trunk/; revision=445
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:22 +0000 (19:27 +0000)]
Rename GstStream to StreamingResponse.
svn path=/trunk/; revision=444
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:17 +0000 (19:27 +0000)]
Rename Steam to HTTPResponse.
svn path=/trunk/; revision=443
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:27:11 +0000 (19:27 +0000)]
Rename Streamer to HTTPServer.
svn path=/trunk/; revision=442
Zeeshan Ali (Khattak) [Sun, 18 Jan 2009 19:26:59 +0000 (19:26 +0000)]
GstStream decides about chunking of message.
svn path=/trunk/; revision=441
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:35 +0000 (14:33 +0000)]
Handle item as interactive if it's size is known.
svn path=/trunk/; revision=440
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:32 +0000 (14:33 +0000)]
Don't handle seeking when streaming.
Turns out that seeking wasn't as simple as sending a seek event
to the pipeline.
svn path=/trunk/; revision=439
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:29 +0000 (14:33 +0000)]
Flush the AsyncQueue when the stream ends.
svn path=/trunk/; revision=438
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:25 +0000 (14:33 +0000)]
Use try_pop() instead of blocking pop() on AsyncQueue.
svn path=/trunk/; revision=437
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:22 +0000 (14:33 +0000)]
Only seek on upstream state change to PAUSED.
svn path=/trunk/; revision=436
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:18 +0000 (14:33 +0000)]
Add an auto-updated length property to Seek.
Seek now derives from GLib.Object.
svn path=/trunk/; revision=435
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:14 +0000 (14:33 +0000)]
offset in a file should be less than length of the file.
svn path=/trunk/; revision=434
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:10 +0000 (14:33 +0000)]
Use pointers for dealing with raw data instead of strings.
svn path=/trunk/; revision=433
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:06 +0000 (14:33 +0000)]
No need to use GUPnP namespace everywhere.
svn path=/trunk/; revision=432
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:33:03 +0000 (14:33 +0000)]
Claim DLNA BG transfer mode for known-sized items.
svn path=/trunk/; revision=431
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:59 +0000 (14:32 +0000)]
Check only prefix of MediaItem.upnp_class.
svn path=/trunk/; revision=430
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:56 +0000 (14:32 +0000)]
Always include Content-Range if size of item is known.
DLNA requirement 7.4.35.7.
svn path=/trunk/; revision=429
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:52 +0000 (14:32 +0000)]
Use a private class to pass around seek parameters.
Instead of passing around seek parameters to all functions, just create a
small class that keeps the parameters and use that.
svn path=/trunk/; revision=428
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:48 +0000 (14:32 +0000)]
GstStream overrides end() rather than providing stop().
svn path=/trunk/; revision=427
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:44 +0000 (14:32 +0000)]
Better error handling.
Stream should end itself if pads/elements don't get linked.
svn path=/trunk/; revision=426
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:41 +0000 (14:32 +0000)]
GstStream now inherits from Stream.
As a consequence, Streamer just uses GstStream only.
svn path=/trunk/; revision=425
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:36 +0000 (14:32 +0000)]
Remove unused Stream.accepted() method.
svn path=/trunk/; revision=424
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:33 +0000 (14:32 +0000)]
Go to PAUSED state first and then PLAYING.
This is to ensure that seek event is sent to pipeline before it goes to
PLAYING state. This could be the solution to mp3 not working on PS3.
svn path=/trunk/; revision=423
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:29 +0000 (14:32 +0000)]
GstStream provides means to start and stop the stream.
svn path=/trunk/; revision=422
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:25 +0000 (14:32 +0000)]
Range header doesn't necessarily imply partial content request.
svn path=/trunk/; revision=421
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:21 +0000 (14:32 +0000)]
tcp_timeout prop of rtspsrc is 64-bit.
Fixes a crash.
svn path=/trunk/; revision=420
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:17 +0000 (14:32 +0000)]
Range requests are valid when size > 0.
svn path=/trunk/; revision=419
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:12 +0000 (14:32 +0000)]
New low-level Streamer API.
Instead of emitting a signal for availability of a new stream, signal for
need of a gst source element if no URI is provided by the requested item.
This only works for streaming media.
svn path=/trunk/; revision=418
Zeeshan Ali (Khattak) [Tue, 13 Jan 2009 14:32:08 +0000 (14:32 +0000)]
Allow items to not provide URIs.
svn path=/trunk/; revision=417
Zeeshan Ali (Khattak) [Wed, 7 Jan 2009 12:56:12 +0000 (12:56 +0000)]
No need for a separate 'live' boolean in MediaItem.
Check if size of resource is known, instead.
svn path=/trunk/; revision=416
Zeeshan Ali (Khattak) [Wed, 7 Jan 2009 12:56:08 +0000 (12:56 +0000)]
Implement partial download (Range header).
Seems to work pretty well against PS3 but I did observe stream hanging
once.
svn path=/trunk/; revision=415
Zeeshan Ali (Khattak) [Wed, 7 Jan 2009 12:56:04 +0000 (12:56 +0000)]
Stream needs to know if it's accepted for a partial download.
svn path=/trunk/; revision=414
Zeeshan Ali (Khattak) [Wed, 7 Jan 2009 12:56:00 +0000 (12:56 +0000)]
Use the name of the device group as it's title.
svn path=/trunk/; revision=413
Zeeshan Ali (Khattak) [Wed, 7 Jan 2009 12:55:55 +0000 (12:55 +0000)]
Mark image items as 'interactive' in the DIDL.
svn path=/trunk/; revision=412
Zeeshan Ali (Khattak) [Wed, 7 Jan 2009 12:55:50 +0000 (12:55 +0000)]
Declare Test and DVB items, live.
svn path=/trunk/; revision=411
Zeeshan Ali (Khattak) [Wed, 7 Jan 2009 12:55:44 +0000 (12:55 +0000)]
Only claim Range (seek) operation for non-live items.
svn path=/trunk/; revision=410
Zeeshan Ali (Khattak) [Wed, 7 Jan 2009 12:55:37 +0000 (12:55 +0000)]
Don't claim to support DLNA's bg transfer mode and connection stalling.
svn path=/trunk/; revision=409
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