GNOME Bugzilla – Bug 684791
gupnp-dlna cannot compute MPEG profile of standard DLNA MPEG content
Last modified: 2021-05-17 17:04:52 UTC
Hi, I'm unable to get gupnp-dlna to determine the DLNA profile of any of the standard DLNA MPEG test content. The content is playable on my device and can be discovered by gst-discoverer-0.10. Here an example of the sort of output I get when I run gupnp-dlna-info on one of the files: gupnp-dlna-info -v /home/home/Videos/DLNA/MPEG_TS_SD_EU_ISO/O-MP2TS_SE_I-2.mpg URI: file:///home/home/Videos/DLNA/MPEG_TS_SD_EU_ISO/O-MP2TS_SE_I-2.mpg Profile Name: (null) Profile MIME: (null) Topology: container: video/mpegts, systemstream=(boolean)true, packetsize=(int)188 audio: audio/x-ac3 Codec: audio/x-ac3 Additional info: None Channels: 2 Sample rate: 44100 Depth: 0 Bitrate: 192000 Max bitrate: 0 Tags: taglist, audio-codec=(string)"Dolby\ Digital\ \(AC-3\)", bitrate=(uint)192000; video: video/mpeg, mpegversion=(int)2, systemstream=(boolean)false, parsed=(boolean)true, width=(int)480, height=(int)576, framerate=(fraction)50/1, pixel-aspect-ratio=(fraction)32/15, codec_data=(buffer)1e0240330ea62380000001b5148200010000000001b8, profile=(string)main, level=(string)low, interlaced=(boolean)true Codec: video/mpeg, mpegversion=(int)2, systemstream=(boolean)false, parsed=(boolean)true, width=(int)480, height=(int)576, framerate=(fraction)50/1, pixel-aspect-ratio=(fraction)32/15, codec_data=(buffer)1e0240330ea62380000001b5148200010000000001b8, profile=(string)main, level=(string)low, interlaced=(boolean)true Additional info: None Width: 480 Height: 576 Depth: 0 Frame rate: 25/1 Pixel aspect ratio: 32/15 Interlaced: true Bitrate: 0 Max bitrate: 0 Tags: taglist, video-codec=(string)"MPEG\ 2\ Video"; Duration: 0:01:05.834977393 I can make gupnp-dlna-info return the correct profile if I remove/modify some of the fields in mpeg-ts.xml. I guess either GStreamer is returning the wrong information or the .xml files are too strict. BTW., I'm using GStreamer 0.10.36
There is a relaxed mode in gupnp-dlna that mostly disables bitrate matching as there are a lot of broken files out there. Which values did you need to modify?
bitrate was one of the parameters I needed to change. However, I also needed to add a rate and a missing profile. This way I was able to get gupnp-dlna to correctly determine the DLNA profile of all the files in MPEG_TS_SD_EU and MPEG_TS_SD_EU_ISO. There is still work to do for the remaining MPEG files however. I have access to the test content so I can provide patches to the relevant xml files for review if this would be helpful. BTW., is the relaxed mode used by Rygel?
Yes, Rygel uses relaxed mode as most files don't have a proper bitrate (which might be a GStreamer issue, but well).
Just to clarify using the -r flag of gupnp-dlna-info only allowed me to detect the DLNA profile of 1 of the 10 files in MPEG_TS_SD_EU and MPEG_TS_SD_EU_ISO so I think we will need to update mpeg-ts.xml.
Shouldn't Rygel use a strict mode first before falling back to relaxed mode?
nah, that would be counter-productive in the normal non-certification use-case, i.e. for home users
By "any mpeg file" do you mean everything that's returned with "find -name *.mpg" in the Video subfolder or just the SD_EU_* variants?
With the -e and -r flags the profile of 31 out of 185 can be computed. That count includes the .wmv and and .mp4 files as well.
so this is more "please fix gupnp-dlna to recognize all standard content"? :)
Basically, yes.
Some fixes on master now: - f392b13cf8f50411d51f79f1635de9ca352e45a5 and a3212c4fa4a71094be91c2f8ebfd345a3c688195 should fix profile detection for MPEG_TS_SD_EU - 7591cca1992c08e8cb5b69665cf0e833b255fa2f fixes PNG matching - 46ef86fbd41b0222a25c5df4ceed04871294ad33 fixes AAC MULT5 matching . 39730d90aff276ccbc58dd045e04674c115607b6 works around a "regression" in GStreamer 1.0 (bug 699212) that broke ADTS matching - 2e052ade9012b93d0982071f7f17a55a77ea08a9 works around an issue in GStreamer (bug 699586) bug that broke WMA matching. On top of that, GStreamer 1.0.x currently does not support WMA files with more than 6 streams; this is fixed in GStreamer master (http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=1a83c7a36a7e4c7b882a68805803aec000ea4a37)
Btw, one of the WMAFULL testfiles has a bitrate that is discovered a bit too low for it to be matched to the WMAFULL profile, it's not 256 but 192. Otherwise, with the above changes, all audio files (apart from LPCM, obviously) should be matched properly now
It looks like GStreamer is not providing enough information on WMV video to properly guess the profile (level is missing, video bitrate not available, though that's probably bug 699219 as well). Plus, to get the WMV specification you have to get a license from MS, although one could probably get the most important information from http://en.wikipedia.org/wiki/VC-1, hoping that VC-1 is similar enough with WMV9
1b6c60e and c98ca2d add support for MPEG_TS_SD_{EU,NA} profiles. Some issues: - We can't distinguish EU/NA (without any suffix) from EU_T/NA_T since there's no means to decide whether the timestamps are valid or not - I've no clue how the korean variants are supposed to differ from the north american.
So with master we now have: 0.10.1: - Strict: 163 - Relaxed: 191 Master: - Strict: 182 - Relaxed: 285 That's of course including the _KO_ profiles matching the _NA_ profiles and _T matching non _T in relaxed mode.
Most of this has been released in 0.10.2. JP is missing though; GStreamer has various issues with the files and we need to find a way to provide sample files.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gupnp-dlna/-/issues/3.