fix bug with audio volume in a52dec
authorHanno Boeck <hanno@gentoo.org>
Wed, 1 Nov 2006 16:44:35 +0000 (16:44 +0000)
committerHanno Boeck <hanno@gentoo.org>
Wed, 1 Nov 2006 16:44:35 +0000 (16:44 +0000)
Package-Manager: portage-2.1.2_rc1-r2

media-plugins/gst-plugins-a52dec/ChangeLog
media-plugins/gst-plugins-a52dec/Manifest
media-plugins/gst-plugins-a52dec/files/digest-gst-plugins-a52dec-0.10.4-r1 [new file with mode: 0644]
media-plugins/gst-plugins-a52dec/files/gsta52-audio-volume.patch [new file with mode: 0644]
media-plugins/gst-plugins-a52dec/gst-plugins-a52dec-0.10.4-r1.ebuild [new file with mode: 0644]

index d1f59ff3faee5b37153b21d1b24991cb155caf4c..0c5a7f93d950f498ed102da2ebde8f8de59530ea 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for media-plugins/gst-plugins-a52dec
 # Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-a52dec/ChangeLog,v 1.66 2006/10/06 16:57:03 zaheerm Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-a52dec/ChangeLog,v 1.67 2006/11/01 16:44:35 hanno Exp $
+
+*gst-plugins-a52dec-0.10.4-r1 (01 Nov 2006)
+
+  01 Nov 2006; Hanno Boeck <hanno@gentoo.org>
+  +files/gsta52-audio-volume.patch, +gst-plugins-a52dec-0.10.4-r1.ebuild:
+  Add patch to fix bug with audio volume control (needed for thoggen).
 
   06 Oct 2006; Zaheer Abbas Merali <zaheerm@gentoo.org> ChangeLog:
   version bump
index 654eff0bd7ea1838b63138a34e57589fa49d1f99..6e3f5c7b2dc9366e73599bd3e6fb080474f241ca 100644 (file)
@@ -1,6 +1,10 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
+AUX gsta52-audio-volume.patch 6370 RMD160 144c4256971d9102a999be9cefdfd8f61d58460c SHA1 d35e682317fc6ec67fdaa2f71f653c453651c644 SHA256 ea62cecb030b88942d12400db0e550d642816d5d3ff16330c0e0a8260c8dedc5
+MD5 e655f3e48113702ecc76b0fb5f5cf162 files/gsta52-audio-volume.patch 6370
+RMD160 144c4256971d9102a999be9cefdfd8f61d58460c files/gsta52-audio-volume.patch 6370
+SHA256 ea62cecb030b88942d12400db0e550d642816d5d3ff16330c0e0a8260c8dedc5 files/gsta52-audio-volume.patch 6370
 DIST gst-plugins-0.8.10.tar.bz2 2397528 RMD160 fb59c37aef76b9cc065530fc4a7e7fe43168e619 SHA1 99e5746d4f013fc00cd29a59f9aab773db08ab1c SHA256 c5c8359f6ff8bc594cdadbb38863a8180c52de1edce74ad2fd698b9d4c6fef7c
 DIST gst-plugins-0.8.11.tar.bz2 2439654 RMD160 833aec123a52cd0f36ec883c349cc8d69090d749 SHA1 4a9be6b62dd0e8a73616e8e93f7a3ace8aec8c59 SHA256 0e48eef1d3bfa2263c1047f9f84622a4e16e33d963252cb8153ff1b340c4ba90
 DIST gst-plugins-0.8.12.tar.bz2 2506926 RMD160 cc0bbf3d790cb5791ce982fe6493bf2d8496a507 SHA1 3b65fe96aa849c463f5f968830ad76143c4b9952 SHA256 8728da4f71bc87e10fb064d28154220d66a3d8332482fd2c8a7ed47c5f0a03ba
@@ -10,6 +14,10 @@ EBUILD gst-plugins-a52dec-0.10.3.ebuild 449 RMD160 49ac9e3b92f416202e3ba4570aa47
 MD5 e4c055c77ac2721ae496c8e9f079a82a gst-plugins-a52dec-0.10.3.ebuild 449
 RMD160 49ac9e3b92f416202e3ba4570aa47b68c9aa4427 gst-plugins-a52dec-0.10.3.ebuild 449
 SHA256 3526c123f61e5a6d11445c0c7d3589dab4649fdc8dc98fd794ca4d1b1e989810 gst-plugins-a52dec-0.10.3.ebuild 449
+EBUILD gst-plugins-a52dec-0.10.4-r1.ebuild 583 RMD160 5fc9a30bb080bf0a9865a9ac67148e5cf5426b5d SHA1 1027f66e832c31fbc694d6c1bec31d0cf126598b SHA256 b5e60f772e464dc8d1a48523cf0118aae783889c0df6a75a6b1002857a14a2f6
+MD5 04c77181e3bc321b97537f0926ab4675 gst-plugins-a52dec-0.10.4-r1.ebuild 583
+RMD160 5fc9a30bb080bf0a9865a9ac67148e5cf5426b5d gst-plugins-a52dec-0.10.4-r1.ebuild 583
+SHA256 b5e60f772e464dc8d1a48523cf0118aae783889c0df6a75a6b1002857a14a2f6 gst-plugins-a52dec-0.10.4-r1.ebuild 583
 EBUILD gst-plugins-a52dec-0.10.4.ebuild 458 RMD160 1b6b566809f9ece08911dd4c45151e8542cde84d SHA1 5b42648fd99e6e54dececce8583d6123b0813837 SHA256 8d1645b1d967ea2eea3fa38216b215b70d774ab931c0b962fd2ee3b29fd81a76
 MD5 06779a7c0bd28d756a4c7ee7ca33e4fb gst-plugins-a52dec-0.10.4.ebuild 458
 RMD160 1b6b566809f9ece08911dd4c45151e8542cde84d gst-plugins-a52dec-0.10.4.ebuild 458
@@ -26,10 +34,10 @@ EBUILD gst-plugins-a52dec-0.8.12.ebuild 385 RMD160 32d4a3becc82e9c4dc98c03179427
 MD5 67b8a6a80625727183b3bb647a88f4d1 gst-plugins-a52dec-0.8.12.ebuild 385
 RMD160 32d4a3becc82e9c4dc98c03179427e9342855069 gst-plugins-a52dec-0.8.12.ebuild 385
 SHA256 e02604ff3411991cb4eda4c9e532303e0f1be27916b6d61a781295be80502042 gst-plugins-a52dec-0.8.12.ebuild 385
-MISC ChangeLog 7780 RMD160 b98936dd97de0191d738106c44f78e0a104d015a SHA1 c597fb681bfe095915ea9d9fb1d3513c0ddc5336 SHA256 64173c6ecaef11ba05a8cf24553ef2a2e32a1ad07c0526c52aff29192c6f18b2
-MD5 e487d4c57968b3001748fd9d27b5f243 ChangeLog 7780
-RMD160 b98936dd97de0191d738106c44f78e0a104d015a ChangeLog 7780
-SHA256 64173c6ecaef11ba05a8cf24553ef2a2e32a1ad07c0526c52aff29192c6f18b2 ChangeLog 7780
+MISC ChangeLog 8015 RMD160 11872043c8e3665353be8ca2141519e52ce7348e SHA1 32dbb45f87587d7b8978ea7014992780379fbcc8 SHA256 14ff6a270dfcc275ca069bd398e5f411b10ae0da32e74cdc393fcb88fcbf7b42
+MD5 250a4ad70957f20c4cacd64ff091a9ae ChangeLog 8015
+RMD160 11872043c8e3665353be8ca2141519e52ce7348e ChangeLog 8015
+SHA256 14ff6a270dfcc275ca069bd398e5f411b10ae0da32e74cdc393fcb88fcbf7b42 ChangeLog 8015
 MISC metadata.xml 181 RMD160 51814fbdcf7f32cfe70018b3af7fc798e41ff90d SHA1 faf40c45bd66b0072b95556cf7ab097d3be19511 SHA256 22c215902ccdc7fd8cdb765750fb23ea9d9b6c9d3edb1b45325c3469f8f6ffc5
 MD5 6cf6f97e79b43eaf70fa938c431342a3 metadata.xml 181
 RMD160 51814fbdcf7f32cfe70018b3af7fc798e41ff90d metadata.xml 181
@@ -40,6 +48,9 @@ SHA256 cfe9c819ee2ccf7ad84b195685cb2976e912906830bd24d488b21b4ef690f472 files/di
 MD5 d935d4ce6cfdd13f1bbf5250ffd100b4 files/digest-gst-plugins-a52dec-0.10.4 274
 RMD160 dec1a476aa0df1f41f29c4641bfa7299cc9fb777 files/digest-gst-plugins-a52dec-0.10.4 274
 SHA256 7f432695e33fb8a908b0a2494e7b00fca2c66085160d120f8617cf8c31210151 files/digest-gst-plugins-a52dec-0.10.4 274
+MD5 d935d4ce6cfdd13f1bbf5250ffd100b4 files/digest-gst-plugins-a52dec-0.10.4-r1 274
+RMD160 dec1a476aa0df1f41f29c4641bfa7299cc9fb777 files/digest-gst-plugins-a52dec-0.10.4-r1 274
+SHA256 7f432695e33fb8a908b0a2494e7b00fca2c66085160d120f8617cf8c31210151 files/digest-gst-plugins-a52dec-0.10.4-r1 274
 MD5 eaba7cd988c45174c3c20aebd8c4a8bd files/digest-gst-plugins-a52dec-0.8.10 262
 RMD160 ee0674f71e5e46e925c101e8e5d76fb49260df19 files/digest-gst-plugins-a52dec-0.8.10 262
 SHA256 a93903467a58b51b55338d1dba64d4cea56cb0ab65884a9fd58798f44d4e9680 files/digest-gst-plugins-a52dec-0.8.10 262
@@ -52,7 +63,7 @@ SHA256 bac5ba90fbb314a2f7ea2a53506021944ec1b8707b20d47545a23a6fd5f4cefd files/di
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.5 (GNU/Linux)
 
-iD8DBQFFMVUfamhnQswr0vIRApgDAJ4xbgrdIQMgxIYJ2eMUS9GFgs4S7QCfUW5b
-K4t3Wq7gg7syuwdcgAFeWTk=
-=KCK+
+iD8DBQFFSM8Cr2QksT29OyARAhZpAJ4/ItrhBl9uAZQiQmjEHzHSAD+thQCdHeRC
+wdvI32FQbExPvfACe/4TeNY=
+=w6sF
 -----END PGP SIGNATURE-----
diff --git a/media-plugins/gst-plugins-a52dec/files/digest-gst-plugins-a52dec-0.10.4-r1 b/media-plugins/gst-plugins-a52dec/files/digest-gst-plugins-a52dec-0.10.4-r1
new file mode 100644 (file)
index 0000000..aebedd2
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 c10f40e3641d827ca7853b0a3d560257 gst-plugins-ugly-0.10.4.tar.bz2 720893
+RMD160 0651853d7d36bda9d267ca3cecfb6cead95a3e6e gst-plugins-ugly-0.10.4.tar.bz2 720893
+SHA256 4871c52b2421b582330a0f9dc6a42da3b706140c346aa0cd690eb40758afe152 gst-plugins-ugly-0.10.4.tar.bz2 720893
diff --git a/media-plugins/gst-plugins-a52dec/files/gsta52-audio-volume.patch b/media-plugins/gst-plugins-a52dec/files/gsta52-audio-volume.patch
new file mode 100644 (file)
index 0000000..50139c6
--- /dev/null
@@ -0,0 +1,207 @@
+diff -Naur gst-plugins-ugly-0.10.4-orig/ext/a52dec/gsta52dec.c gst-plugins-ugly-0.10.4/ext/a52dec/gsta52dec.c
+--- gst-plugins-ugly-0.10.4-orig/ext/a52dec/gsta52dec.c        2006-11-01 17:38:01.647477958 +0100
++++ gst-plugins-ugly-0.10.4/ext/a52dec/gsta52dec.c     2006-11-01 17:38:07.821539358 +0100
+@@ -58,7 +58,9 @@
+ enum
+ {
+   ARG_0,
+-  ARG_DRC
++  ARG_DRC,
++  ARG_MODE,
++  ARG_LFE,
+ };
+ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
+@@ -94,6 +96,30 @@
+ static GstElementClass *parent_class = NULL;
++#define GST_TYPE_A52DEC_MODE (gst_a52dec_mode_get_type())
++static GType
++gst_a52dec_mode_get_type (void)
++{
++  static GType a52dec_mode_type = 0;
++  static const GEnumValue a52dec_modes[] = {
++    {A52_MONO, "Mono", "mono"},
++    {A52_STEREO, "Stereo", "stereo"},
++    {A52_3F, "3 Front", "3f"},
++    {A52_2F1R, "2 Front, 1 Rear", "2f1r"},
++    {A52_3F1R, "3 Front, 1 Rear", "3f1r"},
++    {A52_2F2R, "2 Front, 2 Rear", "2f2r"},
++    {A52_3F2R, "3 Front, 2 Rear", "3f2r"},
++    {A52_DOLBY, "Dolby", "dolby"},
++    {0, NULL, NULL},
++  };
++
++  if (!a52dec_mode_type) {
++    a52dec_mode_type = g_enum_register_static ("GstA52DecMode", a52dec_modes);
++  }
++  return a52dec_mode_type;
++}
++
++
+ GType
+ gst_a52dec_get_type (void)
+ {
+@@ -153,6 +179,11 @@
+   g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_DRC,
+       g_param_spec_boolean ("drc", "Dynamic Range Compression",
+           "Use Dynamic Range Compression", FALSE, G_PARAM_READWRITE));
++  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MODE,
++      g_param_spec_enum ("mode", "Decoder Mode", "Decoding Mode (default 3f2r)",
++          GST_TYPE_A52DEC_MODE, A52_3F2R, G_PARAM_READWRITE));
++  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LFE,
++      g_param_spec_boolean ("lfe", "LFE", "LFE", TRUE, G_PARAM_READWRITE));
+   oil_init ();
+@@ -191,6 +222,7 @@
+   gst_pad_use_fixed_caps (a52dec->srcpad);
+   gst_element_add_pad (GST_ELEMENT (a52dec), a52dec->srcpad);
++  a52dec->request_channels = A52_CHANNEL;
+   a52dec->dynamic_range_compression = FALSE;
+   a52dec->cache = NULL;
+ }
+@@ -268,6 +300,12 @@
+       }
+       chans += 2;
+       break;
++    case A52_MONO:
++      if (pos) {
++        pos[0 + chans] = GST_AUDIO_CHANNEL_POSITION_FRONT_MONO;
++      }
++      chans += 1;
++      break;
+     default:
+       /* error, caller should post error message */
+       g_free (pos);
+@@ -441,6 +479,49 @@
+     gst_a52dec_update_streaminfo (a52dec);
+   }
++  /* If we haven't had an explicit number of channels chosen through properties
++   * at this point, choose what to downmix to now, based on what the peer will 
++   * accept - this allows a52dec to do downmixing in preference to a 
++   * downstream element such as audioconvert.
++   */
++  if (a52dec->request_channels == A52_CHANNEL) {
++    GstCaps *caps;
++
++    caps = gst_pad_get_allowed_caps (a52dec->srcpad);
++    if (caps && gst_caps_get_size (caps) > 0) {
++      GstCaps *copy = gst_caps_copy_nth (caps, 0);
++      GstStructure *structure = gst_caps_get_structure (copy, 0);
++      gint channels;
++      const int a52_channels[6] = {
++        A52_MONO,
++        A52_STEREO,
++        A52_STEREO | A52_LFE,
++        A52_2F2R,
++        A52_2F2R | A52_LFE,
++        A52_3F2R | A52_LFE,
++      };
++
++      /* Prefer the original number of channels, but fixate to something 
++       * preferred (first in the caps) downstream if possible.
++       */
++      gst_structure_fixate_field_nearest_int (structure, "channels",
++          flags ? gst_a52dec_channels (flags, NULL) : 6);
++      gst_structure_get_int (structure, "channels", &channels);
++      if (channels <= 6)
++        a52dec->request_channels = a52_channels[channels - 1];
++      else
++        a52dec->request_channels = a52_channels[5];
++
++      gst_caps_unref (copy);
++    } else if (flags)
++      a52dec->request_channels = a52dec->stream_channels;
++    else
++      a52dec->request_channels = A52_3F2R | A52_LFE;
++
++    if (caps)
++      gst_caps_unref (caps);
++  }
++
+   /* process */
+   flags = a52dec->request_channels;     /* | A52_ADJUST_LEVEL; */
+   a52dec->level = 1;
+@@ -681,7 +762,6 @@
+       a52dec->bit_rate = -1;
+       a52dec->sample_rate = -1;
+       a52dec->stream_channels = A52_CHANNEL;
+-      a52dec->request_channels = A52_3F2R | A52_LFE;
+       a52dec->using_channels = A52_CHANNEL;
+       a52dec->level = 1;
+       a52dec->bias = 0;
+@@ -729,6 +809,18 @@
+       src->dynamic_range_compression = g_value_get_boolean (value);
+       GST_OBJECT_UNLOCK (src);
+       break;
++    case ARG_MODE:
++      GST_OBJECT_LOCK (src);
++      src->request_channels &= ~A52_CHANNEL_MASK;
++      src->request_channels |= g_value_get_enum (value);
++      GST_OBJECT_UNLOCK (src);
++      break;
++    case ARG_LFE:
++      GST_OBJECT_LOCK (src);
++      src->request_channels &= ~A52_LFE;
++      src->request_channels |= g_value_get_boolean (value) ? A52_LFE : 0;
++      GST_OBJECT_UNLOCK (src);
++      break;
+     default:
+       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+       break;
+@@ -747,6 +839,16 @@
+       g_value_set_boolean (value, src->dynamic_range_compression);
+       GST_OBJECT_UNLOCK (src);
+       break;
++    case ARG_MODE:
++      GST_OBJECT_LOCK (src);
++      g_value_set_enum (value, src->request_channels & A52_CHANNEL_MASK);
++      GST_OBJECT_UNLOCK (src);
++      break;
++    case ARG_LFE:
++      GST_OBJECT_LOCK (src);
++      g_value_set_boolean (value, src->request_channels & A52_LFE);
++      GST_OBJECT_UNLOCK (src);
++      break;
+     default:
+       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+       break;
+diff -Naur gst-plugins-ugly-0.10.4-orig/ext/a52dec/gsta52dec.h gst-plugins-ugly-0.10.4/ext/a52dec/gsta52dec.h
+--- gst-plugins-ugly-0.10.4-orig/ext/a52dec/gsta52dec.h        2006-11-01 17:38:01.658476286 +0100
++++ gst-plugins-ugly-0.10.4/ext/a52dec/gsta52dec.h     2006-11-01 17:38:07.822539206 +0100
+@@ -73,6 +73,31 @@
+ GType gst_a52dec_get_type (void);
++#ifndef A52_MONO
++#define A52_MONO 1
++#endif
++#ifndef A52_STEREO
++#define A52_STEREO 2
++#endif
++#ifndef A52_3F
++#define A52_3F 3
++#endif
++#ifndef A52_2F1R
++#define A52_2F1R 4
++#endif
++#ifndef A52_3F1R
++#define A52_3F1R 5
++#endif
++#ifndef A52_2F2R
++#define A52_2F2R 6
++#endif
++#ifndef A52_3F2R
++#define A52_3F2R 7
++#endif
++#ifndef A52_DOLBY
++#define A52_DOLBY 10
++#endif
++
+ G_END_DECLS
+ #endif /* __GST_A52DEC_H__ */
diff --git a/media-plugins/gst-plugins-a52dec/gst-plugins-a52dec-0.10.4-r1.ebuild b/media-plugins/gst-plugins-a52dec/gst-plugins-a52dec-0.10.4-r1.ebuild
new file mode 100644 (file)
index 0000000..c3b69f3
--- /dev/null
@@ -0,0 +1,20 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-a52dec/gst-plugins-a52dec-0.10.4-r1.ebuild,v 1.1 2006/11/01 16:44:35 hanno Exp $
+
+inherit gst-plugins-ugly
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86"
+IUSE=""
+
+RDEPEND=">=media-libs/a52dec-0.7.3
+       >=media-libs/gst-plugins-base-0.10.3
+       >=media-libs/gstreamer-0.10.3"
+
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+       gst-plugins-ugly_src_unpack
+       cd ${S}
+       epatch ${FILESDIR}/gsta52-audio-volume.patch
+}