Skip to content
Commits on Source (9)
*~
*.o
*.lo
*.la
*.a
*.plugin
.exrc
*.orig
*.pc
.*.swp
.swp
.deps
.libs
stamp-*
*.stamp
*.service
*.gmo
*.bak
*.BACKUP.*
*.LOCAL.*
*.BASE.*
*.REMOTE.*
*.gir
*.typelib
core
*.log
po/rygel.pot
.version
aclocal.m4
autom4te.cache
build-aux/compile
build-aux/config.guess
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/ltmain.sh
build-aux/missing
build-aux/mkinstalldirs
build-aux/test-driver
config.h
config.h.in
config.log
config.status
configure
data/org.gnome.Rygel.service
data/rygel-preferences.desktop
data/rygel-preferences.desktop.in
data/rygel.conf
data/rygel.desktop
data/rygel.desktop.in
data/xml/AVTransport2.xml
data/xml/BasicManagement2.xml
data/xml/ConnectionManager.xml
data/xml/ContentDirectory.xml
data/xml/ContentDirectory-NoTrack.xml
data/xml/EnergyManagement.xml
data/xml/MediaRenderer2.xml
data/xml/MediaRenderer2.xml.in
data/xml/MediaServer3.xml
data/xml/MediaServer3.xml.in
data/xml/RemoteUIServerService.xml
data/xml/RenderingControl2.xml
data/xml/RuihServer2.xml
data/xml/RuihServer2.xml.in
data/xml/UIList.xml
data/xml/X_MS_MediaReceiverRegistrar1.xml
libtool
m4/libtool.m4
m4/lt~obsolete.m4
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
Makefile.in
Makefile
po/Makefile.in.in
po/POTFILES
rygel-1.0.pc
src/rygel/rygel
src/rygel/rygel-2.6.vapi
src/rygel/rygel-core.h
src/librygel-core/rygel-core.h
src/librygel-core/rygel-core-2.6.vapi
src/librygel-server/rygel-server.h
src/librygel-server/rygel-server-2.6.vapi
src/librygel-renderer/rygel-renderer.h
src/librygel-renderer/rygel-renderer-2.6.vapi
src/librygel-renderer-gst/rygel-renderer-gst.h
src/librygel-renderer-gst/rygel-renderer-gst-2.6.vapi
src/librygel-ruih/rygel-ruih-2.0.vapi
src/librygel-ruih/rygel-ruih.h
src/media-engines/gstreamer/rygel-media-engine-gst.h
src/media-engines/gstreamer/rygel-media-engine-gst.vapi
!src/plugins/media-export/rygel-media-export-collate.c
src/ui/rygel-preferences
tests/rygel-http-byte-seek-test
tests/rygel-http-get-test
tests/rygel-http-item-uri-test
tests/rygel-http-time-seek-test
tests/rygel-http-gst-response-test
tests/rygel-seekable-response-test
tests/rygel-http-post-test
tests/rygel-album-art-spec-test
tests/rygel-http-seekable-response-test
tests/rygel-http-response-test
tests/rygel-object-creator-test
tests/rygel-regression
tests/rygel-searchable-container-test
tests/rygel-playbin-renderer-test
tests/rygel-user-config-test
tests/rygel-environment-test
tests/rygel-media-engine-test
tests/plugins/media-export/regression
doc/rygel.1
doc/rygel.html
doc/rygel.conf.5
doc/rygel.conf.html
doc/reference/*/gtkdoc/*.txt
doc/reference/*/gtkdoc/html.stamp
doc/reference/*/gtkdoc/sgml.stamp
doc/reference/*/gtkdoc/ccomments
doc/reference/*/gtkdoc/xml
doc/reference/*/gtkdoc/cscan
doc/reference/*/gtkdoc/*.args
doc/reference/*/gtkdoc/*.c
doc/reference/*/gtkdoc/*.interfaces
doc/reference/*/gtkdoc/*.hierarchy
doc/reference/*/gtkdoc/*.signals
doc/reference/*/gtkdoc/*.types
doc/reference/*/gtkdoc/*.prerequisites
doc/reference/*/gtkdoc/html/
doc/reference/*/valadoc/
doc/**/*-gen
examples/fullscreen-renderer
examples/standalone-renderer-gst
examples/standalone-server
examples/standalone-ruih
src/plugins/media-export/rygel-media-export-internal.h
src/plugins/media-export/rygel-media-export.h
src/plugins/media-export/rygel-media-export.vapi
tests/**/*.trs
INSTALL
0.40.4 (stable)
===============
- Do not install UI file if preferences are not built
Renderer:
- Fix critical if mime_type is missing
Tracker3:
- Do not exit if service is missing
MediaExport:
- Fix running without media indexing
Bugs fixed in this release:
- https://gitlab.gnome.org/GNOME/rygel/issues/160
- https://gitlab.gnome.org/GNOME/rygel/issues/196
- https://gitlab.gnome.org/GNOME/rygel/issues/208
All contributors to this release:
- Jens Georg <mail@jensge.org>
- Pawan Chitrakar <chautari@gmail.com>
- Aleksandr Melman <Alexmelman88@gmail.com>
Added/updated translations:
- ne.po, courtesy of Pawan Chitrakar
- ru.po, courtesy of Aleksandr Melman
0.40.3
======
......
......@@ -9,7 +9,9 @@ install_data(join_paths('icons', '48x48', 'rygel.png'), install_dir : join_paths
install_data(join_paths('icons', 'scalable', 'rygel.svg'), install_dir : join_paths(rygel_icondir, 'scalable', 'apps'))
install_data(join_paths('icons', 'scalable', 'rygel-full.svg'), install_dir : join_paths(rygel_icondir, 'scalable', 'apps'))
install_data('rygel-preferences.ui', install_dir : rygel_datadir)
if (gtk.found())
install_data('rygel-preferences.ui', install_dir : rygel_datadir)
endif
data_conf = configuration_data()
data_conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir')))
......@@ -60,7 +62,7 @@ i18n.merge_file(input: rygel_desktop_preferences_in,
output: 'rygel-preferences.desktop',
po_dir : join_paths('..','po'),
type: 'desktop',
install : true,
install : gtk.found(),
install_dir: join_paths(get_option('datadir'), 'applications'))
subdir('presets')
......
project('rygel', 'vala', 'c', version : '0.40.3', meson_version : '>= 0.55.0')
project('rygel', 'vala', 'c', version : '0.40.4', meson_version : '>= 0.55.0')
vala = meson.get_compiler('vala')
# Check for the required vala version
......
This diff is collapsed.
This diff is collapsed.
......@@ -126,7 +126,8 @@ internal class Rygel.DefaultPlayerController : Rygel.PlayerController, Object {
}
/* Pause is valid for images only in playlist */
return (!this.player.mime_type.has_prefix ("image/") ||
return (!(this.player.mime_type != null &&
this.player.mime_type.has_prefix ("image/")) ||
this.playlist != null);
}
}
......@@ -139,8 +140,9 @@ internal class Rygel.DefaultPlayerController : Rygel.PlayerController, Object {
case "TRANSITIONING":
actions = "Stop";
/* Pause is valid for images only in playlist */
if (!this.player.mime_type.has_prefix ("image/") ||
this.playlist != null) {
if (!(this.player.mime_type != null &&
this.player.mime_type.has_prefix ("image/")) ||
this.playlist != null) {
actions += ",Pause";
}
break;
......
......@@ -177,7 +177,7 @@ int main (string[] args) {
registry.remove_feature (feature);
}
message ("Started with descriptors %d (in) %d (out)", in_fd, out_fd);
message ("Started with descriptors %d (in) %d (out), extracting meta-data: %s", in_fd, out_fd, metadata.to_string ());
input_stream = new DataInputStream (new UnixInputStream (in_fd, true));
output_stream = new UnixOutputStream (out_fd, true);
......
......@@ -117,6 +117,20 @@ public class Rygel.MediaExport.Extractor : Object {
var content_type = ContentType.get_mime_type
(file_info.get_content_type ());
if (!extract_metadata) {
if (content_type.has_prefix ("video/")) {
this.serialized_info.insert (Serializer.UPNP_CLASS, "s", UPNP_CLASS_VIDEO);
} else if (content_type.has_prefix ("image/")) {
this.serialized_info.insert (Serializer.UPNP_CLASS, "s", UPNP_CLASS_PHOTO);
} else if (content_type.has_prefix ("audio/") || content_type == "application/ogg") {
this.serialized_info.insert (Serializer.UPNP_CLASS, "s", UPNP_CLASS_MUSIC);
} else { // application/xml or text/xml
// Do nothing. Should at least try to parse a DIDL_S playlist here?
}
}
this.serialized_info.insert (Serializer.MIME_TYPE, "s", content_type);
this.serialized_info.insert (Serializer.SIZE, "t", file_info.get_size ());
var id = Checksum.compute_for_string (ChecksumType.MD5,
......
......@@ -138,9 +138,9 @@ public class Rygel.MediaExport.MetadataExtractor: GLib.Object {
this.error_uri = null;
if (this.extract_metadata) {
MX_EXTRACT_ARGV[4] = "--extract-metadata";
MX_EXTRACT_ARGV[3] = "--extract-metadata";
} else {
MX_EXTRACT_ARGV[4] = null;
MX_EXTRACT_ARGV[3] = null;
}
var subprocess = launcher.spawnv (MX_EXTRACT_ARGV);
......
......@@ -40,7 +40,7 @@ public void module_init (PluginLoader loader) {
public class Rygel.Tracker.PluginFactory {
PluginLoader loader;
public PluginFactory (PluginLoader loader) throws IOError, DBusError {
public PluginFactory (PluginLoader loader) throws Error {
this.loader = loader;
this.loader.add_plugin (new Tracker.Plugin ());
......
......@@ -28,7 +28,7 @@ public class Rygel.Tracker.Plugin : Rygel.MediaServerPlugin {
private static RootContainer root;
public Plugin () {
public Plugin () throws Error {
if (root == null) {
// translators: @REALNAME@ is substituted for user's real name and it doesn't need translation.
root = new RootContainer (_("@REALNAME@’s media"));
......
......@@ -34,13 +34,9 @@ public class Rygel.Tracker.RootContainer : Rygel.SimpleContainer {
public static Sparql.Connection connection;
public RootContainer (string title) {
public RootContainer (string title) throws Error {
if (RootContainer.connection == null) {
try {
RootContainer.connection = Sparql.Connection.bus_new (TRACKER_SERVICE, null);
} catch (Error err) {
error ("Failed to connect to tracker: %s", err.message);
}
RootContainer.connection = Sparql.Connection.bus_new (TRACKER_SERVICE, null);
}
base.root (title);
......