Giter VIP home page Giter VIP logo

rygel's Introduction

What is Rygel?
=============

Rygel is a home media solution that allows you to easily share audio, video and
pictures, and control of media player on your home network. In technical terms
it is both a UPnP AV MediaServer and MediaRenderer implemented through a plug-in
mechanism. Interoperability with other devices in the market is achieved by
conformance to very strict requirements of DLNA and on the fly conversion of
media to format that client devices are capable of handling.

Important facts and features
============================

  * Specifically designed for GNOME (Mobile) and is therefore planned to be one
    of the key new features of GNOME 3.0 and Maemo platform in the Harmattan
    release.
  * Based on GUPnP.
  * Written entirely in Vala language.
  * APIs to ease the implementation of AV devices.
  * Export of on-disk media:
    * Tracker plugin.
    * MediaExport plugin: Recursively exports folders and files specified in
                          the user configuration. This plugin supports all
                          types of URIs that gio/gvfs and gstreamer can handle.
  * Export of online media from 2nd German TV station.
  * Export of media hierarchies provided by external applications through
    implementation of D-Bus MediaServer spec. Applications that utilize
    this feature are:
    * DVB Daemon
    * Rhythmbox
  * Export of GStreamer pipelines as media items on the network, specified
    through gst-launch syntax in the user configuration.
  * Audio and Video Transcoding: source format could be anything GStreamer's
    decodebin2 can handle but output formats are currently limited to: mp3, PCM
    and MPEG TS. Fortunately the transcoding framework is flexible enough to
    easily add more transcoding targets.
  * Standalone MediaRenderer plugin based on GStreamer playbin2 element.
  * Export of media players that implement MPRIS2 D-Bus interface, as
    MediaRenderer devices. Known implementing applications are:
    * Rhythmbox
    * VLC

Requirements
============

  * Build-time:
    * Core:
      * gupnp
      * gupnp-av
      * dbus-glib
      * gstreamer
      * gio (part of glib source package)
      * libgee
      * libuuid
      * libsoup
      * vala (not if building from release tarballs)
    * Preferences UI:
      * gtk+
    * MediaExport:
      * sqlite3
  * Run-time:
    * Definitely needed:
      * gst-plugins-base
      * shared-mime-info
    * Might be needed (depending on your usage and media collection):
      * gst-plugins-good
      * gst-ffmpeg
      * gst-plugins-bad
      * gst-plugins-ugly
      
To build without gstreamer, use:
  --with-media-engine=simple
This will also disable any plugins that use gstreamer.

References
==========

  * http://www.dlna.org
  * http://www.upnp.org
  * http://maemo.org/intro/platform
  * http://wiki.maemo.org/Task:Maemo_roadmap/Harmattan
  * http://www.gupnp.org
  * http://www.vala-project.org
  * http://www.wikipedia.org/wiki/Media_server
  * http://www.upnp.org/specs/av/UPnP-av-MediaServer-v2-Device-20060531.pdf
  * http://www.gnome.org/projects/tracker
  * http://live.gnome.org/DVBDaemon
  * http://www.zdf.de
  * http://live.gnome.org/Rygel/MediaServer2Spec
  * http://www.mpris.org/2.0/spec/

rygel's People

Contributors

alshopov avatar andhe avatar andrejz avatar aurisc4 avatar claudep avatar dmustieles avatar ford-prefect avatar frandieguez avatar gheyret avatar jhenstridge avatar kazken3 avatar kelemeng avatar knight-2000 avatar krnowak avatar luisbg avatar marv-cz avatar milocasagrande avatar mirosnik1 avatar murraycu avatar ookull avatar pbalasubramanian1 avatar pesder avatar phako avatar piotrdrag avatar suborbitalpigeon avatar sunilmohanadapa avatar yarons avatar yeager avatar ymyasoedov avatar zeenix avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

cguiraud

rygel's Issues

clean BasicManagement error handling

Filing a few issues to remind myself...

BasicManagementTestError is now used for two different purposes: it should be two different errors.

Alternatively we could maybe get rid of the exception in init: I think the check for hostname is not very useful since there's lots of invalid hostname values we don't check: this could be handled just like all the other error cases should be: by creating a result with an "Error_something" value

TODO: add test history limit

currently we do not limit the number of test that we keep in history, we need to add a limit per per test types.

ActiveTestIDs are not updated correctly

Calling "Cancel" won't remove the test from active_tests_map.

Simplest solution is to get rid of active_tests_map: I think it's needed in only a few places and we can just traverse all the tests there. Let's optimize if we need to.

TODO: busybox ping options compatibility

we have to find a solution for the busybox ping which actually do not support some of the options used in the current implementation:
W, i and Q

one idea was to skip adding these option in the case where the input value are asking for default. For the W option we don't use a an input value, we use a implementation default value.

TODO: add tests

nslookup can probably only be tested for error cases, but e.g. ping could be tested with hostname="localhost" as well as some error cases.

Traceroute assumption about last hop ip may be incorrect

Traceroute currently defaults to ERROR_MAX_HOP_COUNT_EXCEEDED return value until a hop output line includes the destination ip, at which point it changes to SUCCESS. This is because it seems otherwise impossible to detect a case where traceroute succeeds with a hop count that is equal to given max hop count.

I see this from busybox traceroute:

traceroute to google.fi (2607:f8b0:400a:801::1017), 30 hops max, 24 byte packets
1 2001:998:22::1 0.941 ms 0.828 ms 0.881 ms
... [cut]
17 2607:f8b0:8000:7::a 184.334 ms 184.386 ms 184.785 ms

The traceroute is apparently successful but last hop does not match the destination?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.