diff --git a/common b/common index 69b981f10c..605cd9a65e 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 69b981f10caa234ad0ff639179d0fda8505bd94b +Subproject commit 605cd9a65ed61505f24b840d3fe8e252be72b151 diff --git a/docs/design/design-decodebin.txt b/docs/design/design-decodebin.txt index d84aa4877d..6506a4e974 100644 --- a/docs/design/design-decodebin.txt +++ b/docs/design/design-decodebin.txt @@ -287,3 +287,8 @@ though (e.g. we would not be able to detect the profile in all cases then before plugging a decoder, which would make it hard to just play the audio part of a stream and not the video if a suitable decoder was missing, for example). + +Additional considerations: the same problem exists with sinks that support +non-raw formats. Consider, for example, an audio sink that accepts DTS audio, +but only the 14-bit variant, not the 16-bit variant (or only native endiannes). +Ideally dcaparse would convert into the required stream format here. diff --git a/gst-libs/gst/interfaces/streamvolume.h b/gst-libs/gst/interfaces/streamvolume.h index 32a824c75a..ea47ab6163 100644 --- a/gst-libs/gst/interfaces/streamvolume.h +++ b/gst-libs/gst/interfaces/streamvolume.h @@ -27,11 +27,11 @@ G_BEGIN_DECLS #define GST_TYPE_STREAM_VOLUME \ (gst_stream_volume_get_type ()) #define GST_STREAM_VOLUME(obj) \ - (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_STREAM_VOLUME, GstStreamVolume)) + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_STREAM_VOLUME, GstStreamVolume)) #define GST_STREAM_VOLUME_INTERFACE(iface) \ (G_TYPE_CHECK_INTERFACE_CAST ((iface), GST_TYPE_STREAM_VOLUME, GstStreamVolumeInterface)) #define GST_IS_STREAM_VOLUME(obj) \ - (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_STREAM_VOLUME)) + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_STREAM_VOLUME)) #define GST_IS_STREAM_VOLUME_INTERFACE(iface) \ (G_TYPE_CHECK_INTERFACE_TYPE ((iface), GST_TYPE_STREAM_VOLUME)) #define GST_STREAM_VOLUME_GET_INTERFACE(inst) \ diff --git a/gst-libs/gst/pbutils/encoding-target.c b/gst-libs/gst/pbutils/encoding-target.c index 142e4a5166..860b595fc5 100644 --- a/gst-libs/gst/pbutils/encoding-target.c +++ b/gst-libs/gst/pbutils/encoding-target.c @@ -643,10 +643,14 @@ parse_encoding_profile (GKeyFile * in, gchar * parentprofilename, *) sprof, variableframerate); gst_encoding_video_profile_set_pass ((GstEncodingVideoProfile *) sprof, pass); + gst_encoding_profile_set_name (sprof, pname); + gst_encoding_profile_set_description (sprof, description); } else if (!g_strcmp0 (proftype, "audio")) { sprof = (GstEncodingProfile *) gst_encoding_audio_profile_new (formatcaps, preset, restrictioncaps, presence); + gst_encoding_profile_set_name (sprof, pname); + gst_encoding_profile_set_description (sprof, description); } else GST_ERROR ("Unknown profile format '%s'", proftype); diff --git a/gst-libs/gst/rtsp/gstrtspextension.h b/gst-libs/gst/rtsp/gstrtspextension.h index a697c90c28..e2995f3d28 100644 --- a/gst-libs/gst/rtsp/gstrtspextension.h +++ b/gst-libs/gst/rtsp/gstrtspextension.h @@ -34,9 +34,9 @@ G_BEGIN_DECLS #define GST_TYPE_RTSP_EXTENSION \ (gst_rtsp_extension_get_type ()) #define GST_RTSP_EXTENSION(obj) \ - (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_RTSP_EXTENSION, GstRTSPExtension)) + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_RTSP_EXTENSION, GstRTSPExtension)) #define GST_IS_RTSP_EXTENSION(obj) \ - (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_RTSP_EXTENSION)) + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_RTSP_EXTENSION)) #define GST_RTSP_EXTENSION_GET_IFACE(inst) \ (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_RTSP_EXTENSION, GstRTSPExtensionInterface)) diff --git a/gst-libs/gst/tag/xmpwriter.h b/gst-libs/gst/tag/xmpwriter.h index 6c89072c23..a7f6e4a976 100644 --- a/gst-libs/gst/tag/xmpwriter.h +++ b/gst-libs/gst/tag/xmpwriter.h @@ -27,11 +27,11 @@ G_BEGIN_DECLS #define GST_TYPE_TAG_XMP_WRITER \ (gst_tag_xmp_writer_get_type ()) #define GST_TAG_XMP_WRITER(obj) \ - (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriter)) + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriter)) #define GST_TAG_XMP_WRITER_INTERFACE(iface) \ (G_TYPE_CHECK_INTERFACE_CAST ((iface), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriterInterface)) #define GST_IS_TAG_XMP_WRITER(obj) \ - (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_XMP_WRITER)) + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_XMP_WRITER)) #define GST_IS_TAG_XMP_WRITER_INTERFACE(iface) \ (G_TYPE_CHECK_INTERFACE_TYPE ((iface), GST_TYPE_TAG_XMP_WRITER)) #define GST_TAG_XMP_WRITER_GET_INTERFACE(inst) \ diff --git a/tests/check/libs/navigation.c b/tests/check/libs/navigation.c index db64473ae6..893ed0b738 100644 --- a/tests/check/libs/navigation.c +++ b/tests/check/libs/navigation.c @@ -54,7 +54,6 @@ struct TestElementClass GType test_element_get_type (void); static void init_interface (GType type); -static void gst_implements_interface_init (GstImplementsInterfaceClass * klass); static void nav_send_event (GstNavigation * navigation, GstStructure * structure); @@ -75,14 +74,7 @@ init_interface (GType type) NULL, NULL, }; - static const GInterfaceInfo implements_iface_info = { - (GInterfaceInitFunc) gst_implements_interface_init, - NULL, - NULL, - }; - g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE, - &implements_iface_info); g_type_add_interface_static (type, GST_TYPE_NAVIGATION, &navigation_iface_info); } @@ -92,22 +84,6 @@ test_element_class_init (TestElementClass * klass) { } -static gboolean -test_element_interface_supported (GstImplementsInterface * ifacE, - GType interface_type) -{ - if (interface_type == GST_TYPE_NAVIGATION) - return TRUE; - - return FALSE; -} - -static void -gst_implements_interface_init (GstImplementsInterfaceClass * klass) -{ - klass->supported = test_element_interface_supported; -} - static void test_element_init (TestElement * this) {