profile/ivi/rygel.git
14 years agocore,paybin: string props getter transfer ownership
Zeeshan Ali (Khattak) [Sat, 28 Aug 2010 00:48:55 +0000 (03:48 +0300)]
core,paybin: string props getter transfer ownership

Getters for string properties should transfer ownership.

14 years agoMerge remote branch 'phako/integration'
Zeeshan Ali (Khattak) [Sat, 28 Aug 2010 01:40:20 +0000 (04:40 +0300)]
Merge remote branch 'phako/integration'

14 years agobuild: Lower gtk+-2.0 requirement to 2.20.0
Zeeshan Ali (Khattak) [Sat, 28 Aug 2010 01:38:15 +0000 (04:38 +0300)]
build: Lower gtk+-2.0 requirement to 2.20.0

14 years agomedia-export: Support the "Genre" folder of XBox
Jens Georg [Fri, 27 Aug 2010 19:54:35 +0000 (22:54 +0300)]
media-export: Support the "Genre" folder of XBox

14 years agodata: Add m4v, m4a and png to scanned files
Jens Georg [Fri, 27 Aug 2010 16:18:03 +0000 (19:18 +0300)]
data: Add m4v, m4a and png to scanned files

14 years agocore: Don't claim to be clock source
Zeeshan Ali (Khattak) [Fri, 27 Aug 2010 12:35:33 +0000 (15:35 +0300)]
core: Don't claim to be clock source

Do not set the 'sp-flag' as we never really are the clock source for the
content, even in case of live/transcoded streams. This renders DLNA CTT
test case 7.3.41.1 N.A'ed.

14 years agomedia-export: Fix UPnP "exists" search
Jens Georg [Wed, 25 Aug 2010 18:15:45 +0000 (21:15 +0300)]
media-export: Fix UPnP "exists" search

14 years agomedia-export: Enable use of SQL functions
Jens Georg [Wed, 25 Aug 2010 17:08:15 +0000 (20:08 +0300)]
media-export: Enable use of SQL functions

Search translation was hard-coded to use operators

14 years agomedia-export: Add custom has_prefix function
Jens Georg [Wed, 25 Aug 2010 17:04:39 +0000 (20:04 +0300)]
media-export: Add custom has_prefix function

This function is used for a caseless derivedFrom search

14 years agocore,playbin: Time represented as int64
Zeeshan Ali (Khattak) [Thu, 26 Aug 2010 12:10:00 +0000 (15:10 +0300)]
core,playbin: Time represented as int64

Player interface now deals with all time values in nano-seconds as int64.
We should be simply using Gst.ClockTime but that is unfortunately not a
registered type so we can't use that as GObject property. :(

14 years agodata: Forgotten part of s/GstRenderer/Playbin/ change
Zeeshan Ali (Khattak) [Thu, 26 Aug 2010 12:13:42 +0000 (15:13 +0300)]
data: Forgotten part of s/GstRenderer/Playbin/ change

This was supposed to be included in commit e33fd41.

14 years agomedia-export: Fix bgo#627243
Jens Georg [Tue, 24 Aug 2010 13:59:12 +0000 (16:59 +0300)]
media-export: Fix bgo#627243

String operators during Search() should be case insensitive

14 years agomedia-export: count_children () left out container
Jens Georg [Tue, 24 Aug 2010 13:57:37 +0000 (16:57 +0300)]
media-export: count_children () left out container

14 years agotests: Don't go beyond 80 columns
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 16:28:32 +0000 (19:28 +0300)]
tests: Don't go beyond 80 columns

14 years agotests: Update test against latest MediaItem changes
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 16:23:46 +0000 (19:23 +0300)]
tests: Update test against latest MediaItem changes

14 years agocore: Support for search by album and artist
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 14:41:24 +0000 (17:41 +0300)]
core: Support for search by album and artist

14 years agocore: Remove redundant assignment/variable
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 14:40:27 +0000 (17:40 +0300)]
core: Remove redundant assignment/variable

14 years agocore: Drop now redundant custom DIDLLiteWriter class
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 13:42:26 +0000 (16:42 +0300)]
core: Drop now redundant custom DIDLLiteWriter class

14 years agocore: Serialization handled by MediaObject itself
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 13:23:06 +0000 (16:23 +0300)]
core: Serialization handled by MediaObject itself

Serialization of MediaObject is now completely handled by the MediaObject
itself.

14 years agocore: Don't compare apples and oranges
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 13:03:37 +0000 (16:03 +0300)]
core: Don't compare apples and oranges

Before comparing two items, first make sure they are of the same type.

14 years agocore,plugins: Proper, rich item hierarchy
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 12:06:41 +0000 (15:06 +0300)]
core,plugins: Proper, rich item hierarchy

* We have the following item hierarchy now:

  * VisualItem (interface, requires MediaItem)
  * MediaItem (abstract class)
     |
     |--> AudioItem
     |      |
     |      |--> MusicItem
     |      |--> VideoItem (implements VisualItem)
     |
     |--> ImageItem (implements VisualItem)
            |
            |--> PhotoItem

* Serialization of MediaItem is completely handled by MediaItem itself.

14 years agogst-launch: Micro coding-style fix
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 12:42:48 +0000 (15:42 +0300)]
gst-launch: Micro coding-style fix

14 years agogst-launch: Remove redundant 'using' statements
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 12:41:50 +0000 (15:41 +0300)]
gst-launch: Remove redundant 'using' statements

14 years agocore: HTTPServer.is_http_uri() -> need_proxy()
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 11:41:45 +0000 (14:41 +0300)]
core: HTTPServer.is_http_uri() -> need_proxy()

Replace HTTPServer.is_http_uri() with need_proxy() that does the opposite
and is public.

14 years agocore: DIDLLiteWriter.http_server now public
Zeeshan Ali (Khattak) [Wed, 25 Aug 2010 11:35:07 +0000 (14:35 +0300)]
core: DIDLLiteWriter.http_server now public

14 years agocore: Don't override error status
Zeeshan Ali (Khattak) [Tue, 24 Aug 2010 14:41:14 +0000 (17:41 +0300)]
core: Don't override error status

14 years agocore: List/report all transfers
Zeeshan Ali (Khattak) [Tue, 24 Aug 2010 14:32:06 +0000 (17:32 +0300)]
core: List/report all transfers

'TransferIDs' state variable should list IDs for all transfers we have,
even the ones that are complete.

14 years agocore,plugins: Drop MediaItem.add_uri().thumbnail
Zeeshan Ali (Khattak) [Sun, 22 Aug 2010 15:34:29 +0000 (18:34 +0300)]
core,plugins: Drop MediaItem.add_uri().thumbnail

MediaItem.add_uri() doesn't take optional thumbnail argument anymore. None
of the plugins were using this and it doesn't really matter if rygel can
find the thumbnail before plugins add their own thumbnail(s).

14 years agoUpdated Danish translation
Ask H. Larsen [Mon, 23 Aug 2010 21:07:51 +0000 (23:07 +0200)]
Updated Danish translation

14 years agoAdded da to list of languages
Kenneth Nielsen [Mon, 23 Aug 2010 21:07:50 +0000 (23:07 +0200)]
Added da to list of languages

14 years agoUpdate Czech translation by Marek Cernocky
Petr Kovar [Mon, 23 Aug 2010 20:28:35 +0000 (22:28 +0200)]
Update Czech translation by Marek Cernocky

14 years ago[doc] Add manpages for rygel and rygel.conf
Jens Georg [Wed, 18 Aug 2010 15:39:05 +0000 (18:39 +0300)]
[doc] Add manpages for rygel and rygel.conf

14 years agocore,tracker: Case-insensitive string comparisons
Zeeshan Ali (Khattak) [Sat, 21 Aug 2010 23:08:15 +0000 (02:08 +0300)]
core,tracker: Case-insensitive string comparisons

String comparisons must be case-insensitive in searches.

14 years agotracker: Escape the regex for SPARQL
Zeeshan Ali (Khattak) [Sat, 21 Aug 2010 23:05:53 +0000 (02:05 +0300)]
tracker: Escape the regex for SPARQL

14 years agoUpdated Traditional Chinese translation(Hong Kong and Taiwan)
Chao-Hsiung Liao [Sat, 21 Aug 2010 13:06:47 +0000 (21:06 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)

14 years agoUpdated French translation
Claude Paroz [Sat, 21 Aug 2010 12:47:21 +0000 (14:47 +0200)]
Updated French translation

14 years agocore: Minor coding-style fixes
Zeeshan Ali (Khattak) [Fri, 20 Aug 2010 19:53:21 +0000 (22:53 +0300)]
core: Minor coding-style fixes

14 years agocore: Pre-compile regex for substitute variables
Zeeshan Ali (Khattak) [Fri, 20 Aug 2010 19:40:01 +0000 (22:40 +0300)]
core: Pre-compile regex for substitute variables

Apparently these string comparisons were taking a hell lot of time and the
reason was that string.replace() compiles regex each time it needs to
replace a string.

14 years agocore: Add MediaItem.streamable()
Zeeshan Ali (Khattak) [Fri, 20 Aug 2010 19:36:37 +0000 (22:36 +0300)]
core: Add MediaItem.streamable()

Differential between items that are streamable and should be streamed.

14 years agogst-launch: Use - instead of _ in options
Jens Georg [Fri, 20 Aug 2010 18:58:57 +0000 (21:58 +0300)]
gst-launch: Use - instead of _ in options

14 years agotracker: Correct checks for limit and offset
Zeeshan Ali (Khattak) [Fri, 20 Aug 2010 16:14:23 +0000 (19:14 +0300)]
tracker: Correct checks for limit and offset

14 years agocore,tracker: Drop support for search by 'res'
Zeeshan Ali (Khattak) [Fri, 20 Aug 2010 16:10:25 +0000 (19:10 +0300)]
core,tracker: Drop support for search by 'res'

Drop support for search by 'res' and 'res@protocolInfo'. Since we didn't
handle proxy and transcoding resources this gave wrong impression to the
clients and was causing rygel to fail DLNA CTT test case 7.3.66.3,4.

14 years agol10n: Added Greek translation for rygel
Giannis Katsampirhs [Fri, 20 Aug 2010 15:12:37 +0000 (18:12 +0300)]
l10n: Added Greek translation for rygel

14 years agol10n: Added Greek (el) to po/LINGUAS for rygel
Giannis Katsampirhs [Fri, 20 Aug 2010 15:12:18 +0000 (18:12 +0300)]
l10n: Added Greek (el) to po/LINGUAS for rygel

14 years agocore: Don't advertize search by '@refID'
Zeeshan Ali (Khattak) [Fri, 20 Aug 2010 13:38:18 +0000 (16:38 +0300)]
core: Don't advertize search by '@refID'

Don't advertize support for search by '@refID' as we do not really support
and use it at all. Fixes DLNA CTT test case 7.3.66.2.

14 years agocore: Fix typo in serialization of upnp:createClass
Zeeshan Ali (Khattak) [Fri, 20 Aug 2010 13:33:09 +0000 (16:33 +0300)]
core: Fix typo in serialization of upnp:createClass

14 years agocore: Don't throw error on empty search results
Zeeshan Ali (Khattak) [Fri, 20 Aug 2010 13:29:19 +0000 (16:29 +0300)]
core: Don't throw error on empty search results

I was doing this because of my misunderstanding of error code 720
description in in ContentDirectory v2 specification (Table 2-20).

14 years agocore: Make some code more readable
Zeeshan Ali (Khattak) [Fri, 20 Aug 2010 09:20:25 +0000 (12:20 +0300)]
core: Make some code more readable

Make the code deciding whether or not the mode of the HTTP GET is correct,
more readable.

14 years agocore: Error on 'background' request for streams
Zeeshan Ali (Khattak) [Thu, 19 Aug 2010 15:24:40 +0000 (18:24 +0300)]
core: Error on 'background' request for streams

Throw an error on 'background' download request for streaming content.
This satisfies DLNA requirement 7.4.49.4.

14 years agocore: Error on 'interactive' request for streams
Zeeshan Ali (Khattak) [Thu, 19 Aug 2010 15:17:44 +0000 (18:17 +0300)]
core: Error on 'interactive' request for streams

Throw an error on 'interactive' download request for streaming content.
This satisfies DLNA requirement 7.4.49.4.

14 years agocore: Refactor HTTPGet.handle() a bit
Zeeshan Ali (Khattak) [Thu, 19 Aug 2010 14:31:02 +0000 (17:31 +0300)]
core: Refactor HTTPGet.handle() a bit

14 years agocore: Minor coding-style fixes
Zeeshan Ali (Khattak) [Thu, 19 Aug 2010 12:58:41 +0000 (15:58 +0300)]
core: Minor coding-style fixes

14 years agocore: Error on streaming request for unstreamable
Zeeshan Ali (Khattak) [Thu, 19 Aug 2010 12:56:33 +0000 (15:56 +0300)]
core: Error on streaming request for unstreamable

Throw an error on streaming request for unstreamable content. This satisfies
DLNA requirement 7.4.49.4.

14 years agocore: Image items are not streamable
Zeeshan Ali (Khattak) [Thu, 19 Aug 2010 12:55:39 +0000 (15:55 +0300)]
core: Image items are not streamable

14 years agoRelease announcement for 0.7.6 RYGEL_0_7_6
Zeeshan Ali (Khattak) [Wed, 18 Aug 2010 13:14:23 +0000 (16:14 +0300)]
Release announcement for 0.7.6

14 years agoi18n: Update ignored & translated files list
Zeeshan Ali (Khattak) [Wed, 18 Aug 2010 13:22:27 +0000 (16:22 +0300)]
i18n: Update ignored & translated files list

14 years agotracker: Create ID from title rather then the value
Zeeshan Ali (Khattak) [Wed, 18 Aug 2010 12:06:40 +0000 (15:06 +0300)]
tracker: Create ID from title rather then the value

Create ID of MetadataValues' children from their title rather then the
associated 'value' of the child. This also implies that Years container
now only provide the method for title creation rather than ID creation.

With this change, the 'Year' hierarchy works again. \o/

14 years agotracker: Replace MetadataValues delegates by virtual methods
Zeeshan Ali (Khattak) [Wed, 18 Aug 2010 11:35:33 +0000 (14:35 +0300)]
tracker: Replace MetadataValues delegates by virtual methods

Subclasses should now override the methods if they need a different
implementation rather than passing methods to base constructor.

14 years agocore: MetadataValues is now an abstract class
Zeeshan Ali (Khattak) [Wed, 18 Aug 2010 10:45:40 +0000 (13:45 +0300)]
core: MetadataValues is now an abstract class

14 years agotracker: Special classes for albums & artists
Zeeshan Ali (Khattak) [Wed, 18 Aug 2010 10:43:22 +0000 (13:43 +0300)]
tracker: Special classes for albums & artists

Add special container classes for albums and artists.

14 years agoRelease announcement for 0.7.4 RYGEL_0_7_4
Zeeshan Ali (Khattak) [Mon, 16 Aug 2010 23:28:35 +0000 (02:28 +0300)]
Release announcement for 0.7.4

14 years agoUpdated Slovenian translation
Andrej Žnidaršič [Tue, 17 Aug 2010 12:27:46 +0000 (14:27 +0200)]
Updated Slovenian translation

14 years agoUpdated Hebrew translation.
Yaron Shahrabani [Mon, 16 Aug 2010 23:05:16 +0000 (02:05 +0300)]
Updated Hebrew translation.

14 years agocore: GetProtocolInfo should utilize gupnp-dlna
Zeeshan Ali (Khattak) [Mon, 16 Aug 2010 20:33:56 +0000 (23:33 +0300)]
core: GetProtocolInfo should utilize gupnp-dlna

GetProtocolInfo action for MediaServer should list all DLNA profiles
covered by gupnp-dlna.

14 years agobuild: Rygel core now links to gupnp-dlna
Zeeshan Ali (Khattak) [Mon, 16 Aug 2010 20:31:55 +0000 (23:31 +0300)]
build: Rygel core now links to gupnp-dlna

14 years agocore: Equality function for list of ProtocolInfo
Zeeshan Ali (Khattak) [Mon, 16 Aug 2010 20:29:13 +0000 (23:29 +0300)]
core: Equality function for list of ProtocolInfo

This is to allow for easy search of a particular ProtocolInfo in the list.

14 years agobuild,media-export: Adapt to gupnp-dlna 0.3 API
Zeeshan Ali (Khattak) [Mon, 16 Aug 2010 20:25:26 +0000 (23:25 +0300)]
build,media-export: Adapt to gupnp-dlna 0.3 API

14 years agocore: Make use of GUPnP.ProtocolInfo
Zeeshan Ali (Khattak) [Mon, 16 Aug 2010 13:22:18 +0000 (16:22 +0300)]
core: Make use of GUPnP.ProtocolInfo

Instead of passing around ProtocolInfo as strings, use a list of
ProtocolInfo objects and translate them to strings only where/when needed.

14 years agoUpdated Galician translations
Fran Diéguez [Mon, 16 Aug 2010 15:47:55 +0000 (17:47 +0200)]
Updated Galician translations

14 years agobuild: Fix vala.m4
Jens Georg [Mon, 16 Aug 2010 07:59:13 +0000 (10:59 +0300)]
build: Fix vala.m4

 - Don't accumulate checks
 - Remove ugly leading white-space

14 years agocore: Prefix service URLs with a "/"
Zeeshan Ali (Khattak) [Mon, 16 Aug 2010 01:23:44 +0000 (04:23 +0300)]
core: Prefix service URLs with a "/"

This seems like the right way to do it and it might actually improve our
IOP.

14 years agodata: Set standard header on XML files
Zeeshan Ali (Khattak) [Mon, 16 Aug 2010 01:08:16 +0000 (04:08 +0300)]
data: Set standard header on XML files

14 years agoexternal: Mirco indentation fix
Zeeshan Ali (Khattak) [Sun, 15 Aug 2010 13:44:00 +0000 (16:44 +0300)]
external: Mirco indentation fix

14 years agoexternal: Remove redundant constants
Zeeshan Ali (Khattak) [Sun, 15 Aug 2010 13:29:39 +0000 (16:29 +0300)]
external: Remove redundant constants

14 years agomedia-export: Fix database upgrade to v10
Jens Georg [Sun, 15 Aug 2010 15:08:13 +0000 (18:08 +0300)]
media-export: Fix database upgrade to v10

14 years agomedia-export: Rename "Filesystem" folder
Jens Georg [Sun, 15 Aug 2010 13:51:39 +0000 (16:51 +0300)]
media-export: Rename "Filesystem" folder

14 years agomedia-export: Simplify format string
Jens Georg [Sat, 14 Aug 2010 14:17:25 +0000 (17:17 +0300)]
media-export: Simplify format string

14 years agoUpdated Spanish translation
Jorge González [Sun, 15 Aug 2010 19:03:19 +0000 (21:03 +0200)]
Updated Spanish translation

14 years agomedia-export: file filter may be null
Jens Georg [Sat, 14 Aug 2010 15:56:45 +0000 (18:56 +0300)]
media-export: file filter may be null

14 years agomedia-export: Speed up startup-filesystem walk
Jens Georg [Sat, 14 Aug 2010 13:43:02 +0000 (16:43 +0300)]
media-export: Speed up startup-filesystem walk

14 years agomedia-export: No need for fuzzy search
Jens Georg [Sat, 14 Aug 2010 13:02:40 +0000 (16:02 +0300)]
media-export: No need for fuzzy search

We define the UPnP classes so we can search for the exact classes

14 years agomedia-export: Move filesystem to special folder
Jens Georg [Sat, 14 Aug 2010 11:10:14 +0000 (14:10 +0300)]
media-export: Move filesystem to special folder

With the default virtual containers the root-folder's content was way to
cluttered

14 years agomedia-export: Implement a cancel-everything
Jens Georg [Sat, 14 Aug 2010 09:31:32 +0000 (12:31 +0300)]
media-export: Implement a cancel-everything

14 years agomedia-export: Fix a FIXME
Jens Georg [Sat, 14 Aug 2010 08:46:53 +0000 (11:46 +0300)]
media-export: Fix a FIXME

14 years agomedia-export: Remove custom virtual folders
Jens Georg [Sat, 14 Aug 2010 08:41:55 +0000 (11:41 +0300)]
media-export: Remove custom virtual folders

User-defined virtual folders are not not supported anymore

14 years agomedia-export: Expose default virtual folders
Jens Georg [Sat, 14 Aug 2010 08:34:29 +0000 (11:34 +0300)]
media-export: Expose default virtual folders

Expose a similar default virtual folder tree as tracker.
There are no "Tags" folders since we don't support tags.

Pictures
    -> Year             dc:date,?
    -> All              upnp:class,object.item.ImageItem
Music
    -> Year             dc:date,?
    -> Artist
        -> Album        upnp:artist,?,upnp:album,?
    -> Album            upnp:album,?
    -> Genre            upnp:genre,?
    -> All              upnp:class,object.item.audioIte
Videos
    -> Year             dc:date,?
    -> All              upnp:class,object.item.videoItem

14 years agomedia-export: Use derivedFrom on class
Jens Georg [Sat, 14 Aug 2010 08:31:00 +0000 (11:31 +0300)]
media-export: Use derivedFrom on class

If a virtual folder contains a match on upnp:class, assume that the
derivedFrom operator is meant

14 years agomedia-export: Move extractor to harvester
Jens Georg [Fri, 13 Aug 2010 20:17:41 +0000 (23:17 +0300)]
media-export: Move extractor to harvester

14 years agomedia-export: Minor coding style fix
Jens Georg [Wed, 4 Aug 2010 21:14:25 +0000 (00:14 +0300)]
media-export: Minor coding style fix

14 years agomedia-export: Move file handling to harvester
Jens Georg [Mon, 2 Aug 2010 19:57:39 +0000 (22:57 +0300)]
media-export: Move file handling to harvester

Reacting to changes is now also done in the Harvester class. No more
filesystem stuff in root container

14 years agomedia-export: Move public methods to top of class
Jens Georg [Mon, 2 Aug 2010 19:36:55 +0000 (22:36 +0300)]
media-export: Move public methods to top of class

14 years agomedia-export: Minor optimization
Jens Georg [Mon, 2 Aug 2010 19:19:10 +0000 (22:19 +0300)]
media-export: Minor optimization

No need for generic API

14 years agomedia-export: Make batch size a constant
Jens Georg [Mon, 2 Aug 2010 18:54:54 +0000 (21:54 +0300)]
media-export: Make batch size a constant

14 years agomedia-export: Avoid extra database query
Jens Georg [Sun, 1 Aug 2010 13:37:56 +0000 (15:37 +0200)]
media-export: Avoid extra database query

When checking for change conditions, avoid extra query for size-check.
Since push_if_changed_or_unknown will be called for MediaItems only,
there is no need for a left-outer join in the query.

14 years agomedia-export: Simplify child processing
Jens Georg [Fri, 30 Jul 2010 12:04:20 +0000 (14:04 +0200)]
media-export: Simplify child processing

14 years agomedia-export: Move id generation to MediaCache
Jens Georg [Fri, 30 Jul 2010 09:11:47 +0000 (11:11 +0200)]
media-export: Move id generation to MediaCache

Also use it consistently everywhere

14 years agomedia-export: No need for safeguard
Jens Georg [Fri, 30 Jul 2010 08:54:54 +0000 (10:54 +0200)]
media-export: No need for safeguard

14 years agomedia-export: Fix coding style
Jens Georg [Thu, 29 Jul 2010 23:18:13 +0000 (01:18 +0200)]
media-export: Fix coding style

14 years agomedia-export: Rename RecursiveFileMonitor.monitor
Jens Georg [Thu, 29 Jul 2010 22:24:26 +0000 (00:24 +0200)]
media-export: Rename RecursiveFileMonitor.monitor

Method was renamed to .add cause monitor seemed a bit awkward
(monitor.monitor)

14 years agocore: Use standard DLNA profile for WMV
Zeeshan Ali (Khattak) [Sat, 14 Aug 2010 01:49:57 +0000 (04:49 +0300)]
core: Use standard DLNA profile for WMV

I'm not sure this is correct but at least its a standard DLNA profile and
enables us to comply with DLNA requirements (7.3.29.3).