[pitivi/1.0] misc: Make sure that we use exactly previous caps fixing caps with default
- From: Thibault Saunier <tsaunier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi/1.0] misc: Make sure that we use exactly previous caps fixing caps with default
- Date: Fri, 3 Nov 2017 01:03:36 +0000 (UTC)
commit ef7306bf5b174007f20b9564e706ac8a1a6ab5ac
Author: Thibault Saunier <tsaunier gnome org>
Date: Thu Nov 2 11:26:41 2017 -0300
misc: Make sure that we use exactly previous caps fixing caps with default
... when possible
Reviewed-by: Alex Băluț <<alexandru balut gmail com>>
Differential Revision: https://phabricator.freedesktop.org/D1874
pitivi/utils/misc.py | 20 ++++++++++++++++++++
tests/test_utils.py | 29 ++++++++++++++++++++++++-----
2 files changed, 44 insertions(+), 5 deletions(-)
---
diff --git a/pitivi/utils/misc.py b/pitivi/utils/misc.py
index f610360..0f7cfdd 100644
--- a/pitivi/utils/misc.py
+++ b/pitivi/utils/misc.py
@@ -338,6 +338,15 @@ def fixate_caps_with_default_values(template, restrictions, default_values,
Returns:
Gst.Caps: The caps resulting from the previously defined operations.
"""
+ log.log("utils",
+ "\ntemplate=Gst.Caps(\"%s\"),"
+ "\nrestrictions=%s,\n"
+ "default_values=%s,\n"
+ "prev_vals=Gst.Caps(\"%s\"),\n",
+ "\"\n \"".join(template.to_string().split(";")),
+ "Gst.Caps(\"%s\')" % restrictions if restrictions is not None else "None",
+ default_values,
+ "Gst.Caps(\"%s\')" % prev_vals if prev_vals is not None else "None")
res = Gst.Caps.new_empty()
fields = set(default_values.keys())
if restrictions:
@@ -388,10 +397,21 @@ def fixate_caps_with_default_values(template, restrictions, default_values,
if key not in fields:
struct.remove_field(key)
+ if prev_vals and struct.is_equal(prev_vals[0]):
+ res = Gst.Caps.new_empty()
+ res.append_structure(prev_vals[0])
+ res.mini_object.refcount += 1
+ res = res.fixate()
+ log.debug("utils", "Returning previous caps as we have a corresponding"
+ " version of them: %s", res)
+ return res
+
log.debug("utils", "Adding %s to resulting caps", struct)
+
res.append_structure(struct)
res.mini_object.refcount += 1
+ log.debug("utils", "Fixating %s", res)
res = res.fixate()
log.debug("utils", "Fixated %s", res)
return res
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 86d91b8..e218100 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -115,15 +115,34 @@ class TestMiscUtils(TestCase):
"audio/x-raw, format=(string)F32LE, layout=(string)interleaved, rate=(int)[
1, 200000 ], channels=(int)8, channel-mask=(bitmask)0x0000000000000c3f;"
"audio/x-raw, format=(string)F32LE, layout=(string)interleaved, rate=(int)[
1, 200000 ], channels=(int)[ 9, 255 ], channel-mask=(bitmask)0x0000000000000000")
+ avenc_ac3_caps = Gst.Caps("audio/x-raw, channel-mask=(bitmask)0x0000000000000000, channels=(int)1,
rate=(int){ 48000, 44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000003, channels=(int)2, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000103, channels=(int)3, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000007, channels=(int)3, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000c03, channels=(int)4, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000033, channels=(int)4, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000107, channels=(int)4, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000c07, channels=(int)5, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000037, channels=(int)5, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x000000000000000c, channels=(int)2, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x000000000000000b, channels=(int)3, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x000000000000010b, channels=(int)4, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x000000000000000f, channels=(int)4, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000c0b, channels=(int)5, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x000000000000003b, channels=(int)5, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x000000000000010f, channels=(int)5, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x0000000000000c0f, channels=(int)6, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;"
+ " audio/x-raw, channel-mask=(bitmask)0x000000000000003f, channels=(int)6, rate=(int){ 48000,
44100, 32000 }, layout=(string)interleaved, format=(string)F32LE;")
+
audio_defaults = {'channels': Gst.IntRange(range(1, 2147483647)),
"rate": Gst.IntRange(range(8000, GLib.MAXINT))}
dataset = [
(voaacenc_caps, yt_audiorest, audio_defaults, None, Gst.Caps("audio/x-raw,
channels=2,rate=48000,channel-mask=(bitmask)0x03")),
- (vorbis_caps, None, audio_defaults, Gst.Caps('audio/x-raw,channels=1,rate=8000'))
+ (vorbis_caps, None, audio_defaults, None, Gst.Caps('audio/x-raw,channels=1,rate=8000')),
+ (avenc_ac3_caps, None, audio_defaults, Gst.Caps("audio/x-raw, channels=(int)6,
rate=(int)44100"), Gst.Caps("audio/x-raw, channels=(int)6, rate=(int)44100")),
]
- for data in dataset:
- res = fixate_caps_with_default_values(*data[:-1])
- print(res)
- self.assertTrue(res.is_equal_fixed(data[-1]), "%s != %s" % (res, data[-1]))
+ for template, restrictions, default_values, prev_vals, expected in dataset:
+ res = fixate_caps_with_default_values(template, restrictions, default_values, prev_vals)
+ self.assertTrue(res.is_equal_fixed(expected), "%s != %s" % (res, expected))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]