Merge tag 'upstream/1.10.2' Upstream version 1.10.2
diff --git a/ChangeLog b/ChangeLog index 310fbc8..0add868 100644 --- a/ChangeLog +++ b/ChangeLog
@@ -1,9 +1,457 @@ -=== release 1.10.1 === +=== release 1.10.2 === -2016-11-17 Sebastian Dröge <slomo@coaxion.net> +2016-11-29 Sebastian Dröge <slomo@coaxion.net> * configure.ac: - releasing 1.10.1 + releasing 1.10.2 + +2016-11-29 14:10:26 +0200 Sebastian Dröge <sebastian@centricular.com> + + * po/hr.po: + * po/ky.po: + * po/sv.po: + po: Update translations + +2016-11-28 20:05:02 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst-libs/gst/mpegts/gstmpegtssection.c: + mpegtssection: Fix off-by-one in PMT parsing + +2016-11-28 19:52:24 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst-libs/gst/mpegts/gstmpegtssection.c: + mpegtssection: Don't assert if the given section length is longer than the PMT actually is + Instead error out cleanly and just assert that we didn't read more than + the available data. + +2016-11-28 17:17:43 +0200 Sebastian Dröge <sebastian@centricular.com> + + * sys/decklink/gstdecklink.cpp: + * sys/decklink/gstdecklink.h: + * sys/decklink/gstdecklinkvideosink.cpp: + * sys/decklink/gstdecklinkvideosrc.cpp: + decklink: Correctly set top-field-first/bottom-field-first + First of all, all the HD and UHD modes should be top-field-first, as + also returned by the Decklink mode iterator API. + Then we should include the caps field "field-order" in the caps of the + source (not the sink due to negotiation problems with optional fields). + And finally we should set the TFF flag on interlaced buffers that are + top-field-first. + +2016-11-28 10:27:56 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Post an error message on the bus if we activated a program without pads + Otherwise decodebin and applications are going to wait forever for pads + to appear, which is never going to happen. + Happens on this stream, which probably just need support for it added: + https://samples.mplayerhq.hu/3D/AVC_codec_in_m2ts_not_recognized/AVC_codec_not_recognized_right_video_sample.m2ts + +2016-11-28 10:49:23 +0200 Sebastian Dröge <sebastian@centricular.com> + + * ext/hls/m3u8.c: + m3u8: Mark uri_join() function as static + We don't really want to export this, especially not without any + namespacing. This can cause problems for static builds. + +2016-11-28 14:22:05 +1100 Matthew Waters <matthew@centricular.com> + + * gst-libs/gst/gl/gstglwindow.c: + glwindow: move g_main_context_push/pop_thread_default() to run() + Calling g_main_context_push_thread and then g_main_context_invoke() + (used by gst_gl_window_send_message_async()) in the same thread will + cause the invoked function to run immediately instead of being delayed. + This had implications for the creation of the OpenGL context not waiting + until the main loop had completely started up and as a result would + sometimes deadlock in short create/destroy scenarios. + https://bugzilla.gnome.org/show_bug.cgi?id=775171 + +2016-11-28 14:19:18 +1100 Matthew Waters <matthew@centricular.com> + + * gst-libs/gst/gl/gstglcontext.c: + glcontext: fix race between creation/shutdown + 626bcccff96f624f59c5212b3e21e472240171fd removed some locks that + allowed the main loop quit to occur before the context was fully + created. + 2776cef25d2a98668b73272aecfe77e684e6627e attempted to readd them but + missed the scop of the quit() call. + Also remove the use of g_thread_join() as that's not safe to use when + it's possible to lose the last reference from the GL thread. + https://bugzilla.gnome.org/show_bug.cgi?id=775171 + +2016-11-27 12:40:53 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/rawparse/gstrawbaseparse.c: + rawbaseparse: Fix output buffer size trimming + For frame->buffer, baseparse is doing that automatically for us. For + frame->output_buffer it doesn't and assumes that the subclass is already + doing that. Consistency! + +2016-11-27 12:20:11 +0200 Sebastian Dröge <sebastian@centricular.com> + + * ext/dash/gstmpdparser.c: + dash: Fix stripping of space at the beginning/end of durations + The way how strchr() was called here, it could easily read after the end + of the string. Use g_ascii_isspace() instead. + Detected by asan in the unit test. + +2016-11-27 11:44:14 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/rawparse/gstrawaudioparse.c: + * gst/rawparse/gstrawbaseparse.c: + * gst/rawparse/gstrawbaseparse.h: + * gst/rawparse/gstrawvideoparse.c: + rawparse: Properly align raw audio/video output buffers + That is, aligned to the basic type for audio and to 32 bytes for video. + Fixes crashes if the raw buffers are passed to SIMD processing functions. + https://bugzilla.gnome.org/show_bug.cgi?id=774428 + +2016-11-26 12:28:57 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mxf/mxfdemux.c: + mxfdemux: Post an error message if we got EOS before having any source pads + Otherwise, sending an EOS event has no effect and the application waits + forever for something to happen. + +2016-11-26 12:16:39 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/videoparsers/gsth264parse.c: + h264parse: Fix indentation + +2016-11-26 12:16:18 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/videoparsers/gsth265parse.c: + h265parse: Fix assertion when encountering an invalid NALU + Error out properly instead. + https://bugzilla.gnome.org/show_bug.cgi?id=775130 + +2016-11-26 12:15:50 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/videoparsers/gsth264parse.c: + h264parse: Fix assertion when encountering an invalid NALU + Error out properly instead. + https://bugzilla.gnome.org/show_bug.cgi?id=775130 + +2016-11-26 10:44:43 +0100 Edward Hervey <edward@centricular.com> + + * gst-libs/gst/mpegts/gstmpegtssection.c: + mpegtssection: Add more section size checks + The smallest section ever needs to be at least 3 bytes (i.e. just the short + header). + Non-short headers need to be at least 11 bytes long (3 for the minimum header, + 5 for the non-short header, and 4 for the CRC). + https://bugzilla.gnome.org/show_bug.cgi?id=775048 + +2016-11-26 10:23:01 +0100 Edward Hervey <edward@centricular.com> + + * gst-libs/gst/mpegts/gstmpegtssection.c: + mpegtssection: Fix PAT parsing + Use the estimated number of programs for parsing. Avoids over-reading. + https://bugzilla.gnome.org/show_bug.cgi?id=775120 + +2016-11-26 09:26:36 +0100 Edward Hervey <edward@centricular.com> + + * ext/hls/gsthlsdemux.c: + hlsdemux: Handle GST_SEEK_TYPE_NONE seek + When one is only updating the "stop" position (i.e. non-flushing seek, + with GST_SEEK_TYPE_NONE on the "start" (or stop in reverse) position), + we only need to store those values instead of moving the current position. + https://bugzilla.gnome.org/show_bug.cgi?id=775127 + +2016-11-25 16:46:45 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxftypes.c: + mxfdemux: Fix up another size check and prevent allocating too much memory + +2016-11-25 15:59:44 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxftypes.c: + * gst/mxf/mxful.c: + mxfdemux: Handle zero-sized KLV items better and don't assert on them + +2016-11-25 15:53:50 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mxf/mxfdemux.c: + mxfdemux: Fix various logic errors in error handling of footer partition parsing + +2016-11-25 15:53:36 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mxf/mxfdemux.c: + mxfdemux: Don't try parsing empty metadata items + +2016-11-25 01:06:45 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mxf/mxfmetadata.c: + mxfmetadata: Add missing NULL check + +2016-11-24 19:45:10 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mxf/Makefile.am: + * gst/mxf/mxf.c: + mxf: Remove mxfdms1.[ch] from the build for now + It's completely unused currently but might be used in the future. + +2016-11-24 23:36:22 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxftypes.c: + * gst/mxf/mxful.c: + mxfdemux: Add various missing bounds checks, NULL checks and integer overflow protection for error cases + +2016-11-24 14:48:35 +0200 Sebastian Dröge <sebastian@centricular.com> + + * sys/decklink/gstdecklinkvideosrc.cpp: + decklinkvideosrc: Free timecodes when done with a frame + +2016-11-24 14:41:59 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/timecode/gsttimecodestamper.c: + timecodestamper: Remove all existing timecode metas if requested to override existing + +2016-11-19 16:12:06 +0900 Seungha Yang <sh.yang@lge.com> + + * ext/dash/gstdashdemux.c: + dashdemux: Fix leak in gst_dash_demux_stream_free + Free parsed moof and sync samples with _stream_free(). + https://bugzilla.gnome.org/show_bug.cgi?id=774702 + +2016-11-24 11:12:23 +0100 Edward Hervey <edward@centricular.com> + + * gst-libs/gst/mpegts/gstmpegtssection.c: + mpegtssection: Don't free empty streams + Also avoids a useless assertion + +2016-11-24 11:11:35 +0100 Edward Hervey <edward@centricular.com> + + * gst/mpegtsdemux/mpegtspacketizer.c: + mpegtspacketizer: Don't add existing values to group + If the last value is already identical, there is no need in adding it + yet-another-time + +2016-11-17 15:41:00 +0000 David Evans <bbcrddave@gmail.com> + + * gst-libs/gst/gl/Makefile.am: + gl: add gstreamer-video to pkg-config path + https://bugzilla.gnome.org/show_bug.cgi?id=774624 + +2016-11-23 10:51:17 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/videoparsers/gsth264parse.c: + h264parse: Ensure codec_data has the required size when reading number of SPS + https://bugzilla.gnome.org/show_bug.cgi?id=774896 + +2016-11-23 10:52:05 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/videoparsers/gsth265parse.c: + h265parse: Ensure codec_data has the required size when reading number of NAL arrays + https://bugzilla.gnome.org/show_bug.cgi?id=774896 + +2016-11-22 12:58:44 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mpegtsdemux/mpegtspacketizer.c: + mpegtspacketizer: Reset values before parsing each section + +2016-11-22 12:42:45 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/mpegtsdemux/mpegtspacketizer.c: + mpegtspacketizer: Make sure in all cases that we have enough data left for reading a section start + In some cases we ended up parsing sections without. + +2016-11-23 17:04:34 +1100 Matthew Waters <matthew@centricular.com> + + * gst-libs/gst/gl/x11/gstglcontext_glx.c: + gl/contextglx: error out on more invalid display/window combinations + https://bugzilla.gnome.org/show_bug.cgi?id=774851 + +2016-11-20 12:40:07 +0000 Tim-Philipp Müller <tim@centricular.com> + + * tests/check/Makefile.am: + tests: fix lib and cflags order in Makefile.am + pnm: add misssing continuation slash at end of line + vp8parser: no need to link codecparsers twice + dash_demux, mssdemux, hlsdemux: fix lib/flags ordering - local + libs and flags must come first, then base before core before rest + +2016-11-20 14:53:52 +0000 Tim-Philipp Müller <tim@centricular.com> + + * meson.build: + meson: update version + +=== release 1.10.1 === + +2016-11-17 15:53:46 +0200 Sebastian Dröge <sebastian@centricular.com> + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-accurip.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audiofxbad.xml: + * docs/plugins/inspect/plugin-audiomixer.xml: + * docs/plugins/inspect/plugin-audiovisualizers.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bluez.xml: + * docs/plugins/inspect/plugin-bs2b.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-chromaprint.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-compositor.xml: + * docs/plugins/inspect/plugin-curl.xml: + * docs/plugins/inspect/plugin-dashdemux.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-decklink.xml: + * docs/plugins/inspect/plugin-dtls.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvbsuboverlay.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-fieldanalysis.xml: + * docs/plugins/inspect/plugin-flite.xml: + * docs/plugins/inspect/plugin-fluidsynthmidi.xml: + * docs/plugins/inspect/plugin-freeverb.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-gdp.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gmedec.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstgtk.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-hls.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-inter.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-ivtc.xml: + * docs/plugins/inspect/plugin-jp2kdecimator.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-midi.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpegpsdemux.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsdemux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-netsim.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-openal.xml: + * docs/plugins/inspect/plugin-opencv.xml: + * docs/plugins/inspect/plugin-openexr.xml: + * docs/plugins/inspect/plugin-opengl.xml: + * docs/plugins/inspect/plugin-openjpeg.xml: + * docs/plugins/inspect/plugin-opusparse.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qt.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-removesilence.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtmp.xml: + * docs/plugins/inspect/plugin-rtponvif.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-smooth.xml: + * docs/plugins/inspect/plugin-smoothstreaming.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spandsp.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-srtp.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-teletext.xml: + * docs/plugins/inspect/plugin-uvch264.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videofiltersbad.xml: + * docs/plugins/inspect/plugin-videoframe_audiolevel.xml: + * docs/plugins/inspect/plugin-videoparsersbad.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-voaacenc.xml: + * docs/plugins/inspect/plugin-voamrwbenc.xml: + * docs/plugins/inspect/plugin-waylandsink.xml: + * docs/plugins/inspect/plugin-webp.xml: + * docs/plugins/inspect/plugin-webrtcdsp.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x265.xml: + * docs/plugins/inspect/plugin-y4mdec.xml: + * docs/plugins/inspect/plugin-yadif.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 1.10.1 + +2016-11-17 15:05:01 +0200 Sebastian Dröge <sebastian@centricular.com> + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/el.po: + * po/en_GB.po: + * po/eo.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/gl.po: + * po/hr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ro.po: + * po/ru.po: + * po/sk.po: + * po/sl.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files 2016-11-17 14:46:17 +0200 Sebastian Dröge <sebastian@centricular.com>
diff --git a/Makefile.in b/Makefile.in index d5f9bb8..ed26e37 100644 --- a/Makefile.in +++ b/Makefile.in
@@ -207,7 +207,7 @@ $(top_srcdir)/common/release.mak \ $(top_srcdir)/common/win32.mak ABOUT-NLS AUTHORS COPYING \ COPYING.LIB ChangeLog INSTALL NEWS README compile config.guess \ - config.rpath config.sub install-sh ltmain.sh missing + config.rpath config.sub depcomp install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir)
diff --git a/NEWS b/NEWS index 23b5ab7..815dee3 100644 --- a/NEWS +++ b/NEWS
@@ -1,8 +1,8 @@ # GStreamer 1.10 Release Notes GStreamer 1.10.0 was originally released on 1st November 2016. -The latest bug-fix release in the 1.10 series is [1.10.1](#1.10.1) and was -released on 17 November 2016. +The latest bug-fix release in the 1.10 series is [1.10.2](#1.10.2) and was +released on 29 November 2016. The GStreamer team is proud to announce a new major feature release in the stable 1.x API series of your favourite cross-platform multimedia framework! @@ -13,7 +13,7 @@ See [https://gstreamer.freedesktop.org/releases/1.10/][latest] for the latest version of this document. -*Last updated: Tuesday 17 Nov 2016, 15:00 UTC [(log)][gitlog]* +*Last updated: Tuesday 29 Nov 2016, 12:30 UTC [(log)][gitlog]* [latest]: https://gstreamer.freedesktop.org/releases/1.10/ [gitlog]: https://cgit.freedesktop.org/gstreamer/www/log/src/htdocs/releases/1.10/release-notes-1.10.md @@ -1084,7 +1084,7 @@ #### Major bugfixes in 1.10.1 - - Security-relevant bugfix in the vmnc decoder (no CVE) + - Security-relevant bugfix in the vmnc decoder (CVE-2016-9445, CVE-2016-9446) - Various bugfixes to playbin3/decodebin3 - Fix error at the end of playing any WAV file - Fix usability of androidmedia plugin if the camera or sensor API is not @@ -1099,6 +1099,31 @@ [buglist-1.10.1]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=168172&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.10.1 +<a name="1.10.2"></a> + +### 1.10.2 + +The first 1.10 bug-fix release (1.10.2) was released on 29 November 2016. +This release only contains bugfixes and it should be safe to update from 1.10.x. + +#### Major bugfixes in 1.10.2 + + - Security-relevant bugfix in the FLI/FLX/FLC decoder (CVE-2016-9634, + CVE-2016-9635, CVE-2016-9636) + - Various fixes for crashes, assertions and other failures on fuzzed input + files (among others, thanks to Hanno Böck for testing and reporting) + - SAVP/SAVPF profile in gst-rtsp-server works for live streams again, and the + correct MIKEY policy message is generated + - Further OpenGL related bugfixes + - gst-libav was updated to ffmpeg 3.2.1 + - ... and many, many more! + +For a full list of bugfixes see [Bugzilla][buglist-1.10.2]. Note that this is +not the full list of changes. For the full list of changes please refer to the +GIT logs or ChangeLogs of the particular modules. + +[buglist-1.10.2]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=168172&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.10.2 + ## Known Issues - iOS builds with iOS 6 SDK and old C++ STL. You need to select iOS 6 instead
diff --git a/RELEASE b/RELEASE index 6317e5f..e2b60d1 100644 --- a/RELEASE +++ b/RELEASE
@@ -1,11 +1,11 @@ -Release notes for GStreamer Bad Plugins 1.10.1 +Release notes for GStreamer Bad Plugins 1.10.2 -The GStreamer team is proud to announce the first bugfix release in the stable +The GStreamer team is proud to announce the second bugfix release in the stable 1.10 release series of your favourite cross-platform multimedia framework! -This release only contains bugfixes and it is safe to update from 1.10.0. For a +This release only contains bugfixes and it is safe to update from 1.10.x. For a full list of bugfixes see Bugzilla. @@ -60,11 +60,14 @@ Bugs fixed in this release - * 773681 : directsoundsink: High cpu usage on windows x86 - * 773313 : decklinkaudiosrc: Ignore channel-mask when checking set_caps compatibility - * 774287 : hls: gst_m3u8_has_next_fragment crash - * 774328 : dtlssrtpenc: criticals with gst-inspect-1.0 and state change unit test - * 774462 : glwindow: found memory leak of navigation_thread + * 774624 : GstGL build error due to not finding GstVideo-1.0.gir + * 774702 : dashdemux: Fix leak in gst_dash_demux_stream_free + * 774851 : glimagesink segfault when specifying GST_GL_WINDOW to something else than x11 + * 774896 : h264 parser: Off by one read in gst_h264_parse_set_caps() + * 775048 : mpegts decoder: Out of bounds read in gst_mpegts_section_new + * 775120 : mpegts parser: null pointer deref in _parse_pat + * 775127 : hls_demux.testSeekUpdateStopPosition : The unit test that was always wrong + * 775130 : h264 parser: invalid input causes assert ==== Download ==== @@ -101,9 +104,10 @@ Contributors to this release - * Haihua Hu + * David Evans + * Edward Hervey * Matthew Waters * Sebastian Dröge + * Seungha Yang * Tim-Philipp Müller - * Vivia Nikolaidou \ No newline at end of file
diff --git a/config.guess b/config.guess index 0967f2a..2e9ad7f 100755 --- a/config.guess +++ b/config.guess
@@ -2,7 +2,7 @@ # Attempt to guess a canonical system name. # Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2016-04-02' +timestamp='2016-10-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -186,9 +186,12 @@ *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in - arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ @@ -997,6 +1000,9 @@ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; @@ -1029,6 +1035,9 @@ ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; @@ -1408,18 +1417,17 @@ cat >&2 <<EOF $0: unable to guess system type -This script, last modified $timestamp, has failed to recognize -the operating system you are using. It is advised that you -download the most up to date version of the config scripts from +This script (version $timestamp), has failed to recognize the +operating system you are using. If your script is old, overwrite +config.guess and config.sub with the latest versions from: http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess and http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub -If the version you run ($0) is already up to date, please -send the following data and any information you think might be -pertinent to <config-patches@gnu.org> in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp
diff --git a/config.sub b/config.sub index 8d39c4b..dd2ca93 100755 --- a/config.sub +++ b/config.sub
@@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2016-03-30' +timestamp='2016-11-04' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -117,7 +117,7 @@ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -301,6 +301,7 @@ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ @@ -428,6 +429,7 @@ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ | pyramid-* \ | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ @@ -643,6 +645,14 @@ basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -1022,7 +1032,7 @@ ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) @@ -1032,7 +1042,7 @@ ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) @@ -1389,7 +1399,7 @@ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ @@ -1399,7 +1409,7 @@ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos*) + | -onefs* | -tirtos* | -phoenix* | -fuchsia*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*)
diff --git a/configure b/configure index 7983b05..b5a3f41 100755 --- a/configure +++ b/configure
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for GStreamer Bad Plug-ins 1.10.1. +# Generated by GNU Autoconf 2.69 for GStreamer Bad Plug-ins 1.10.2. # # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>. # @@ -591,8 +591,8 @@ # Identity of this package. PACKAGE_NAME='GStreamer Bad Plug-ins' PACKAGE_TARNAME='gst-plugins-bad' -PACKAGE_VERSION='1.10.1' -PACKAGE_STRING='GStreamer Bad Plug-ins 1.10.1' +PACKAGE_VERSION='1.10.2' +PACKAGE_STRING='GStreamer Bad Plug-ins 1.10.2' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer' PACKAGE_URL='' @@ -2689,7 +2689,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GStreamer Bad Plug-ins 1.10.1 to adapt to many kinds of systems. +\`configure' configures GStreamer Bad Plug-ins 1.10.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2761,7 +2761,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GStreamer Bad Plug-ins 1.10.1:";; + short | recursive ) echo "Configuration of GStreamer Bad Plug-ins 1.10.2:";; esac cat <<\_ACEOF @@ -3485,7 +3485,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GStreamer Bad Plug-ins configure 1.10.1 +GStreamer Bad Plug-ins configure 1.10.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -4458,7 +4458,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GStreamer Bad Plug-ins $as_me 1.10.1, which was +It was created by GStreamer Bad Plug-ins $as_me 1.10.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -5440,7 +5440,7 @@ # Define the identity of the package. PACKAGE='gst-plugins-bad' - VERSION='1.10.1' + VERSION='1.10.2' cat >>confdefs.h <<_ACEOF @@ -5651,9 +5651,9 @@ - PACKAGE_VERSION_MAJOR=$(echo 1.10.1 | cut -d'.' -f1) - PACKAGE_VERSION_MINOR=$(echo 1.10.1 | cut -d'.' -f2) - PACKAGE_VERSION_MICRO=$(echo 1.10.1 | cut -d'.' -f3) + PACKAGE_VERSION_MAJOR=$(echo 1.10.2 | cut -d'.' -f1) + PACKAGE_VERSION_MINOR=$(echo 1.10.2 | cut -d'.' -f2) + PACKAGE_VERSION_MICRO=$(echo 1.10.2 | cut -d'.' -f3) @@ -5664,7 +5664,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5 $as_echo_n "checking nano version... " >&6; } - NANO=$(echo 1.10.1 | cut -d'.' -f4) + NANO=$(echo 1.10.2 | cut -d'.' -f4) if test x"$NANO" = x || test "x$NANO" = "x0" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5 @@ -10508,10 +10508,10 @@ done - GST_CURRENT=1001 + GST_CURRENT=1002 GST_REVISION=0 - GST_AGE=1001 - GST_LIBVERSION=1001:0:1001 + GST_AGE=1002 + GST_LIBVERSION=1002:0:1002 @@ -61312,7 +61312,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GStreamer Bad Plug-ins $as_me 1.10.1, which was +This file was extended by GStreamer Bad Plug-ins $as_me 1.10.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -61378,7 +61378,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -GStreamer Bad Plug-ins config.status 1.10.1 +GStreamer Bad Plug-ins config.status 1.10.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac index 35986ec..f9a3051 100644 --- a/configure.ac +++ b/configure.ac
@@ -3,7 +3,7 @@ dnl initialize autoconf dnl when going to/from release please set the nano (fourth number) right ! dnl releases only do Wall, git and prerelease does Werror too -AC_INIT([GStreamer Bad Plug-ins],[1.10.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad]) +AC_INIT([GStreamer Bad Plug-ins],[1.10.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad]) AG_GST_INIT @@ -51,7 +51,7 @@ dnl - interfaces added -> increment AGE dnl - interfaces removed -> AGE = 0 dnl sets GST_LT_LDFLAGS -AS_LIBTOOL(GST, 1001, 0, 1001) +AS_LIBTOOL(GST, 1002, 0, 1002) dnl *** required versions of GStreamer stuff *** GST_REQ=1.10.0
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html index efd6412..cf24f01 100644 --- a/docs/libs/html/api-index-full.html +++ b/docs/libs/html/api-index-full.html
@@ -403,15 +403,15 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextCocoa.html#GstGLContextCocoa">GstGLContextCocoa</a>, struct in GstGLContextCocoa +GstGLContextCocoa, struct in GstGLContextCocoa </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextEagl.html#GstGLContextEagl">GstGLContextEagl</a>, struct in GstGLContextEagl +GstGLContextEagl, struct in GstGLContextEagl </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextEGL.html#GstGLContextEGL">GstGLContextEGL</a>, struct in GstGLContextEGL +GstGLContextEGL, struct in GstGLContextEGL </dt> <dd></dd> <dt> @@ -419,7 +419,7 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextGLX.html#GstGLContextGLX">GstGLContextGLX</a>, struct in GstGLContextGLX +GstGLContextGLX, struct in GstGLContextGLX </dt> <dd></dd> <dt> @@ -427,7 +427,7 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextWGL.html#GstGLContextWGL">GstGLContextWGL</a>, struct in GstGLContextWGL +GstGLContextWGL, struct in GstGLContextWGL </dt> <dd></dd> <dt> @@ -667,11 +667,11 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowAndroid.html#GstGLWindowAndroidEGL">GstGLWindowAndroidEGL</a>, struct in GstGLWindowAndroid +GstGLWindowAndroidEGL, struct in GstGLWindowAndroid </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowAndroid.html#GstGLWindowAndroidEGLClass">GstGLWindowAndroidEGLClass</a>, struct in GstGLWindowAndroid +GstGLWindowAndroidEGLClass, struct in GstGLWindowAndroid </dt> <dd></dd> <dt> @@ -683,19 +683,19 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowCocoa.html#GstGLWindowCocoa">GstGLWindowCocoa</a>, struct in GstGLWindowCocoa +GstGLWindowCocoa, struct in GstGLWindowCocoa </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowCocoa.html#GstGLWindowCocoaClass">GstGLWindowCocoaClass</a>, struct in GstGLWindowCocoa +GstGLWindowCocoaClass, struct in GstGLWindowCocoa </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowDispmanx.html#GstGLWindowDispmanxEGL">GstGLWindowDispmanxEGL</a>, struct in GstGLWindowDispmanx +GstGLWindowDispmanxEGL, struct in GstGLWindowDispmanx </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowDispmanx.html#GstGLWindowDispmanxEGLClass">GstGLWindowDispmanxEGLClass</a>, struct in GstGLWindowDispmanx +GstGLWindowDispmanxEGLClass, struct in GstGLWindowDispmanx </dt> <dd></dd> <dt> @@ -707,27 +707,27 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowWayland.html#GstGLWindowWaylandEGL">GstGLWindowWaylandEGL</a>, struct in GstGLWindowWayland +GstGLWindowWaylandEGL, struct in GstGLWindowWayland </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowWayland.html#GstGLWindowWaylandEGLClass">GstGLWindowWaylandEGLClass</a>, struct in GstGLWindowWayland +GstGLWindowWaylandEGLClass, struct in GstGLWindowWayland </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowWin32.html#GstGLWindowWin32">GstGLWindowWin32</a>, struct in GstGLWindowWin32 +GstGLWindowWin32, struct in GstGLWindowWin32 </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowWin32.html#GstGLWindowWin32Class">GstGLWindowWin32Class</a>, struct in GstGLWindowWin32 +GstGLWindowWin32Class, struct in GstGLWindowWin32 </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowX11.html#GstGLWindowX11">GstGLWindowX11</a>, struct in GstGLWindowX11 +GstGLWindowX11, struct in GstGLWindowX11 </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowX11.html#GstGLWindowX11Class">GstGLWindowX11Class</a>, struct in GstGLWindowX11 +GstGLWindowX11Class, struct in GstGLWindowX11 </dt> <dd></dd> <dt> @@ -955,15 +955,15 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextCocoa.html#gst-gl-context-cocoa-get-current-context">gst_gl_context_cocoa_get_current_context</a>, function in GstGLContextCocoa +gst_gl_context_cocoa_get_current_context, function in GstGLContextCocoa </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextCocoa.html#gst-gl-context-cocoa-get-pixel-format">gst_gl_context_cocoa_get_pixel_format</a>, function in GstGLContextCocoa +gst_gl_context_cocoa_get_pixel_format, function in GstGLContextCocoa </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextCocoa.html#gst-gl-context-cocoa-new">gst_gl_context_cocoa_new</a>, function in GstGLContextCocoa +gst_gl_context_cocoa_new, function in GstGLContextCocoa </dt> <dd></dd> <dt> @@ -983,15 +983,15 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextEagl.html#gst-gl-context-eagl-get-current-context">gst_gl_context_eagl_get_current_context</a>, function in GstGLContextEagl +gst_gl_context_eagl_get_current_context, function in GstGLContextEagl </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextEagl.html#gst-gl-context-eagl-new">gst_gl_context_eagl_new</a>, function in GstGLContextEagl +gst_gl_context_eagl_new, function in GstGLContextEagl </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextEGL.html#gst-gl-context-egl-get-current-context">gst_gl_context_egl_get_current_context</a>, function in GstGLContextEGL +gst_gl_context_egl_get_current_context, function in GstGLContextEGL </dt> <dd></dd> <dt> @@ -999,11 +999,11 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextEGL.html#gst-gl-context-egl-get-proc-address">gst_gl_context_egl_get_proc_address</a>, function in GstGLContextEGL +gst_gl_context_egl_get_proc_address, function in GstGLContextEGL </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextEGL.html#gst-gl-context-egl-new">gst_gl_context_egl_new</a>, function in GstGLContextEGL +gst_gl_context_egl_new, function in GstGLContextEGL </dt> <dd></dd> <dt> @@ -1071,15 +1071,15 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextGLX.html#gst-gl-context-glx-get-current-context">gst_gl_context_glx_get_current_context</a>, function in GstGLContextGLX +gst_gl_context_glx_get_current_context, function in GstGLContextGLX </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextGLX.html#gst-gl-context-glx-get-proc-address">gst_gl_context_glx_get_proc_address</a>, function in GstGLContextGLX +gst_gl_context_glx_get_proc_address, function in GstGLContextGLX </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextGLX.html#gst-gl-context-glx-new">gst_gl_context_glx_new</a>, function in GstGLContextGLX +gst_gl_context_glx_new, function in GstGLContextGLX </dt> <dd></dd> <dt> @@ -1111,15 +1111,15 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextWGL.html#gst-gl-context-wgl-get-current-context">gst_gl_context_wgl_get_current_context</a>, function in GstGLContextWGL +gst_gl_context_wgl_get_current_context, function in GstGLContextWGL </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextWGL.html#gst-gl-context-wgl-get-proc-address">gst_gl_context_wgl_get_proc_address</a>, function in GstGLContextWGL +gst_gl_context_wgl_get_proc_address, function in GstGLContextWGL </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLContextWGL.html#gst-gl-context-wgl-new">gst_gl_context_wgl_new</a>, function in GstGLContextWGL +gst_gl_context_wgl_new, function in GstGLContextWGL </dt> <dd></dd> <dt> @@ -1823,7 +1823,7 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowAndroid.html#gst-gl-window-android-egl-new">gst_gl_window_android_egl_new</a>, function in GstGLWindowAndroid +gst_gl_window_android_egl_new, function in GstGLWindowAndroid </dt> <dd></dd> <dt> @@ -1831,15 +1831,15 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowCocoa.html#gst-gl-window-cocoa-create-window">gst_gl_window_cocoa_create_window</a>, function in GstGLWindowCocoa +gst_gl_window_cocoa_create_window, function in GstGLWindowCocoa </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowCocoa.html#gst-gl-window-cocoa-new">gst_gl_window_cocoa_new</a>, function in GstGLWindowCocoa +gst_gl_window_cocoa_new, function in GstGLWindowCocoa </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowDispmanx.html#gst-gl-window-dispmanx-egl-new">gst_gl_window_dispmanx_egl_new</a>, function in GstGLWindowDispmanx +gst_gl_window_dispmanx_egl_new, function in GstGLWindowDispmanx </dt> <dd></dd> <dt> @@ -1939,31 +1939,31 @@ </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowWayland.html#gst-gl-window-wayland-egl-new">gst_gl_window_wayland_egl_new</a>, function in GstGLWindowWayland +gst_gl_window_wayland_egl_new, function in GstGLWindowWayland </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowWin32.html#gst-gl-window-win32-create-window">gst_gl_window_win32_create_window</a>, function in GstGLWindowWin32 +gst_gl_window_win32_create_window, function in GstGLWindowWin32 </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowWin32.html#gst-gl-window-win32-new">gst_gl_window_win32_new</a>, function in GstGLWindowWin32 +gst_gl_window_win32_new, function in GstGLWindowWin32 </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowX11.html#gst-gl-window-x11-create-window">gst_gl_window_x11_create_window</a>, function in GstGLWindowX11 +gst_gl_window_x11_create_window, function in GstGLWindowX11 </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowX11.html#gst-gl-window-x11-new">gst_gl_window_x11_new</a>, function in GstGLWindowX11 +gst_gl_window_x11_new, function in GstGLWindowX11 </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowX11.html#gst-gl-window-x11-trap-x-errors">gst_gl_window_x11_trap_x_errors</a>, function in GstGLWindowX11 +gst_gl_window_x11_trap_x_errors, function in GstGLWindowX11 </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0gst-plugins-bad-libs-GstGLWindowX11.html#gst-gl-window-x11-untrap-x-errors">gst_gl_window_x11_untrap_x_errors</a>, function in GstGLWindowX11 +gst_gl_window_x11_untrap_x_errors, function in GstGLWindowX11 </dt> <dd></dd> <a name="idxH"></a><h3 class="title">H</h3>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html index 6320114..041bcc7 100644 --- a/docs/libs/html/index.html +++ b/docs/libs/html/index.html
@@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Bad Plugins 1.0 Library Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for GStreamer Bad Library 1.0 (1.10.1) + for GStreamer Bad Library 1.0 (1.10.2) <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/</a>. </p></div> </div>
diff --git a/docs/plugins/gst-plugins-bad-plugins.hierarchy b/docs/plugins/gst-plugins-bad-plugins.hierarchy index 2a879f1..913cd8e 100644 --- a/docs/plugins/gst-plugins-bad-plugins.hierarchy +++ b/docs/plugins/gst-plugins-bad-plugins.hierarchy
@@ -391,45 +391,6 @@ GstColorBalanceChannel GstEncodingProfile MXFMetadataBase - MXFDescriptiveMetadata - MXFDMS1 - MXFDMS1Address - MXFDMS1Communications - MXFDMS1ContactsList - MXFDMS1Framework - MXFDMS1ProductionClipFramework - MXFDMS1ClipFramework - MXFDMS1ProductionFramework - MXFDMS1SceneFramework - MXFDMS1NameValue - MXFDMS1PictureFormat - MXFDMS1Processing - MXFDMS1Project - MXFDMS1Publication - MXFDMS1TextLanguage - MXFDMS1Branding - MXFDMS1CueWords - MXFDMS1Shot - MXFDMS1Thesaurus - MXFDMS1Annotation - MXFDMS1Award - MXFDMS1CaptionsDescription - MXFDMS1Classification - MXFDMS1Contact - MXFDMS1Location - MXFDMS1Organisation - MXFDMS1Person - MXFDMS1Contract - MXFDMS1DeviceParameters - MXFDMS1Event - MXFDMS1GroupRelationship - MXFDMS1Identification - MXFDMS1KeyPoint - MXFDMS1Participant - MXFDMS1Rights - MXFDMS1Scripting - MXFDMS1SettingPeriod - MXFDMS1Titles MXFMetadata MXFMetadataContentStorage MXFMetadataEssenceContainerData @@ -476,4 +437,3 @@ GstVideoOverlay GstWaylandVideo GtkBuildable - MXFDescriptiveMetadataFrameworkInterface
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-glimagesinkelement.html b/docs/plugins/html/gst-plugins-bad-plugins-glimagesinkelement.html index a735f9e..adb8500 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-glimagesinkelement.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-glimagesinkelement.html
@@ -98,7 +98,7 @@ <td class="property_flags">Read / Write</td> </tr> <tr> -<td class="property_type"><span class="type">GstGLStereoDownmix</span></td> +<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0GstGLViewConvert.html#GstGLStereoDownmix"><span class="type">GstGLStereoDownmix</span></a></td> <td class="property_name"><a class="link" href="gst-plugins-bad-plugins-glimagesinkelement.html#GstGLImageSink--output-multiview-downmix-mode" title="The “output-multiview-downmix-mode” property">output-multiview-downmix-mode</a></td> <td class="property_flags">Read / Write</td> </tr> @@ -324,7 +324,7 @@ <hr> <div class="refsect2"> <a name="GstGLImageSink--output-multiview-downmix-mode"></a><h3>The <code class="literal">“output-multiview-downmix-mode”</code> property</h3> -<pre class="programlisting"> “output-multiview-downmix-mode” <span class="type">GstGLStereoDownmix</span></pre> +<pre class="programlisting"> “output-multiview-downmix-mode” <a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0GstGLViewConvert.html#GstGLStereoDownmix"><span class="type">GstGLStereoDownmix</span></a></pre> <p>Output anaglyph type to generate when downmixing to mono.</p> <p>Flags: Read / Write</p> <p>Default value: Dubois optimised Green-Magenta anaglyph</p>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-glstereomix.html b/docs/plugins/html/gst-plugins-bad-plugins-glstereomix.html index f6e4334..e95aa30 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-glstereomix.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-glstereomix.html
@@ -43,7 +43,7 @@ <col width="200px" class="properties_flags"> </colgroup> <tbody><tr> -<td class="property_type"><span class="type">GstGLStereoDownmix</span></td> +<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0GstGLViewConvert.html#GstGLStereoDownmix"><span class="type">GstGLStereoDownmix</span></a></td> <td class="property_name"><a class="link" href="gst-plugins-bad-plugins-glstereomix.html#GstGLStereoMix--downmix-mode" title="The “downmix-mode” property">downmix-mode</a></td> <td class="property_flags">Read / Write</td> </tr></tbody> @@ -252,7 +252,7 @@ <a name="gst-plugins-bad-plugins-glstereomix.property-details"></a><h2>Property Details</h2> <div class="refsect2"> <a name="GstGLStereoMix--downmix-mode"></a><h3>The <code class="literal">“downmix-mode”</code> property</h3> -<pre class="programlisting"> “downmix-mode” <span class="type">GstGLStereoDownmix</span></pre> +<pre class="programlisting"> “downmix-mode” <a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0GstGLViewConvert.html#GstGLStereoDownmix"><span class="type">GstGLStereoDownmix</span></a></pre> <p>Output anaglyph type to generate when downmixing to mono.</p> <p>Flags: Read / Write</p> <p>Default value: Dubois optimised Green-Magenta anaglyph</p>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-glviewconvert.html b/docs/plugins/html/gst-plugins-bad-plugins-glviewconvert.html index abb8b4a..bc43e0b 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-glviewconvert.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-glviewconvert.html
@@ -43,7 +43,7 @@ </colgroup> <tbody> <tr> -<td class="property_type"><span class="type">GstGLStereoDownmix</span></td> +<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0GstGLViewConvert.html#GstGLStereoDownmix"><span class="type">GstGLStereoDownmix</span></a></td> <td class="property_name"><a class="link" href="gst-plugins-bad-plugins-glviewconvert.html#GstGLViewConvertElement--downmix-mode" title="The “downmix-mode” property">downmix-mode</a></td> <td class="property_flags">Read / Write</td> </tr> @@ -234,7 +234,7 @@ <a name="gst-plugins-bad-plugins-glviewconvert.property-details"></a><h2>Property Details</h2> <div class="refsect2"> <a name="GstGLViewConvertElement--downmix-mode"></a><h3>The <code class="literal">“downmix-mode”</code> property</h3> -<pre class="programlisting"> “downmix-mode” <span class="type">GstGLStereoDownmix</span></pre> +<pre class="programlisting"> “downmix-mode” <a href="/usr/share/gtk-doc/html/gst-plugins-bad-libs-1.0GstGLViewConvert.html#GstGLStereoDownmix"><span class="type">GstGLStereoDownmix</span></a></pre> <p>Output anaglyph type to generate when downmixing to mono.</p> <p>Flags: Read / Write</p> <p>Default value: Dubois optimised Green-Magenta anaglyph</p>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html index fba6224..40f293f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html index 337bbff..a6f05d1 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiomixer.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiomixer.html index ab534fc..1379d2b 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiomixer.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiomixer.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html index ea14780..ca95a27 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html index 051ed64..c72c95f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html index dc3804c..0e83165 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bs2b.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bs2b.html index 2d349cb..fe7e312 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bs2b.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bs2b.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html index a136231..df2fbe0 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html index 319d0b7..294b471 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html index 418b7aa..ae40196 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html index 0fee052..a4821ac 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html index 8188adf..e4c8b88 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html index e9113d3..dc2416f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html index 2a9ac93..6ec3488 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html index 45116fa..466d2ed 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html index ccb54cf..3da2ad0 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html index 7760412..402ba12 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html index fa8de8b..f721e21 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html index d85d265..a4f270c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html index f6d83d7..433658a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html index 70a7d2a..29492c5 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html index 28cf31b..abac403 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html index 3fc8551..35298ce 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html index 05e518f..f0ee560 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html index 59e64fd..7a3d23a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html index 433e1bd..d6f9439 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html index 0056ffc..3e5d15e 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html index 5c5228a..be084b3 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html index 3af6e03..6e171cd 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html index 2360624..85755a3 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-ofa.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ofa.html index 7623de3..902b5c0 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-ofa.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ofa.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-openal.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-openal.html index 076ebd7..f2a0486 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-openal.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-openal.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html index aabf2cd..4cbf28d 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-opengl.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opengl.html index a5ce1a5..f9628ef 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-opengl.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opengl.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html index c1c893d..53ac02d 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html index 54f9961..c72d99a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html index 99ddc2c..f757f71 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html index 4e42666..13c3c47 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html index aa45a35..e2f5228 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html index 19d6042..bebac8f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html index 76bff67..958cd75 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html index 5174a1d..2aa3d39 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html index 202d733..ff86a16 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-voamrwbenc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-voamrwbenc.html index 9ded448..dff87f4 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-voamrwbenc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-voamrwbenc.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-webrtcdsp.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-webrtcdsp.html index 243d1be..bfe6b0f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-webrtcdsp.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-webrtcdsp.html
@@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html index fb73b67..528dd31 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html
@@ -41,7 +41,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.10.1</td> +<td>1.10.2</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html index ff6b576..feced84 100644 --- a/docs/plugins/html/index.html +++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Bad Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for GStreamer Bad Plugins 1.0 (1.10.1) + for GStreamer Bad Plugins 1.0 (1.10.2) The latest version of this documentation can be found on-line at <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/</a>. </p></div>
diff --git a/docs/plugins/inspect/plugin-accurip.xml b/docs/plugins/inspect/plugin-accurip.xml index e7fd395..47975cb 100644 --- a/docs/plugins/inspect/plugin-accurip.xml +++ b/docs/plugins/inspect/plugin-accurip.xml
@@ -3,7 +3,7 @@ <description>Computes an AccurateRip CRC</description> <filename>../../gst/accurip/.libs/libgstaccurip.so</filename> <basename>libgstaccurip.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-adpcmdec.xml b/docs/plugins/inspect/plugin-adpcmdec.xml index d553995..300316b 100644 --- a/docs/plugins/inspect/plugin-adpcmdec.xml +++ b/docs/plugins/inspect/plugin-adpcmdec.xml
@@ -3,7 +3,7 @@ <description>ADPCM decoder</description> <filename>../../gst/adpcmdec/.libs/libgstadpcmdec.so</filename> <basename>libgstadpcmdec.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-adpcmenc.xml b/docs/plugins/inspect/plugin-adpcmenc.xml index 5b699bd..66fe0d2 100644 --- a/docs/plugins/inspect/plugin-adpcmenc.xml +++ b/docs/plugins/inspect/plugin-adpcmenc.xml
@@ -3,7 +3,7 @@ <description>ADPCM encoder</description> <filename>../../gst/adpcmenc/.libs/libgstadpcmenc.so</filename> <basename>libgstadpcmenc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-aiff.xml b/docs/plugins/inspect/plugin-aiff.xml index e5506e7..c75ecb6 100644 --- a/docs/plugins/inspect/plugin-aiff.xml +++ b/docs/plugins/inspect/plugin-aiff.xml
@@ -3,7 +3,7 @@ <description>Create and parse Audio Interchange File Format (AIFF) files</description> <filename>../../gst/aiff/.libs/libgstaiff.so</filename> <basename>libgstaiff.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-asfmux.xml b/docs/plugins/inspect/plugin-asfmux.xml index cb22a45..71e47f1 100644 --- a/docs/plugins/inspect/plugin-asfmux.xml +++ b/docs/plugins/inspect/plugin-asfmux.xml
@@ -3,7 +3,7 @@ <description>ASF Muxer Plugin</description> <filename>../../gst/asfmux/.libs/libgstasfmux.so</filename> <basename>libgstasfmux.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-assrender.xml b/docs/plugins/inspect/plugin-assrender.xml index 6bb50dd..e58c79c 100644 --- a/docs/plugins/inspect/plugin-assrender.xml +++ b/docs/plugins/inspect/plugin-assrender.xml
@@ -3,7 +3,7 @@ <description>ASS/SSA subtitle renderer</description> <filename>../../ext/assrender/.libs/libgstassrender.so</filename> <basename>libgstassrender.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiofxbad.xml b/docs/plugins/inspect/plugin-audiofxbad.xml index 7f78a60..0b307da 100644 --- a/docs/plugins/inspect/plugin-audiofxbad.xml +++ b/docs/plugins/inspect/plugin-audiofxbad.xml
@@ -3,7 +3,7 @@ <description>Audio filters from gst-plugins-bad</description> <filename>../../gst/audiofxbad/.libs/libgstaudiofxbad.so</filename> <basename>libgstaudiofxbad.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-audiomixer.xml b/docs/plugins/inspect/plugin-audiomixer.xml index 2a79212..ac3f2b3 100644 --- a/docs/plugins/inspect/plugin-audiomixer.xml +++ b/docs/plugins/inspect/plugin-audiomixer.xml
@@ -3,7 +3,7 @@ <description>Mixes multiple audio streams</description> <filename>../../gst/audiomixer/.libs/libgstaudiomixer.so</filename> <basename>libgstaudiomixer.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiovisualizers.xml b/docs/plugins/inspect/plugin-audiovisualizers.xml index 292a252..0c10270 100644 --- a/docs/plugins/inspect/plugin-audiovisualizers.xml +++ b/docs/plugins/inspect/plugin-audiovisualizers.xml
@@ -3,7 +3,7 @@ <description>Creates video visualizations of audio input</description> <filename>../../gst/audiovisualizers/.libs/libgstaudiovisualizers.so</filename> <basename>libgstaudiovisualizers.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-autoconvert.xml b/docs/plugins/inspect/plugin-autoconvert.xml index 319e3d5..5153926 100644 --- a/docs/plugins/inspect/plugin-autoconvert.xml +++ b/docs/plugins/inspect/plugin-autoconvert.xml
@@ -3,7 +3,7 @@ <description>Selects convertor element based on caps</description> <filename>../../gst/autoconvert/.libs/libgstautoconvert.so</filename> <basename>libgstautoconvert.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-bayer.xml b/docs/plugins/inspect/plugin-bayer.xml index b71750c..5598043 100644 --- a/docs/plugins/inspect/plugin-bayer.xml +++ b/docs/plugins/inspect/plugin-bayer.xml
@@ -3,7 +3,7 @@ <description>Elements to convert Bayer images</description> <filename>../../gst/bayer/.libs/libgstbayer.so</filename> <basename>libgstbayer.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-bluez.xml b/docs/plugins/inspect/plugin-bluez.xml index 4b3c2b7..4d0e3d1 100644 --- a/docs/plugins/inspect/plugin-bluez.xml +++ b/docs/plugins/inspect/plugin-bluez.xml
@@ -3,7 +3,7 @@ <description>Bluez-based bluetooth support</description> <filename>../../sys/bluez/.libs/libgstbluez.so</filename> <basename>libgstbluez.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-bs2b.xml b/docs/plugins/inspect/plugin-bs2b.xml index 58bb665..dcec29c 100644 --- a/docs/plugins/inspect/plugin-bs2b.xml +++ b/docs/plugins/inspect/plugin-bs2b.xml
@@ -3,7 +3,7 @@ <description>Improve headphone listening of stereo audio recordsusing the bs2b library.</description> <filename>../../ext/bs2b/.libs/libgstbs2b.so</filename> <basename>libgstbs2b.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-bz2.xml b/docs/plugins/inspect/plugin-bz2.xml index ff042ef..324813b 100644 --- a/docs/plugins/inspect/plugin-bz2.xml +++ b/docs/plugins/inspect/plugin-bz2.xml
@@ -3,7 +3,7 @@ <description>Compress or decompress streams</description> <filename>../../ext/bz2/.libs/libgstbz2.so</filename> <basename>libgstbz2.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-camerabin.xml b/docs/plugins/inspect/plugin-camerabin.xml index a6be470..bee563c 100644 --- a/docs/plugins/inspect/plugin-camerabin.xml +++ b/docs/plugins/inspect/plugin-camerabin.xml
@@ -3,7 +3,7 @@ <description>Take image snapshots and record movies from camera</description> <filename>../../gst/camerabin2/.libs/libgstcamerabin2.so</filename> <basename>libgstcamerabin2.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-chromaprint.xml b/docs/plugins/inspect/plugin-chromaprint.xml index bc3838a..d6c56bd 100644 --- a/docs/plugins/inspect/plugin-chromaprint.xml +++ b/docs/plugins/inspect/plugin-chromaprint.xml
@@ -3,7 +3,7 @@ <description>Calculate Chromaprint fingerprint from audio files</description> <filename>../../ext/chromaprint/.libs/libgstchromaprint.so</filename> <basename>libgstchromaprint.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-coloreffects.xml b/docs/plugins/inspect/plugin-coloreffects.xml index 6dfcd2f..4c911bd 100644 --- a/docs/plugins/inspect/plugin-coloreffects.xml +++ b/docs/plugins/inspect/plugin-coloreffects.xml
@@ -3,7 +3,7 @@ <description>Color Look-up Table filters</description> <filename>../../gst/coloreffects/.libs/libgstcoloreffects.so</filename> <basename>libgstcoloreffects.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-compositor.xml b/docs/plugins/inspect/plugin-compositor.xml index 9dfdc5e..c276a49 100644 --- a/docs/plugins/inspect/plugin-compositor.xml +++ b/docs/plugins/inspect/plugin-compositor.xml
@@ -3,7 +3,7 @@ <description>Compositor</description> <filename>../../gst/compositor/.libs/libgstcompositor.so</filename> <basename>libgstcompositor.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-curl.xml b/docs/plugins/inspect/plugin-curl.xml index 38919da..fa994fa 100644 --- a/docs/plugins/inspect/plugin-curl.xml +++ b/docs/plugins/inspect/plugin-curl.xml
@@ -3,7 +3,7 @@ <description>libcurl-based elements</description> <filename>../../ext/curl/.libs/libgstcurl.so</filename> <basename>libgstcurl.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dashdemux.xml b/docs/plugins/inspect/plugin-dashdemux.xml index fe018dd..d13e227 100644 --- a/docs/plugins/inspect/plugin-dashdemux.xml +++ b/docs/plugins/inspect/plugin-dashdemux.xml
@@ -3,7 +3,7 @@ <description>DASH demuxer plugin</description> <filename>../../ext/dash/.libs/libgstdashdemux.so</filename> <basename>libgstdashdemux.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-dataurisrc.xml b/docs/plugins/inspect/plugin-dataurisrc.xml index 683982b..6a86f44 100644 --- a/docs/plugins/inspect/plugin-dataurisrc.xml +++ b/docs/plugins/inspect/plugin-dataurisrc.xml
@@ -3,7 +3,7 @@ <description>data: URI source</description> <filename>../../gst/dataurisrc/.libs/libgstdataurisrc.so</filename> <basename>libgstdataurisrc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dc1394.xml b/docs/plugins/inspect/plugin-dc1394.xml index dfc1efd..36c9e11 100644 --- a/docs/plugins/inspect/plugin-dc1394.xml +++ b/docs/plugins/inspect/plugin-dc1394.xml
@@ -3,7 +3,7 @@ <description>1394 IIDC video source</description> <filename>../../ext/dc1394/.libs/libgstdc1394.so</filename> <basename>libgstdc1394.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-debugutilsbad.xml b/docs/plugins/inspect/plugin-debugutilsbad.xml index bb682a8..c295123 100644 --- a/docs/plugins/inspect/plugin-debugutilsbad.xml +++ b/docs/plugins/inspect/plugin-debugutilsbad.xml
@@ -3,7 +3,7 @@ <description>Collection of elements that may or may not be useful for debugging</description> <filename>../../gst/debugutils/.libs/libgstdebugutilsbad.so</filename> <basename>libgstdebugutilsbad.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-decklink.xml b/docs/plugins/inspect/plugin-decklink.xml index c23060d..7250256 100644 --- a/docs/plugins/inspect/plugin-decklink.xml +++ b/docs/plugins/inspect/plugin-decklink.xml
@@ -3,7 +3,7 @@ <description>Blackmagic Decklink plugin</description> <filename>../../sys/decklink/.libs/libgstdecklink.so</filename> <basename>libgstdecklink.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins</package> @@ -65,7 +65,7 @@ <name>src</name> <direction>source</direction> <presence>always</presence> - <details>video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)v210; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)BGRA; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)24000/1001, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)24000/1001, format=(string)v210; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)24000/1001, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)24000/1001, format=(string)BGRA; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)interleaved, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)interleaved, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)interleaved, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)interleaved, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)v210; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)BGRA; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)BGRA; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)v210; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)ARGB; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)BGRA; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)v210; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)ARGB; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)BGRA; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)v210; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)ARGB; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)BGRA; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)v210; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)ARGB; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)BGRA; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)v210; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)ARGB; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)BGRA; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)BGRA</details> + <details>video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, field-order=(string)bottom-field-first, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, field-order=(string)bottom-field-first, format=(string)v210; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, field-order=(string)bottom-field-first, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, field-order=(string)bottom-field-first, format=(string)BGRA; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)24000/1001, field-order=(string)bottom-field-first, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)24000/1001, field-order=(string)bottom-field-first, format=(string)v210; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)24000/1001, field-order=(string)bottom-field-first, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)24000/1001, field-order=(string)bottom-field-first, format=(string)BGRA; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)interleaved, framerate=(fraction)25/1, field-order=(string)top-field-first, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)interleaved, framerate=(fraction)25/1, field-order=(string)top-field-first, format=(string)v210; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)interleaved, framerate=(fraction)25/1, field-order=(string)top-field-first, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)interleaved, framerate=(fraction)25/1, field-order=(string)top-field-first, format=(string)BGRA; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)v210; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)BGRA; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)25/1, field-order=(string)top-field-first, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)25/1, field-order=(string)top-field-first, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)25/1, field-order=(string)top-field-first, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)25/1, field-order=(string)top-field-first, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, field-order=(string)top-field-first, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, field-order=(string)top-field-first, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, field-order=(string)top-field-first, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, field-order=(string)top-field-first, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30/1, field-order=(string)top-field-first, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30/1, field-order=(string)top-field-first, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30/1, field-order=(string)top-field-first, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction)30/1, field-order=(string)top-field-first, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)BGRA; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)v210; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)ARGB; video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)BGRA; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)v210; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)ARGB; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)BGRA; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)v210; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)ARGB; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)BGRA; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)v210; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)ARGB; video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)BGRA; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)v210; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)ARGB; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)BGRA; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)v210; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)ARGB; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)BGRA; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt709, chroma-site=(string)mpeg2; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)2048, height=(int)1556, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24000/1001, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)24/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)25/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30000/1001, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)30/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)50/1, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60000/1001, format=(string)BGRA; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)UYVY, colorimetry=(string)bt2020, chroma-site=(string)mpeg2; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)v210; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)ARGB; video/x-raw, width=(int)3840, height=(int)2160, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)60/1, format=(string)BGRA</details> </caps> </pads> </element>
diff --git a/docs/plugins/inspect/plugin-dfbvideosink.xml b/docs/plugins/inspect/plugin-dfbvideosink.xml index 63bf5cd..e7fdfbd 100644 --- a/docs/plugins/inspect/plugin-dfbvideosink.xml +++ b/docs/plugins/inspect/plugin-dfbvideosink.xml
@@ -3,7 +3,7 @@ <description>DirectFB video output plugin</description> <filename>../../ext/directfb/.libs/libgstdfbvideosink.so</filename> <basename>libgstdfbvideosink.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dtls.xml b/docs/plugins/inspect/plugin-dtls.xml index ef7f3ab..bb47df5 100644 --- a/docs/plugins/inspect/plugin-dtls.xml +++ b/docs/plugins/inspect/plugin-dtls.xml
@@ -3,7 +3,7 @@ <description>DTLS decoder and encoder plugins</description> <filename>../../ext/dtls/.libs/libgstdtls.so</filename> <basename>libgstdtls.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>BSD</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dtsdec.xml b/docs/plugins/inspect/plugin-dtsdec.xml index 273e428..00ac43a 100644 --- a/docs/plugins/inspect/plugin-dtsdec.xml +++ b/docs/plugins/inspect/plugin-dtsdec.xml
@@ -3,7 +3,7 @@ <description>Decodes DTS audio streams</description> <filename>../../ext/dts/.libs/libgstdtsdec.so</filename> <basename>libgstdtsdec.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>GPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dvb.xml b/docs/plugins/inspect/plugin-dvb.xml index 45256bd..596889a 100644 --- a/docs/plugins/inspect/plugin-dvb.xml +++ b/docs/plugins/inspect/plugin-dvb.xml
@@ -3,7 +3,7 @@ <description>DVB elements</description> <filename>../../sys/dvb/.libs/libgstdvb.so</filename> <basename>libgstdvb.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dvbsuboverlay.xml b/docs/plugins/inspect/plugin-dvbsuboverlay.xml index 173d817..ad48491 100644 --- a/docs/plugins/inspect/plugin-dvbsuboverlay.xml +++ b/docs/plugins/inspect/plugin-dvbsuboverlay.xml
@@ -3,7 +3,7 @@ <description>DVB subtitle renderer</description> <filename>../../gst/dvbsuboverlay/.libs/libgstdvbsuboverlay.so</filename> <basename>libgstdvbsuboverlay.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dvdspu.xml b/docs/plugins/inspect/plugin-dvdspu.xml index 8c5f28c..5b8c738 100644 --- a/docs/plugins/inspect/plugin-dvdspu.xml +++ b/docs/plugins/inspect/plugin-dvdspu.xml
@@ -3,7 +3,7 @@ <description>DVD Sub-picture Overlay element</description> <filename>../../gst/dvdspu/.libs/libgstdvdspu.so</filename> <basename>libgstdvdspu.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-faac.xml b/docs/plugins/inspect/plugin-faac.xml index 39a824d..42af9c4 100644 --- a/docs/plugins/inspect/plugin-faac.xml +++ b/docs/plugins/inspect/plugin-faac.xml
@@ -3,7 +3,7 @@ <description>Free AAC Encoder (FAAC)</description> <filename>../../ext/faac/.libs/libgstfaac.so</filename> <basename>libgstfaac.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-faad.xml b/docs/plugins/inspect/plugin-faad.xml index 58e176d..5e05382 100644 --- a/docs/plugins/inspect/plugin-faad.xml +++ b/docs/plugins/inspect/plugin-faad.xml
@@ -3,7 +3,7 @@ <description>Free AAC Decoder (FAAD)</description> <filename>../../ext/faad/.libs/libgstfaad.so</filename> <basename>libgstfaad.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>GPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-fbdevsink.xml b/docs/plugins/inspect/plugin-fbdevsink.xml index d52d9fb..70a3c9e 100644 --- a/docs/plugins/inspect/plugin-fbdevsink.xml +++ b/docs/plugins/inspect/plugin-fbdevsink.xml
@@ -3,7 +3,7 @@ <description>Linux framebuffer video sink</description> <filename>../../sys/fbdev/.libs/libgstfbdevsink.so</filename> <basename>libgstfbdevsink.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-fdkaac.xml b/docs/plugins/inspect/plugin-fdkaac.xml index 663fd16..01c9a0f 100644 --- a/docs/plugins/inspect/plugin-fdkaac.xml +++ b/docs/plugins/inspect/plugin-fdkaac.xml
@@ -3,7 +3,7 @@ <description>Fraunhofer FDK AAC Codec plugin</description> <filename>../../ext/fdkaac/.libs/libgstfdkaac.so</filename> <basename>libgstfdkaac.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-festival.xml b/docs/plugins/inspect/plugin-festival.xml index 6f4ecfd..c0d83fd 100644 --- a/docs/plugins/inspect/plugin-festival.xml +++ b/docs/plugins/inspect/plugin-festival.xml
@@ -3,7 +3,7 @@ <description>Synthesizes plain text into audio</description> <filename>../../gst/festival/.libs/libgstfestival.so</filename> <basename>libgstfestival.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-fieldanalysis.xml b/docs/plugins/inspect/plugin-fieldanalysis.xml index 4be5dc1..7cf21a8 100644 --- a/docs/plugins/inspect/plugin-fieldanalysis.xml +++ b/docs/plugins/inspect/plugin-fieldanalysis.xml
@@ -3,7 +3,7 @@ <description>Video field analysis</description> <filename>../../gst/fieldanalysis/.libs/libgstfieldanalysis.so</filename> <basename>libgstfieldanalysis.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-flite.xml b/docs/plugins/inspect/plugin-flite.xml index 303936e..304fc7c 100644 --- a/docs/plugins/inspect/plugin-flite.xml +++ b/docs/plugins/inspect/plugin-flite.xml
@@ -3,7 +3,7 @@ <description>Flite speech synthesizer plugin</description> <filename>../../ext/flite/.libs/libgstflite.so</filename> <basename>libgstflite.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-fluidsynthmidi.xml b/docs/plugins/inspect/plugin-fluidsynthmidi.xml index 12ba166..31d1920 100644 --- a/docs/plugins/inspect/plugin-fluidsynthmidi.xml +++ b/docs/plugins/inspect/plugin-fluidsynthmidi.xml
@@ -3,7 +3,7 @@ <description>Fluidsynth MIDI Plugin</description> <filename>../../ext/fluidsynth/.libs/libgstfluidsynthmidi.so</filename> <basename>libgstfluidsynthmidi.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-freeverb.xml b/docs/plugins/inspect/plugin-freeverb.xml index 79b009a..2b84485 100644 --- a/docs/plugins/inspect/plugin-freeverb.xml +++ b/docs/plugins/inspect/plugin-freeverb.xml
@@ -3,7 +3,7 @@ <description>Reverberation/room effect</description> <filename>../../gst/freeverb/.libs/libgstfreeverb.so</filename> <basename>libgstfreeverb.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-frei0r.xml b/docs/plugins/inspect/plugin-frei0r.xml index cfc641c..7ccd063 100644 --- a/docs/plugins/inspect/plugin-frei0r.xml +++ b/docs/plugins/inspect/plugin-frei0r.xml
@@ -3,7 +3,7 @@ <description>frei0r plugin library</description> <filename>../../gst/frei0r/.libs/libgstfrei0r.so</filename> <basename>libgstfrei0r.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gaudieffects.xml b/docs/plugins/inspect/plugin-gaudieffects.xml index 809d3a7..0e4e82c 100644 --- a/docs/plugins/inspect/plugin-gaudieffects.xml +++ b/docs/plugins/inspect/plugin-gaudieffects.xml
@@ -3,7 +3,7 @@ <description>Gaudi video effects.</description> <filename>../../gst/gaudieffects/.libs/libgstgaudieffects.so</filename> <basename>libgstgaudieffects.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-gdp.xml b/docs/plugins/inspect/plugin-gdp.xml index 18e989d..e812127 100644 --- a/docs/plugins/inspect/plugin-gdp.xml +++ b/docs/plugins/inspect/plugin-gdp.xml
@@ -3,7 +3,7 @@ <description>Payload/depayload GDP packets</description> <filename>../../gst/gdp/.libs/libgstgdp.so</filename> <basename>libgstgdp.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-geometrictransform.xml b/docs/plugins/inspect/plugin-geometrictransform.xml index 679ad20..ff76c58 100644 --- a/docs/plugins/inspect/plugin-geometrictransform.xml +++ b/docs/plugins/inspect/plugin-geometrictransform.xml
@@ -3,7 +3,7 @@ <description>Various geometric image transform elements</description> <filename>../../gst/geometrictransform/.libs/libgstgeometrictransform.so</filename> <basename>libgstgeometrictransform.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gmedec.xml b/docs/plugins/inspect/plugin-gmedec.xml index c7fbece..7d97f0e 100644 --- a/docs/plugins/inspect/plugin-gmedec.xml +++ b/docs/plugins/inspect/plugin-gmedec.xml
@@ -3,7 +3,7 @@ <description>GME Audio Decoder</description> <filename>../../ext/gme/.libs/libgstgme.so</filename> <basename>libgstgme.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gsm.xml b/docs/plugins/inspect/plugin-gsm.xml index 12988ce..525b29b 100644 --- a/docs/plugins/inspect/plugin-gsm.xml +++ b/docs/plugins/inspect/plugin-gsm.xml
@@ -3,7 +3,7 @@ <description>GSM encoder/decoder</description> <filename>../../ext/gsm/.libs/libgstgsm.so</filename> <basename>libgstgsm.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gstgtk.xml b/docs/plugins/inspect/plugin-gstgtk.xml index 0f67f8f..976b53a 100644 --- a/docs/plugins/inspect/plugin-gstgtk.xml +++ b/docs/plugins/inspect/plugin-gstgtk.xml
@@ -3,7 +3,7 @@ <description>Gtk+ sink</description> <filename>../../ext/gtk/.libs/libgstgtksink.so</filename> <basename>libgstgtksink.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gstsiren.xml b/docs/plugins/inspect/plugin-gstsiren.xml index 1e60f3a..cf17d44 100644 --- a/docs/plugins/inspect/plugin-gstsiren.xml +++ b/docs/plugins/inspect/plugin-gstsiren.xml
@@ -3,7 +3,7 @@ <description>Siren encoder/decoder/payloader/depayloader plugins</description> <filename>../../gst/siren/.libs/libgstsiren.so</filename> <basename>libgstsiren.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-hls.xml b/docs/plugins/inspect/plugin-hls.xml index b662af5..a5ee208 100644 --- a/docs/plugins/inspect/plugin-hls.xml +++ b/docs/plugins/inspect/plugin-hls.xml
@@ -3,7 +3,7 @@ <description>HTTP Live Streaming (HLS)</description> <filename>../../ext/hls/.libs/libgsthls.so</filename> <basename>libgsthls.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-id3tag.xml b/docs/plugins/inspect/plugin-id3tag.xml index d753357..cd0582a 100644 --- a/docs/plugins/inspect/plugin-id3tag.xml +++ b/docs/plugins/inspect/plugin-id3tag.xml
@@ -3,7 +3,7 @@ <description>ID3 v1 and v2 muxing plugin</description> <filename>../../gst/id3tag/.libs/libgstid3tag.so</filename> <basename>libgstid3tag.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-inter.xml b/docs/plugins/inspect/plugin-inter.xml index f0241b4..0607c8a 100644 --- a/docs/plugins/inspect/plugin-inter.xml +++ b/docs/plugins/inspect/plugin-inter.xml
@@ -3,7 +3,7 @@ <description>plugin for inter-pipeline communication</description> <filename>../../gst/inter/.libs/libgstinter.so</filename> <basename>libgstinter.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-interlace.xml b/docs/plugins/inspect/plugin-interlace.xml index 7608c4b..d63126c 100644 --- a/docs/plugins/inspect/plugin-interlace.xml +++ b/docs/plugins/inspect/plugin-interlace.xml
@@ -3,7 +3,7 @@ <description>Create an interlaced video stream</description> <filename>../../gst/interlace/.libs/libgstinterlace.so</filename> <basename>libgstinterlace.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ivfparse.xml b/docs/plugins/inspect/plugin-ivfparse.xml index f3c2f54..04a7ed7 100644 --- a/docs/plugins/inspect/plugin-ivfparse.xml +++ b/docs/plugins/inspect/plugin-ivfparse.xml
@@ -3,7 +3,7 @@ <description>IVF parser</description> <filename>../../gst/ivfparse/.libs/libgstivfparse.so</filename> <basename>libgstivfparse.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ivtc.xml b/docs/plugins/inspect/plugin-ivtc.xml index 37360f4..9e2eeac 100644 --- a/docs/plugins/inspect/plugin-ivtc.xml +++ b/docs/plugins/inspect/plugin-ivtc.xml
@@ -3,7 +3,7 @@ <description>Inverse Telecine</description> <filename>../../gst/ivtc/.libs/libgstivtc.so</filename> <basename>libgstivtc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-jp2kdecimator.xml b/docs/plugins/inspect/plugin-jp2kdecimator.xml index edb7eb9..c4a04f2 100644 --- a/docs/plugins/inspect/plugin-jp2kdecimator.xml +++ b/docs/plugins/inspect/plugin-jp2kdecimator.xml
@@ -3,7 +3,7 @@ <description>JPEG2000 decimator</description> <filename>../../gst/jp2kdecimator/.libs/libgstjp2kdecimator.so</filename> <basename>libgstjp2kdecimator.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-jpegformat.xml b/docs/plugins/inspect/plugin-jpegformat.xml index 613ee35..07484d7 100644 --- a/docs/plugins/inspect/plugin-jpegformat.xml +++ b/docs/plugins/inspect/plugin-jpegformat.xml
@@ -3,7 +3,7 @@ <description>JPEG interchange format plugin</description> <filename>../../gst/jpegformat/.libs/libgstjpegformat.so</filename> <basename>libgstjpegformat.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-kate.xml b/docs/plugins/inspect/plugin-kate.xml index 859f2bf..201be6d 100644 --- a/docs/plugins/inspect/plugin-kate.xml +++ b/docs/plugins/inspect/plugin-kate.xml
@@ -3,7 +3,7 @@ <description>Kate plugin</description> <filename>../../ext/kate/.libs/libgstkate.so</filename> <basename>libgstkate.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ladspa.xml b/docs/plugins/inspect/plugin-ladspa.xml index ac58f8e..54bdea7 100644 --- a/docs/plugins/inspect/plugin-ladspa.xml +++ b/docs/plugins/inspect/plugin-ladspa.xml
@@ -3,7 +3,7 @@ <description>LADSPA plugin</description> <filename>../../ext/ladspa/.libs/libgstladspa.so</filename> <basename>libgstladspa.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-libde265.xml b/docs/plugins/inspect/plugin-libde265.xml index abbb845..6a96df2 100644 --- a/docs/plugins/inspect/plugin-libde265.xml +++ b/docs/plugins/inspect/plugin-libde265.xml
@@ -3,7 +3,7 @@ <description>HEVC/H.265 decoder using libde265</description> <filename>../../ext/libde265/.libs/libgstlibde265.so</filename> <basename>libgstlibde265.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-midi.xml b/docs/plugins/inspect/plugin-midi.xml index a877718..616dfaa 100644 --- a/docs/plugins/inspect/plugin-midi.xml +++ b/docs/plugins/inspect/plugin-midi.xml
@@ -3,7 +3,7 @@ <description>Parse MIDI files</description> <filename>../../gst/midi/.libs/libgstmidi.so</filename> <basename>libgstmidi.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mimic.xml b/docs/plugins/inspect/plugin-mimic.xml index c9c5545..5a7bb65 100644 --- a/docs/plugins/inspect/plugin-mimic.xml +++ b/docs/plugins/inspect/plugin-mimic.xml
@@ -3,7 +3,7 @@ <description>Mimic codec</description> <filename>../../ext/mimic/.libs/libgstmimic.so</filename> <basename>libgstmimic.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mms.xml b/docs/plugins/inspect/plugin-mms.xml index 21796e4..e169b25 100644 --- a/docs/plugins/inspect/plugin-mms.xml +++ b/docs/plugins/inspect/plugin-mms.xml
@@ -3,7 +3,7 @@ <description>Microsoft Multi Media Server streaming protocol support</description> <filename>../../ext/libmms/.libs/libgstmms.so</filename> <basename>libgstmms.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-modplug.xml b/docs/plugins/inspect/plugin-modplug.xml index d5433d7..0306af5 100644 --- a/docs/plugins/inspect/plugin-modplug.xml +++ b/docs/plugins/inspect/plugin-modplug.xml
@@ -3,7 +3,7 @@ <description>.MOD audio decoding</description> <filename>../../ext/modplug/.libs/libgstmodplug.so</filename> <basename>libgstmodplug.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpeg2enc.xml b/docs/plugins/inspect/plugin-mpeg2enc.xml index 7f53bb8..9090713 100644 --- a/docs/plugins/inspect/plugin-mpeg2enc.xml +++ b/docs/plugins/inspect/plugin-mpeg2enc.xml
@@ -3,7 +3,7 @@ <description>High-quality MPEG-1/2 video encoder</description> <filename>../../ext/mpeg2enc/.libs/libgstmpeg2enc.so</filename> <basename>libgstmpeg2enc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>GPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpegpsdemux.xml b/docs/plugins/inspect/plugin-mpegpsdemux.xml index 3476983..46e024a 100644 --- a/docs/plugins/inspect/plugin-mpegpsdemux.xml +++ b/docs/plugins/inspect/plugin-mpegpsdemux.xml
@@ -3,7 +3,7 @@ <description>MPEG-PS demuxer</description> <filename>../../gst/mpegdemux/.libs/libgstmpegpsdemux.so</filename> <basename>libgstmpegpsdemux.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>unknown</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpegpsmux.xml b/docs/plugins/inspect/plugin-mpegpsmux.xml index 2c6beb2..9b21328 100644 --- a/docs/plugins/inspect/plugin-mpegpsmux.xml +++ b/docs/plugins/inspect/plugin-mpegpsmux.xml
@@ -3,7 +3,7 @@ <description>MPEG-PS muxer</description> <filename>../../gst/mpegpsmux/.libs/libgstmpegpsmux.so</filename> <basename>libgstmpegpsmux.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpegtsdemux.xml b/docs/plugins/inspect/plugin-mpegtsdemux.xml index 36a001e..9727804 100644 --- a/docs/plugins/inspect/plugin-mpegtsdemux.xml +++ b/docs/plugins/inspect/plugin-mpegtsdemux.xml
@@ -3,7 +3,7 @@ <description>MPEG TS demuxer</description> <filename>../../gst/mpegtsdemux/.libs/libgstmpegtsdemux.so</filename> <basename>libgstmpegtsdemux.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpegtsmux.xml b/docs/plugins/inspect/plugin-mpegtsmux.xml index 2e22776..175e407 100644 --- a/docs/plugins/inspect/plugin-mpegtsmux.xml +++ b/docs/plugins/inspect/plugin-mpegtsmux.xml
@@ -3,7 +3,7 @@ <description>MPEG-TS muxer</description> <filename>../../gst/mpegtsmux/.libs/libgstmpegtsmux.so</filename> <basename>libgstmpegtsmux.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mplex.xml b/docs/plugins/inspect/plugin-mplex.xml index 15cdaab..54f6abd 100644 --- a/docs/plugins/inspect/plugin-mplex.xml +++ b/docs/plugins/inspect/plugin-mplex.xml
@@ -3,7 +3,7 @@ <description>High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer</description> <filename>../../ext/mplex/.libs/libgstmplex.so</filename> <basename>libgstmplex.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>GPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-musepack.xml b/docs/plugins/inspect/plugin-musepack.xml index 199b2fe..68bf9b2 100644 --- a/docs/plugins/inspect/plugin-musepack.xml +++ b/docs/plugins/inspect/plugin-musepack.xml
@@ -3,7 +3,7 @@ <description>Musepack decoder</description> <filename>../../ext/musepack/.libs/libgstmusepack.so</filename> <basename>libgstmusepack.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mxf.xml b/docs/plugins/inspect/plugin-mxf.xml index c38703c..afd22cd 100644 --- a/docs/plugins/inspect/plugin-mxf.xml +++ b/docs/plugins/inspect/plugin-mxf.xml
@@ -3,7 +3,7 @@ <description>MXF plugin library</description> <filename>../../gst/mxf/.libs/libgstmxf.so</filename> <basename>libgstmxf.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-netsim.xml b/docs/plugins/inspect/plugin-netsim.xml index 2817b0b..4657118 100644 --- a/docs/plugins/inspect/plugin-netsim.xml +++ b/docs/plugins/inspect/plugin-netsim.xml
@@ -3,7 +3,7 @@ <description>Network Simulator</description> <filename>../../gst/netsim/.libs/libgstnetsim.so</filename> <basename>libgstnetsim.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ofa.xml b/docs/plugins/inspect/plugin-ofa.xml index 7a31c0e..1122560 100644 --- a/docs/plugins/inspect/plugin-ofa.xml +++ b/docs/plugins/inspect/plugin-ofa.xml
@@ -3,7 +3,7 @@ <description>Calculate MusicIP fingerprint from audio files</description> <filename>../../ext/ofa/.libs/libgstofa.so</filename> <basename>libgstofa.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>GPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-openal.xml b/docs/plugins/inspect/plugin-openal.xml index cecc670..6303120 100644 --- a/docs/plugins/inspect/plugin-openal.xml +++ b/docs/plugins/inspect/plugin-openal.xml
@@ -3,7 +3,7 @@ <description>OpenAL plugin library</description> <filename>../../ext/openal/.libs/libgstopenal.so</filename> <basename>libgstopenal.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opencv.xml b/docs/plugins/inspect/plugin-opencv.xml index 2034de8..7044368 100644 --- a/docs/plugins/inspect/plugin-opencv.xml +++ b/docs/plugins/inspect/plugin-opencv.xml
@@ -3,7 +3,7 @@ <description>GStreamer OpenCV Plugins</description> <filename>../../ext/opencv/.libs/libgstopencv.so</filename> <basename>libgstopencv.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-openexr.xml b/docs/plugins/inspect/plugin-openexr.xml index 29cc0e8..ac58fe0 100644 --- a/docs/plugins/inspect/plugin-openexr.xml +++ b/docs/plugins/inspect/plugin-openexr.xml
@@ -3,7 +3,7 @@ <description>OpenEXR image plugin</description> <filename>../../ext/openexr/.libs/libgstopenexr.so</filename> <basename>libgstopenexr.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opengl.xml b/docs/plugins/inspect/plugin-opengl.xml index 219894a..66a8ce5 100644 --- a/docs/plugins/inspect/plugin-opengl.xml +++ b/docs/plugins/inspect/plugin-opengl.xml
@@ -3,7 +3,7 @@ <description>OpenGL plugin</description> <filename>../../ext/gl/.libs/libgstopengl.so</filename> <basename>libgstopengl.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-openh264.xml b/docs/plugins/inspect/plugin-openh264.xml index bb0235c..0f5a2cb 100644 --- a/docs/plugins/inspect/plugin-openh264.xml +++ b/docs/plugins/inspect/plugin-openh264.xml
@@ -3,7 +3,7 @@ <description>OpenH264 encoder/decoder plugin</description> <filename>../../ext/openh264/.libs/libgstopenh264.so</filename> <basename>libgstopenh264.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>BSD</license> <source>gst-plugins-bad</source> <package>OpenWebRTC GStreamer plugins</package>
diff --git a/docs/plugins/inspect/plugin-openjpeg.xml b/docs/plugins/inspect/plugin-openjpeg.xml index a5005ae..8a517b1 100644 --- a/docs/plugins/inspect/plugin-openjpeg.xml +++ b/docs/plugins/inspect/plugin-openjpeg.xml
@@ -3,7 +3,7 @@ <description>OpenJPEG-based JPEG2000 image decoder/encoder</description> <filename>../../ext/openjpeg/.libs/libgstopenjpeg.so</filename> <basename>libgstopenjpeg.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opusparse.xml b/docs/plugins/inspect/plugin-opusparse.xml index ecd5317..117c71f 100644 --- a/docs/plugins/inspect/plugin-opusparse.xml +++ b/docs/plugins/inspect/plugin-opusparse.xml
@@ -3,7 +3,7 @@ <description>OPUS parse plugin</description> <filename>../../ext/opus/.libs/libgstopusparse.so</filename> <basename>libgstopusparse.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-pcapparse.xml b/docs/plugins/inspect/plugin-pcapparse.xml index e77210d..d655a44 100644 --- a/docs/plugins/inspect/plugin-pcapparse.xml +++ b/docs/plugins/inspect/plugin-pcapparse.xml
@@ -3,7 +3,7 @@ <description>Element parsing raw pcap streams</description> <filename>../../gst/pcapparse/.libs/libgstpcapparse.so</filename> <basename>libgstpcapparse.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-pnm.xml b/docs/plugins/inspect/plugin-pnm.xml index 381acaa..5ff5c56 100644 --- a/docs/plugins/inspect/plugin-pnm.xml +++ b/docs/plugins/inspect/plugin-pnm.xml
@@ -3,7 +3,7 @@ <description>PNM plugin</description> <filename>../../gst/pnm/.libs/libgstpnm.so</filename> <basename>libgstpnm.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-qt.xml b/docs/plugins/inspect/plugin-qt.xml index f256f50..26265a9 100644 --- a/docs/plugins/inspect/plugin-qt.xml +++ b/docs/plugins/inspect/plugin-qt.xml
@@ -3,7 +3,7 @@ <description>Qt gl plugin</description> <filename>../../ext/qt/.libs/libgstqmlgl.so</filename> <basename>libgstqmlgl.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rawparse.xml b/docs/plugins/inspect/plugin-rawparse.xml index 0ca7cba..974654f 100644 --- a/docs/plugins/inspect/plugin-rawparse.xml +++ b/docs/plugins/inspect/plugin-rawparse.xml
@@ -3,7 +3,7 @@ <description>Parses byte streams into raw frames</description> <filename>../../gst/rawparse/.libs/libgstrawparse.so</filename> <basename>libgstrawparse.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-removesilence.xml b/docs/plugins/inspect/plugin-removesilence.xml index 07f5645..79eafd6 100644 --- a/docs/plugins/inspect/plugin-removesilence.xml +++ b/docs/plugins/inspect/plugin-removesilence.xml
@@ -3,7 +3,7 @@ <description>Removes silence from an audio stream</description> <filename>../../gst/removesilence/.libs/libgstremovesilence.so</filename> <basename>libgstremovesilence.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-resindvd.xml b/docs/plugins/inspect/plugin-resindvd.xml index 61a49c3..95d3aa7 100644 --- a/docs/plugins/inspect/plugin-resindvd.xml +++ b/docs/plugins/inspect/plugin-resindvd.xml
@@ -3,7 +3,7 @@ <description>Resin DVD playback elements</description> <filename>../../ext/resindvd/.libs/libgstresindvd.so</filename> <basename>libgstresindvd.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>GPL</license> <source>gst-plugins-bad</source> <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-rfbsrc.xml b/docs/plugins/inspect/plugin-rfbsrc.xml index 5ca2abd..43cad1d 100644 --- a/docs/plugins/inspect/plugin-rfbsrc.xml +++ b/docs/plugins/inspect/plugin-rfbsrc.xml
@@ -3,7 +3,7 @@ <description>Connects to a VNC server and decodes RFB stream</description> <filename>../../gst/librfb/.libs/libgstrfbsrc.so</filename> <basename>libgstrfbsrc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rsvg.xml b/docs/plugins/inspect/plugin-rsvg.xml index d65683f..0eeb12a 100644 --- a/docs/plugins/inspect/plugin-rsvg.xml +++ b/docs/plugins/inspect/plugin-rsvg.xml
@@ -3,7 +3,7 @@ <description>RSVG plugin library</description> <filename>../../ext/rsvg/.libs/libgstrsvg.so</filename> <basename>libgstrsvg.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtmp.xml b/docs/plugins/inspect/plugin-rtmp.xml index 49b1c18..93fa58f 100644 --- a/docs/plugins/inspect/plugin-rtmp.xml +++ b/docs/plugins/inspect/plugin-rtmp.xml
@@ -3,7 +3,7 @@ <description>RTMP source and sink</description> <filename>../../ext/rtmp/.libs/libgstrtmp.so</filename> <basename>libgstrtmp.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtponvif.xml b/docs/plugins/inspect/plugin-rtponvif.xml index 89b0200..fd4223e 100644 --- a/docs/plugins/inspect/plugin-rtponvif.xml +++ b/docs/plugins/inspect/plugin-rtponvif.xml
@@ -3,7 +3,7 @@ <description>ONVIF Streaming features</description> <filename>../../gst/onvif/.libs/libgstrtponvif.so</filename> <basename>libgstrtponvif.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>unknown</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-sbc.xml b/docs/plugins/inspect/plugin-sbc.xml index 1fde6f7..4c28baa 100644 --- a/docs/plugins/inspect/plugin-sbc.xml +++ b/docs/plugins/inspect/plugin-sbc.xml
@@ -3,7 +3,7 @@ <description>SBC bluetooth audio support</description> <filename>../../ext/sbc/.libs/libgstsbc.so</filename> <basename>libgstsbc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-schro.xml b/docs/plugins/inspect/plugin-schro.xml index d1f044e..e49a565 100644 --- a/docs/plugins/inspect/plugin-schro.xml +++ b/docs/plugins/inspect/plugin-schro.xml
@@ -3,7 +3,7 @@ <description>Schroedinger plugin</description> <filename>../../ext/schroedinger/.libs/libgstschro.so</filename> <basename>libgstschro.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-sdp.xml b/docs/plugins/inspect/plugin-sdp.xml index 1d9280d..3f602aa 100644 --- a/docs/plugins/inspect/plugin-sdp.xml +++ b/docs/plugins/inspect/plugin-sdp.xml
@@ -3,7 +3,7 @@ <description>configure streaming sessions using SDP</description> <filename>../../gst/sdp/.libs/libgstsdpelem.so</filename> <basename>libgstsdpelem.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-segmentclip.xml b/docs/plugins/inspect/plugin-segmentclip.xml index eb6fea5..2448e9f 100644 --- a/docs/plugins/inspect/plugin-segmentclip.xml +++ b/docs/plugins/inspect/plugin-segmentclip.xml
@@ -3,7 +3,7 @@ <description>Segment clip elements</description> <filename>../../gst/segmentclip/.libs/libgstsegmentclip.so</filename> <basename>libgstsegmentclip.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-shm.xml b/docs/plugins/inspect/plugin-shm.xml index 21c1021..24b640d 100644 --- a/docs/plugins/inspect/plugin-shm.xml +++ b/docs/plugins/inspect/plugin-shm.xml
@@ -3,7 +3,7 @@ <description>shared memory sink source</description> <filename>../../sys/shm/.libs/libgstshm.so</filename> <basename>libgstshm.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-smooth.xml b/docs/plugins/inspect/plugin-smooth.xml index dab54ca..df344d9 100644 --- a/docs/plugins/inspect/plugin-smooth.xml +++ b/docs/plugins/inspect/plugin-smooth.xml
@@ -3,7 +3,7 @@ <description>Apply a smooth filter to an image</description> <filename>../../gst/smooth/.libs/libgstsmooth.so</filename> <basename>libgstsmooth.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-smoothstreaming.xml b/docs/plugins/inspect/plugin-smoothstreaming.xml index 9beea49..a3fe17f 100644 --- a/docs/plugins/inspect/plugin-smoothstreaming.xml +++ b/docs/plugins/inspect/plugin-smoothstreaming.xml
@@ -3,7 +3,7 @@ <description>Microsoft's Smooth Streaming format support </description> <filename>../../ext/smoothstreaming/.libs/libgstsmoothstreaming.so</filename> <basename>libgstsmoothstreaming.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-sndfile.xml b/docs/plugins/inspect/plugin-sndfile.xml index c0e65fa..72c0131 100644 --- a/docs/plugins/inspect/plugin-sndfile.xml +++ b/docs/plugins/inspect/plugin-sndfile.xml
@@ -3,7 +3,7 @@ <description>use libsndfile to read and write various audio formats</description> <filename>../../ext/sndfile/.libs/libgstsndfile.so</filename> <basename>libgstsndfile.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-soundtouch.xml b/docs/plugins/inspect/plugin-soundtouch.xml index d1a5a87..c4c33dc 100644 --- a/docs/plugins/inspect/plugin-soundtouch.xml +++ b/docs/plugins/inspect/plugin-soundtouch.xml
@@ -3,7 +3,7 @@ <description>Audio Pitch Controller & BPM Detection</description> <filename>../../ext/soundtouch/.libs/libgstsoundtouch.so</filename> <basename>libgstsoundtouch.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-spandsp.xml b/docs/plugins/inspect/plugin-spandsp.xml index b473ded..e347d0c 100644 --- a/docs/plugins/inspect/plugin-spandsp.xml +++ b/docs/plugins/inspect/plugin-spandsp.xml
@@ -3,7 +3,7 @@ <description>libspandsp plugin</description> <filename>../../ext/spandsp/.libs/libgstspandsp.so</filename> <basename>libgstspandsp.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-speed.xml b/docs/plugins/inspect/plugin-speed.xml index 031d69c..d543444 100644 --- a/docs/plugins/inspect/plugin-speed.xml +++ b/docs/plugins/inspect/plugin-speed.xml
@@ -3,7 +3,7 @@ <description>Set speed/pitch on audio/raw streams (resampler)</description> <filename>../../gst/speed/.libs/libgstspeed.so</filename> <basename>libgstspeed.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-srtp.xml b/docs/plugins/inspect/plugin-srtp.xml index 5344991..424e3af 100644 --- a/docs/plugins/inspect/plugin-srtp.xml +++ b/docs/plugins/inspect/plugin-srtp.xml
@@ -3,7 +3,7 @@ <description>GStreamer SRTP</description> <filename>../../ext/srtp/.libs/libgstsrtp.so</filename> <basename>libgstsrtp.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-stereo.xml b/docs/plugins/inspect/plugin-stereo.xml index b85890d..b88229b 100644 --- a/docs/plugins/inspect/plugin-stereo.xml +++ b/docs/plugins/inspect/plugin-stereo.xml
@@ -3,7 +3,7 @@ <description>Muck with the stereo signal, enhance it's 'stereo-ness'</description> <filename>../../gst/stereo/.libs/libgststereo.so</filename> <basename>libgststereo.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-subenc.xml b/docs/plugins/inspect/plugin-subenc.xml index 5de1050..1af4bc7 100644 --- a/docs/plugins/inspect/plugin-subenc.xml +++ b/docs/plugins/inspect/plugin-subenc.xml
@@ -3,7 +3,7 @@ <description>subtitle encoders</description> <filename>../../gst/subenc/.libs/libgstsubenc.so</filename> <basename>libgstsubenc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-teletext.xml b/docs/plugins/inspect/plugin-teletext.xml index fa8223f..8b849db 100644 --- a/docs/plugins/inspect/plugin-teletext.xml +++ b/docs/plugins/inspect/plugin-teletext.xml
@@ -3,7 +3,7 @@ <description>Teletext plugin</description> <filename>../../ext/teletextdec/.libs/libgstteletextdec.so</filename> <basename>libgstteletextdec.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-timecode.xml b/docs/plugins/inspect/plugin-timecode.xml index 0c96a88..e05ebc9 100644 --- a/docs/plugins/inspect/plugin-timecode.xml +++ b/docs/plugins/inspect/plugin-timecode.xml
@@ -3,7 +3,7 @@ <description>Timecode-related elements</description> <filename>../../gst/timecode/.libs/libgsttimecode.so</filename> <basename>libgsttimecode.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-uvch264.xml b/docs/plugins/inspect/plugin-uvch264.xml index 321591b..d0ec4c7 100644 --- a/docs/plugins/inspect/plugin-uvch264.xml +++ b/docs/plugins/inspect/plugin-uvch264.xml
@@ -3,7 +3,7 @@ <description>UVC compliant H264 encoding cameras plugin</description> <filename>../../sys/uvch264/.libs/libgstuvch264.so</filename> <basename>libgstuvch264.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vcdsrc.xml b/docs/plugins/inspect/plugin-vcdsrc.xml index 2685d26..73c14e7 100644 --- a/docs/plugins/inspect/plugin-vcdsrc.xml +++ b/docs/plugins/inspect/plugin-vcdsrc.xml
@@ -3,7 +3,7 @@ <description>Asynchronous read from VCD disk</description> <filename>../../sys/vcd/.libs/libgstvcdsrc.so</filename> <basename>libgstvcdsrc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videofiltersbad.xml b/docs/plugins/inspect/plugin-videofiltersbad.xml index c272243..92e5a81 100644 --- a/docs/plugins/inspect/plugin-videofiltersbad.xml +++ b/docs/plugins/inspect/plugin-videofiltersbad.xml
@@ -3,7 +3,7 @@ <description>Video filters in gst-plugins-bad</description> <filename>../../gst/videofilters/.libs/libgstvideofiltersbad.so</filename> <basename>libgstvideofiltersbad.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-videoframe_audiolevel.xml b/docs/plugins/inspect/plugin-videoframe_audiolevel.xml index 95710c2..1e01dd7 100644 --- a/docs/plugins/inspect/plugin-videoframe_audiolevel.xml +++ b/docs/plugins/inspect/plugin-videoframe_audiolevel.xml
@@ -3,7 +3,7 @@ <description>Video frame-synchronized audio level</description> <filename>../../gst/videoframe_audiolevel/.libs/libgstvideoframe_audiolevel.so</filename> <basename>libgstvideoframe_audiolevel.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videoparsersbad.xml b/docs/plugins/inspect/plugin-videoparsersbad.xml index 9aebfca..cb2c42b 100644 --- a/docs/plugins/inspect/plugin-videoparsersbad.xml +++ b/docs/plugins/inspect/plugin-videoparsersbad.xml
@@ -3,7 +3,7 @@ <description>videoparsers</description> <filename>../../gst/videoparsers/.libs/libgstvideoparsersbad.so</filename> <basename>libgstvideoparsersbad.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videosignal.xml b/docs/plugins/inspect/plugin-videosignal.xml index bfb66f9..ac92a0b 100644 --- a/docs/plugins/inspect/plugin-videosignal.xml +++ b/docs/plugins/inspect/plugin-videosignal.xml
@@ -3,7 +3,7 @@ <description>Various video signal analysers</description> <filename>../../gst/videosignal/.libs/libgstvideosignal.so</filename> <basename>libgstvideosignal.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vmnc.xml b/docs/plugins/inspect/plugin-vmnc.xml index 507c47d..a420050 100644 --- a/docs/plugins/inspect/plugin-vmnc.xml +++ b/docs/plugins/inspect/plugin-vmnc.xml
@@ -3,7 +3,7 @@ <description>VmWare Video Codec plugins</description> <filename>../../gst/vmnc/.libs/libgstvmnc.so</filename> <basename>libgstvmnc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-voaacenc.xml b/docs/plugins/inspect/plugin-voaacenc.xml index 62dc452..af2f4b6 100644 --- a/docs/plugins/inspect/plugin-voaacenc.xml +++ b/docs/plugins/inspect/plugin-voaacenc.xml
@@ -3,7 +3,7 @@ <description>AAC audio encoder</description> <filename>../../ext/voaacenc/.libs/libgstvoaacenc.so</filename> <basename>libgstvoaacenc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-voamrwbenc.xml b/docs/plugins/inspect/plugin-voamrwbenc.xml index 0f8ca26..0952d4b 100644 --- a/docs/plugins/inspect/plugin-voamrwbenc.xml +++ b/docs/plugins/inspect/plugin-voamrwbenc.xml
@@ -3,7 +3,7 @@ <description>Adaptive Multi-Rate Wide-Band Encoder</description> <filename>../../ext/voamrwbenc/.libs/libgstvoamrwbenc.so</filename> <basename>libgstvoamrwbenc.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>unknown</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-waylandsink.xml b/docs/plugins/inspect/plugin-waylandsink.xml index 5671b2f..99aef7a 100644 --- a/docs/plugins/inspect/plugin-waylandsink.xml +++ b/docs/plugins/inspect/plugin-waylandsink.xml
@@ -3,7 +3,7 @@ <description>Wayland Video Sink</description> <filename>../../ext/wayland/.libs/libgstwaylandsink.so</filename> <basename>libgstwaylandsink.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-webp.xml b/docs/plugins/inspect/plugin-webp.xml index 08b8028..bfec6f4 100644 --- a/docs/plugins/inspect/plugin-webp.xml +++ b/docs/plugins/inspect/plugin-webp.xml
@@ -3,7 +3,7 @@ <description>WebP plugin</description> <filename>../../ext/webp/.libs/libgstwebp.so</filename> <basename>libgstwebp.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-webrtcdsp.xml b/docs/plugins/inspect/plugin-webrtcdsp.xml index 78fff60..98e8be9 100644 --- a/docs/plugins/inspect/plugin-webrtcdsp.xml +++ b/docs/plugins/inspect/plugin-webrtcdsp.xml
@@ -3,7 +3,7 @@ <description>Voice pre-processing using WebRTC Audio Processing Library</description> <filename>../../ext/webrtcdsp/.libs/libgstwebrtcdsp.so</filename> <basename>libgstwebrtcdsp.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>WebRTCDsp</package>
diff --git a/docs/plugins/inspect/plugin-wildmidi.xml b/docs/plugins/inspect/plugin-wildmidi.xml index 3b1a1c7..e3e4d32 100644 --- a/docs/plugins/inspect/plugin-wildmidi.xml +++ b/docs/plugins/inspect/plugin-wildmidi.xml
@@ -3,7 +3,7 @@ <description>Wildmidi Plugin</description> <filename>../../ext/timidity/.libs/libgstwildmidi.so</filename> <basename>libgstwildmidi.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>GPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-x265.xml b/docs/plugins/inspect/plugin-x265.xml index b1e86df..b58cb39 100644 --- a/docs/plugins/inspect/plugin-x265.xml +++ b/docs/plugins/inspect/plugin-x265.xml
@@ -3,7 +3,7 @@ <description>x265-based H265 plugins</description> <filename>../../ext/x265/.libs/libgstx265.so</filename> <basename>libgstx265.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>GPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-y4mdec.xml b/docs/plugins/inspect/plugin-y4mdec.xml index d7d3771..351642d 100644 --- a/docs/plugins/inspect/plugin-y4mdec.xml +++ b/docs/plugins/inspect/plugin-y4mdec.xml
@@ -3,7 +3,7 @@ <description>Demuxes/decodes YUV4MPEG streams</description> <filename>../../gst/y4m/.libs/libgsty4mdec.so</filename> <basename>libgsty4mdec.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-yadif.xml b/docs/plugins/inspect/plugin-yadif.xml index 4996de5..d7c00c6 100644 --- a/docs/plugins/inspect/plugin-yadif.xml +++ b/docs/plugins/inspect/plugin-yadif.xml
@@ -3,7 +3,7 @@ <description>YADIF deinterlacing filter</description> <filename>../../gst/yadif/.libs/libgstyadif.so</filename> <basename>libgstyadif.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>GPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-zbar.xml b/docs/plugins/inspect/plugin-zbar.xml index 24aaed9..3cd3107 100644 --- a/docs/plugins/inspect/plugin-zbar.xml +++ b/docs/plugins/inspect/plugin-zbar.xml
@@ -3,7 +3,7 @@ <description>zbar barcode scanner</description> <filename>../../ext/zbar/.libs/libgstzbar.so</filename> <basename>libgstzbar.so</basename> - <version>1.10.1</version> + <version>1.10.2</version> <license>LGPL</license> <source>gst-plugins-bad</source> <package>GStreamer Bad Plug-ins source release</package>
diff --git a/ext/dash/gstdashdemux.c b/ext/dash/gstdashdemux.c index 242a7c2..271f70f 100644 --- a/ext/dash/gstdashdemux.c +++ b/ext/dash/gstdashdemux.c
@@ -2676,6 +2676,10 @@ g_object_unref (dash_stream->sidx_adapter); if (dash_stream->isobmff_adapter) g_object_unref (dash_stream->isobmff_adapter); + if (dash_stream->moof) + gst_isoff_moof_box_free (dash_stream->moof); + if (dash_stream->moof_sync_samples) + g_array_free (dash_stream->moof_sync_samples, TRUE); } static GstDashDemuxClockDrift *
diff --git a/ext/dash/gstmpdparser.c b/ext/dash/gstmpdparser.c index e6d7283..15d6d98 100644 --- a/ext/dash/gstmpdparser.c +++ b/ext/dash/gstmpdparser.c
@@ -985,11 +985,11 @@ goto error; } /* skip leading/trailing whitespace */ - while (strchr (" \t", str[0])) { + while (g_ascii_isspace (str[0])) { str++; len--; } - while (len > 0 && strchr (" \t", str[len - 1])) + while (len > 0 && g_ascii_isspace (str[len - 1])) --len; /* read "P" for period */
diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c index bb91f30..9247d45 100644 --- a/ext/hls/gsthlsdemux.c +++ b/ext/hls/gsthlsdemux.c
@@ -296,7 +296,7 @@ GstHLSDemux *hlsdemux = GST_HLS_DEMUX_CAST (demux); GstFormat format; GstSeekFlags flags; - GstSeekType start_type, stop_type; + GstSeekType start_type, stop_type, target_type; gint64 start, stop; gdouble rate, old_rate; GList *walk, *stream_walk; @@ -348,6 +348,7 @@ /* TODO why not continue using the same? that was being used up to now? */ gst_hls_demux_change_playlist (hlsdemux, bitrate, NULL); } + for (stream_walk = demux->streams; stream_walk != NULL; stream_walk = stream_walk->next) { GstHLSDemuxStream *hls_stream = @@ -358,66 +359,73 @@ current_pos = 0; reverse = rate < 0; target_pos = reverse ? stop : start; + target_type = reverse ? stop_type : start_type; - /* Snap to segment boundary. Improves seek performance on slow machines. */ - keyunit = ! !(flags & GST_SEEK_FLAG_KEY_UNIT); - snap_nearest = - (flags & GST_SEEK_FLAG_SNAP_NEAREST) == GST_SEEK_FLAG_SNAP_NEAREST; - snap_before = ! !(flags & GST_SEEK_FLAG_SNAP_BEFORE); - snap_after = ! !(flags & GST_SEEK_FLAG_SNAP_AFTER); + if (target_type == GST_SEEK_TYPE_NONE && !(flags & GST_SEEK_FLAG_FLUSH)) { + /* No need to move */ + gst_segment_do_seek (&demux->segment, rate, format, flags, start_type, + start, stop_type, stop, NULL); + } else { + /* Snap to segment boundary. Improves seek performance on slow machines. */ + keyunit = ! !(flags & GST_SEEK_FLAG_KEY_UNIT); + snap_nearest = + (flags & GST_SEEK_FLAG_SNAP_NEAREST) == GST_SEEK_FLAG_SNAP_NEAREST; + snap_before = ! !(flags & GST_SEEK_FLAG_SNAP_BEFORE); + snap_after = ! !(flags & GST_SEEK_FLAG_SNAP_AFTER); - GST_M3U8_CLIENT_LOCK (hlsdemux->client); - /* FIXME: Here we need proper discont handling */ - for (walk = hls_stream->playlist->files; walk; walk = walk->next) { - file = walk->data; + GST_M3U8_CLIENT_LOCK (hlsdemux->client); + /* FIXME: Here we need proper discont handling */ + for (walk = hls_stream->playlist->files; walk; walk = walk->next) { + file = walk->data; - current_sequence = file->sequence; - if ((!reverse && snap_after) || snap_nearest) { - if (current_pos >= target_pos) - break; - if (snap_nearest && target_pos - current_pos < file->duration / 2) - break; - } else if (reverse && snap_after) { - /* check if the next fragment is our target, in this case we want to - * start from the previous fragment */ - GstClockTime next_pos = current_pos + file->duration; + current_sequence = file->sequence; + if ((!reverse && snap_after) || snap_nearest) { + if (current_pos >= target_pos) + break; + if (snap_nearest && target_pos - current_pos < file->duration / 2) + break; + } else if (reverse && snap_after) { + /* check if the next fragment is our target, in this case we want to + * start from the previous fragment */ + GstClockTime next_pos = current_pos + file->duration; - if (next_pos <= target_pos && target_pos < next_pos + file->duration) { + if (next_pos <= target_pos && target_pos < next_pos + file->duration) { + break; + } + } else if (current_pos <= target_pos + && target_pos < current_pos + file->duration) { break; } - } else if (current_pos <= target_pos - && target_pos < current_pos + file->duration) { - break; - } - current_pos += file->duration; - } - - if (walk == NULL) { - GST_DEBUG_OBJECT (demux, "seeking further than track duration"); - current_sequence++; - } - - GST_DEBUG_OBJECT (demux, "seeking to sequence %u", - (guint) current_sequence); - hls_stream->reset_pts = TRUE; - hls_stream->playlist->sequence = current_sequence; - hls_stream->playlist->current_file = walk; - hls_stream->playlist->sequence_position = current_pos; - GST_M3U8_CLIENT_UNLOCK (hlsdemux->client); - - /* Play from the end of the current selected segment */ - if (file) { - if (reverse && (snap_before || snap_after || snap_nearest)) current_pos += file->duration; - } + } - if (keyunit || snap_before || snap_after || snap_nearest) { - if (!reverse) - gst_segment_do_seek (&demux->segment, rate, format, flags, start_type, - current_pos, stop_type, stop, NULL); - else - gst_segment_do_seek (&demux->segment, rate, format, flags, start_type, - start, stop_type, current_pos, NULL); + if (walk == NULL) { + GST_DEBUG_OBJECT (demux, "seeking further than track duration"); + current_sequence++; + } + + GST_DEBUG_OBJECT (demux, "seeking to sequence %u", + (guint) current_sequence); + hls_stream->reset_pts = TRUE; + hls_stream->playlist->sequence = current_sequence; + hls_stream->playlist->current_file = walk; + hls_stream->playlist->sequence_position = current_pos; + GST_M3U8_CLIENT_UNLOCK (hlsdemux->client); + + /* Play from the end of the current selected segment */ + if (file) { + if (reverse && (snap_before || snap_after || snap_nearest)) + current_pos += file->duration; + } + + if (keyunit || snap_before || snap_after || snap_nearest) { + if (!reverse) + gst_segment_do_seek (&demux->segment, rate, format, flags, start_type, + current_pos, stop_type, stop, NULL); + else + gst_segment_do_seek (&demux->segment, rate, format, flags, start_type, + start, stop_type, current_pos, NULL); + } } }
diff --git a/ext/hls/m3u8.c b/ext/hls/m3u8.c index 2f22c13..788743f 100644 --- a/ext/hls/m3u8.c +++ b/ext/hls/m3u8.c
@@ -33,7 +33,7 @@ static GstM3U8MediaFile *gst_m3u8_media_file_new (gchar * uri, gchar * title, GstClockTime duration, guint sequence); -gchar *uri_join (const gchar * uri, const gchar * path); +static gchar *uri_join (const gchar * uri, const gchar * path); GstM3U8 * gst_m3u8_new (void)
diff --git a/gst-libs/gst/gl/Makefile.am b/gst-libs/gst/gl/Makefile.am index f7c24a3..f29cb71 100644 --- a/gst-libs/gst/gl/Makefile.am +++ b/gst-libs/gst/gl/Makefile.am
@@ -167,6 +167,7 @@ $(GL_CFLAGS) \ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_API_VERSION@` \ --library=libgstgl-@GST_API_VERSION@.la \ --include=Gst-@GST_API_VERSION@ \ --include=GstBase-@GST_API_VERSION@ \ @@ -198,6 +199,7 @@ --includedir=$(builddir) \ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_API_VERSION@` \ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/gl/Makefile.in b/gst-libs/gst/gl/Makefile.in index 0c18cd1..16e666d 100644 --- a/gst-libs/gst/gl/Makefile.in +++ b/gst-libs/gst/gl/Makefile.in
@@ -1728,6 +1728,7 @@ @HAVE_INTROSPECTION_TRUE@ $(GL_CFLAGS) \ @HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ @HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ +@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_API_VERSION@` \ @HAVE_INTROSPECTION_TRUE@ --library=libgstgl-@GST_API_VERSION@.la \ @HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \ @HAVE_INTROSPECTION_TRUE@ --include=GstBase-@GST_API_VERSION@ \ @@ -1750,6 +1751,7 @@ @HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \ @HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ @HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ +@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_API_VERSION@` \ @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/gst-libs/gst/gl/gstglcontext.c b/gst-libs/gst/gl/gstglcontext.c index eb46e6c..975f7d8 100644 --- a/gst-libs/gst/gl/gstglcontext.c +++ b/gst-libs/gst/gl/gstglcontext.c
@@ -201,6 +201,7 @@ /* conditions */ GMutex render_lock; GCond create_cond; + GCond destroy_cond; gboolean created; gboolean alive; @@ -272,6 +273,7 @@ g_mutex_init (&context->priv->render_lock); g_cond_init (&context->priv->create_cond); + g_cond_init (&context->priv->destroy_cond); context->priv->created = FALSE; g_weak_ref_init (&context->priv->other_context_ref, NULL); @@ -656,22 +658,20 @@ gst_gl_window_set_resize_callback (context->window, NULL, NULL, NULL); gst_gl_window_set_draw_callback (context->window, NULL, NULL, NULL); + g_mutex_lock (&context->priv->render_lock); if (context->priv->alive) { GST_INFO_OBJECT (context, "send quit gl window loop"); gst_gl_window_quit (context->window); GST_INFO_OBJECT (context, "joining gl thread"); - g_mutex_lock (&context->priv->render_lock); - if (context->priv->alive) { - GThread *t = context->priv->gl_thread; - g_mutex_unlock (&context->priv->render_lock); - g_thread_join (t); - } else { - g_mutex_unlock (&context->priv->render_lock); - } + while (context->priv->alive) + g_cond_wait (&context->priv->destroy_cond, &context->priv->render_lock); GST_INFO_OBJECT (context, "gl thread joined"); + + g_thread_unref (context->priv->gl_thread); context->priv->gl_thread = NULL; } + g_mutex_unlock (&context->priv->render_lock); gst_gl_window_set_close_callback (context->window, NULL, NULL, NULL); gst_object_unref (context->window); @@ -690,6 +690,7 @@ g_mutex_clear (&context->priv->render_lock); g_cond_clear (&context->priv->create_cond); + g_cond_clear (&context->priv->destroy_cond); g_free (context->priv->gl_exts); g_weak_ref_clear (&context->priv->other_context_ref); @@ -1290,6 +1291,7 @@ } context->priv->created = FALSE; + g_cond_signal (&context->priv->destroy_cond); g_mutex_unlock (&context->priv->render_lock); return NULL;
diff --git a/gst-libs/gst/gl/gstglwindow.c b/gst-libs/gst/gl/gstglwindow.c index 3ac2441..7a275e4 100644 --- a/gst-libs/gst/gl/gstglwindow.c +++ b/gst-libs/gst/gl/gstglwindow.c
@@ -142,35 +142,12 @@ static gboolean gst_gl_window_default_open (GstGLWindow * window, GError ** error) { - GstGLWindowPrivate *priv = window->priv; - - if (g_main_context_get_thread_default ()) { - if (priv->main_context) - g_main_context_unref (priv->main_context); - if (priv->loop) - g_main_loop_unref (priv->loop); - priv->main_context = g_main_context_ref_thread_default (); - priv->loop = NULL; - priv->alive = TRUE; - } else { - g_main_context_push_thread_default (priv->main_context); - } - return TRUE; } static void gst_gl_window_default_close (GstGLWindow * window) { - GstGLWindowPrivate *priv = window->priv; - - if (!priv->loop) { - priv->alive = FALSE; - g_main_context_unref (priv->main_context); - priv->main_context = NULL; - } else { - g_main_context_pop_thread_default (priv->main_context); - } } static void @@ -543,7 +520,29 @@ static void gst_gl_window_default_run (GstGLWindow * window) { - g_main_loop_run (window->priv->loop); + GstGLWindowPrivate *priv = window->priv; + + if (g_main_context_get_thread_default ()) { + if (priv->main_context) + g_main_context_unref (priv->main_context); + if (priv->loop) + g_main_loop_unref (priv->loop); + priv->main_context = g_main_context_ref_thread_default (); + priv->loop = NULL; + priv->alive = TRUE; + } else { + g_main_context_push_thread_default (priv->main_context); + } + + g_main_loop_run (priv->loop); + + if (!priv->loop) { + priv->alive = FALSE; + g_main_context_unref (priv->main_context); + priv->main_context = NULL; + } else { + g_main_context_pop_thread_default (priv->main_context); + } } /**
diff --git a/gst-libs/gst/gl/x11/gstglcontext_glx.c b/gst-libs/gst/gl/x11/gstglcontext_glx.c index bc83230..f3a3821 100644 --- a/gst-libs/gst/gl/x11/gstglcontext_glx.c +++ b/gst-libs/gst/gl/x11/gstglcontext_glx.c
@@ -190,7 +190,7 @@ GstGLContextGLX *context_glx; GstGLWindow *window; GstGLWindowX11 *window_x11; - GstGLDisplay *display; + GstGLDisplay *display = NULL; gboolean create_context; const char *glx_exts; Display *device; @@ -198,6 +198,14 @@ context_glx = GST_GL_CONTEXT_GLX (context); window = gst_gl_context_get_window (context); + + if (!GST_IS_GL_WINDOW_X11 (window)) { + g_set_error (error, GST_GL_CONTEXT_ERROR, + GST_GL_CONTEXT_ERROR_WRONG_CONFIG, + "Cannot create an GLX context from a non-X11 window"); + goto failure; + } + window_x11 = GST_GL_WINDOW_X11 (window); display = gst_gl_context_get_display (context); @@ -213,6 +221,12 @@ } device = (Display *) gst_gl_display_get_handle (display); + if (!device) { + g_set_error (error, GST_GL_CONTEXT_ERROR, + GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE, "Invalid Display handle"); + goto failure; + } + glx_exts = glXQueryExtensionsString (device, DefaultScreen (device)); create_context = gst_gl_check_extension ("GLX_ARB_create_context", glx_exts); @@ -277,7 +291,8 @@ failure: if (window) gst_object_unref (window); - gst_object_unref (display); + if (display) + gst_object_unref (display); return FALSE; } @@ -312,8 +327,21 @@ context_glx = GST_GL_CONTEXT_GLX (context); window = gst_gl_context_get_window (context); + + if (!GST_IS_GL_WINDOW_X11 (window)) { + g_set_error (error, GST_GL_CONTEXT_ERROR, + GST_GL_CONTEXT_ERROR_WRONG_CONFIG, + "Cannot create an GLX context from a non-X11 window"); + goto failure; + } window_x11 = GST_GL_WINDOW_X11 (window); + device = (Display *) gst_gl_display_get_handle (window->display); + if (!device) { + g_set_error (error, GST_GL_CONTEXT_ERROR, + GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE, "Invalid Display handle"); + goto failure; + } if (!glXQueryExtension (device, &error_base, &event_base)) { g_set_error (error, GST_GL_CONTEXT_ERROR,
diff --git a/gst-libs/gst/mpegts/gstmpegtssection.c b/gst-libs/gst/mpegts/gstmpegtssection.c index dc62ac3..5222024 100644 --- a/gst-libs/gst/mpegts/gstmpegtssection.c +++ b/gst-libs/gst/mpegts/gstmpegtssection.c
@@ -414,7 +414,7 @@ _parse_pat (GstMpegtsSection * section) { GPtrArray *pat; - guint16 i = 0, nb_programs; + guint16 i, nb_programs; GstMpegtsPatProgram *program; guint8 *data, *end; @@ -430,7 +430,9 @@ g_ptr_array_new_full (nb_programs, (GDestroyNotify) _mpegts_pat_program_free); - while (data < end - 4) { + GST_LOG ("nb_programs %u", nb_programs); + + for (i = 0; i < nb_programs; i++) { program = g_slice_new0 (GstMpegtsPatProgram); program->program_number = GST_READ_UINT16_BE (data); data += 2; @@ -439,8 +441,6 @@ data += 2; g_ptr_array_index (pat, i) = program; - - i++; } pat->len = nb_programs; @@ -632,7 +632,8 @@ { if (pmt->descriptors) g_ptr_array_unref (pmt->descriptors); - g_ptr_array_unref (pmt->streams); + if (pmt->streams) + g_ptr_array_unref (pmt->streams); g_slice_free (GstMpegtsPMT, pmt); } @@ -714,6 +715,11 @@ i += 1; } + /* Section length was longer than the actual content of the PMT */ + if (data < end - 4) + goto error; + + /* Ensure we did not read after the end of our array */ g_assert (data == end - 4); return (gpointer) pmt; @@ -1178,13 +1184,20 @@ GstMpegtsSection *res = NULL; guint8 tmp; guint8 table_id; - guint16 section_length; + guint16 section_length = 0; + + /* The smallest section ever is 3 bytes */ + if (G_UNLIKELY (data_size < 3)) + goto short_packet; /* Check for length */ section_length = GST_READ_UINT16_BE (data + 1) & 0x0FFF; if (G_UNLIKELY (data_size < section_length + 3)) goto short_packet; + GST_LOG ("data_size:%" G_GSIZE_FORMAT " section_length:%u", + data_size, section_length); + /* Table id is in first byte */ table_id = *data; @@ -1199,6 +1212,13 @@ /* section_length (already parsed) : 12 bit */ res->section_length = section_length + 3; if (!res->short_section) { + /* A long packet needs to be at least 11 bytes long + * _ 3 for the bytes above + * _ 5 for the bytes below + * _ 4 for the CRC */ + if (G_UNLIKELY (data_size < 11)) + goto bad_long_packet; + /* CRC is after section_length (-4 for the size of the CRC) */ res->crc = GST_READ_UINT32_BE (res->data + res->section_length - 4); /* Skip to after section_length */ @@ -1228,6 +1248,13 @@ g_free (data); return NULL; } +bad_long_packet: + { + GST_WARNING ("PID 0x%04x long section is too short (%" G_GSIZE_FORMAT + " bytes, need at least 11)", pid, data_size); + gst_mpegts_section_unref (res); + return NULL; + } } /**
diff --git a/gst-plugins-bad.doap b/gst-plugins-bad.doap index f00eab5..78fe530 100644 --- a/gst-plugins-bad.doap +++ b/gst-plugins-bad.doap
@@ -35,6 +35,16 @@ <release> <Version> + <revision>1.10.2</revision> + <branch>1.10</branch> + <name></name> + <created>2016-11-29</created> + <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.10.2.tar.xz" /> + </Version> + </release> + + <release> + <Version> <revision>1.10.1</revision> <branch>1.10</branch> <name></name>
diff --git a/gst-plugins-bad.spec b/gst-plugins-bad.spec index df8dc00..87a344f 100644 --- a/gst-plugins-bad.spec +++ b/gst-plugins-bad.spec
@@ -6,7 +6,7 @@ Summary: GStreamer streaming media framework "bad" plug-ins Name: %{gstreamer}-plugins-bad -Version: 1.10.1 +Version: 1.10.2 Release: 1.gst # The freeze and nfs plugins are LGPLv2 (only) License: LGPLv2+ and LGPLv2
diff --git a/gst/mpegtsdemux/mpegtspacketizer.c b/gst/mpegtsdemux/mpegtspacketizer.c index 16fb8ff..cc46ebb 100644 --- a/gst/mpegtsdemux/mpegtspacketizer.c +++ b/gst/mpegtsdemux/mpegtspacketizer.c
@@ -928,7 +928,7 @@ MpegTSPacketizerStream *stream; gboolean long_packet; guint8 pointer = 0, table_id; - guint16 subtable_extension = 0; + guint16 subtable_extension; gsize to_read; guint section_length; /* data points to the current read location @@ -1051,9 +1051,16 @@ res = section; } - /* FIXME : We need at least 8 bytes with current algorithm :( +section_start: + subtable_extension = 0; + version_number = 0; + last_section_number = 0; + section_number = 0; + table_id = 0; + + /* FIXME : We need at least 3 bytes (or 8 for long packets) with current algorithm :( * We might end up losing sections that start across two packets (srsl...) */ - if (data > packet->data_end - 8 || *data == 0xff) { + if (data > packet->data_end - 3 || *data == 0xff) { /* flush stuffing bytes and leave */ mpegts_packetizer_clear_section (stream); goto out; @@ -1062,8 +1069,6 @@ /* We have more data to process ... */ GST_DEBUG ("PID 0x%04x, More section present in packet (remaining bytes:%" G_GSIZE_FORMAT ")", stream->pid, (gsize) (packet->data_end - data)); - -section_start: GST_MEMDUMP ("section_start", data, packet->data_end - data); data_start = data; /* Beginning of a new section */ @@ -1116,6 +1121,10 @@ data += 2; if (long_packet) { + /* Do we have enough data for a long packet? */ + if (data > packet->data_end - 5) + goto out; + /* subtable_extension (always present, we are in a long section) */ /* subtable extension : 16 bit */ subtable_extension = GST_READ_UINT16_BE (data); @@ -1864,14 +1873,20 @@ static inline void _append_group_values (PCROffsetGroup * group, PCROffset pcroffset) { - group->last_value++; - /* Resize values if needed */ - if (G_UNLIKELY (group->nb_allocated == group->last_value)) { - group->nb_allocated += DEFAULT_ALLOCATED_OFFSET; - group->values = - g_realloc (group->values, group->nb_allocated * sizeof (PCROffset)); + /* Only append if new values */ + if (group->values[group->last_value].offset == pcroffset.offset && + group->values[group->last_value].pcr == pcroffset.pcr) { + GST_DEBUG ("Same values, ignoring"); + } else { + group->last_value++; + /* Resize values if needed */ + if (G_UNLIKELY (group->nb_allocated == group->last_value)) { + group->nb_allocated += DEFAULT_ALLOCATED_OFFSET; + group->values = + g_realloc (group->values, group->nb_allocated * sizeof (PCROffset)); + } + group->values[group->last_value] = pcroffset; } - group->values[group->last_value] = pcroffset; GST_DEBUG ("First PCR:%" GST_TIME_FORMAT " offset:%" G_GUINT64_FORMAT " PCR_offset:%" GST_TIME_FORMAT,
diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c index fe0c3a6..c701c37 100644 --- a/gst/mpegtsdemux/tsdemux.c +++ b/gst/mpegtsdemux/tsdemux.c
@@ -1870,6 +1870,7 @@ if (demux->requested_program_number == program->program_number || (demux->requested_program_number == -1 && demux->program_number == -1)) { GList *tmp; + gboolean have_pads = FALSE; GST_LOG ("program %d started", program->program_number); demux->program_number = program->program_number; @@ -1906,6 +1907,8 @@ for (tmp = program->stream_list; tmp; tmp = tmp->next) { TSDemuxStream *stream = (TSDemuxStream *) tmp->data; activate_pad_for_stream (demux, stream); + if (stream->pad) + have_pads = TRUE; } /* If there was a previous program, now is the time to deactivate it @@ -1915,6 +1918,16 @@ mpegts_base_deactivate_and_free_program (base, demux->previous_program); demux->previous_program = NULL; } + + if (!have_pads) { + /* If we had no pads, this stream is likely corrupted or unsupported and + * there's not much we can do at this point */ + GST_ELEMENT_ERROR (demux, STREAM, WRONG_TYPE, + ("This stream contains no valid or supported streams."), + ("activating program but got no pads")); + return; + } + /* If any of the stream is sparse, push a GAP event before anything else * This is done here, and not in activate_pad_for_stream() because pushing * a GAP event *is* considering data, and we want to ensure the (potential) @@ -1930,6 +1943,7 @@ gst_pad_push_event (stream->pad, gst_event_new_gap (0, 0)); } } + gst_element_no_more_pads ((GstElement *) demux); } }
diff --git a/gst/mxf/Makefile.am b/gst/mxf/Makefile.am index 2d87907..17ce6e4 100644 --- a/gst/mxf/Makefile.am +++ b/gst/mxf/Makefile.am
@@ -16,8 +16,7 @@ mxfjpeg2000.c \ mxfd10.c \ mxfup.c \ - mxfvc3.c \ - mxfdms1.c + mxfvc3.c libgstmxf_la_CFLAGS = \ -I$(top_srcdir)/gst-libs \ @@ -50,5 +49,4 @@ mxfjpeg2000.h \ mxfd10.h \ mxfup.h \ - mxfvc3.h \ - mxfdms1.h + mxfvc3.h
diff --git a/gst/mxf/Makefile.in b/gst/mxf/Makefile.in index 21ddb86..91aad56 100644 --- a/gst/mxf/Makefile.in +++ b/gst/mxf/Makefile.in
@@ -173,8 +173,7 @@ libgstmxf_la-mxfaes-bwf.lo libgstmxf_la-mxfmpeg.lo \ libgstmxf_la-mxfdv-dif.lo libgstmxf_la-mxfalaw.lo \ libgstmxf_la-mxfjpeg2000.lo libgstmxf_la-mxfd10.lo \ - libgstmxf_la-mxfup.lo libgstmxf_la-mxfvc3.lo \ - libgstmxf_la-mxfdms1.lo + libgstmxf_la-mxfup.lo libgstmxf_la-mxfvc3.lo libgstmxf_la_OBJECTS = $(am_libgstmxf_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -814,8 +813,7 @@ mxfjpeg2000.c \ mxfd10.c \ mxfup.c \ - mxfvc3.c \ - mxfdms1.c + mxfvc3.c libgstmxf_la_CFLAGS = \ -I$(top_srcdir)/gst-libs \ @@ -849,8 +847,7 @@ mxfjpeg2000.h \ mxfd10.h \ mxfup.h \ - mxfvc3.h \ - mxfdms1.h + mxfvc3.h all: all-am @@ -935,7 +932,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmxf_la-mxfalaw.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmxf_la-mxfd10.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmxf_la-mxfdemux.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmxf_la-mxfdms1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmxf_la-mxfdv-dif.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmxf_la-mxfessence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmxf_la-mxfjpeg2000.Plo@am__quote@ @@ -1084,13 +1080,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfvc3.lo `test -f 'mxfvc3.c' || echo '$(srcdir)/'`mxfvc3.c -libgstmxf_la-mxfdms1.lo: mxfdms1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfdms1.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfdms1.Tpo -c -o libgstmxf_la-mxfdms1.lo `test -f 'mxfdms1.c' || echo '$(srcdir)/'`mxfdms1.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfdms1.Tpo $(DEPDIR)/libgstmxf_la-mxfdms1.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfdms1.c' object='libgstmxf_la-mxfdms1.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfdms1.lo `test -f 'mxfdms1.c' || echo '$(srcdir)/'`mxfdms1.c - mostlyclean-libtool: -rm -f *.lo
diff --git a/gst/mxf/mxf.c b/gst/mxf/mxf.c index 324462b..135a16e 100644 --- a/gst/mxf/mxf.c +++ b/gst/mxf/mxf.c
@@ -25,7 +25,7 @@ #include "mxfquark.h" #include "mxfdemux.h" #include "mxfmux.h" -#include "mxfdms1.h" +/*#include "mxfdms1.h"*/ #include "mxfaes-bwf.h" #include "mxfalaw.h" #include "mxfd10.h" @@ -59,7 +59,7 @@ mxf_init (); mxf_quark_initialize (); mxf_metadata_init_types (); - mxf_dms1_initialize (); +/* mxf_dms1_initialize ();*/ mxf_aes_bwf_init (); mxf_alaw_init (); mxf_d10_init ();
diff --git a/gst/mxf/mxfaes-bwf.c b/gst/mxf/mxfaes-bwf.c index 633f3af..f92d682 100644 --- a/gst/mxf/mxfaes-bwf.c +++ b/gst/mxf/mxfaes-bwf.c
@@ -643,11 +643,14 @@ tag_data += 8; tag_size -= 8; - if (tag_size != len * 24) + if (tag_size / 24 != len) + goto error; + + if (G_MAXINT / (24 + sizeof (guint8 *)) < len) goto error; self->fixed_channel_status_data = - g_malloc0 (len * sizeof (guint8 *) + len * 24); + g_malloc0 (len * (sizeof (guint8 *) + 24)); for (i = 0; i < len; i++) { self->fixed_channel_status_data[i] = @@ -738,10 +741,13 @@ tag_data += 8; tag_size -= 8; - if (tag_size != len * 24) + if (tag_size / 24 != len) goto error; - self->fixed_user_data = g_malloc0 (len * sizeof (guint8 *) + len * 24); + if (G_MAXINT / (24 + sizeof (guint8 *)) < len) + goto error; + + self->fixed_user_data = g_malloc0 (len * (sizeof (guint8 *) + 24)); for (i = 0; i < len; i++) { self->fixed_user_data[i] =
diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c index 823b1b6..a380f6d 100644 --- a/gst/mxf/mxfdemux.c +++ b/gst/mxf/mxfdemux.c
@@ -1304,6 +1304,9 @@ return GST_FLOW_OK; } + if (gst_buffer_get_size (buffer) == 0) + return GST_FLOW_OK; + gst_buffer_map (buffer, &map, GST_MAP_READ); metadata = mxf_metadata_new (type, &demux->current_partition->primer, demux->offset, @@ -1768,7 +1771,7 @@ index->offset = demux->offset - demux->run_in; index->keyframe = keyframe; - } else { + } else if (etrack->position < G_MAXINT) { GstMXFDemuxIndex index; index.offset = demux->offset - demux->run_in; @@ -2330,13 +2333,11 @@ buffer = NULL; if (demux->current_partition->partition.header_byte_count == 0) { - if (demux->current_partition->partition.prev_partition == 0 - || demux->current_partition->partition.this_partition == 0) + if (demux->current_partition->partition.this_partition == 0) goto out; demux->offset = - demux->run_in + demux->current_partition->partition.this_partition - - demux->current_partition->partition.prev_partition; + demux->run_in + demux->current_partition->partition.prev_partition; goto next_try; } @@ -2345,10 +2346,10 @@ gst_mxf_demux_pull_klv_packet (demux, demux->offset, &key, &buffer, &read); if (G_UNLIKELY (flow != GST_FLOW_OK)) { + if (!demux->current_partition->partition.prev_partition) + goto out; demux->offset = - demux->run_in + - demux->current_partition->partition.this_partition - - demux->current_partition->partition.prev_partition; + demux->run_in + demux->current_partition->partition.prev_partition; goto next_try; } @@ -2363,9 +2364,10 @@ demux->offset += read; gst_buffer_unref (buffer); buffer = NULL; + if (!demux->current_partition->partition.prev_partition) + goto out; demux->offset = demux->run_in + - demux->current_partition->partition.this_partition - demux->current_partition->partition.prev_partition; goto next_try; } @@ -2377,10 +2379,10 @@ } else { gst_buffer_unref (buffer); buffer = NULL; + if (!demux->current_partition->partition.prev_partition) + goto out; demux->offset = - demux->run_in + - demux->current_partition->partition.this_partition - - demux->current_partition->partition.prev_partition; + demux->run_in + demux->current_partition->partition.prev_partition; goto next_try; } } @@ -2393,10 +2395,10 @@ gst_mxf_demux_pull_klv_packet (demux, demux->offset, &key, &buffer, &read); if (G_UNLIKELY (flow != GST_FLOW_OK)) { + if (!demux->current_partition->partition.prev_partition) + goto out; demux->offset = - demux->run_in + - demux->current_partition->partition.this_partition - - demux->current_partition->partition.prev_partition; + demux->run_in + demux->current_partition->partition.prev_partition; goto next_try; } @@ -2408,10 +2410,10 @@ if (G_UNLIKELY (flow != GST_FLOW_OK)) { gst_mxf_demux_reset_metadata (demux); + if (!demux->current_partition->partition.prev_partition) + goto out; demux->offset = - demux->run_in + - demux->current_partition->partition.this_partition - - demux->current_partition->partition.prev_partition; + demux->run_in + demux->current_partition->partition.prev_partition; goto next_try; } } else if (mxf_is_descriptive_metadata (&key)) { @@ -2438,13 +2440,13 @@ } /* resolve references etc */ - - if (gst_mxf_demux_resolve_references (demux) != + if (!demux->preface || gst_mxf_demux_resolve_references (demux) != GST_FLOW_OK || gst_mxf_demux_update_tracks (demux) != GST_FLOW_OK) { demux->current_partition->parsed_metadata = TRUE; + if (!demux->current_partition->partition.prev_partition) + goto out; demux->offset = - demux->run_in + demux->current_partition->partition.this_partition - - demux->current_partition->partition.prev_partition; + demux->run_in + demux->current_partition->partition.prev_partition; goto next_try; } @@ -3066,7 +3068,11 @@ if (flow == GST_FLOW_EOS) { /* perform EOS logic */ - if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) { + if (demux->src->len == 0) { + GST_ELEMENT_ERROR (demux, STREAM, WRONG_TYPE, + ("This stream contains no data."), + ("got eos and didn't find any streams")); + } else if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) { gint64 stop; GstMessage *m; GstEvent *e; @@ -3556,11 +3562,18 @@ start = segment->index_start_position; end = start + segment->index_duration; + if (end > G_MAXINT / sizeof (GstMXFDemuxIndex)) { + demux->index_tables = g_list_remove (demux->index_tables, t); + g_array_free (t->offsets, TRUE); + g_free (t); + continue; + } if (t->offsets->len < end) g_array_set_size (t->offsets, end); - for (i = 0; i < segment->n_index_entries; i++) { + for (i = 0; i < segment->n_index_entries && start + i < t->offsets->len; + i++) { GstMXFDemuxIndex *index = &g_array_index (t->offsets, GstMXFDemuxIndex, start + i); guint64 offset = segment->index_entries[i].stream_offset; @@ -4075,6 +4088,12 @@ GstMXFDemuxPad *p = NULL; guint i; + if (demux->src->len == 0) { + GST_ELEMENT_ERROR (demux, STREAM, WRONG_TYPE, + ("This stream contains no data."), + ("got eos and didn't find any streams")); + } + for (i = 0; i < demux->essence_tracks->len; i++) { GstMXFDemuxEssenceTrack *t = &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
diff --git a/gst/mxf/mxfdms1.c b/gst/mxf/mxfdms1.c deleted file mode 100644 index d5d5d95..0000000 --- a/gst/mxf/mxfdms1.c +++ /dev/null
@@ -1,5656 +0,0 @@ -/* GStreamer - * Copyright (C) 2008-2009 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -/* Implementation of SMPTE S380M - Descriptive Metadata Scheme-1 */ - -/* TODO: - * - What are the "locators"? - * - Create sensible tags from this - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <gst/gst.h> -#include <string.h> - -#include "mxfdms1.h" -#include "mxftypes.h" - -GST_DEBUG_CATEGORY_EXTERN (mxf_debug); -#define GST_CAT_DEFAULT mxf_debug - -G_DEFINE_ABSTRACT_TYPE (MXFDMS1, mxf_dms1, MXF_TYPE_DESCRIPTIVE_METADATA); - -static gboolean -mxf_dms1_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1 *self = MXF_DMS1 (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 instance_uid_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x15, 0x02, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 generation_uid_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, 0x05, - 0x20, 0x07, 0x01, 0x08, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &instance_uid_ul, 16) == 0) { - if (tag_size != 16) - goto error; - memcpy (&MXF_METADATA_BASE (self)->instance_uid, tag_data, 16); - GST_DEBUG (" instance uid = %s", - mxf_uuid_to_string (&MXF_METADATA_BASE (self)->instance_uid, str)); - } else if (memcmp (tag_ul, &generation_uid_ul, 16) == 0) { - if (tag_size != 16) - goto error; - memcpy (&MXF_METADATA_BASE (self)->generation_uid, tag_data, 16); - GST_DEBUG (" generation uid = %s", - mxf_uuid_to_string (&MXF_METADATA_BASE (self)->generation_uid, str)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 local tag 0x%04x of size %u", tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_init (MXFDMS1 * self) -{ -} - -static void -mxf_dms1_class_init (MXFDMS1Class * klass) -{ - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - metadatabase_class->handle_tag = mxf_dms1_handle_tag; - dm_class->scheme = 0x01; -} - -G_DEFINE_ABSTRACT_TYPE (MXFDMS1TextLanguage, mxf_dms1_text_language, - MXF_TYPE_DMS1); - -static gboolean -mxf_dms1_text_language_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1TextLanguage *self = MXF_DMS1_TEXT_LANGUAGE (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 extended_text_language_code_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x03, - 0x01, 0x01, 0x02, 0x02, 0x11, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &extended_text_language_code_ul, 16) == 0) { - if (tag_size > 12) - goto error; - - memcpy (self->extended_text_language_code, tag_data, tag_size); - GST_DEBUG (" extended text language code = %s", - self->extended_text_language_code); - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_text_language_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 text language local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_text_language_init (MXFDMS1TextLanguage * self) -{ -} - -static void -mxf_dms1_text_language_class_init (MXFDMS1TextLanguageClass * klass) -{ - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - - metadatabase_class->handle_tag = mxf_dms1_text_language_handle_tag; -} - -G_DEFINE_ABSTRACT_TYPE (MXFDMS1Thesaurus, mxf_dms1_thesaurus, - MXF_TYPE_DMS1_TEXT_LANGUAGE); - -static void -mxf_dms1_thesaurus_finalize (GObject * object) -{ - MXFDMS1Thesaurus *self = MXF_DMS1_THESAURUS (object); - - g_free (self->thesaurus_name); - self->thesaurus_name = NULL; - - G_OBJECT_CLASS (mxf_dms1_thesaurus_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_thesaurus_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Thesaurus *self = MXF_DMS1_THESAURUS (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 thesaurus_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x01, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &thesaurus_name_ul, 16) == 0) { - self->thesaurus_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" thesaurus name = %s", GST_STR_NULL (self->thesaurus_name)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_thesaurus_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; -} - -static void -mxf_dms1_thesaurus_init (MXFDMS1Thesaurus * self) -{ -} - -static void -mxf_dms1_thesaurus_class_init (MXFDMS1ThesaurusClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - - object_class->finalize = mxf_dms1_thesaurus_finalize; - metadatabase_class->handle_tag = mxf_dms1_thesaurus_handle_tag; -} - -static void -mxf_dms1_framework_interface_init (gpointer g_iface, gpointer iface_data) -{ -} - -G_DEFINE_ABSTRACT_TYPE_WITH_CODE (MXFDMS1Framework, mxf_dms1_framework, - MXF_TYPE_DMS1, - G_IMPLEMENT_INTERFACE (MXF_TYPE_DESCRIPTIVE_METADATA_FRAMEWORK, - mxf_dms1_framework_interface_init)); - -static void -mxf_dms1_framework_finalize (GObject * object) -{ - MXFDMS1Framework *self = MXF_DMS1_FRAMEWORK (object); - - g_free (self->framework_thesaurus_name); - self->framework_thesaurus_name = NULL; - - g_free (self->framework_title); - self->framework_title = NULL; - - g_free (self->metadata_server_locators_uids); - self->metadata_server_locators_uids = NULL; - - g_free (self->titles_sets_uids); - self->titles_sets_uids = NULL; - - g_free (self->titles_sets); - self->titles_sets = NULL; - - g_free (self->annotation_sets_uids); - self->annotation_sets_uids = NULL; - - g_free (self->annotation_sets); - self->annotation_sets = NULL; - - g_free (self->participant_sets_uids); - self->participant_sets_uids = NULL; - - g_free (self->participant_sets); - self->participant_sets = NULL; - - g_free (self->location_sets_uids); - self->location_sets_uids = NULL; - - g_free (self->location_sets); - self->location_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_framework_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_framework_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Framework *self = MXF_DMS1_FRAMEWORK (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->titles_sets) - memset (self->titles_sets, 0, sizeof (gpointer) * self->n_titles_sets); - else - self->titles_sets = g_new0 (MXFDMS1Titles *, self->n_titles_sets); - - if (self->annotation_sets) - memset (self->annotation_sets, 0, - sizeof (gpointer) * self->n_annotation_sets); - else - self->annotation_sets = - g_new0 (MXFDMS1Annotation *, self->n_annotation_sets); - - if (self->participant_sets) - memset (self->participant_sets, 0, - sizeof (gpointer) * self->n_participant_sets); - else - self->participant_sets = - g_new0 (MXFDMS1Participant *, self->n_participant_sets); - - if (self->location_sets) - memset (self->location_sets, 0, sizeof (gpointer) * self->n_location_sets); - else - self->location_sets = g_new0 (MXFDMS1Location *, self->n_location_sets); - - for (i = 0; i < self->n_titles_sets; i++) { - current = g_hash_table_lookup (metadata, &self->titles_sets_uids[i]); - - if (current && MXF_IS_DMS1_TITLES (current)) { - self->titles_sets[i] = MXF_DMS1_TITLES (current); - } - } - - for (i = 0; i < self->n_annotation_sets; i++) { - current = g_hash_table_lookup (metadata, &self->annotation_sets_uids[i]); - if (current && MXF_IS_DMS1_ANNOTATION (current)) { - self->annotation_sets[i] = MXF_DMS1_ANNOTATION (current); - } - } - - for (i = 0; i < self->n_participant_sets; i++) { - current = g_hash_table_lookup (metadata, &self->participant_sets_uids[i]); - if (current && MXF_IS_DMS1_PARTICIPANT (current)) { - self->participant_sets[i] = MXF_DMS1_PARTICIPANT (current); - } - } - - current = g_hash_table_lookup (metadata, &self->contacts_list_set_uid); - if (current && MXF_IS_DMS1_CONTACTS_LIST (current)) { - self->contacts_list_set = MXF_DMS1_CONTACTS_LIST (current); - } - - for (i = 0; i < self->n_location_sets; i++) { - current = g_hash_table_lookup (metadata, &self->location_sets_uids[i]); - if (current && MXF_IS_DMS1_LOCATION (current)) { - self->location_sets[i] = MXF_DMS1_LOCATION (current); - } - } - - return MXF_METADATA_BASE_CLASS (mxf_dms1_framework_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_framework_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Framework *self = MXF_DMS1_FRAMEWORK (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 framework_extended_text_language_code_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x03, - 0x01, 0x01, 0x02, 0x02, 0x13, 0x00, 0x00 - }; - static const guint8 framework_thesaurus_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x01, 0x02, 0x15, 0x01, 0x00, 0x00 - }; - static const guint8 framework_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x01, - 0x05, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 primary_extended_spoken_language_code_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x03, - 0x01, 0x01, 0x02, 0x03, 0x11, 0x00, 0x00 - }; - static const guint8 secondary_extended_spoken_language_code_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x03, - 0x01, 0x01, 0x02, 0x03, 0x12, 0x00, 0x00 - }; - static const guint8 original_extended_spoken_language_code_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x03, - 0x01, 0x01, 0x02, 0x03, 0x13, 0x00, 0x00 - }; - static const guint8 metadata_server_locators_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x06, 0x0C, 0x00, 0x00 - }; - static const guint8 titles_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x04, 0x00 - }; - static const guint8 annotation_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x0d, 0x00 - }; - static const guint8 participant_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x13, 0x00 - }; - static const guint8 contacts_list_set_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x02, 0x40, 0x22, 0x00 - }; - static const guint8 location_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x16, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &framework_extended_text_language_code_ul, 16) == 0) { - if (tag_size > 12) - goto error; - memcpy (&self->framework_extended_text_language_code, tag_data, tag_size); - GST_DEBUG (" framework extended text language code = %s", - self->framework_extended_text_language_code); - } else if (memcmp (tag_ul, &framework_thesaurus_name_ul, 16) == 0) { - self->framework_thesaurus_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" framework thesaurus name = %s", - GST_STR_NULL (self->framework_thesaurus_name)); - } else if (memcmp (tag_ul, &framework_title_ul, 16) == 0) { - self->framework_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" framework title = %s", GST_STR_NULL (self->framework_title)); - } else if (memcmp (tag_ul, &primary_extended_spoken_language_code_ul, - 16) == 0) { - if (tag_size > 12) - goto error; - memcpy (&self->primary_extended_spoken_language_code, tag_data, tag_size); - GST_DEBUG (" primary extended spoken language code = %s", - self->primary_extended_spoken_language_code); - } else if (memcmp (tag_ul, &secondary_extended_spoken_language_code_ul, - 16) == 0) { - if (tag_size > 12) - goto error; - memcpy (&self->secondary_extended_spoken_language_code, tag_data, tag_size); - GST_DEBUG (" secondary extended spoken language code = %s", - self->secondary_extended_spoken_language_code); - } else if (memcmp (tag_ul, &original_extended_spoken_language_code_ul, - 16) == 0) { - if (tag_size > 12) - goto error; - memcpy (&self->original_extended_spoken_language_code, tag_data, tag_size); - GST_DEBUG (" original extended spoken language code = %s", - self->original_extended_spoken_language_code); - } else if (memcmp (tag_ul, &metadata_server_locators_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->metadata_server_locators_uids, - &self->n_metadata_server_locators, tag_data, tag_size)) - goto error; - - GST_DEBUG (" number of metadata server locators = %u", - self->n_metadata_server_locators); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_metadata_server_locators; i++) { - GST_DEBUG (" metadata server locator %u = %s", i, - mxf_uuid_to_string (&self->metadata_server_locators_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &titles_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->titles_sets_uids, &self->n_titles_sets, - tag_data, tag_size)) - goto error; - - GST_DEBUG (" number of titles sets = %u", self->n_titles_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_titles_sets; i++) { - GST_DEBUG (" titles sets %u = %s", i, - mxf_uuid_to_string (&self->titles_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &annotation_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->annotation_sets_uids, - &self->n_annotation_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of annotation sets = %u", self->n_annotation_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_annotation_sets; i++) { - GST_DEBUG (" annotation sets %u = %s", i, - mxf_uuid_to_string (&self->annotation_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &participant_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->participant_sets_uids, - &self->n_participant_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of participant sets = %u", self->n_participant_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_participant_sets; i++) { - GST_DEBUG (" participant sets %u = %s", i, - mxf_uuid_to_string (&self->participant_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &contacts_list_set_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->contacts_list_set_uid, tag_data, 16); - GST_DEBUG (" contacts list = %s", - mxf_uuid_to_string (&self->contacts_list_set_uid, str)); - } else if (memcmp (tag_ul, &location_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->location_sets_uids, - &self->n_location_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of location sets = %u", self->n_location_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_location_sets; i++) { - GST_DEBUG (" location sets %u = %s", i, - mxf_uuid_to_string (&self->location_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_framework_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 framework local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_framework_init (MXFDMS1Framework * self) -{ -} - -static void -mxf_dms1_framework_class_init (MXFDMS1FrameworkClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - - object_class->finalize = mxf_dms1_framework_finalize; - metadatabase_class->handle_tag = mxf_dms1_framework_handle_tag; - metadatabase_class->resolve = mxf_dms1_framework_resolve; -} - -G_DEFINE_ABSTRACT_TYPE (MXFDMS1ProductionClipFramework, - mxf_dms1_production_clip_framework, MXF_TYPE_DMS1_FRAMEWORK); - -static void -mxf_dms1_production_clip_framework_finalize (GObject * object) -{ - MXFDMS1ProductionClipFramework *self = - MXF_DMS1_PRODUCTION_CLIP_FRAMEWORK (object); - - g_free (self->captions_description_sets_uids); - self->captions_description_sets_uids = NULL; - - g_free (self->captions_description_sets); - self->captions_description_sets = NULL; - - g_free (self->contract_sets_uids); - self->contract_sets_uids = NULL; - - g_free (self->contract_sets); - self->contract_sets = NULL; - - G_OBJECT_CLASS - (mxf_dms1_production_clip_framework_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_production_clip_framework_resolve (MXFMetadataBase * m, - GHashTable * metadata) -{ - MXFDMS1ProductionClipFramework *self = MXF_DMS1_PRODUCTION_CLIP_FRAMEWORK (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->captions_description_sets) - memset (self->captions_description_sets, 0, - sizeof (gpointer) * self->n_captions_description_sets); - else - self->captions_description_sets = - g_new0 (MXFDMS1CaptionsDescription *, - self->n_captions_description_sets); - - if (self->contract_sets) - memset (self->contract_sets, 0, - sizeof (gpointer) * self->n_captions_description_sets); - else - self->contract_sets = g_new0 (MXFDMS1Contract *, self->n_contract_sets); - - current = g_hash_table_lookup (metadata, &self->picture_format_set_uid); - if (current && MXF_IS_DMS1_PICTURE_FORMAT (current)) { - self->picture_format = MXF_DMS1_PICTURE_FORMAT (current); - } - - for (i = 0; i < self->n_captions_description_sets; i++) { - current = - g_hash_table_lookup (metadata, - &self->captions_description_sets_uids[i]); - if (current && MXF_IS_DMS1_CAPTIONS_DESCRIPTION (current)) { - self->captions_description_sets[i] = - MXF_DMS1_CAPTIONS_DESCRIPTION (current); - } - } - - for (i = 0; i < self->n_contract_sets; i++) { - current = g_hash_table_lookup (metadata, &self->contract_sets_uids[i]); - if (current && MXF_IS_DMS1_CONTRACT (current)) { - self->contract_sets[i] = MXF_DMS1_CONTRACT (current); - } - } - - current = g_hash_table_lookup (metadata, &self->project_set_uid); - if (current && MXF_IS_DMS1_PROJECT (current)) { - self->project_set = MXF_DMS1_PROJECT (current); - } - - return - MXF_METADATA_BASE_CLASS - (mxf_dms1_production_clip_framework_parent_class)->resolve (m, metadata); -} - -static gboolean -mxf_dms1_production_clip_framework_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1ProductionClipFramework *self = - MXF_DMS1_PRODUCTION_CLIP_FRAMEWORK (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 picture_format_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x02, 0x40, 0x1d, 0x00 - }; - static const guint8 captions_description_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x0c, 0x00 - }; - static const guint8 contract_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x19, 0x00 - }; - static const guint8 project_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x02, 0x40, 0x21, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &picture_format_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->picture_format_set_uid, tag_data, 16); - GST_DEBUG (" picture format set = %s", - mxf_uuid_to_string (&self->picture_format_set_uid, str)); - } else if (memcmp (tag_ul, &captions_description_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->captions_description_sets_uids, - &self->n_captions_description_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of captions description sets = %u", - self->n_captions_description_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_captions_description_sets; i++) { - GST_DEBUG (" captions description sets %u = %s", i, - mxf_uuid_to_string (&self->captions_description_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &contract_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->contract_sets_uids, - &self->n_contract_sets, tag_data, tag_size)) - goto error; - - GST_DEBUG (" number of contract sets = %u", self->n_contract_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_contract_sets; i++) { - GST_DEBUG (" contract sets %u = %s", i, - mxf_uuid_to_string (&self->contract_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &project_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->project_set_uid, tag_data, 16); - GST_DEBUG (" project set = %s", mxf_uuid_to_string (&self->project_set_uid, - str)); - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_production_clip_framework_parent_class)->handle_tag (metadata, - primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR - ("Invalid DMS1 production-clip framework local tag 0x%04x of size %u", - tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_production_clip_framework_init (MXFDMS1ProductionClipFramework * self) -{ -} - -static void - mxf_dms1_production_clip_framework_class_init - (MXFDMS1ProductionClipFrameworkClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - - object_class->finalize = mxf_dms1_production_clip_framework_finalize; - metadatabase_class->handle_tag = - mxf_dms1_production_clip_framework_handle_tag; - metadatabase_class->resolve = mxf_dms1_production_clip_framework_resolve; -} - -G_DEFINE_TYPE (MXFDMS1ProductionFramework, mxf_dms1_production_framework, - MXF_TYPE_DMS1_PRODUCTION_CLIP_FRAMEWORK); - -static void -mxf_dms1_production_framework_finalize (GObject * object) -{ - MXFDMS1ProductionFramework *self = MXF_DMS1_PRODUCTION_FRAMEWORK (object); - - g_free (self->integration_indication); - self->integration_indication = NULL; - - g_free (self->identification_sets_uids); - self->identification_sets_uids = NULL; - - g_free (self->identification_sets); - self->identification_sets = NULL; - - g_free (self->group_relationship_sets_uids); - self->group_relationship_sets_uids = NULL; - - g_free (self->group_relationship_sets); - self->group_relationship_sets = NULL; - - g_free (self->branding_sets_uids); - self->branding_sets_uids = NULL; - - g_free (self->branding_sets); - self->branding_sets = NULL; - - g_free (self->event_sets_uids); - self->event_sets_uids = NULL; - - g_free (self->event_sets); - self->event_sets = NULL; - - g_free (self->award_sets_uids); - self->award_sets_uids = NULL; - - g_free (self->award_sets); - self->award_sets = NULL; - - g_free (self->setting_period_sets_uids); - self->setting_period_sets_uids = NULL; - - g_free (self->setting_period_sets); - self->setting_period_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_production_framework_parent_class)->finalize - (object); -} - -static gboolean -mxf_dms1_production_framework_resolve (MXFMetadataBase * m, - GHashTable * metadata) -{ - MXFDMS1ProductionFramework *self = MXF_DMS1_PRODUCTION_FRAMEWORK (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->identification_sets) - memset (self->identification_sets, 0, - sizeof (gpointer) * self->n_identification_sets); - else - self->identification_sets = - g_new0 (MXFDMS1Identification *, self->n_identification_sets); - - if (self->group_relationship_sets) - memset (self->group_relationship_sets, 0, - sizeof (gpointer) * self->n_group_relationship_sets); - else - self->group_relationship_sets = - g_new0 (MXFDMS1GroupRelationship *, self->n_group_relationship_sets); - - if (self->branding_sets) - memset (self->branding_sets, 0, sizeof (gpointer) * self->n_branding_sets); - else - self->branding_sets = g_new0 (MXFDMS1Branding *, self->n_branding_sets); - - if (self->event_sets) - memset (self->event_sets, 0, sizeof (gpointer) * self->n_event_sets); - else - self->event_sets = g_new0 (MXFDMS1Event *, self->n_event_sets); - - if (self->award_sets) - memset (self->award_sets, 0, sizeof (gpointer) * self->n_award_sets); - else - self->award_sets = g_new0 (MXFDMS1Award *, self->n_award_sets); - - if (self->setting_period_sets) - memset (self->setting_period_sets, 0, - sizeof (gpointer) * self->n_setting_period_sets); - else - self->setting_period_sets = - g_new0 (MXFDMS1SettingPeriod *, self->n_setting_period_sets); - - for (i = 0; i < self->n_identification_sets; i++) { - current = - g_hash_table_lookup (metadata, &self->identification_sets_uids[i]); - if (current && MXF_IS_DMS1_IDENTIFICATION (current)) { - self->identification_sets[i] = MXF_DMS1_IDENTIFICATION (current); - } - } - - for (i = 0; i < self->n_group_relationship_sets; i++) { - current = - g_hash_table_lookup (metadata, &self->group_relationship_sets_uids[i]); - if (current && MXF_IS_DMS1_GROUP_RELATIONSHIP (current)) { - self->group_relationship_sets[i] = MXF_DMS1_GROUP_RELATIONSHIP (current); - } - } - - for (i = 0; i < self->n_branding_sets; i++) { - current = g_hash_table_lookup (metadata, &self->branding_sets_uids[i]); - if (current && MXF_IS_DMS1_BRANDING (current)) { - self->branding_sets[i] = MXF_DMS1_BRANDING (current); - } - } - - for (i = 0; i < self->n_event_sets; i++) { - current = g_hash_table_lookup (metadata, &self->event_sets_uids[i]); - if (current && MXF_IS_DMS1_EVENT (current)) { - self->event_sets[i] = MXF_DMS1_EVENT (current); - } - } - - for (i = 0; i < self->n_award_sets; i++) { - current = g_hash_table_lookup (metadata, &self->award_sets_uids[i]); - if (current && MXF_IS_DMS1_AWARD (current)) { - self->award_sets[i] = MXF_DMS1_AWARD (current); - } - } - - for (i = 0; i < self->n_setting_period_sets; i++) { - current = - g_hash_table_lookup (metadata, &self->setting_period_sets_uids[i]); - if (current && MXF_IS_DMS1_SETTING_PERIOD (current)) { - self->setting_period_sets[i] = MXF_DMS1_SETTING_PERIOD (current); - } - } - - return - MXF_METADATA_BASE_CLASS - (mxf_dms1_production_framework_parent_class)->resolve (m, metadata); -} - -static gboolean -mxf_dms1_production_framework_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1ProductionFramework *self = MXF_DMS1_PRODUCTION_FRAMEWORK (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 integration_indication_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x05, - 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 identification_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x06, 0x00 - }; - static const guint8 group_relationship_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x05, 0x00 - }; - static const guint8 branding_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x08, 0x00 - }; - static const guint8 event_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x09, 0x00 - }; - static const guint8 award_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x0b, 0x00 - }; - static const guint8 setting_period_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x0e, 0x01 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &integration_indication_ul, 16) == 0) { - self->integration_indication = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" integration indication = %s", - GST_STR_NULL (self->integration_indication)); - } else if (memcmp (tag_ul, &identification_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->identification_sets_uids, - &self->n_identification_sets, tag_data, tag_size)) - goto error; - - GST_DEBUG (" number of identification sets = %u", - self->n_identification_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_identification_sets; i++) { - GST_DEBUG (" identification sets %u = %s", i, - mxf_uuid_to_string (&self->identification_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &group_relationship_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->group_relationship_sets_uids, - &self->n_group_relationship_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of group relationship sets = %u", - self->n_group_relationship_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_group_relationship_sets; i++) { - GST_DEBUG (" group relationship sets %u = %s", i, - mxf_uuid_to_string (&self->group_relationship_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &branding_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->branding_sets_uids, - &self->n_branding_sets, tag_data, tag_size)) - goto error; - - GST_DEBUG (" number of branding sets = %u", self->n_branding_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_branding_sets; i++) { - GST_DEBUG (" branding sets %u = %s", i, - mxf_uuid_to_string (&self->branding_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &event_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->event_sets_uids, &self->n_event_sets, - tag_data, tag_size)) - goto error; - GST_DEBUG (" number of event sets = %u", self->n_event_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_event_sets; i++) { - GST_DEBUG (" event sets %u = %s", i, - mxf_uuid_to_string (&self->event_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &award_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->award_sets_uids, &self->n_award_sets, - tag_data, tag_size)) - goto error; - GST_DEBUG (" number of award sets = %u", self->n_award_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_award_sets; i++) { - GST_DEBUG (" award sets %u = %s", i, - mxf_uuid_to_string (&self->award_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &setting_period_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->setting_period_sets_uids, - &self->n_setting_period_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of setting period sets = %u", - self->n_setting_period_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_setting_period_sets; i++) { - GST_DEBUG (" setting period sets %u = %s", i, - mxf_uuid_to_string (&self->setting_period_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_production_framework_parent_class)->handle_tag (metadata, - primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 production framework local tag 0x%04x of size %u", - tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_production_framework_init (MXFDMS1ProductionFramework * self) -{ -} - -static void -mxf_dms1_production_framework_class_init (MXFDMS1ProductionFrameworkClass * - klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_production_framework_finalize; - metadatabase_class->handle_tag = mxf_dms1_production_framework_handle_tag; - metadatabase_class->resolve = mxf_dms1_production_framework_resolve; - - dm_class->type = 0x010100; -} - -G_DEFINE_TYPE (MXFDMS1ClipFramework, mxf_dms1_clip_framework, - MXF_TYPE_DMS1_PRODUCTION_CLIP_FRAMEWORK); - -static void -mxf_dms1_clip_framework_finalize (GObject * object) -{ - MXFDMS1ClipFramework *self = MXF_DMS1_CLIP_FRAMEWORK (object); - - g_free (self->clip_kind); - self->clip_kind = NULL; - - g_free (self->slate_information); - self->slate_information = NULL; - - g_free (self->scripting_sets_uids); - self->scripting_sets_uids = NULL; - - g_free (self->scripting_sets); - self->scripting_sets = NULL; - - g_free (self->shot_sets_uids); - self->shot_sets_uids = NULL; - - g_free (self->shot_sets); - self->shot_sets = NULL; - - g_free (self->device_parameters_sets_uids); - self->device_parameters_sets_uids = NULL; - - g_free (self->device_parameters_sets); - self->device_parameters_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_clip_framework_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_clip_framework_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1ClipFramework *self = MXF_DMS1_CLIP_FRAMEWORK (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->scripting_sets) - memset (self->scripting_sets, 0, - sizeof (gpointer) * self->n_scripting_sets); - else - self->scripting_sets = g_new0 (MXFDMS1Scripting *, self->n_scripting_sets); - - if (self->shot_sets) - memset (self->shot_sets, 0, sizeof (gpointer) * self->n_shot_sets); - else - self->shot_sets = g_new0 (MXFDMS1Shot *, self->n_shot_sets); - - if (self->device_parameters_sets) - memset (self->device_parameters_sets, 0, - sizeof (gpointer) * self->n_device_parameters_sets); - else - self->device_parameters_sets = - g_new0 (MXFDMS1DeviceParameters *, self->n_device_parameters_sets); - - for (i = 0; i < self->n_scripting_sets; i++) { - current = g_hash_table_lookup (metadata, &self->scripting_sets_uids[i]); - - if (current && MXF_IS_DMS1_SCRIPTING (current)) { - self->scripting_sets[i] = MXF_DMS1_SCRIPTING (current); - } - } - - for (i = 0; i < self->n_shot_sets; i++) { - current = g_hash_table_lookup (metadata, &self->shot_sets_uids[i]); - if (current && MXF_IS_DMS1_SHOT (current)) { - self->shot_sets[i] = MXF_DMS1_SHOT (current); - } - } - - for (i = 0; i < self->n_device_parameters_sets; i++) { - current = - g_hash_table_lookup (metadata, &self->device_parameters_sets_uids[i]); - if (current && MXF_IS_DMS1_DEVICE_PARAMETERS (current)) { - self->device_parameters_sets[i] = MXF_DMS1_DEVICE_PARAMETERS (current); - } - } - - current = g_hash_table_lookup (metadata, &self->processing_set_uid); - if (current && MXF_IS_DMS1_PROCESSING (current)) { - self->processing_set = MXF_DMS1_PROCESSING (current); - } - - return - MXF_METADATA_BASE_CLASS (mxf_dms1_clip_framework_parent_class)->resolve - (m, metadata); -} - -static gboolean -mxf_dms1_clip_framework_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1ClipFramework *self = MXF_DMS1_CLIP_FRAMEWORK (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[96]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 clip_kind_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x05, 0x04, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 clip_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x01, - 0x05, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 extended_clip_id_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x01, - 0x01, 0x15, 0x09, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 clip_creation_date_and_time_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x07, - 0x02, 0x01, 0x10, 0x01, 0x04, 0x00, 0x00 - }; - static const guint8 take_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 slate_information_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 scripting_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x0f, 0x00 - }; - static const guint8 shot_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x11, 0x02 - }; - static const guint8 device_parameters_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x1e, 0x00 - }; - static const guint8 processing_set_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x02, 0x40, 0x20, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &clip_kind_ul, 16) == 0) { - self->clip_kind = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" clip kind = %s", GST_STR_NULL (self->clip_kind)); - } else if (memcmp (tag_ul, &clip_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->clip_number, tag_data, tag_size); - GST_DEBUG (" clip number = %s", self->clip_number); - } else if (memcmp (tag_ul, &extended_clip_id_ul, 16) == 0) { - if (tag_size != 32 && tag_size != 64) - goto error; - - memcpy (self->extended_clip_id, tag_data, tag_size); - self->extended_clip_id_full = (tag_size == 64); - - GST_DEBUG (" extended clip id (1) = %s", - mxf_umid_to_string ((MXFUMID *) & self->extended_clip_id, str)); - if (tag_size == 64) - GST_DEBUG (" extended clip id (2) = %s", - mxf_umid_to_string ((MXFUMID *) & self->extended_clip_id[32], str)); - } else if (memcmp (tag_ul, &clip_creation_date_and_time_ul, 16) == 0) { - if (!mxf_timestamp_parse (&self->clip_creation_date_and_time, tag_data, - tag_size)) - goto error; - GST_DEBUG (" clip creation date and time = %s", - mxf_timestamp_to_string (&self->clip_creation_date_and_time, str)); - } else if (memcmp (tag_ul, &take_number_ul, 16) == 0) { - if (tag_size != 2) - goto error; - - self->take_number = GST_READ_UINT16_BE (tag_data); - GST_DEBUG (" take number = %u", self->take_number); - } else if (memcmp (tag_ul, &slate_information_ul, 16) == 0) { - self->slate_information = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" slate information = %s", - GST_STR_NULL (self->slate_information)); - } else if (memcmp (tag_ul, &scripting_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->scripting_sets_uids, - &self->n_scripting_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of scripting sets = %u", self->n_scripting_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_scripting_sets; i++) { - GST_DEBUG (" scripting sets %u = %s", i, - mxf_uuid_to_string (&self->scripting_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &shot_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->shot_sets_uids, &self->n_shot_sets, - tag_data, tag_size)) - goto error; - GST_DEBUG (" number of shot sets = %u", self->n_shot_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_shot_sets; i++) { - GST_DEBUG (" shot sets %u = %s", i, - mxf_uuid_to_string (&self->shot_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &device_parameters_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->device_parameters_sets_uids, - &self->n_device_parameters_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of device parameters sets = %u", - self->n_device_parameters_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_device_parameters_sets; i++) { - GST_DEBUG (" device parameters sets %u = %s", i, - mxf_uuid_to_string (&self->device_parameters_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &processing_set_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->processing_set_uid, tag_data, 16); - GST_DEBUG (" processing set = %s", - mxf_uuid_to_string (&self->processing_set_uid, str)); - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_clip_framework_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 clip framework local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_clip_framework_init (MXFDMS1ClipFramework * self) -{ -} - -static void -mxf_dms1_clip_framework_class_init (MXFDMS1ClipFrameworkClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_clip_framework_finalize; - metadatabase_class->handle_tag = mxf_dms1_clip_framework_handle_tag; - metadatabase_class->resolve = mxf_dms1_clip_framework_resolve; - dm_class->type = 0x010200; -} - -G_DEFINE_TYPE (MXFDMS1SceneFramework, mxf_dms1_scene_framework, - MXF_TYPE_DMS1_FRAMEWORK); - -static void -mxf_dms1_scene_framework_finalize (GObject * object) -{ - MXFDMS1SceneFramework *self = MXF_DMS1_SCENE_FRAMEWORK (object); - - g_free (self->setting_period_sets_uids); - self->setting_period_sets_uids = NULL; - - g_free (self->setting_period_sets); - self->setting_period_sets = NULL; - - g_free (self->shot_scene_sets_uids); - self->shot_scene_sets_uids = NULL; - - g_free (self->shot_scene_sets); - self->shot_scene_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_scene_framework_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_scene_framework_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1SceneFramework *self = MXF_DMS1_SCENE_FRAMEWORK (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->setting_period_sets) - memset (self->setting_period_sets, 0, - sizeof (gpointer) * self->n_setting_period_sets); - else - self->setting_period_sets = - g_new0 (MXFDMS1SettingPeriod *, self->n_setting_period_sets); - - if (self->shot_scene_sets) - memset (self->shot_scene_sets, 0, - sizeof (gpointer) * self->n_shot_scene_sets); - else - self->shot_scene_sets = g_new0 (MXFDMS1Shot *, self->n_shot_scene_sets); - - for (i = 0; i < self->n_setting_period_sets; i++) { - current = - g_hash_table_lookup (metadata, &self->setting_period_sets_uids[i]); - if (current && MXF_IS_DMS1_SETTING_PERIOD (current)) { - self->setting_period_sets[i] = MXF_DMS1_SETTING_PERIOD (current); - } - } - - for (i = 0; i < self->n_shot_scene_sets; i++) { - current = g_hash_table_lookup (metadata, &self->shot_scene_sets_uids[i]); - if (current && MXF_IS_DMS1_SHOT (current)) { - self->shot_scene_sets[i] = MXF_DMS1_SHOT (current); - } - } - - return - MXF_METADATA_BASE_CLASS (mxf_dms1_scene_framework_parent_class)->resolve - (m, metadata); -} - -static gboolean -mxf_dms1_scene_framework_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1SceneFramework *self = MXF_DMS1_SCENE_FRAMEWORK (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 scene_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 setting_period_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x0e, 0x02 - }; - static const guint8 shot_scene_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x11, 0x01 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &scene_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->scene_number, tag_data, tag_size); - GST_DEBUG (" scene number = %s", self->scene_number); - } else if (memcmp (tag_ul, &setting_period_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->setting_period_sets_uids, - &self->n_setting_period_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of setting period sets = %u", - self->n_setting_period_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_setting_period_sets; i++) { - GST_DEBUG (" setting period sets %u = %s", i, - mxf_uuid_to_string (&self->setting_period_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &shot_scene_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->shot_scene_sets_uids, - &self->n_shot_scene_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of shot sets = %u", self->n_shot_scene_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_shot_scene_sets; i++) { - GST_DEBUG (" shot sets %u = %s", i, - mxf_uuid_to_string (&self->shot_scene_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_scene_framework_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 scene framework local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_scene_framework_init (MXFDMS1SceneFramework * self) -{ -} - -static void -mxf_dms1_scene_framework_class_init (MXFDMS1SceneFrameworkClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_scene_framework_finalize; - metadatabase_class->handle_tag = mxf_dms1_scene_framework_handle_tag; - metadatabase_class->resolve = mxf_dms1_scene_framework_resolve; - dm_class->type = 0x010300; -} - -G_DEFINE_TYPE (MXFDMS1Titles, mxf_dms1_titles, MXF_TYPE_DMS1_TEXT_LANGUAGE); - -static void -mxf_dms1_titles_finalize (GObject * object) -{ - MXFDMS1Titles *self = MXF_DMS1_TITLES (object); - - g_free (self->main_title); - self->main_title = NULL; - - g_free (self->secondary_title); - self->secondary_title = NULL; - - g_free (self->working_title); - self->working_title = NULL; - - g_free (self->original_title); - self->original_title = NULL; - - g_free (self->version_title); - self->version_title = NULL; - - G_OBJECT_CLASS (mxf_dms1_titles_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_titles_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1Titles *self = MXF_DMS1_TITLES (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 main_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x01, - 0x05, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 secondary_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x01, - 0x05, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 working_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x01, - 0x05, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 original_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x01, - 0x05, 0x0b, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 version_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x01, - 0x05, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &main_title_ul, 16) == 0) { - self->main_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" main title = %s", GST_STR_NULL (self->main_title)); - } else if (memcmp (tag_ul, &secondary_title_ul, 16) == 0) { - self->secondary_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" secondary title = %s", GST_STR_NULL (self->secondary_title)); - } else if (memcmp (tag_ul, &working_title_ul, 16) == 0) { - self->working_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" working title = %s", GST_STR_NULL (self->working_title)); - } else if (memcmp (tag_ul, &original_title_ul, 16) == 0) { - self->original_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" original title = %s", GST_STR_NULL (self->original_title)); - } else if (memcmp (tag_ul, &version_title_ul, 16) == 0) { - self->version_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" version title = %s", GST_STR_NULL (self->version_title)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_titles_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; -} - -static void -mxf_dms1_titles_init (MXFDMS1Titles * self) -{ -} - -static void -mxf_dms1_titles_class_init (MXFDMS1TitlesClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_titles_finalize; - metadatabase_class->handle_tag = mxf_dms1_titles_handle_tag; - dm_class->type = 0x100100; -} - -G_DEFINE_TYPE (MXFDMS1Identification, mxf_dms1_identification, - MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_identification_finalize (GObject * object) -{ - MXFDMS1Identification *self = MXF_DMS1_IDENTIFICATION (object); - - g_free (self->identifier_value); - self->identifier_value = NULL; - - g_free (self->identification_issuing_authority); - self->identification_issuing_authority = NULL; - - G_OBJECT_CLASS (mxf_dms1_identification_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_identification_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Identification *self = MXF_DMS1_IDENTIFICATION (metadata); -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 identifier_kind_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x01, - 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 identifier_value_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x01, - 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 identification_locator_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x01, - 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 identification_issuing_authority_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x02, - 0x0a, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &identifier_kind_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->identifier_kind, tag_data, tag_size); - GST_DEBUG (" identifier kind = %s", self->identifier_kind); - } else if (memcmp (tag_ul, &identifier_value_ul, 16) == 0) { - self->identifier_value = g_memdup (tag_data, tag_size); - self->identifier_value_length = tag_size; - GST_DEBUG (" identifier value length = %u", tag_size); - } else if (memcmp (tag_ul, &identification_locator_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->identification_locator, tag_data, 16); - - GST_DEBUG (" identification locator = %s", - mxf_uuid_to_string (&self->identification_locator, str)); - } else if (memcmp (tag_ul, &identification_issuing_authority_ul, 16) == 0) { - self->identification_issuing_authority = - mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" identification issuing authority = %s", - GST_STR_NULL (self->identification_issuing_authority)); - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_identification_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 identification local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_identification_init (MXFDMS1Identification * self) -{ -} - -static void -mxf_dms1_identification_class_init (MXFDMS1IdentificationClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_identification_finalize; - metadatabase_class->handle_tag = mxf_dms1_identification_handle_tag; - dm_class->type = 0x110100; -} - -G_DEFINE_TYPE (MXFDMS1GroupRelationship, mxf_dms1_group_relationship, - MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_group_relationship_finalize (GObject * object) -{ - MXFDMS1GroupRelationship *self = MXF_DMS1_GROUP_RELATIONSHIP (object); - - g_free (self->programming_group_kind); - self->programming_group_kind = NULL; - - g_free (self->programming_group_title); - self->programming_group_title = NULL; - - g_free (self->group_synopsis); - self->group_synopsis = NULL; - - G_OBJECT_CLASS (mxf_dms1_group_relationship_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_group_relationship_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1GroupRelationship *self = MXF_DMS1_GROUP_RELATIONSHIP (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 programming_group_kind_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x02, - 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 programming_group_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x02, - 0x02, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 group_synopsis_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x01, 0x06, 0x08, 0x01, 0x00, 0x00 - }; - static const guint8 numerical_position_in_sequence_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x06, - 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 total_number_in_the_sequence_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 episodic_start_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 episodic_end_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x02, 0x05, 0x02, 0x03, 0x01, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &programming_group_kind_ul, 16) == 0) { - self->programming_group_kind = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" programming group kind = %s", - GST_STR_NULL (self->programming_group_kind)); - } else if (memcmp (tag_ul, &programming_group_title_ul, 16) == 0) { - self->programming_group_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" programming group title = %s", - GST_STR_NULL (self->programming_group_title)); - } else if (memcmp (tag_ul, &group_synopsis_ul, 16) == 0) { - self->group_synopsis = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" group synopsis = %s", GST_STR_NULL (self->group_synopsis)); - } else if (memcmp (tag_ul, &numerical_position_in_sequence_ul, 16) == 0) { - if (tag_size != 4) - goto error; - - self->numerical_position_in_sequence = GST_READ_UINT32_BE (tag_data); - GST_DEBUG (" numerical position in sequence = %u", - self->numerical_position_in_sequence); - } else if (memcmp (tag_ul, &total_number_in_the_sequence_ul, 16) == 0) { - if (tag_size != 4) - goto error; - - self->total_number_in_the_sequence = GST_READ_UINT32_BE (tag_data); - GST_DEBUG (" total number in the sequence = %u", - self->total_number_in_the_sequence); - } else if (memcmp (tag_ul, &episodic_start_number_ul, 16) == 0) { - if (tag_size != 2) - goto error; - - self->episodic_start_number = GST_READ_UINT16_BE (tag_data); - GST_DEBUG (" episodic start number = %u", self->episodic_start_number); - } else if (memcmp (tag_ul, &episodic_end_number_ul, 16) == 0) { - if (tag_size != 2) - goto error; - - self->episodic_end_number = GST_READ_UINT16_BE (tag_data); - GST_DEBUG (" episodic end number = %u", self->episodic_end_number); - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_group_relationship_parent_class)->handle_tag (metadata, - primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 group relationship local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_group_relationship_init (MXFDMS1GroupRelationship * self) -{ -} - -static void -mxf_dms1_group_relationship_class_init (MXFDMS1GroupRelationshipClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_group_relationship_finalize; - metadatabase_class->handle_tag = mxf_dms1_group_relationship_handle_tag; - dm_class->type = 0x120100; -} - -G_DEFINE_TYPE (MXFDMS1Branding, mxf_dms1_branding, MXF_TYPE_DMS1_TEXT_LANGUAGE); - -static void -mxf_dms1_branding_finalize (GObject * object) -{ - MXFDMS1Branding *self = MXF_DMS1_BRANDING (object); - - g_free (self->brand_main_title); - self->brand_main_title = NULL; - - g_free (self->brand_original_title); - self->brand_original_title = NULL; - - G_OBJECT_CLASS (mxf_dms1_branding_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_branding_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Branding *self = MXF_DMS1_BRANDING (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 brand_main_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x01, - 0x05, 0x0D, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 brand_original_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x01, - 0x05, 0x0E, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &brand_main_title_ul, 16) == 0) { - self->brand_main_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" brand main title = %s", - GST_STR_NULL (self->brand_main_title)); - } else if (memcmp (tag_ul, &brand_original_title_ul, 16) == 0) { - self->brand_original_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" brand original title = %s", - GST_STR_NULL (self->brand_original_title)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_branding_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; -} - -static void -mxf_dms1_branding_init (MXFDMS1Branding * self) -{ -} - -static void -mxf_dms1_branding_class_init (MXFDMS1BrandingClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_branding_finalize; - metadatabase_class->handle_tag = mxf_dms1_branding_handle_tag; - dm_class->type = 0x130100; -} - -G_DEFINE_TYPE (MXFDMS1Event, mxf_dms1_event, MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_event_finalize (GObject * object) -{ - MXFDMS1Event *self = MXF_DMS1_EVENT (object); - - g_free (self->event_indication); - self->event_indication = NULL; - - g_free (self->publication_sets_uids); - self->publication_sets_uids = NULL; - - g_free (self->publication_sets); - self->publication_sets = NULL; - - g_free (self->annotation_sets_uids); - self->annotation_sets_uids = NULL; - - g_free (self->annotation_sets); - self->annotation_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_event_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_event_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Event *self = MXF_DMS1_EVENT (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->publication_sets) - memset (self->publication_sets, 0, - sizeof (gpointer) * self->n_publication_sets); - else - self->publication_sets = - g_new0 (MXFDMS1Publication *, self->n_publication_sets); - - if (self->annotation_sets) - memset (self->annotation_sets, 0, - sizeof (gpointer) * self->n_annotation_sets); - else - self->annotation_sets = - g_new0 (MXFDMS1Annotation *, self->n_annotation_sets); - - for (i = 0; i < self->n_publication_sets; i++) { - current = g_hash_table_lookup (metadata, &self->publication_sets_uids[i]); - if (current && MXF_IS_DMS1_PUBLICATION (current)) { - self->publication_sets[i] = MXF_DMS1_PUBLICATION (current); - } - } - - for (i = 0; i < self->n_annotation_sets; i++) { - current = g_hash_table_lookup (metadata, &self->annotation_sets_uids[i]); - if (current && MXF_IS_DMS1_ANNOTATION (current)) { - self->annotation_sets[i] = MXF_DMS1_ANNOTATION (current); - } - } - - return MXF_METADATA_BASE_CLASS (mxf_dms1_event_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_event_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1Event *self = MXF_DMS1_EVENT (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 event_indication_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x05, - 0x01, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 event_start_date_and_time_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x07, - 0x02, 0x01, 0x02, 0x07, 0x02, 0x00, 0x00 - }; - static const guint8 event_end_date_and_time_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x07, - 0x02, 0x01, 0x02, 0x09, 0x02, 0x00, 0x00 - }; - static const guint8 publication_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x0a, 0x00 - }; - static const guint8 annotation_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x08, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x0d, 0x01 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &event_indication_ul, 16) == 0) { - self->event_indication = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" event indication = %s", - GST_STR_NULL (self->event_indication)); - } else if (memcmp (tag_ul, &event_start_date_and_time_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->event_start_date_and_time, tag_data, tag_size); - GST_DEBUG (" event start date and time = %s", - self->event_start_date_and_time); - } else if (memcmp (tag_ul, &event_end_date_and_time_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->event_end_date_and_time, tag_data, tag_size); - GST_DEBUG (" event end date and time = %s", self->event_end_date_and_time); - } else if (memcmp (tag_ul, &publication_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->publication_sets_uids, - &self->n_publication_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of publication sets = %u", self->n_publication_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_publication_sets; i++) { - GST_DEBUG (" publication sets %u = %s", i, - mxf_uuid_to_string (&self->publication_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &annotation_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->annotation_sets_uids, - &self->n_annotation_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of annotation sets = %u", self->n_annotation_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_annotation_sets; i++) { - GST_DEBUG (" annotation sets %u = %s", i, - mxf_uuid_to_string (&self->annotation_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_event_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 event local tag 0x%04x of size %u", tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_event_init (MXFDMS1Event * self) -{ -} - -static void -mxf_dms1_event_class_init (MXFDMS1EventClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_event_finalize; - metadatabase_class->handle_tag = mxf_dms1_event_handle_tag; - metadatabase_class->resolve = mxf_dms1_event_resolve; - dm_class->type = 0x140100; -} - -G_DEFINE_TYPE (MXFDMS1Publication, mxf_dms1_publication, MXF_TYPE_DMS1); - -static void -mxf_dms1_publication_finalize (GObject * object) -{ - MXFDMS1Publication *self = MXF_DMS1_PUBLICATION (object); - - g_free (self->publication_organisation_name); - self->publication_organisation_name = NULL; - - g_free (self->publication_service_name); - self->publication_service_name = NULL; - - g_free (self->publication_medium); - self->publication_medium = NULL; - - g_free (self->publication_region); - self->publication_region = NULL; - - G_OBJECT_CLASS (mxf_dms1_publication_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_publication_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Publication *self = MXF_DMS1_PUBLICATION (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 publication_organisation_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x10, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00 - }; - static const guint8 publication_service_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x10, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00 - }; - static const guint8 publication_medium_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x10, 0x02, 0x01, 0x03, 0x01, 0x00, 0x00 - }; - static const guint8 publication_region_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x10, 0x02, 0x01, 0x04, 0x01, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &publication_organisation_name_ul, 16) == 0) { - self->publication_organisation_name = - mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" publication organisation name = %s", - GST_STR_NULL (self->publication_organisation_name)); - } else if (memcmp (tag_ul, &publication_service_name_ul, 16) == 0) { - self->publication_service_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" publication service name = %s", - GST_STR_NULL (self->publication_service_name)); - } else if (memcmp (tag_ul, &publication_medium_ul, 16) == 0) { - self->publication_medium = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" publication medium = %s", - GST_STR_NULL (self->publication_medium)); - } else if (memcmp (tag_ul, &publication_region_ul, 16) == 0) { - self->publication_region = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" publication region = %s", - GST_STR_NULL (self->publication_region)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_publication_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; -} - -static void -mxf_dms1_publication_init (MXFDMS1Publication * self) -{ -} - -static void -mxf_dms1_publication_class_init (MXFDMS1PublicationClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_publication_finalize; - metadatabase_class->handle_tag = mxf_dms1_publication_handle_tag; - dm_class->type = 0x140200; -} - -G_DEFINE_TYPE (MXFDMS1Award, mxf_dms1_award, MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_award_finalize (GObject * object) -{ - MXFDMS1Award *self = MXF_DMS1_AWARD (object); - - g_free (self->festival); - self->festival = NULL; - - g_free (self->award_name); - self->award_name = NULL; - - g_free (self->award_classification); - self->award_classification = NULL; - - g_free (self->nomination_category); - self->nomination_category = NULL; - - g_free (self->participant_sets_uids); - self->participant_sets_uids = NULL; - - g_free (self->participant_sets); - self->participant_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_award_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_award_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Award *self = MXF_DMS1_AWARD (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->participant_sets) - memset (self->participant_sets, 0, - sizeof (gpointer) * self->n_participant_sets); - else - self->participant_sets = - g_new0 (MXFDMS1Participant *, self->n_participant_sets); - - for (i = 0; i < self->n_participant_sets; i++) { - current = g_hash_table_lookup (metadata, &self->participant_sets_uids[i]); - if (current && MXF_IS_DMS1_PARTICIPANT (current)) { - self->participant_sets[i] = MXF_DMS1_PARTICIPANT (current); - } - } - - return MXF_METADATA_BASE_CLASS (mxf_dms1_award_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_award_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1Award *self = MXF_DMS1_AWARD (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 festival_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x02, 0x01, 0x03, 0x01, 0x00, 0x00 - }; - static const guint8 festival_date_and_time_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x07, - 0x02, 0x01, 0x02, 0x07, 0x10, 0x01, 0x00 - }; - static const guint8 award_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x02, 0x01, 0x04, 0x01, 0x00, 0x00 - }; - static const guint8 award_classification_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x02, 0x01, 0x05, 0x01, 0x00, 0x00 - }; - static const guint8 nomination_category_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x02, 0x01, 0x06, 0x01, 0x00, 0x00 - }; - static const guint8 participant_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x13, 0x01 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &festival_ul, 16) == 0) { - self->festival = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" festival = %s", GST_STR_NULL (self->festival)); - } else if (memcmp (tag_ul, &festival_date_and_time_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->festival_date_and_time, tag_data, tag_size); - GST_DEBUG (" festival date and time = %s", - GST_STR_NULL (self->festival_date_and_time)); - } else if (memcmp (tag_ul, &award_name_ul, 16) == 0) { - self->award_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" award name = %s", GST_STR_NULL (self->award_name)); - } else if (memcmp (tag_ul, &award_classification_ul, 16) == 0) { - self->award_classification = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" award classification = %s", - GST_STR_NULL (self->award_classification)); - } else if (memcmp (tag_ul, &nomination_category_ul, 16) == 0) { - self->nomination_category = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" nomination category = %s", - GST_STR_NULL (self->nomination_category)); - } else if (memcmp (tag_ul, &participant_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->participant_sets_uids, - &self->n_participant_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of participant sets = %u", self->n_participant_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_participant_sets; i++) { - GST_DEBUG (" participant sets %u = %s", i, - mxf_uuid_to_string (&self->participant_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_award_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 award local tag 0x%04x of size %u", tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_award_init (MXFDMS1Award * self) -{ -} - -static void -mxf_dms1_award_class_init (MXFDMS1AwardClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_award_finalize; - metadatabase_class->handle_tag = mxf_dms1_award_handle_tag; - metadatabase_class->resolve = mxf_dms1_award_resolve; - dm_class->type = 0x150100; -} - -G_DEFINE_TYPE (MXFDMS1CaptionsDescription, mxf_dms1_captions_description, - MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_captions_description_finalize (GObject * object) -{ - MXFDMS1CaptionsDescription *self = MXF_DMS1_CAPTIONS_DESCRIPTION (object); - - g_free (self->caption_kind); - self->caption_kind = NULL; - - G_OBJECT_CLASS (mxf_dms1_captions_description_parent_class)->finalize - (object); -} - -static gboolean -mxf_dms1_captions_description_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1CaptionsDescription *self = MXF_DMS1_CAPTIONS_DESCRIPTION (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 extended_captions_language_code_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x03, - 0x01, 0x01, 0x02, 0x02, 0x12, 0x00, 0x00 - }; - static const guint8 caption_kind_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x04, - 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &extended_captions_language_code_ul, 16) == 0) { - if (tag_size > 12) - goto error; - - memcpy (self->extended_captions_language_code, tag_data, tag_size); - GST_DEBUG (" extended captions language code = %s", - self->extended_captions_language_code); - } else if (memcmp (tag_ul, &caption_kind_ul, 16) == 0) { - self->caption_kind = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" caption kind = %s", GST_STR_NULL (self->caption_kind)); - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_captions_description_parent_class)->handle_tag (metadata, - primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 captions description local tag 0x%04x of size %u", - tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_captions_description_init (MXFDMS1CaptionsDescription * self) -{ -} - -static void -mxf_dms1_captions_description_class_init (MXFDMS1CaptionsDescriptionClass * - klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_captions_description_finalize; - metadatabase_class->handle_tag = mxf_dms1_captions_description_handle_tag; - dm_class->type = 0x160100; -} - -G_DEFINE_TYPE (MXFDMS1Annotation, mxf_dms1_annotation, MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_annotation_finalize (GObject * object) -{ - MXFDMS1Annotation *self = MXF_DMS1_ANNOTATION (object); - - g_free (self->annotation_kind); - self->annotation_kind = NULL; - - g_free (self->annotation_synopsis); - self->annotation_synopsis = NULL; - - g_free (self->annotation_description); - self->annotation_description = NULL; - - g_free (self->related_material_description); - self->related_material_description = NULL; - - g_free (self->classification_sets_uids); - self->classification_sets_uids = NULL; - - g_free (self->classification_sets); - self->classification_sets = NULL; - - g_free (self->related_material_locators); - self->related_material_locators = NULL; - - g_free (self->participant_sets_uids); - self->participant_sets_uids = NULL; - - g_free (self->participant_sets); - self->participant_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_annotation_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_annotation_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Annotation *self = MXF_DMS1_ANNOTATION (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->classification_sets) - memset (self->classification_sets, 0, - sizeof (gpointer) * self->n_classification_sets); - else - self->classification_sets = - g_new0 (MXFDMS1Classification *, self->n_classification_sets); - - if (self->participant_sets) - memset (self->participant_sets, 0, - sizeof (gpointer) * self->n_participant_sets); - else - self->participant_sets = - g_new0 (MXFDMS1Participant *, self->n_participant_sets); - - for (i = 0; i < self->n_classification_sets; i++) { - current = - g_hash_table_lookup (metadata, &self->classification_sets_uids[i]); - if (current && MXF_IS_DMS1_CLASSIFICATION (current)) { - self->classification_sets[i] = MXF_DMS1_CLASSIFICATION (current); - } - } - - current = g_hash_table_lookup (metadata, &self->cue_words_set_uid); - if (current && MXF_IS_DMS1_CUE_WORDS (current)) { - self->cue_words_set = MXF_DMS1_CUE_WORDS (current); - } - - for (i = 0; i < self->n_participant_sets; i++) { - current = g_hash_table_lookup (metadata, &self->participant_sets_uids[i]); - if (current && MXF_IS_DMS1_PARTICIPANT (current)) { - self->participant_sets[i] = MXF_DMS1_PARTICIPANT (current); - } - } - - return MXF_METADATA_BASE_CLASS (mxf_dms1_annotation_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_annotation_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Annotation *self = MXF_DMS1_ANNOTATION (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 annotation_kind_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x01, 0x06, 0x0e, 0x01, 0x00, 0x00 - }; - static const guint8 annotation_synopsis_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x01, 0x06, 0x09, 0x01, 0x00, 0x00 - }; - static const guint8 annotation_description_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x01, 0x06, 0x0a, 0x01, 0x00, 0x00 - }; - static const guint8 related_material_description_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x01, 0x06, 0x0f, 0x01, 0x00, 0x00 - }; - static const guint8 classification_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x10, 0x00 - }; - static const guint8 cue_words_set_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x02, 0x40, 0x23, 0x01 - }; - static const guint8 related_material_locators_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x06, 0x0d, 0x00, 0x00 - }; - static const guint8 participant_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x13, 0x03 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &annotation_kind_ul, 16) == 0) { - self->annotation_kind = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" annotation kind = %s", GST_STR_NULL (self->annotation_kind)); - } else if (memcmp (tag_ul, &annotation_synopsis_ul, 16) == 0) { - self->annotation_synopsis = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" annotation synopsis = %s", - GST_STR_NULL (self->annotation_synopsis)); - } else if (memcmp (tag_ul, &annotation_description_ul, 16) == 0) { - self->annotation_description = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" annotation description = %s", - GST_STR_NULL (self->annotation_description)); - } else if (memcmp (tag_ul, &related_material_description_ul, 16) == 0) { - self->related_material_description = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" related material description = %s", - GST_STR_NULL (self->related_material_description)); - } else if (memcmp (tag_ul, &classification_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->classification_sets_uids, - &self->n_classification_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of classification sets = %u", - self->n_classification_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_classification_sets; i++) { - GST_DEBUG (" classification sets %u = %s", i, - mxf_uuid_to_string (&self->classification_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &cue_words_set_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->cue_words_set_uid, tag_data, 16); - GST_DEBUG (" cue words set = %s", - mxf_uuid_to_string (&self->cue_words_set_uid, str)); - } else if (memcmp (tag_ul, &related_material_locators_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->related_material_locators, - &self->n_related_material_locators, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of related material locators = %u", - self->n_related_material_locators); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_related_material_locators; i++) { - GST_DEBUG (" related material locators %u = %s", i, - mxf_uuid_to_string (&self->related_material_locators[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &participant_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->participant_sets_uids, - &self->n_participant_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of participant sets = %u", self->n_participant_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_participant_sets; i++) { - GST_DEBUG (" participant sets %u = %s", i, - mxf_uuid_to_string (&self->participant_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_annotation_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 annotation local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_annotation_init (MXFDMS1Annotation * self) -{ -} - -static void -mxf_dms1_annotation_class_init (MXFDMS1AnnotationClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_annotation_finalize; - metadatabase_class->handle_tag = mxf_dms1_annotation_handle_tag; - metadatabase_class->resolve = mxf_dms1_annotation_resolve; - dm_class->type = 0x170100; -} - -G_DEFINE_TYPE (MXFDMS1SettingPeriod, mxf_dms1_setting_period, - MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_setting_period_finalize (GObject * object) -{ - MXFDMS1SettingPeriod *self = MXF_DMS1_SETTING_PERIOD (object); - - g_free (self->time_period_keyword); - self->time_period_keyword = NULL; - - g_free (self->setting_period_description); - self->setting_period_description = NULL; - - G_OBJECT_CLASS (mxf_dms1_setting_period_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_setting_period_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1SettingPeriod *self = MXF_DMS1_SETTING_PERIOD (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[32]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 setting_date_and_time_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x02, 0x01, 0x08, 0x02, 0x00, 0x00, 0x00 - }; - static const guint8 time_period_keyword_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x02, 0x01, 0x08, 0x01, 0x01, 0x00, 0x00 - }; - static const guint8 setting_period_description_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x02, 0x01, 0x08, 0x03, 0x01, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &setting_date_and_time_ul, 16) == 0) { - if (!mxf_timestamp_parse (&self->setting_date_and_time, tag_data, tag_size)) - goto error; - - GST_DEBUG (" last modified date = %s", - mxf_timestamp_to_string (&self->setting_date_and_time, str)); - } else if (memcmp (tag_ul, &time_period_keyword_ul, 16) == 0) { - self->time_period_keyword = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" time period keyword = %s", - GST_STR_NULL (self->time_period_keyword)); - } else if (memcmp (tag_ul, &setting_period_description_ul, 16) == 0) { - self->setting_period_description = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" setting period description = %s", - GST_STR_NULL (self->setting_period_description)); - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_setting_period_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 setting period local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_setting_period_init (MXFDMS1SettingPeriod * self) -{ -} - -static void -mxf_dms1_setting_period_class_init (MXFDMS1SettingPeriodClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_setting_period_finalize; - metadatabase_class->handle_tag = mxf_dms1_setting_period_handle_tag; - dm_class->type = 0x170200; -} - -G_DEFINE_TYPE (MXFDMS1Scripting, mxf_dms1_scripting, MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_scripting_finalize (GObject * object) -{ - MXFDMS1Scripting *self = MXF_DMS1_SCRIPTING (object); - - g_free (self->scripting_kind); - self->scripting_kind = NULL; - - g_free (self->scripting_text); - self->scripting_text = NULL; - - g_free (self->scripting_locators); - self->scripting_locators = NULL; - - G_OBJECT_CLASS (mxf_dms1_scripting_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_scripting_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Scripting *self = MXF_DMS1_SCRIPTING (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 scripting_kind_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x01, 0x06, 0x0b, 0x01, 0x00, 0x00 - }; - static const guint8 scripting_text_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x01, 0x06, 0x0c, 0x01, 0x00, 0x00 - }; - static const guint8 scripting_locators_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x08, 0x06, - 0x01, 0x01, 0x04, 0x06, 0x0e, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &scripting_kind_ul, 16) == 0) { - self->scripting_kind = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" scripting kind = %s", GST_STR_NULL (self->scripting_kind)); - } else if (memcmp (tag_ul, &scripting_text_ul, 16) == 0) { - self->scripting_text = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" scripting description = %s", - GST_STR_NULL (self->scripting_text)); - } else if (memcmp (tag_ul, &scripting_locators_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->scripting_locators, - &self->n_scripting_locators, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of scripting locators = %u", - self->n_scripting_locators); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_scripting_locators; i++) { - GST_DEBUG (" scripting locators %u = %s", i, - mxf_uuid_to_string (&self->scripting_locators[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_scripting_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 scripting local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_scripting_init (MXFDMS1Scripting * self) -{ -} - -static void -mxf_dms1_scripting_class_init (MXFDMS1ScriptingClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_scripting_finalize; - metadatabase_class->handle_tag = mxf_dms1_scripting_handle_tag; - dm_class->type = 0x170300; -} - -G_DEFINE_TYPE (MXFDMS1Classification, mxf_dms1_classification, - MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_classification_finalize (GObject * object) -{ - MXFDMS1Classification *self = MXF_DMS1_CLASSIFICATION (object); - - g_free (self->name_value_sets_uids); - self->name_value_sets_uids = NULL; - - g_free (self->name_value_sets); - self->name_value_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_classification_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_classification_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Classification *self = MXF_DMS1_CLASSIFICATION (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->name_value_sets) - memset (self->name_value_sets, 0, - sizeof (gpointer) * self->n_name_value_sets); - else - self->name_value_sets = - g_new0 (MXFDMS1NameValue *, self->n_name_value_sets); - - for (i = 0; i < self->n_name_value_sets; i++) { - current = g_hash_table_lookup (metadata, &self->name_value_sets_uids[i]); - if (current && MXF_IS_DMS1_NAME_VALUE (current)) { - self->name_value_sets[i] = MXF_DMS1_NAME_VALUE (current); - } - } - - return - MXF_METADATA_BASE_CLASS (mxf_dms1_classification_parent_class)->resolve - (m, metadata); -} - -static gboolean -mxf_dms1_classification_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Classification *self = MXF_DMS1_CLASSIFICATION (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 content_classification_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x03, - 0x02, 0x01, 0x03, 0x04, 0x00, 0x00, 0x00 - }; - static const guint8 name_value_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x1f, 0x01 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &content_classification_ul, 16) == 0) { - if (tag_size > 127) - goto error; - - memcpy (self->content_classification, tag_data, tag_size); - GST_DEBUG (" content classification = %s", self->content_classification); - } else if (memcmp (tag_ul, &name_value_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->name_value_sets_uids, - &self->n_name_value_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of name-value sets = %u", self->n_name_value_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_name_value_sets; i++) { - GST_DEBUG (" name-value sets %u = %s", i, - mxf_uuid_to_string (&self->name_value_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_classification_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 classification local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_classification_init (MXFDMS1Classification * self) -{ -} - -static void -mxf_dms1_classification_class_init (MXFDMS1ClassificationClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_classification_finalize; - metadatabase_class->handle_tag = mxf_dms1_classification_handle_tag; - metadatabase_class->resolve = mxf_dms1_classification_resolve; - dm_class->type = 0x170400; -} - -G_DEFINE_TYPE (MXFDMS1Shot, mxf_dms1_shot, MXF_TYPE_DMS1_TEXT_LANGUAGE); - -static void -mxf_dms1_shot_finalize (GObject * object) -{ - MXFDMS1Shot *self = MXF_DMS1_SHOT (object); - - g_free (self->shot_track_ids); - self->shot_track_ids = NULL; - - g_free (self->shot_description); - self->shot_description = NULL; - - g_free (self->shot_comment_kind); - self->shot_comment_kind = NULL; - - g_free (self->shot_comment); - self->shot_comment = NULL; - - g_free (self->key_point_sets_uids); - self->key_point_sets_uids = NULL; - - g_free (self->key_point_sets); - self->key_point_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_shot_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_shot_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Shot *self = MXF_DMS1_SHOT (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->key_point_sets) - memset (self->key_point_sets, 0, - sizeof (gpointer) * self->n_key_point_sets); - else - self->key_point_sets = g_new0 (MXFDMS1KeyPoint *, self->n_key_point_sets); - - current = g_hash_table_lookup (metadata, &self->cue_words_set_uid); - if (current && MXF_IS_DMS1_CUE_WORDS (current)) { - self->cue_words_set = MXF_DMS1_CUE_WORDS (current); - } - - for (i = 0; i < self->n_key_point_sets; i++) { - current = g_hash_table_lookup (metadata, &self->key_point_sets_uids[i]); - if (current && MXF_IS_DMS1_KEY_POINT (current)) { - self->key_point_sets[i] = MXF_DMS1_KEY_POINT (current); - } - } - - return MXF_METADATA_BASE_CLASS (mxf_dms1_shot_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_shot_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1Shot *self = MXF_DMS1_SHOT (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 shot_start_position_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x07, - 0x02, 0x01, 0x03, 0x01, 0x09, 0x00, 0x00 - }; - static const guint8 shot_duration_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x07, - 0x02, 0x02, 0x01, 0x02, 0x04, 0x00, 0x00 - }; - static const guint8 shot_track_ids_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x01, - 0x07, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 shot_description_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x02, 0x01, 0x06, 0x0d, 0x01, 0x00, 0x00 - }; - static const guint8 shot_comment_kind_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x03, - 0x02, 0x05, 0x01, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 shot_comment_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x03, - 0x02, 0x05, 0x02, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 cue_words_set_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x02, 0x40, 0x23, 0x01 - }; - static const guint8 key_point_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x12, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &shot_start_position_ul, 16) == 0) { - if (tag_size != 8) - goto error; - - self->shot_start_position = GST_READ_UINT64_BE (tag_data); - GST_DEBUG (" shot start position = %" G_GINT64_FORMAT, - self->shot_start_position); - } else if (memcmp (tag_ul, &shot_duration_ul, 16) == 0) { - if (tag_size != 8) - goto error; - - self->shot_duration = GST_READ_UINT64_BE (tag_data); - GST_DEBUG (" shot duration = %" G_GINT64_FORMAT, self->shot_duration); - } else if (memcmp (tag_ul, &shot_track_ids_ul, 16) == 0) { - guint32 len, i; - - len = GST_READ_UINT32_BE (tag_data); - GST_DEBUG (" number of shot track ids = %u", len); - if (len == 0) - return ret; - - if (GST_READ_UINT32_BE (tag_data + 4) != 4) - goto error; - tag_data += 8; - tag_size -= 8; - - if (tag_size < 4 * len) - goto error; - - self->n_shot_track_ids = len; - self->shot_track_ids = g_new0 (guint32, len); - - for (i = 0; i < len; i++) { - self->shot_track_ids[i] = GST_READ_UINT32_BE (tag_data); - GST_DEBUG (" shot track ids %u = %u", i, self->shot_track_ids[i]); - tag_data += 4; - tag_size -= 4; - } - } else if (memcmp (tag_ul, &shot_description_ul, 16) == 0) { - self->shot_description = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" shot description = %s", - GST_STR_NULL (self->shot_description)); - } else if (memcmp (tag_ul, &shot_comment_kind_ul, 16) == 0) { - self->shot_comment_kind = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" shot comment kind = %s", - GST_STR_NULL (self->shot_comment_kind)); - } else if (memcmp (tag_ul, &shot_comment_ul, 16) == 0) { - self->shot_comment = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" shot comment = %s", GST_STR_NULL (self->shot_comment)); - } else if (memcmp (tag_ul, &cue_words_set_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->cue_words_set_uid, tag_data, 16); - GST_DEBUG (" cue words set = %s", - mxf_uuid_to_string (&self->cue_words_set_uid, str)); - } else if (memcmp (tag_ul, &key_point_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->key_point_sets_uids, - &self->n_key_point_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of key point sets = %u", self->n_key_point_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_key_point_sets; i++) { - GST_DEBUG (" key point sets %u = %s", i, - mxf_uuid_to_string (&self->key_point_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_shot_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 shot local tag 0x%04x of size %u", tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_shot_init (MXFDMS1Shot * self) -{ -} - -static void -mxf_dms1_shot_class_init (MXFDMS1ShotClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_shot_finalize; - metadatabase_class->handle_tag = mxf_dms1_shot_handle_tag; - metadatabase_class->resolve = mxf_dms1_shot_resolve; - dm_class->type = 0x170500; -} - -G_DEFINE_TYPE (MXFDMS1KeyPoint, mxf_dms1_key_point, MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_key_point_finalize (GObject * object) -{ - MXFDMS1KeyPoint *self = MXF_DMS1_KEY_POINT (object); - - g_free (self->keypoint_kind); - self->keypoint_kind = NULL; - - g_free (self->keypoint_value); - self->keypoint_value = NULL; - - G_OBJECT_CLASS (mxf_dms1_key_point_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_key_point_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1KeyPoint *self = MXF_DMS1_KEY_POINT (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 keypoint_kind_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x01, 0x02, 0x10, 0x01, 0x00, 0x00 - }; - static const guint8 keypoint_value_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x01, 0x02, 0x11, 0x01, 0x00, 0x00 - }; - static const guint8 keypoint_position_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x02, 0x01, 0x03, 0x01, 0x07, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &keypoint_kind_ul, 16) == 0) { - self->keypoint_kind = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" keypoint kind = %s", GST_STR_NULL (self->keypoint_kind)); - } else if (memcmp (tag_ul, &keypoint_value_ul, 16) == 0) { - self->keypoint_value = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" keypoint value = %s", GST_STR_NULL (self->keypoint_value)); - } else if (memcmp (tag_ul, &keypoint_position_ul, 16) == 0) { - if (tag_size != 8) - goto error; - - self->keypoint_position = GST_READ_UINT64_BE (tag_data); - GST_DEBUG (" keypoint position = %" G_GINT64_FORMAT, - self->keypoint_position); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_key_point_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 key point local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_key_point_init (MXFDMS1KeyPoint * self) -{ -} - -static void -mxf_dms1_key_point_class_init (MXFDMS1KeyPointClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_key_point_finalize; - metadatabase_class->handle_tag = mxf_dms1_key_point_handle_tag; - dm_class->type = 0x170600; -} - -G_DEFINE_TYPE (MXFDMS1Participant, mxf_dms1_participant, - MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_participant_finalize (GObject * object) -{ - MXFDMS1Participant *self = MXF_DMS1_PARTICIPANT (object); - - g_free (self->contribution_status); - self->contribution_status = NULL; - - g_free (self->job_function); - self->job_function = NULL; - - g_free (self->role_or_identity_name); - self->role_or_identity_name = NULL; - - g_free (self->person_sets_uids); - self->person_sets_uids = NULL; - - g_free (self->person_sets); - self->person_sets = NULL; - - g_free (self->organisation_sets_uids); - self->organisation_sets_uids = NULL; - - g_free (self->organisation_sets); - self->organisation_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_participant_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_participant_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Participant *self = MXF_DMS1_PARTICIPANT (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->person_sets) - memset (self->person_sets, 0, sizeof (gpointer) * self->n_person_sets); - else - self->person_sets = g_new0 (MXFDMS1Person *, self->n_person_sets); - - if (self->organisation_sets) - memset (self->organisation_sets, 0, - sizeof (gpointer) * self->n_organisation_sets); - else - self->organisation_sets = - g_new0 (MXFDMS1Organisation *, self->n_organisation_sets); - - for (i = 0; i < self->n_person_sets; i++) { - current = g_hash_table_lookup (metadata, &self->person_sets_uids[i]); - if (current && MXF_IS_DMS1_PERSON (current)) { - self->person_sets[i] = MXF_DMS1_PERSON (current); - } - } - - for (i = 0; i < self->n_organisation_sets; i++) { - current = g_hash_table_lookup (metadata, &self->organisation_sets_uids[i]); - if (current && MXF_IS_DMS1_ORGANISATION (current)) { - self->organisation_sets[i] = MXF_DMS1_ORGANISATION (current); - } - } - - return - MXF_METADATA_BASE_CLASS (mxf_dms1_participant_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_participant_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Participant *self = MXF_DMS1_PARTICIPANT (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 participant_uid_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x08, 0x01, - 0x01, 0x15, 0x40, 0x01, 0x01, 0x00, 0x00 - }; - static const guint8 contribution_status_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x30, 0x01, 0x02, 0x01, 0x01, 0x00, 0x00 - }; - static const guint8 job_function_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x30, 0x05, 0x01, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 job_function_code_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x30, 0x05, 0x01, 0x02, 0x00, 0x00, 0x00 - }; - static const guint8 role_or_identity_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x30, 0x05, 0x02, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 person_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x14, 0x00 - }; - static const guint8 organisation_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x15, 0x02 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &participant_uid_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->participant_uid, tag_data, 16); - GST_DEBUG (" participant uid = %s", - mxf_uuid_to_string (&self->participant_uid, str)); - } else if (memcmp (tag_ul, &contribution_status_ul, 16) == 0) { - self->contribution_status = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" contribution status = %s", - GST_STR_NULL (self->contribution_status)); - } else if (memcmp (tag_ul, &job_function_ul, 16) == 0) { - self->job_function = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" job function = %s", GST_STR_NULL (self->job_function)); - } else if (memcmp (tag_ul, &job_function_code_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->job_function_code, tag_data, tag_size); - GST_DEBUG (" job function code = %s", self->job_function_code); - } else if (memcmp (tag_ul, &role_or_identity_name_ul, 16) == 0) { - self->role_or_identity_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" role or identity name = %s", - GST_STR_NULL (self->role_or_identity_name)); - } else if (memcmp (tag_ul, &person_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->person_sets_uids, &self->n_person_sets, - tag_data, tag_size)) - goto error; - GST_DEBUG (" number of person sets = %u", self->n_person_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_person_sets; i++) { - GST_DEBUG (" person sets %u = %s", i, - mxf_uuid_to_string (&self->person_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &organisation_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->organisation_sets_uids, - &self->n_organisation_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of organisation sets = %u", self->n_organisation_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_organisation_sets; i++) { - GST_DEBUG (" organisation sets %u = %s", i, - mxf_uuid_to_string (&self->organisation_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_participant_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 participant local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_participant_init (MXFDMS1Participant * self) -{ -} - -static void -mxf_dms1_participant_class_init (MXFDMS1ParticipantClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_participant_finalize; - metadatabase_class->handle_tag = mxf_dms1_participant_handle_tag; - metadatabase_class->resolve = mxf_dms1_participant_resolve; - dm_class->type = 0x180100; -} - -G_DEFINE_ABSTRACT_TYPE (MXFDMS1Contact, mxf_dms1_contact, - MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_contact_finalize (GObject * object) -{ - MXFDMS1Contact *self = MXF_DMS1_CONTACT (object); - - g_free (self->name_value_sets_uids); - self->name_value_sets_uids = NULL; - - g_free (self->name_value_sets); - self->name_value_sets = NULL; - - g_free (self->address_sets_uids); - self->address_sets_uids = NULL; - - g_free (self->address_sets); - self->address_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_contact_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_contact_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Contact *self = MXF_DMS1_CONTACT (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->name_value_sets) - memset (self->name_value_sets, 0, - sizeof (gpointer) * self->n_name_value_sets); - else - self->name_value_sets = - g_new0 (MXFDMS1NameValue *, self->n_name_value_sets); - - if (self->address_sets) - memset (self->address_sets, 0, sizeof (gpointer) * self->n_address_sets); - else - self->address_sets = g_new0 (MXFDMS1Address *, self->n_address_sets); - - for (i = 0; i < self->n_name_value_sets; i++) { - current = g_hash_table_lookup (metadata, &self->name_value_sets_uids[i]); - if (current && MXF_IS_DMS1_NAME_VALUE (current)) { - self->name_value_sets[i] = MXF_DMS1_NAME_VALUE (current); - } - } - - for (i = 0; i < self->n_address_sets; i++) { - current = g_hash_table_lookup (metadata, &self->address_sets_uids[i]); - if (current && MXF_IS_DMS1_ADDRESS (current)) { - self->address_sets[i] = MXF_DMS1_ADDRESS (current); - } - } - - return MXF_METADATA_BASE_CLASS (mxf_dms1_contact_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_contact_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1Contact *self = MXF_DMS1_CONTACT (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 contact_uid_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x08, 0x01, - 0x01, 0x15, 0x40, 0x01, 0x02, 0x00, 0x00 - }; - static const guint8 name_value_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x1f, 0x02 - }; - static const guint8 address_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x17, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &contact_uid_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->contact_uid, tag_data, 16); - GST_DEBUG (" contact uid = %s", mxf_uuid_to_string (&self->contact_uid, - str)); - } else if (memcmp (tag_ul, &name_value_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->name_value_sets_uids, - &self->n_name_value_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of name-value sets = %u", self->n_name_value_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_name_value_sets; i++) { - GST_DEBUG (" name-value sets %u = %s", i, - mxf_uuid_to_string (&self->name_value_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &address_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->address_sets_uids, &self->n_address_sets, - tag_data, tag_size)) - goto error; - GST_DEBUG (" number of address sets = %u", self->n_address_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_address_sets; i++) { - GST_DEBUG (" address sets %u = %s", i, - mxf_uuid_to_string (&self->address_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_contact_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 contact local tag 0x%04x of size %u", tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_contact_init (MXFDMS1Contact * self) -{ -} - -static void -mxf_dms1_contact_class_init (MXFDMS1ContactClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - - object_class->finalize = mxf_dms1_contact_finalize; - metadatabase_class->handle_tag = mxf_dms1_contact_handle_tag; - metadatabase_class->resolve = mxf_dms1_contact_resolve; -} - -G_DEFINE_TYPE (MXFDMS1Person, mxf_dms1_person, MXF_TYPE_DMS1_CONTACT); - -static void -mxf_dms1_person_finalize (GObject * object) -{ - MXFDMS1Person *self = MXF_DMS1_PERSON (object); - - g_free (self->family_name); - self->family_name = NULL; - - g_free (self->first_given_name); - self->first_given_name = NULL; - - g_free (self->other_given_names); - self->other_given_names = NULL; - - g_free (self->linking_name); - self->linking_name = NULL; - - g_free (self->salutation); - self->salutation = NULL; - - g_free (self->name_suffix); - self->name_suffix = NULL; - - g_free (self->honours_qualifications); - self->honours_qualifications = NULL; - - g_free (self->former_family_name); - self->former_family_name = NULL; - - g_free (self->person_description); - self->person_description = NULL; - - g_free (self->alternate_name); - self->alternate_name = NULL; - - g_free (self->nationality); - self->nationality = NULL; - - g_free (self->citizenship); - self->citizenship = NULL; - - g_free (self->organisation_sets_uids); - self->organisation_sets_uids = NULL; - - g_free (self->organisation_sets); - self->organisation_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_person_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_person_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Person *self = MXF_DMS1_PERSON (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->organisation_sets) - memset (self->organisation_sets, 0, - sizeof (gpointer) * self->n_organisation_sets); - else - self->organisation_sets = - g_new0 (MXFDMS1Organisation *, self->n_organisation_sets); - - for (i = 0; i < self->n_organisation_sets; i++) { - current = g_hash_table_lookup (metadata, &self->organisation_sets_uids[i]); - if (current && MXF_IS_DMS1_ORGANISATION (current)) { - self->organisation_sets[i] = MXF_DMS1_ORGANISATION (current); - } - } - - return MXF_METADATA_BASE_CLASS (mxf_dms1_person_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_person_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1Person *self = MXF_DMS1_PERSON (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 family_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x01, 0x01, 0x00 - }; - static const guint8 first_given_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x02, 0x01, 0x00 - }; - static const guint8 other_given_names_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x08, 0x01, 0x00 - }; - static const guint8 linking_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x0a, 0x01, 0x00 - }; - static const guint8 salutation_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x05, 0x01, 0x00 - }; - static const guint8 name_suffix_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x0b, 0x01, 0x00 - }; - static const guint8 honours_qualifications_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x06, 0x01, 0x00 - }; - static const guint8 former_family_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x0c, 0x01, 0x00 - }; - static const guint8 person_description_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x07, 0x01, 0x00 - }; - static const guint8 alternate_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x09, 0x01, 0x00 - }; - static const guint8 nationality_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x0d, 0x01, 0x00 - }; - static const guint8 citizenship_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x02, - 0x30, 0x06, 0x03, 0x01, 0x0e, 0x01, 0x00 - }; - static const guint8 organisation_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x15, 0x02 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &family_name_ul, 16) == 0) { - self->family_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" family name = %s", GST_STR_NULL (self->family_name)); - } else if (memcmp (tag_ul, &first_given_name_ul, 16) == 0) { - self->first_given_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" first given name = %s", - GST_STR_NULL (self->first_given_name)); - } else if (memcmp (tag_ul, &other_given_names_ul, 16) == 0) { - self->other_given_names = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" other given names = %s", - GST_STR_NULL (self->other_given_names)); - } else if (memcmp (tag_ul, &linking_name_ul, 16) == 0) { - self->linking_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" linking name = %s", GST_STR_NULL (self->linking_name)); - } else if (memcmp (tag_ul, &salutation_ul, 16) == 0) { - self->salutation = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" salutation = %s", GST_STR_NULL (self->salutation)); - } else if (memcmp (tag_ul, &name_suffix_ul, 16) == 0) { - self->name_suffix = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" name suffix = %s", GST_STR_NULL (self->name_suffix)); - } else if (memcmp (tag_ul, &honours_qualifications_ul, 16) == 0) { - self->honours_qualifications = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" honours & qualifications = %s", - GST_STR_NULL (self->honours_qualifications)); - } else if (memcmp (tag_ul, &former_family_name_ul, 16) == 0) { - self->former_family_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" former family name = %s", - GST_STR_NULL (self->former_family_name)); - } else if (memcmp (tag_ul, &person_description_ul, 16) == 0) { - self->person_description = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" person description = %s", - GST_STR_NULL (self->person_description)); - } else if (memcmp (tag_ul, &alternate_name_ul, 16) == 0) { - self->alternate_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" alternate name = %s", GST_STR_NULL (self->alternate_name)); - } else if (memcmp (tag_ul, &nationality_ul, 16) == 0) { - self->nationality = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" nationality = %s", GST_STR_NULL (self->nationality)); - } else if (memcmp (tag_ul, &citizenship_ul, 16) == 0) { - self->citizenship = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" citizenship = %s", GST_STR_NULL (self->citizenship)); - } else if (memcmp (tag_ul, &organisation_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->organisation_sets_uids, - &self->n_organisation_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of organisation sets = %u", self->n_organisation_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_organisation_sets; i++) { - GST_DEBUG (" organisation sets %u = %s", i, - mxf_uuid_to_string (&self->organisation_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_person_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 person local tag 0x%04x of size %u", tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_person_init (MXFDMS1Person * self) -{ -} - -static void -mxf_dms1_person_class_init (MXFDMS1PersonClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_person_finalize; - metadatabase_class->handle_tag = mxf_dms1_person_handle_tag; - metadatabase_class->resolve = mxf_dms1_person_resolve; - dm_class->type = 0x1a0200; -} - -G_DEFINE_TYPE (MXFDMS1Organisation, mxf_dms1_organisation, - MXF_TYPE_DMS1_CONTACT); - -static void -mxf_dms1_organisation_finalize (GObject * object) -{ - MXFDMS1Organisation *self = MXF_DMS1_ORGANISATION (object); - - g_free (self->nature_of_organisation); - self->nature_of_organisation = NULL; - - g_free (self->organisation_main_name); - self->organisation_main_name = NULL; - - g_free (self->organisation_code); - self->organisation_code = NULL; - - g_free (self->contact_department); - self->contact_department = NULL; - - G_OBJECT_CLASS (mxf_dms1_organisation_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_organisation_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Organisation *self = MXF_DMS1_ORGANISATION (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 nature_of_organisation_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x30, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 organisation_main_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x30, 0x06, 0x03, 0x03, 0x01, 0x01, 0x00 - }; - static const guint8 organisation_code_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x01, - 0x0a, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 contact_department_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x30, 0x06, 0x02, 0x01, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &nature_of_organisation_ul, 16) == 0) { - self->nature_of_organisation = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" nature of organisation = %s", - GST_STR_NULL (self->nature_of_organisation)); - } else if (memcmp (tag_ul, &organisation_main_name_ul, 16) == 0) { - self->organisation_main_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" organisation main name = %s", - GST_STR_NULL (self->organisation_main_name)); - } else if (memcmp (tag_ul, &organisation_code_ul, 16) == 0) { - self->organisation_code = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" organisation code = %s", - GST_STR_NULL (self->organisation_code)); - } else if (memcmp (tag_ul, &contact_department_ul, 16) == 0) { - self->contact_department = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" contact department = %s", - GST_STR_NULL (self->contact_department)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_organisation_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; -} - -static void -mxf_dms1_organisation_init (MXFDMS1Organisation * self) -{ -} - -static void -mxf_dms1_organisation_class_init (MXFDMS1OrganisationClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_organisation_finalize; - metadatabase_class->handle_tag = mxf_dms1_organisation_handle_tag; - dm_class->type = 0x1a0300; -} - -G_DEFINE_TYPE (MXFDMS1Location, mxf_dms1_location, MXF_TYPE_DMS1_CONTACT); - -static void -mxf_dms1_location_finalize (GObject * object) -{ - MXFDMS1Location *self = MXF_DMS1_LOCATION (object); - - g_free (self->location_kind); - self->location_kind = NULL; - - g_free (self->location_description); - self->location_description = NULL; - - G_OBJECT_CLASS (mxf_dms1_location_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_location_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Location *self = MXF_DMS1_LOCATION (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 location_kind_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x01, 0x20, 0x02, 0x03, 0x01, 0x00, 0x00 - }; - static const guint8 location_description_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x01, 0x20, 0x02, 0x02, 0x01, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &location_kind_ul, 16) == 0) { - self->location_kind = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" location kind = %s", GST_STR_NULL (self->location_kind)); - } else if (memcmp (tag_ul, &location_description_ul, 16) == 0) { - self->location_description = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" location description = %s", - GST_STR_NULL (self->location_description)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_location_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; -} - -static void -mxf_dms1_location_init (MXFDMS1Location * self) -{ -} - -static void -mxf_dms1_location_class_init (MXFDMS1LocationClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_location_finalize; - metadatabase_class->handle_tag = mxf_dms1_location_handle_tag; - dm_class->type = 0x1a0400; -} - -G_DEFINE_TYPE (MXFDMS1Address, mxf_dms1_address, MXF_TYPE_DMS1); - -static void -mxf_dms1_address_finalize (GObject * object) -{ - MXFDMS1Address *self = MXF_DMS1_ADDRESS (object); - - g_free (self->room_or_suite_number); - self->room_or_suite_number = NULL; - - g_free (self->room_or_suite_name); - self->room_or_suite_name = NULL; - - g_free (self->building_name); - self->building_name = NULL; - - g_free (self->street_number); - self->street_number = NULL; - - g_free (self->street_name); - self->street_name = NULL; - - g_free (self->postal_town); - self->postal_town = NULL; - - g_free (self->city); - self->city = NULL; - - g_free (self->state_or_province_or_country); - self->state_or_province_or_country = NULL; - - g_free (self->postal_code); - self->postal_code = NULL; - - g_free (self->country); - self->country = NULL; - - g_free (self->astronomical_body_name); - self->astronomical_body_name = NULL; - - g_free (self->communications_sets_uids); - self->communications_sets_uids = NULL; - - g_free (self->communications_sets); - self->communications_sets = NULL; - - g_free (self->name_value_sets_uids); - self->name_value_sets_uids = NULL; - - g_free (self->name_value_sets); - self->name_value_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_address_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_address_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Address *self = MXF_DMS1_ADDRESS (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->communications_sets) - memset (self->communications_sets, 0, - sizeof (gpointer) * self->n_communications_sets); - else - self->communications_sets = - g_new0 (MXFDMS1Communications *, self->n_communications_sets); - - if (self->name_value_sets) - memset (self->name_value_sets, 0, - sizeof (gpointer) * self->n_name_value_sets); - else - self->name_value_sets = - g_new0 (MXFDMS1NameValue *, self->n_name_value_sets); - - for (i = 0; i < self->n_communications_sets; i++) { - current = - g_hash_table_lookup (metadata, &self->communications_sets_uids[i]); - if (current && MXF_IS_DMS1_COMMUNICATIONS (current)) { - self->communications_sets[i] = MXF_DMS1_COMMUNICATIONS (current); - } - } - - for (i = 0; i < self->n_name_value_sets; i++) { - current = g_hash_table_lookup (metadata, &self->name_value_sets_uids[i]); - if (current && MXF_IS_DMS1_NAME_VALUE (current)) { - self->name_value_sets[i] = MXF_DMS1_NAME_VALUE (current); - } - } - - return MXF_METADATA_BASE_CLASS (mxf_dms1_address_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_address_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1Address *self = MXF_DMS1_ADDRESS (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 room_or_suite_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x01, 0x01 - }; - static const guint8 room_or_suite_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x11, 0x01 - }; - static const guint8 building_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x12, 0x01 - }; - static const guint8 place_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x14, 0x01 - }; - static const guint8 street_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x02, 0x01 - }; - static const guint8 street_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x03, 0x01 - }; - static const guint8 postal_town_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x04, 0x01 - }; - static const guint8 city_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x05, 0x01 - }; - static const guint8 state_or_province_or_country_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x06, 0x01 - }; - static const guint8 postal_code_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x07, 0x01 - }; - static const guint8 country_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x08, 0x01 - }; - static const guint8 geographical_coordinate_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x15, 0x01 - }; - static const guint8 astronomical_body_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x07, - 0x01, 0x20, 0x01, 0x04, 0x01, 0x16, 0x01 - }; - static const guint8 communications_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x19, 0x00 - }; - static const guint8 name_value_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x1f, 0x04 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &room_or_suite_name_ul, 16) == 0) { - self->room_or_suite_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" room or suite name = %s", - GST_STR_NULL (self->room_or_suite_name)); - } else if (memcmp (tag_ul, &room_or_suite_number_ul, 16) == 0) { - self->room_or_suite_number = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" room or suite number = %s", - GST_STR_NULL (self->room_or_suite_number)); - } else if (memcmp (tag_ul, &building_name_ul, 16) == 0) { - self->building_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" building name = %s", GST_STR_NULL (self->building_name)); - } else if (memcmp (tag_ul, &place_name_ul, 16) == 0) { - self->place_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" place name = %s", GST_STR_NULL (self->place_name)); - } else if (memcmp (tag_ul, &street_number_ul, 16) == 0) { - self->street_number = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" street number = %s", GST_STR_NULL (self->street_number)); - } else if (memcmp (tag_ul, &street_name_ul, 16) == 0) { - self->street_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" street name = %s", GST_STR_NULL (self->street_name)); - } else if (memcmp (tag_ul, &postal_town_ul, 16) == 0) { - self->postal_town = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" postal town = %s", GST_STR_NULL (self->postal_town)); - } else if (memcmp (tag_ul, &city_ul, 16) == 0) { - self->city = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" city = %s", GST_STR_NULL (self->city)); - } else if (memcmp (tag_ul, &state_or_province_or_country_ul, 16) == 0) { - self->state_or_province_or_country = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" state or province or country = %s", - GST_STR_NULL (self->state_or_province_or_country)); - } else if (memcmp (tag_ul, &postal_code_ul, 16) == 0) { - self->postal_code = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" postal code = %s", GST_STR_NULL (self->postal_code)); - } else if (memcmp (tag_ul, &country_ul, 16) == 0) { - self->country = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" country = %s", GST_STR_NULL (self->country)); - } else if (memcmp (tag_ul, &geographical_coordinate_ul, 16) == 0) { - if (tag_size != 12) - goto error; - - memcpy (&self->geographical_coordinate, tag_data, 12); - /* TODO implement */ - } else if (memcmp (tag_ul, &astronomical_body_name_ul, 16) == 0) { - self->astronomical_body_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" astronomical body name = %s", - GST_STR_NULL (self->astronomical_body_name)); - } else if (memcmp (tag_ul, &communications_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->communications_sets_uids, - &self->n_communications_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of communications sets = %u", - self->n_communications_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_communications_sets; i++) { - GST_DEBUG (" communications sets %u = %s", i, - mxf_uuid_to_string (&self->communications_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &name_value_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->name_value_sets_uids, - &self->n_name_value_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of name-value sets = %u", self->n_name_value_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_name_value_sets; i++) { - GST_DEBUG (" name-value sets %u = %s", i, - mxf_uuid_to_string (&self->name_value_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_address_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 address local tag 0x%04x of size %u", tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_address_init (MXFDMS1Address * self) -{ -} - -static void -mxf_dms1_address_class_init (MXFDMS1AddressClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_address_finalize; - metadatabase_class->handle_tag = mxf_dms1_address_handle_tag; - metadatabase_class->resolve = mxf_dms1_address_resolve; - dm_class->type = 0x1b0100; -} - -G_DEFINE_TYPE (MXFDMS1Communications, mxf_dms1_communications, MXF_TYPE_DMS1); - -static void -mxf_dms1_communications_finalize (GObject * object) -{ - MXFDMS1Communications *self = MXF_DMS1_COMMUNICATIONS (object); - - g_free (self->email_address); - self->email_address = NULL; - - g_free (self->web_page); - self->web_page = NULL; - - G_OBJECT_CLASS (mxf_dms1_communications_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_communications_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Communications *self = MXF_DMS1_COMMUNICATIONS (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 central_telephone_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x01, 0x20, 0x01, 0x10, 0x03, 0x04, 0x00 - }; - static const guint8 telephone_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x07, - 0x01, 0x20, 0x01, 0x10, 0x03, 0x01, 0x00 - }; - static const guint8 mobile_telephone_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x01, 0x20, 0x01, 0x10, 0x03, 0x05, 0x00 - }; - static const guint8 fax_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x07, - 0x01, 0x20, 0x01, 0x10, 0x03, 0x02, 0x00 - }; - static const guint8 email_address_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x10, 0x03, 0x03, 0x01 - }; - static const guint8 web_page_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x07, - 0x01, 0x20, 0x01, 0x10, 0x03, 0x06, 0x01 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, ¢ral_telephone_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - memcpy (self->central_telephone_number, tag_data, tag_size); - - GST_DEBUG (" central telephone number = %s", - self->central_telephone_number); - } else if (memcmp (tag_ul, &telephone_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - memcpy (self->telephone_number, tag_data, tag_size); - - GST_DEBUG (" telephone number = %s", self->telephone_number); - } else if (memcmp (tag_ul, &mobile_telephone_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - memcpy (self->mobile_telephone_number, tag_data, tag_size); - - GST_DEBUG (" mobile telephone number = %s", self->mobile_telephone_number); - } else if (memcmp (tag_ul, &fax_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - memcpy (self->fax_number, tag_data, tag_size); - - GST_DEBUG (" fax number = %s", self->fax_number); - } else if (memcmp (tag_ul, &email_address_ul, 16) == 0) { - self->email_address = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" email address = %s", GST_STR_NULL (self->email_address)); - } else if (memcmp (tag_ul, &web_page_ul, 16) == 0) { - self->web_page = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" web page = %s", GST_STR_NULL (self->web_page)); - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_communications_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 communications local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_communications_init (MXFDMS1Communications * self) -{ -} - -static void -mxf_dms1_communications_class_init (MXFDMS1CommunicationsClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_communications_finalize; - metadatabase_class->handle_tag = mxf_dms1_communications_handle_tag; - dm_class->type = 0x1b0200; -} - -G_DEFINE_TYPE (MXFDMS1Contract, mxf_dms1_contract, MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_contract_finalize (GObject * object) -{ - MXFDMS1Contract *self = MXF_DMS1_CONTRACT (object); - - g_free (self->rights_sets_uids); - self->rights_sets_uids = NULL; - - g_free (self->rights_sets); - self->rights_sets = NULL; - - g_free (self->participant_sets_uids); - self->participant_sets_uids = NULL; - - g_free (self->participant_sets); - self->participant_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_contract_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_contract_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1Contract *self = MXF_DMS1_CONTRACT (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->rights_sets) - memset (self->rights_sets, 0, sizeof (gpointer) * self->n_rights_sets); - else - self->rights_sets = g_new0 (MXFDMS1Rights *, self->n_rights_sets); - - if (self->participant_sets) - memset (self->participant_sets, 0, - sizeof (gpointer) * self->n_participant_sets); - else - self->participant_sets = - g_new0 (MXFDMS1Participant *, self->n_participant_sets); - - for (i = 0; i < self->n_rights_sets; i++) { - current = g_hash_table_lookup (metadata, &self->rights_sets_uids[i]); - if (current && MXF_IS_DMS1_RIGHTS (current)) { - self->rights_sets[i] = MXF_DMS1_RIGHTS (current); - } - } - - for (i = 0; i < self->n_participant_sets; i++) { - current = g_hash_table_lookup (metadata, &self->participant_sets_uids[i]); - if (current && MXF_IS_DMS1_PARTICIPANT (current)) { - self->participant_sets[i] = MXF_DMS1_PARTICIPANT (current); - } - } - - return MXF_METADATA_BASE_CLASS (mxf_dms1_contract_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_contract_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Contract *self = MXF_DMS1_CONTRACT (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 supply_contract_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x02, - 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 rights_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x1a, 0x00 - }; - static const guint8 participant_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x13, 0x02 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &supply_contract_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->supply_contract_number, tag_data, tag_size); - GST_DEBUG (" supply contract number = %s", self->supply_contract_number); - } else if (memcmp (tag_ul, &rights_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->rights_sets_uids, &self->n_rights_sets, - tag_data, tag_size)) - goto error; - GST_DEBUG (" number of rights sets = %u", self->n_rights_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_rights_sets; i++) { - GST_DEBUG (" rights sets %u = %s", i, - mxf_uuid_to_string (&self->rights_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &participant_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->participant_sets_uids, - &self->n_participant_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of participant sets = %u", self->n_participant_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_participant_sets; i++) { - GST_DEBUG (" participant sets %u = %s", i, - mxf_uuid_to_string (&self->participant_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_contract_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 contract local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_contract_init (MXFDMS1Contract * self) -{ -} - -static void -mxf_dms1_contract_class_init (MXFDMS1ContractClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_contract_finalize; - metadatabase_class->handle_tag = mxf_dms1_contract_handle_tag; - metadatabase_class->resolve = mxf_dms1_contract_resolve; - dm_class->type = 0x1c0100; -} - -G_DEFINE_TYPE (MXFDMS1Rights, mxf_dms1_rights, MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_rights_finalize (GObject * object) -{ - MXFDMS1Rights *self = MXF_DMS1_RIGHTS (object); - - g_free (self->copyright_owner); - self->copyright_owner = NULL; - - g_free (self->rights_holder); - self->rights_holder = NULL; - - g_free (self->rights_managment_authority); - self->rights_managment_authority = NULL; - - g_free (self->region_or_area_of_ip_license); - self->region_or_area_of_ip_license = NULL; - - g_free (self->intellectual_property_type); - self->intellectual_property_type = NULL; - - g_free (self->right_condition); - self->right_condition = NULL; - - g_free (self->right_remarks); - self->right_remarks = NULL; - - g_free (self->intellectual_property_right); - self->intellectual_property_right = NULL; - - G_OBJECT_CLASS (mxf_dms1_rights_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_rights_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1Rights *self = MXF_DMS1_RIGHTS (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[32]; -#endif - static const guint8 copyright_owner_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x05, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 rights_holder_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x05, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 rights_managment_authority_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x05, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 region_or_area_of_ip_license_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x07, - 0x01, 0x20, 0x01, 0x03, 0x05, 0x01, 0x00 - }; - static const guint8 intellectual_property_type_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x05, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 right_condition_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x05, 0x04, 0x03, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 right_remarks_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x08, 0x02, - 0x05, 0x04, 0x04, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 intellectual_property_right_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x02, - 0x05, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 rights_start_date_and_time_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x02, 0x01, 0x20, 0x02, 0x00, 0x00, 0x00 - }; - static const guint8 rights_stop_date_and_time_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x07, - 0x02, 0x01, 0x20, 0x03, 0x00, 0x00, 0x00 - }; - static const guint8 maximum_number_of_usages_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x02, - 0x05, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, ©right_owner_ul, 16) == 0) { - self->copyright_owner = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" copyright owner = %s", GST_STR_NULL (self->copyright_owner)); - } else if (memcmp (tag_ul, &rights_holder_ul, 16) == 0) { - self->rights_holder = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" rights holder = %s", GST_STR_NULL (self->rights_holder)); - } else if (memcmp (tag_ul, &rights_managment_authority_ul, 16) == 0) { - self->rights_managment_authority = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" rights managment authority = %s", - GST_STR_NULL (self->rights_managment_authority)); - } else if (memcmp (tag_ul, ®ion_or_area_of_ip_license_ul, 16) == 0) { - self->region_or_area_of_ip_license = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" region or area of ip license = %s", - GST_STR_NULL (self->region_or_area_of_ip_license)); - } else if (memcmp (tag_ul, &intellectual_property_type_ul, 16) == 0) { - self->intellectual_property_type = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" intellectual property type = %s", - GST_STR_NULL (self->intellectual_property_type)); - } else if (memcmp (tag_ul, &right_condition_ul, 16) == 0) { - self->right_condition = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" right condition = %s", GST_STR_NULL (self->right_condition)); - } else if (memcmp (tag_ul, &right_remarks_ul, 16) == 0) { - self->right_remarks = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" right remarks = %s", GST_STR_NULL (self->right_remarks)); - } else if (memcmp (tag_ul, &intellectual_property_right_ul, 16) == 0) { - self->intellectual_property_right = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" intellectual property right = %s", - GST_STR_NULL (self->intellectual_property_right)); - } else if (memcmp (tag_ul, &rights_start_date_and_time_ul, 16) == 0) { - if (!mxf_timestamp_parse (&self->rights_start_date_and_time, tag_data, - tag_size)) - goto error; - - GST_DEBUG (" rights start date and time = %s", - mxf_timestamp_to_string (&self->rights_start_date_and_time, str)); - } else if (memcmp (tag_ul, &rights_stop_date_and_time_ul, 16) == 0) { - if (!mxf_timestamp_parse (&self->rights_stop_date_and_time, tag_data, - tag_size)) - goto error; - - GST_DEBUG (" rights stop date and time = %s", - mxf_timestamp_to_string (&self->rights_stop_date_and_time, str)); - } else if (memcmp (tag_ul, &maximum_number_of_usages_ul, 16) == 0) { - if (tag_size != 2) - goto error; - - self->maximum_number_of_usages = GST_READ_UINT16_BE (tag_data); - GST_DEBUG (" maximum number of usages = %u", - self->maximum_number_of_usages); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_rights_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 rights local tag 0x%04x of size %u", tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_rights_init (MXFDMS1Rights * self) -{ -} - -static void -mxf_dms1_rights_class_init (MXFDMS1RightsClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_rights_finalize; - metadatabase_class->handle_tag = mxf_dms1_rights_handle_tag; - dm_class->type = 0x1c0200; -} - -G_DEFINE_TYPE (MXFDMS1PictureFormat, mxf_dms1_picture_format, MXF_TYPE_DMS1); - -static void -mxf_dms1_picture_format_finalize (GObject * object) -{ - MXFDMS1PictureFormat *self = MXF_DMS1_PICTURE_FORMAT (object); - - g_free (self->colour_descriptor); - self->colour_descriptor = NULL; - - G_OBJECT_CLASS (mxf_dms1_picture_format_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_picture_format_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1PictureFormat *self = MXF_DMS1_PICTURE_FORMAT (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 viewport_aspect_ratio_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, 0x04, - 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00 - }; - static const guint8 perceived_display_format_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x04, - 0x01, 0x01, 0x01, 0x08, 0x00, 0x00, 0x00 - }; - static const guint8 colour_descriptor_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x03, - 0x02, 0x01, 0x06, 0x04, 0x01, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &viewport_aspect_ratio_ul, 16) == 0) { - if (!mxf_fraction_parse (&self->viewport_aspect_ratio, tag_data, tag_size)) - goto error; - - GST_DEBUG (" viewport aspect ratio = %u/%u", self->viewport_aspect_ratio.n, - self->viewport_aspect_ratio.d); - } else if (memcmp (tag_ul, &perceived_display_format_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->perceived_display_format, tag_data, tag_size); - GST_DEBUG (" perceived display format = %s", - self->perceived_display_format); - } else if (memcmp (tag_ul, &colour_descriptor_ul, 16) == 0) { - self->colour_descriptor = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" colour descriptor = %s", - GST_STR_NULL (self->colour_descriptor)); - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_picture_format_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 picture format local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_picture_format_init (MXFDMS1PictureFormat * self) -{ -} - -static void -mxf_dms1_picture_format_class_init (MXFDMS1PictureFormatClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_picture_format_finalize; - metadatabase_class->handle_tag = mxf_dms1_picture_format_handle_tag; - dm_class->type = 0x1d0100; -} - -G_DEFINE_TYPE (MXFDMS1DeviceParameters, mxf_dms1_device_parameters, - MXF_TYPE_DMS1_THESAURUS); - -static void -mxf_dms1_device_parameters_finalize (GObject * object) -{ - MXFDMS1DeviceParameters *self = MXF_DMS1_DEVICE_PARAMETERS (object); - - g_free (self->device_type); - self->device_type = NULL; - - g_free (self->manufacturer); - self->manufacturer = NULL; - - g_free (self->device_model); - self->device_model = NULL; - - g_free (self->device_serial_number); - self->device_serial_number = NULL; - - g_free (self->device_usage_description); - self->device_usage_description = NULL; - - g_free (self->name_value_sets_uids); - self->name_value_sets_uids = NULL; - - g_free (self->name_value_sets); - self->name_value_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_device_parameters_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_device_parameters_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1DeviceParameters *self = MXF_DMS1_DEVICE_PARAMETERS (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->name_value_sets) - memset (self->name_value_sets, 0, - sizeof (gpointer) * self->n_name_value_sets); - else - self->name_value_sets = - g_new0 (MXFDMS1NameValue *, self->n_name_value_sets); - - for (i = 0; i < self->n_name_value_sets; i++) { - current = g_hash_table_lookup (metadata, &self->name_value_sets_uids[i]); - if (current && MXF_IS_DMS1_NAME_VALUE (current)) { - self->name_value_sets[i] = MXF_DMS1_NAME_VALUE (current); - } - } - - return - MXF_METADATA_BASE_CLASS (mxf_dms1_device_parameters_parent_class)->resolve - (m, metadata); -} - -static gboolean -mxf_dms1_device_parameters_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1DeviceParameters *self = MXF_DMS1_DEVICE_PARAMETERS (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 device_type_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x01, - 0x01, 0x20, 0x08, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 device_designation_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 device_asset_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x01, - 0x01, 0x20, 0x0c, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 ieee_device_identifier_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, 0x01, - 0x01, 0x20, 0x05, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 manufacturer_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, 0x01, - 0x0a, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 device_model_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x20, 0x03, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 device_serial_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 device_usage_description_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x03, 0x03, 0x10, 0x01, 0x01, 0x00, 0x00 - }; - static const guint8 name_value_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x05, 0x40, 0x1f, 0x03 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &device_type_ul, 16) == 0) { - self->device_type = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" device type = %s", GST_STR_NULL (self->device_type)); - } else if (memcmp (tag_ul, &device_designation_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->device_designation, tag_data, tag_size); - GST_DEBUG (" device designation = %s", self->device_designation); - } else if (memcmp (tag_ul, &device_asset_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->device_asset_number, tag_data, tag_size); - GST_DEBUG (" device asset number = %s", self->device_asset_number); - } else if (memcmp (tag_ul, &ieee_device_identifier_ul, 16) == 0) { - if (tag_size != 6) - goto error; - - memcpy (self->ieee_device_identifier, tag_data, 6); - GST_DEBUG - (" IEEE device identifier = 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x", - self->ieee_device_identifier[0], self->ieee_device_identifier[1], - self->ieee_device_identifier[2], self->ieee_device_identifier[3], - self->ieee_device_identifier[4], self->ieee_device_identifier[5]); - } else if (memcmp (tag_ul, &manufacturer_ul, 16) == 0) { - self->manufacturer = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" manufacturer = %s", GST_STR_NULL (self->manufacturer)); - } else if (memcmp (tag_ul, &device_model_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->device_model, tag_data, tag_size); - GST_DEBUG (" device model = %s", self->device_model); - } else if (memcmp (tag_ul, &device_serial_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->device_serial_number, tag_data, tag_size); - GST_DEBUG (" device serial number = %s", self->device_serial_number); - } else if (memcmp (tag_ul, &device_usage_description_ul, 16) == 0) { - self->device_usage_description = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" device usage description = %s", - GST_STR_NULL (self->device_usage_description)); - } else if (memcmp (tag_ul, &name_value_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->name_value_sets_uids, - &self->n_name_value_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of name-value sets = %u", self->n_name_value_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_name_value_sets; i++) { - GST_DEBUG (" name-value sets %u = %s", i, - mxf_uuid_to_string (&self->name_value_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_device_parameters_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 device parameters local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_device_parameters_init (MXFDMS1DeviceParameters * self) -{ -} - -static void -mxf_dms1_device_parameters_class_init (MXFDMS1DeviceParametersClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_device_parameters_finalize; - metadatabase_class->handle_tag = mxf_dms1_device_parameters_handle_tag; - metadatabase_class->resolve = mxf_dms1_device_parameters_resolve; - dm_class->type = 0x1e0100; -} - -G_DEFINE_TYPE (MXFDMS1NameValue, mxf_dms1_name_value, MXF_TYPE_DMS1); - -static void -mxf_dms1_name_value_finalize (GObject * object) -{ - MXFDMS1NameValue *self = MXF_DMS1_NAME_VALUE (object); - - g_free (self->item_name); - self->item_name = NULL; - - g_free (self->item_value); - self->item_value = NULL; - - G_OBJECT_CLASS (mxf_dms1_name_value_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_name_value_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1NameValue *self = MXF_DMS1_NAME_VALUE (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 item_name_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x01, 0x02, 0x0a, 0x01, 0x01, 0x00, 0x00 - }; - static const guint8 item_value_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x03, - 0x01, 0x02, 0x0a, 0x02, 0x01, 0x00, 0x00 - }; - static const guint8 smpte_universal_label_locator_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x01, - 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &item_name_ul, 16) == 0) { - self->item_name = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" item name = %s", GST_STR_NULL (self->item_name)); - } else if (memcmp (tag_ul, &item_value_ul, 16) == 0) { - self->item_value = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" item value = %s", GST_STR_NULL (self->item_value)); - } else if (memcmp (tag_ul, &smpte_universal_label_locator_ul, 16) == 0) { - if (tag_size != 16) - goto error; - - memcpy (&self->smpte_universal_label_locator, tag_data, 16); - GST_DEBUG (" SMPTE universal label locator = %s", - mxf_uuid_to_string (&self->smpte_universal_label_locator, str)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_name_value_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 name-value local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_name_value_init (MXFDMS1NameValue * self) -{ -} - -static void -mxf_dms1_name_value_class_init (MXFDMS1NameValueClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_name_value_finalize; - metadatabase_class->handle_tag = mxf_dms1_name_value_handle_tag; - dm_class->type = 0x1f0100; -} - -G_DEFINE_TYPE (MXFDMS1Processing, mxf_dms1_processing, MXF_TYPE_DMS1); - -static void -mxf_dms1_processing_finalize (GObject * object) -{ - MXFDMS1Processing *self = MXF_DMS1_PROCESSING (object); - - g_free (self->descriptive_comment); - self->descriptive_comment = NULL; - - g_free (self->graphic_usage_type); - self->graphic_usage_type = NULL; - - G_OBJECT_CLASS (mxf_dms1_processing_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_processing_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1Processing *self = MXF_DMS1_PROCESSING (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 quality_flag_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x05, - 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 descriptive_comment_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x03, - 0x02, 0x03, 0x02, 0x02, 0x01, 0x00, 0x00 - }; - static const guint8 logo_flag_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, 0x05, - 0x01, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 graphic_usage_type_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x05, - 0x01, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 process_steps_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x05, - 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 generation_copy_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x05, - 0x01, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00 - }; - static const guint8 generation_clone_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, 0x05, - 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &quality_flag_ul, 16) == 0) { - if (tag_size != 1) - goto error; - - self->quality_flag = GST_READ_UINT8 (tag_data); - GST_DEBUG (" quality flag = %u", self->quality_flag); - } else if (memcmp (tag_ul, &descriptive_comment_ul, 16) == 0) { - self->descriptive_comment = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" descriptive comment = %s", - GST_STR_NULL (self->descriptive_comment)); - } else if (memcmp (tag_ul, &logo_flag_ul, 16) == 0) { - if (tag_size != 1) - goto error; - - self->logo_flag = GST_READ_UINT8 (tag_data); - GST_DEBUG (" logo flag = %u", self->logo_flag); - } else if (memcmp (tag_ul, &graphic_usage_type_ul, 16) == 0) { - self->graphic_usage_type = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" graphic usage type = %s", - GST_STR_NULL (self->graphic_usage_type)); - } else if (memcmp (tag_ul, &process_steps_ul, 16) == 0) { - if (tag_size != 2) - goto error; - - self->process_steps = GST_READ_UINT16_BE (tag_data); - GST_DEBUG (" process steps = %u", self->process_steps); - } else if (memcmp (tag_ul, &generation_copy_number_ul, 16) == 0) { - if (tag_size != 2) - goto error; - - self->generation_copy_number = GST_READ_UINT16_BE (tag_data); - GST_DEBUG (" generation copy number = %u", self->generation_copy_number); - } else if (memcmp (tag_ul, &generation_clone_number_ul, 16) == 0) { - if (tag_size != 2) - goto error; - - self->generation_clone_number = GST_READ_UINT16_BE (tag_data); - GST_DEBUG (" generation clone number = %u", self->generation_clone_number); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_processing_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 processing local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_processing_init (MXFDMS1Processing * self) -{ -} - -static void -mxf_dms1_processing_class_init (MXFDMS1ProcessingClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_processing_finalize; - metadatabase_class->handle_tag = mxf_dms1_processing_handle_tag; - dm_class->type = 0x200100; -} - -G_DEFINE_TYPE (MXFDMS1Project, mxf_dms1_project, MXF_TYPE_DMS1); - -static void -mxf_dms1_project_finalize (GObject * object) -{ - MXFDMS1Project *self = MXF_DMS1_PROJECT (object); - - g_free (self->project_name_or_title); - self->project_name_or_title = NULL; - - G_OBJECT_CLASS (mxf_dms1_project_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_project_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer, - guint16 tag, const guint8 * tag_data, guint tag_size) -{ - MXFDMS1Project *self = MXF_DMS1_PROJECT (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 project_number_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, 0x01, - 0x03, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00 - }; - static const guint8 project_name_or_title_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x01, - 0x03, 0x01, 0x08, 0x01, 0x00, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &project_number_ul, 16) == 0) { - if (tag_size > 32) - goto error; - - memcpy (self->project_number, tag_data, tag_size); - - GST_DEBUG (" project number = %s", self->project_number); - } else if (memcmp (tag_ul, &project_name_or_title_ul, 16) == 0) { - self->project_name_or_title = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" project name or title = %s", - GST_STR_NULL (self->project_name_or_title)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_project_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 project local tag 0x%04x of size %u", tag, tag_size); - - return FALSE; -} - -static void -mxf_dms1_project_init (MXFDMS1Project * self) -{ -} - -static void -mxf_dms1_project_class_init (MXFDMS1ProjectClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_project_finalize; - metadatabase_class->handle_tag = mxf_dms1_project_handle_tag; - dm_class->type = 0x200200; -} - -G_DEFINE_TYPE (MXFDMS1ContactsList, mxf_dms1_contacts_list, MXF_TYPE_DMS1); - -static void -mxf_dms1_contacts_list_finalize (GObject * object) -{ - MXFDMS1ContactsList *self = MXF_DMS1_CONTACTS_LIST (object); - - g_free (self->person_sets_uids); - self->person_sets_uids = NULL; - - g_free (self->person_sets); - self->person_sets = NULL; - - g_free (self->organisation_sets_uids); - self->organisation_sets_uids = NULL; - - g_free (self->organisation_sets); - self->organisation_sets = NULL; - - g_free (self->location_sets_uids); - self->location_sets_uids = NULL; - - g_free (self->location_sets); - self->location_sets = NULL; - - G_OBJECT_CLASS (mxf_dms1_contacts_list_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_contacts_list_resolve (MXFMetadataBase * m, GHashTable * metadata) -{ - MXFDMS1ContactsList *self = MXF_DMS1_CONTACTS_LIST (m); - MXFMetadataBase *current = NULL; - guint i; - - if (self->person_sets) - memset (self->person_sets, 0, sizeof (gpointer) * self->n_person_sets); - else - self->person_sets = g_new0 (MXFDMS1Person *, self->n_person_sets); - - if (self->organisation_sets) - memset (self->organisation_sets, 0, - sizeof (gpointer) * self->n_organisation_sets); - else - self->organisation_sets = - g_new0 (MXFDMS1Organisation *, self->n_organisation_sets); - - if (self->location_sets) - memset (self->location_sets, 0, sizeof (gpointer) * self->n_location_sets); - else - self->location_sets = g_new0 (MXFDMS1Location *, self->n_location_sets); - - for (i = 0; i < self->n_person_sets; i++) { - current = g_hash_table_lookup (metadata, &self->person_sets_uids[i]); - if (current && MXF_IS_DMS1_PERSON (current)) { - self->person_sets[i] = MXF_DMS1_PERSON (current); - } - } - - for (i = 0; i < self->n_organisation_sets; i++) { - current = g_hash_table_lookup (metadata, &self->organisation_sets_uids[i]); - if (current && MXF_IS_DMS1_ORGANISATION (current)) { - self->organisation_sets[i] = MXF_DMS1_ORGANISATION (current); - } - } - - for (i = 0; i < self->n_location_sets; i++) { - current = g_hash_table_lookup (metadata, &self->location_sets_uids[i]); - if (current && MXF_IS_DMS1_LOCATION (current)) { - self->location_sets[i] = MXF_DMS1_LOCATION (current); - } - } - - return - MXF_METADATA_BASE_CLASS (mxf_dms1_contacts_list_parent_class)->resolve (m, - metadata); -} - -static gboolean -mxf_dms1_contacts_list_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1ContactsList *self = MXF_DMS1_CONTACTS_LIST (metadata); - gboolean ret = TRUE; -#ifndef GST_DISABLE_GST_DEBUG - gchar str[48]; -#endif - MXFUL *tag_ul = NULL; - static const guint8 person_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x14, 0x00 - }; - static const guint8 organisation_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x15, 0x00 - }; - static const guint8 location_sets_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, 0x06, - 0x01, 0x01, 0x04, 0x03, 0x40, 0x16, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &person_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->person_sets_uids, &self->n_person_sets, - tag_data, tag_size)) - goto error; - GST_DEBUG (" number of person sets = %u", self->n_person_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_person_sets; i++) { - GST_DEBUG (" person sets %u = %s", i, - mxf_uuid_to_string (&self->person_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &organisation_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->organisation_sets_uids, - &self->n_organisation_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of organisation sets = %u", self->n_organisation_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_organisation_sets; i++) { - GST_DEBUG (" organisation sets %u = %s", i, - mxf_uuid_to_string (&self->organisation_sets_uids[i], str)); - } - } -#endif - } else if (memcmp (tag_ul, &location_sets_ul, 16) == 0) { - if (!mxf_uuid_array_parse (&self->location_sets_uids, - &self->n_location_sets, tag_data, tag_size)) - goto error; - GST_DEBUG (" number of location sets = %u", self->n_location_sets); -#ifndef GST_DISABLE_GST_DEBUG - { - guint i; - for (i = 0; i < self->n_location_sets; i++) { - GST_DEBUG (" location sets %u = %s", i, - mxf_uuid_to_string (&self->location_sets_uids[i], str)); - } - } -#endif - } else { - ret = - MXF_METADATA_BASE_CLASS - (mxf_dms1_contacts_list_parent_class)->handle_tag (metadata, primer, - tag, tag_data, tag_size); - } - - return ret; - -error: - - GST_ERROR ("Invalid DMS1 contacts list local tag 0x%04x of size %u", tag, - tag_size); - - return FALSE; -} - -static void -mxf_dms1_contacts_list_init (MXFDMS1ContactsList * self) -{ -} - -static void -mxf_dms1_contacts_list_class_init (MXFDMS1ContactsListClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_contacts_list_finalize; - metadatabase_class->handle_tag = mxf_dms1_contacts_list_handle_tag; - metadatabase_class->resolve = mxf_dms1_contacts_list_resolve; - dm_class->type = 0x190100; -} - -G_DEFINE_TYPE (MXFDMS1CueWords, mxf_dms1_cue_words, - MXF_TYPE_DMS1_TEXT_LANGUAGE); - -static void -mxf_dms1_cue_words_finalize (GObject * object) -{ - MXFDMS1CueWords *self = MXF_DMS1_CUE_WORDS (object); - - g_free (self->in_cue_words); - self->in_cue_words = NULL; - - g_free (self->out_cue_words); - self->out_cue_words = NULL; - - G_OBJECT_CLASS (mxf_dms1_cue_words_parent_class)->finalize (object); -} - -static gboolean -mxf_dms1_cue_words_handle_tag (MXFMetadataBase * metadata, - MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, - guint tag_size) -{ - MXFDMS1CueWords *self = MXF_DMS1_CUE_WORDS (metadata); - gboolean ret = TRUE; - MXFUL *tag_ul = NULL; - static const guint8 in_cue_words_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x01, 0x02, 0x0d, 0x01, 0x00, 0x00 - }; - static const guint8 out_cue_words_ul[] = { - 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, 0x03, - 0x02, 0x01, 0x02, 0x0e, 0x01, 0x00, 0x00 - }; - - if (!(tag_ul = - (MXFUL *) g_hash_table_lookup (primer->mappings, - GUINT_TO_POINTER (((guint) tag))))) - return FALSE; - - if (memcmp (tag_ul, &in_cue_words_ul, 16) == 0) { - self->in_cue_words = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" in cue words = %s", GST_STR_NULL (self->in_cue_words)); - } else if (memcmp (tag_ul, &out_cue_words_ul, 16) == 0) { - self->out_cue_words = mxf_utf16_to_utf8 (tag_data, tag_size); - GST_DEBUG (" out cue words = %s", GST_STR_NULL (self->out_cue_words)); - } else { - ret = - MXF_METADATA_BASE_CLASS (mxf_dms1_cue_words_parent_class)->handle_tag - (metadata, primer, tag, tag_data, tag_size); - } - - return ret; -} - -static void -mxf_dms1_cue_words_init (MXFDMS1CueWords * self) -{ -} - -static void -mxf_dms1_cue_words_class_init (MXFDMS1CueWordsClass * klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - MXFMetadataBaseClass *metadatabase_class = (MXFMetadataBaseClass *) klass; - MXFDescriptiveMetadataClass *dm_class = (MXFDescriptiveMetadataClass *) klass; - - object_class->finalize = mxf_dms1_cue_words_finalize; - metadatabase_class->handle_tag = mxf_dms1_cue_words_handle_tag; - dm_class->type = 0x170800; -} - -#define _add_dm_type(type) G_STMT_START { \ - GType tmp = type; \ - \ - g_array_append_val (dms1_sets, tmp); \ -} G_STMT_END - -void -mxf_dms1_initialize (void) -{ - GArray *dms1_sets = g_array_new (TRUE, TRUE, sizeof (GType)); - - _add_dm_type (MXF_TYPE_DMS1_PRODUCTION_FRAMEWORK); - _add_dm_type (MXF_TYPE_DMS1_CLIP_FRAMEWORK); - _add_dm_type (MXF_TYPE_DMS1_SCENE_FRAMEWORK); - _add_dm_type (MXF_TYPE_DMS1_TITLES); - _add_dm_type (MXF_TYPE_DMS1_IDENTIFICATION); - _add_dm_type (MXF_TYPE_DMS1_GROUP_RELATIONSHIP); - _add_dm_type (MXF_TYPE_DMS1_BRANDING); - _add_dm_type (MXF_TYPE_DMS1_EVENT); - _add_dm_type (MXF_TYPE_DMS1_PUBLICATION); - _add_dm_type (MXF_TYPE_DMS1_AWARD); - _add_dm_type (MXF_TYPE_DMS1_CAPTIONS_DESCRIPTION); - _add_dm_type (MXF_TYPE_DMS1_ANNOTATION); - _add_dm_type (MXF_TYPE_DMS1_SETTING_PERIOD); - _add_dm_type (MXF_TYPE_DMS1_SCRIPTING); - _add_dm_type (MXF_TYPE_DMS1_CLASSIFICATION); - _add_dm_type (MXF_TYPE_DMS1_SHOT); - _add_dm_type (MXF_TYPE_DMS1_KEY_POINT); - _add_dm_type (MXF_TYPE_DMS1_PARTICIPANT); - _add_dm_type (MXF_TYPE_DMS1_PERSON); - _add_dm_type (MXF_TYPE_DMS1_ORGANISATION); - _add_dm_type (MXF_TYPE_DMS1_LOCATION); - _add_dm_type (MXF_TYPE_DMS1_ADDRESS); - _add_dm_type (MXF_TYPE_DMS1_COMMUNICATIONS); - _add_dm_type (MXF_TYPE_DMS1_CONTRACT); - _add_dm_type (MXF_TYPE_DMS1_RIGHTS); - _add_dm_type (MXF_TYPE_DMS1_PICTURE_FORMAT); - _add_dm_type (MXF_TYPE_DMS1_DEVICE_PARAMETERS); - _add_dm_type (MXF_TYPE_DMS1_NAME_VALUE); - _add_dm_type (MXF_TYPE_DMS1_PROCESSING); - _add_dm_type (MXF_TYPE_DMS1_PROJECT); - _add_dm_type (MXF_TYPE_DMS1_CONTACTS_LIST); - _add_dm_type (MXF_TYPE_DMS1_CUE_WORDS); - - mxf_descriptive_metadata_register (0x01, (GType *) g_array_free (dms1_sets, - FALSE)); -} - -#undef _add_dm_type - -#undef ADD_SET
diff --git a/gst/mxf/mxfdms1.h b/gst/mxf/mxfdms1.h deleted file mode 100644 index 78f32e4..0000000 --- a/gst/mxf/mxfdms1.h +++ /dev/null
@@ -1,933 +0,0 @@ -/* GStreamer - * Copyright (C) 2008-2009 Sebastian Dröge <sebastian.droege@collabora.co.uk> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -/* Implementation of SMPTE S380M - Descriptive Scheme-1 */ - -#ifndef _MXF_DMS1_H_ -#define _MXF_DMS1_H_ - -#include <gst/gst.h> -#include "mxfmetadata.h" - -#define MXF_TYPE_DMS1 \ - (mxf_dms1_get_type()) -#define MXF_DMS1(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1, MXFDMS1)) -#define MXF_IS_DMS1(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1)) -typedef struct _MXFDMS1 MXFDMS1; -typedef MXFDescriptiveMetadataClass MXFDMS1Class; -GType mxf_dms1_get_type (void); - -#define MXF_TYPE_DMS1_TEXT_LANGUAGE \ - (mxf_dms1_text_language_get_type()) -#define MXF_DMS1_TEXT_LANGUAGE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_TEXT_LANGUAGE, MXFDMS1TextLanguage)) -#define MXF_IS_DMS1_TEXT_LANGUAGE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_TEXT_LANGUAGE)) -typedef struct _MXFDMS1TextLanguage MXFDMS1TextLanguage; -typedef MXFDescriptiveMetadataClass MXFDMS1TextLanguageClass; -GType mxf_dms1_text_language_get_type (void); - -#define MXF_TYPE_DMS1_THESAURUS \ - (mxf_dms1_thesaurus_get_type()) -#define MXF_DMS1_THESAURUS(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_THESAURUS, MXFDMS1Thesaurus)) -#define MXF_IS_DMS1_THESAURUS(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_THESAURUS)) -typedef struct _MXFDMS1Thesaurus MXFDMS1Thesaurus; -typedef MXFDescriptiveMetadataClass MXFDMS1ThesaurusClass; -GType mxf_dms1_thesaurus_get_type (void); - -#define MXF_TYPE_DMS1_FRAMEWORK \ - (mxf_dms1_framework_get_type()) -#define MXF_DMS1_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_FRAMEWORK, MXFDMS1Framework)) -#define MXF_IS_DMS1_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_FRAMEWORK)) -typedef struct _MXFDMS1Framework MXFDMS1Framework; -typedef MXFDescriptiveMetadataClass MXFDMS1FrameworkClass; -GType mxf_dms1_framework_get_type (void); - -#define MXF_TYPE_DMS1_PRODUCTION_CLIP_FRAMEWORK \ - (mxf_dms1_production_clip_framework_get_type()) -#define MXF_DMS1_PRODUCTION_CLIP_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_PRODUCTION_CLIP_FRAMEWORK, MXFDMS1ProductionClipFramework)) -#define MXF_IS_DMS1_PRODUCTION_CLIP_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_PRODUCTION_CLIP_FRAMEWORK)) -typedef struct _MXFDMS1ProductionClipFramework MXFDMS1ProductionClipFramework; -typedef MXFDescriptiveMetadataClass MXFDMS1ProductionClipFrameworkClass; -GType mxf_dms1_production_clip_framework_get_type (void); - -#define MXF_TYPE_DMS1_PRODUCTION_FRAMEWORK \ - (mxf_dms1_production_framework_get_type()) -#define MXF_DMS1_PRODUCTION_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_PRODUCTION_FRAMEWORK, MXFDMS1ProductionFramework)) -#define MXF_IS_DMS1_PRODUCTION_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_PRODUCTION_FRAMEWORK)) -typedef struct _MXFDMS1ProductionFramework MXFDMS1ProductionFramework; -typedef MXFDescriptiveMetadataClass MXFDMS1ProductionFrameworkClass; -GType mxf_dms1_production_framework_get_type (void); - -#define MXF_TYPE_DMS1_CLIP_FRAMEWORK \ - (mxf_dms1_clip_framework_get_type()) -#define MXF_DMS1_CLIP_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_CLIP_FRAMEWORK, MXFDMS1ClipFramework)) -#define MXF_IS_DMS1_CLIP_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_CLIP_FRAMEWORK)) -typedef struct _MXFDMS1ClipFramework MXFDMS1ClipFramework; -typedef MXFDescriptiveMetadataClass MXFDMS1ClipFrameworkClass; -GType mxf_dms1_clip_framework_get_type (void); - -#define MXF_TYPE_DMS1_SCENE_FRAMEWORK \ - (mxf_dms1_scene_framework_get_type()) -#define MXF_DMS1_SCENE_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_SCENE_FRAMEWORK, MXFDMS1SceneFramework)) -#define MXF_IS_DMS1_SCENE_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_SCENE_FRAMEWORK)) -typedef struct _MXFDMS1SceneFramework MXFDMS1SceneFramework; -typedef MXFDescriptiveMetadataClass MXFDMS1SceneFrameworkClass; -GType mxf_dms1_scene_framework_get_type (void); - -#define MXF_TYPE_DMS1_TITLES \ - (mxf_dms1_titles_get_type()) -#define MXF_DMS1_TITLES(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_TITLES, MXFDMS1Titles)) -#define MXF_IS_DMS1_TITLES(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_TITLES)) -typedef struct _MXFDMS1Titles MXFDMS1Titles; -typedef MXFDescriptiveMetadataClass MXFDMS1TitlesClass; -GType mxf_dms1_titles_get_type (void); - -#define MXF_TYPE_DMS1_IDENTIFICATION \ - (mxf_dms1_identification_get_type()) -#define MXF_DMS1_IDENTIFICATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_IDENTIFICATION, MXFDMS1Identification)) -#define MXF_IS_DMS1_IDENTIFICATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_IDENTIFICATION)) -typedef struct _MXFDMS1Identification MXFDMS1Identification; -typedef MXFDescriptiveMetadataClass MXFDMS1IdentificationClass; -GType mxf_dms1_identification_get_type (void); - -#define MXF_TYPE_DMS1_GROUP_RELATIONSHIP \ - (mxf_dms1_group_relationship_get_type()) -#define MXF_DMS1_GROUP_RELATIONSHIP(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_GROUP_RELATIONSHIP, MXFDMS1GroupRelationship)) -#define MXF_IS_DMS1_GROUP_RELATIONSHIP(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_GROUP_RELATIONSHIP)) -typedef struct _MXFDMS1GroupRelationship MXFDMS1GroupRelationship; -typedef MXFDescriptiveMetadataClass MXFDMS1GroupRelationshipClass; -GType mxf_dms1_group_relationship_get_type (void); - -#define MXF_TYPE_DMS1_BRANDING \ - (mxf_dms1_branding_get_type()) -#define MXF_DMS1_BRANDING(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_BRANDING, MXFDMS1Branding)) -#define MXF_IS_DMS1_BRANDING(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_BRANDING)) -typedef struct _MXFDMS1Branding MXFDMS1Branding; -typedef MXFDescriptiveMetadataClass MXFDMS1BrandingClass; -GType mxf_dms1_branding_get_type (void); - -#define MXF_TYPE_DMS1_EVENT \ - (mxf_dms1_event_get_type()) -#define MXF_DMS1_EVENT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_EVENT, MXFDMS1Event)) -#define MXF_IS_DMS1_EVENT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_EVENT)) -typedef struct _MXFDMS1Event MXFDMS1Event; -typedef MXFDescriptiveMetadataClass MXFDMS1EventClass; -GType mxf_dms1_event_get_type (void); - -#define MXF_TYPE_DMS1_PUBLICATION \ - (mxf_dms1_publication_get_type()) -#define MXF_DMS1_PUBLICATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_PUBLICATION, MXFDMS1Publication)) -#define MXF_IS_DMS1_PUBLICATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_PUBLICATION)) -typedef struct _MXFDMS1Publication MXFDMS1Publication; -typedef MXFDescriptiveMetadataClass MXFDMS1PublicationClass; -GType mxf_dms1_publication_get_type (void); - -#define MXF_TYPE_DMS1_AWARD \ - (mxf_dms1_award_get_type()) -#define MXF_DMS1_AWARD(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_AWARD, MXFDMS1Award)) -#define MXF_IS_DMS1_AWARD(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_AWARD)) -typedef struct _MXFDMS1Award MXFDMS1Award; -typedef MXFDescriptiveMetadataClass MXFDMS1AwardClass; -GType mxf_dms1_award_get_type (void); - -#define MXF_TYPE_DMS1_CAPTIONS_DESCRIPTION \ - (mxf_dms1_captions_description_get_type()) -#define MXF_DMS1_CAPTIONS_DESCRIPTION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_CAPTIONS_DESCRIPTION, MXFDMS1CaptionsDescription)) -#define MXF_IS_DMS1_CAPTIONS_DESCRIPTION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_CAPTIONS_DESCRIPTION)) -typedef struct _MXFDMS1CaptionsDescription MXFDMS1CaptionsDescription; -typedef MXFDescriptiveMetadataClass MXFDMS1CaptionsDescriptionClass; -GType mxf_dms1_captions_description_get_type (void); - -#define MXF_TYPE_DMS1_ANNOTATION \ - (mxf_dms1_annotation_get_type()) -#define MXF_DMS1_ANNOTATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_ANNOTATION, MXFDMS1Annotation)) -#define MXF_IS_DMS1_ANNOTATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_ANNOTATION)) -typedef struct _MXFDMS1Annotation MXFDMS1Annotation; -typedef MXFDescriptiveMetadataClass MXFDMS1AnnotationClass; -GType mxf_dms1_annotation_get_type (void); - -#define MXF_TYPE_DMS1_SETTING_PERIOD \ - (mxf_dms1_setting_period_get_type()) -#define MXF_DMS1_SETTING_PERIOD(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_SETTING_PERIOD, MXFDMS1SettingPeriod)) -#define MXF_IS_DMS1_SETTING_PERIOD(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_SETTING_PERIOD)) -typedef struct _MXFDMS1SettingPeriod MXFDMS1SettingPeriod; -typedef MXFDescriptiveMetadataClass MXFDMS1SettingPeriodClass; -GType mxf_dms1_setting_period_get_type (void); - -#define MXF_TYPE_DMS1_SCRIPTING \ - (mxf_dms1_scripting_get_type()) -#define MXF_DMS1_SCRIPTING(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_SCRIPTING, MXFDMS1Scripting)) -#define MXF_IS_DMS1_SCRIPTING(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_SCRIPTING)) -typedef struct _MXFDMS1Scripting MXFDMS1Scripting; -typedef MXFDescriptiveMetadataClass MXFDMS1ScriptingClass; -GType mxf_dms1_scripting_get_type (void); - -#define MXF_TYPE_DMS1_CLASSIFICATION \ - (mxf_dms1_classification_get_type()) -#define MXF_DMS1_CLASSIFICATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_CLASSIFICATION, MXFDMS1Classification)) -#define MXF_IS_DMS1_CLASSIFICATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_CLASSIFICATION)) -typedef struct _MXFDMS1Classification MXFDMS1Classification; -typedef MXFDescriptiveMetadataClass MXFDMS1ClassificationClass; -GType mxf_dms1_classification_get_type (void); - -#define MXF_TYPE_DMS1_SHOT \ - (mxf_dms1_shot_get_type()) -#define MXF_DMS1_SHOT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_SHOT, MXFDMS1Shot)) -#define MXF_IS_DMS1_SHOT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_SHOT)) -typedef struct _MXFDMS1Shot MXFDMS1Shot; -typedef MXFDescriptiveMetadataClass MXFDMS1ShotClass; -GType mxf_dms1_shot_get_type (void); - -#define MXF_TYPE_DMS1_KEY_POINT \ - (mxf_dms1_key_point_get_type()) -#define MXF_DMS1_KEY_POINT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_KEY_POINT, MXFDMS1KeyPoint)) -#define MXF_IS_DMS1_KEY_POINT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_KEY_POINT)) -typedef struct _MXFDMS1KeyPoint MXFDMS1KeyPoint; -typedef MXFDescriptiveMetadataClass MXFDMS1KeyPointClass; -GType mxf_dms1_key_point_get_type (void); - -#define MXF_TYPE_DMS1_PARTICIPANT \ - (mxf_dms1_participant_get_type()) -#define MXF_DMS1_PARTICIPANT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_PARTICIPANT, MXFDMS1Participant)) -#define MXF_IS_DMS1_PARTICIPANT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_PARTICIPANT)) -typedef struct _MXFDMS1Participant MXFDMS1Participant; -typedef MXFDescriptiveMetadataClass MXFDMS1ParticipantClass; -GType mxf_dms1_participant_get_type (void); - -#define MXF_TYPE_DMS1_CONTACT \ - (mxf_dms1_contact_get_type()) -#define MXF_DMS1_CONTACT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_CONTACT, MXFDMS1Contact)) -#define MXF_IS_DMS1_CONTACT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_CONTACT)) -typedef struct _MXFDMS1Contact MXFDMS1Contact; -typedef MXFDescriptiveMetadataClass MXFDMS1ContactClass; -GType mxf_dms1_contact_get_type (void); - -#define MXF_TYPE_DMS1_PERSON \ - (mxf_dms1_person_get_type()) -#define MXF_DMS1_PERSON(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_PERSON, MXFDMS1Person)) -#define MXF_IS_DMS1_PERSON(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_PERSON)) -typedef struct _MXFDMS1Person MXFDMS1Person; -typedef MXFDescriptiveMetadataClass MXFDMS1PersonClass; -GType mxf_dms1_person_get_type (void); - -#define MXF_TYPE_DMS1_ORGANISATION \ - (mxf_dms1_organisation_get_type()) -#define MXF_DMS1_ORGANISATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_ORGANISATION, MXFDMS1Organisation)) -#define MXF_IS_DMS1_ORGANISATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_ORGANISATION)) -typedef struct _MXFDMS1Organisation MXFDMS1Organisation; -typedef MXFDescriptiveMetadataClass MXFDMS1OrganisationClass; -GType mxf_dms1_organisation_get_type (void); - -#define MXF_TYPE_DMS1_LOCATION \ - (mxf_dms1_location_get_type()) -#define MXF_DMS1_LOCATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_LOCATION, MXFDMS1Location)) -#define MXF_IS_DMS1_LOCATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_LOCATION)) -typedef struct _MXFDMS1Location MXFDMS1Location; -typedef MXFDescriptiveMetadataClass MXFDMS1LocationClass; -GType mxf_dms1_location_get_type (void); - -#define MXF_TYPE_DMS1_ADDRESS \ - (mxf_dms1_address_get_type()) -#define MXF_DMS1_ADDRESS(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_ADDRESS, MXFDMS1Address)) -#define MXF_IS_DMS1_ADDRESS(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_ADDRESS)) -typedef struct _MXFDMS1Address MXFDMS1Address; -typedef MXFDescriptiveMetadataClass MXFDMS1AddressClass; -GType mxf_dms1_address_get_type (void); - -#define MXF_TYPE_DMS1_COMMUNICATIONS \ - (mxf_dms1_communications_get_type()) -#define MXF_DMS1_COMMUNICATIONS(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_COMMUNICATIONS, MXFDMS1Communications)) -#define MXF_IS_DMS1_COMMUNICATIONS(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_COMMUNICATIONS)) -typedef struct _MXFDMS1Communications MXFDMS1Communications; -typedef MXFDescriptiveMetadataClass MXFDMS1CommunicationsClass; -GType mxf_dms1_communications_get_type (void); - -#define MXF_TYPE_DMS1_CONTRACT \ - (mxf_dms1_contract_get_type()) -#define MXF_DMS1_CONTRACT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_CONTRACT, MXFDMS1Contract)) -#define MXF_IS_DMS1_CONTRACT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_CONTRACT)) -typedef struct _MXFDMS1Contract MXFDMS1Contract; -typedef MXFDescriptiveMetadataClass MXFDMS1ContractClass; -GType mxf_dms1_contract_get_type (void); - -#define MXF_TYPE_DMS1_RIGHTS \ - (mxf_dms1_rights_get_type()) -#define MXF_DMS1_RIGHTS(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_RIGHTS, MXFDMS1Rights)) -#define MXF_IS_DMS1_RIGHTS(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_RIGHTS)) -typedef struct _MXFDMS1Rights MXFDMS1Rights; -typedef MXFDescriptiveMetadataClass MXFDMS1RightsClass; -GType mxf_dms1_rights_get_type (void); - -#define MXF_TYPE_DMS1_PICTURE_FORMAT \ - (mxf_dms1_picture_format_get_type()) -#define MXF_DMS1_PICTURE_FORMAT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_PICTURE_FORMAT, MXFDMS1PictureFormat)) -#define MXF_IS_DMS1_PICTURE_FORMAT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_PICTURE_FORMAT)) -typedef struct _MXFDMS1PictureFormat MXFDMS1PictureFormat; -typedef MXFDescriptiveMetadataClass MXFDMS1PictureFormatClass; -GType mxf_dms1_picture_format_get_type (void); - -#define MXF_TYPE_DMS1_DEVICE_PARAMETERS \ - (mxf_dms1_device_parameters_get_type()) -#define MXF_DMS1_DEVICE_PARAMETERS(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_DEVICE_PARAMETERS, MXFDMS1DeviceParameters)) -#define MXF_IS_DMS1_DEVICE_PARAMETERS(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_DEVICE_PARAMETERS)) -typedef struct _MXFDMS1DeviceParameters MXFDMS1DeviceParameters; -typedef MXFDescriptiveMetadataClass MXFDMS1DeviceParametersClass; -GType mxf_dms1_device_parameters_get_type (void); - -#define MXF_TYPE_DMS1_NAME_VALUE \ - (mxf_dms1_name_value_get_type()) -#define MXF_DMS1_NAME_VALUE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_NAME_VALUE, MXFDMS1NameValue)) -#define MXF_IS_DMS1_NAME_VALUE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_NAME_VALUE)) -typedef struct _MXFDMS1NameValue MXFDMS1NameValue; -typedef MXFDescriptiveMetadataClass MXFDMS1NameValueClass; -GType mxf_dms1_name_value_get_type (void); - -#define MXF_TYPE_DMS1_PROCESSING \ - (mxf_dms1_processing_get_type()) -#define MXF_DMS1_PROCESSING(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_PROCESSING, MXFDMS1Processing)) -#define MXF_IS_DMS1_PROCESSING(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_PROCESSING)) -typedef struct _MXFDMS1Processing MXFDMS1Processing; -typedef MXFDescriptiveMetadataClass MXFDMS1ProcessingClass; -GType mxf_dms1_processing_get_type (void); - -#define MXF_TYPE_DMS1_PROJECT \ - (mxf_dms1_project_get_type()) -#define MXF_DMS1_PROJECT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_PROJECT, MXFDMS1Project)) -#define MXF_IS_DMS1_PROJECT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_PROJECT)) -typedef struct _MXFDMS1Project MXFDMS1Project; -typedef MXFDescriptiveMetadataClass MXFDMS1ProjectClass; -GType mxf_dms1_project_get_type (void); - -#define MXF_TYPE_DMS1_CONTACTS_LIST \ - (mxf_dms1_contacts_list_get_type()) -#define MXF_DMS1_CONTACTS_LIST(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_CONTACTS_LIST, MXFDMS1ContactsList)) -#define MXF_IS_DMS1_CONTACTS_LIST(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_CONTACTS_LIST)) -typedef struct _MXFDMS1ContactsList MXFDMS1ContactsList; -typedef MXFDescriptiveMetadataClass MXFDMS1ContactsListClass; -GType mxf_dms1_contacts_list_get_type (void); - -#define MXF_TYPE_DMS1_CUE_WORDS \ - (mxf_dms1_cue_words_get_type()) -#define MXF_DMS1_CUE_WORDS(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DMS1_CUE_WORDS, MXFDMS1CueWords)) -#define MXF_IS_DMS1_CUE_WORDS(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DMS1_CUE_WORDS)) -typedef struct _MXFDMS1CueWords MXFDMS1CueWords; -typedef MXFDescriptiveMetadataClass MXFDMS1CueWordsClass; -GType mxf_dms1_cue_words_get_type (void); - -struct _MXFDMS1 { - MXFDescriptiveMetadata parent; -}; - -struct _MXFDMS1TextLanguage { - MXFDMS1 parent; - - gchar extended_text_language_code[13]; -}; - -struct _MXFDMS1Thesaurus { - MXFDMS1TextLanguage parent; - - gchar *thesaurus_name; -}; - -struct _MXFDMS1Framework { - MXFDMS1 parent; - - gchar framework_extended_text_language_code[13]; - gchar *framework_thesaurus_name; - gchar *framework_title; - gchar primary_extended_spoken_language_code[13]; - gchar secondary_extended_spoken_language_code[13]; - gchar original_extended_spoken_language_code[13]; - - guint32 n_metadata_server_locators; - MXFUUID *metadata_server_locators_uids; - /* TODO */ - - guint32 n_titles_sets; - MXFUUID *titles_sets_uids; - MXFDMS1Titles **titles_sets; - - guint32 n_annotation_sets; - MXFUUID *annotation_sets_uids; - MXFDMS1Annotation **annotation_sets; - - guint32 n_participant_sets; - MXFUUID *participant_sets_uids; - MXFDMS1Participant **participant_sets; - - MXFUUID contacts_list_set_uid; - MXFDMS1ContactsList *contacts_list_set; - - guint32 n_location_sets; - MXFUUID *location_sets_uids; - MXFDMS1Location **location_sets; -}; - -struct _MXFDMS1ProductionClipFramework { - MXFDMS1Framework parent; - - MXFUUID picture_format_set_uid; - MXFDMS1PictureFormat *picture_format; - - guint32 n_captions_description_sets; - MXFUUID *captions_description_sets_uids; - MXFDMS1CaptionsDescription **captions_description_sets; - - guint32 n_contract_sets; - MXFUUID *contract_sets_uids; - MXFDMS1Contract **contract_sets; - - MXFUUID project_set_uid; - MXFDMS1Project *project_set; -}; - -struct _MXFDMS1ProductionFramework { - MXFDMS1ProductionClipFramework parent; - - gchar *integration_indication; - - guint32 n_identification_sets; - MXFUUID *identification_sets_uids; - MXFDMS1Identification **identification_sets; - - guint32 n_group_relationship_sets; - MXFUUID *group_relationship_sets_uids; - MXFDMS1GroupRelationship **group_relationship_sets; - - guint32 n_branding_sets; - MXFUUID *branding_sets_uids; - MXFDMS1Branding **branding_sets; - - guint32 n_event_sets; - MXFUUID *event_sets_uids; - MXFDMS1Event **event_sets; - - guint32 n_award_sets; - MXFUUID *award_sets_uids; - MXFDMS1Award **award_sets; - - guint32 n_setting_period_sets; - MXFUUID *setting_period_sets_uids; - MXFDMS1SettingPeriod **setting_period_sets; -}; - -struct _MXFDMS1ClipFramework { - MXFDMS1ProductionClipFramework parent; - - gchar *clip_kind; - gchar clip_number[33]; - - guint8 extended_clip_id[64]; - gboolean extended_clip_id_full; - - MXFTimestamp clip_creation_date_and_time; - - guint16 take_number; - - gchar *slate_information; - - guint32 n_scripting_sets; - MXFUUID *scripting_sets_uids; - MXFDMS1Scripting **scripting_sets; - - guint32 n_shot_sets; - MXFUUID *shot_sets_uids; - MXFDMS1Shot **shot_sets; - - guint32 n_device_parameters_sets; - MXFUUID *device_parameters_sets_uids; - MXFDMS1DeviceParameters **device_parameters_sets; - - MXFUUID processing_set_uid; - MXFDMS1Processing *processing_set; -}; - -struct _MXFDMS1SceneFramework { - MXFDMS1Framework parent; - - gchar scene_number[33]; - - guint32 n_setting_period_sets; - MXFUUID *setting_period_sets_uids; - MXFDMS1SettingPeriod **setting_period_sets; - - guint32 n_shot_scene_sets; - MXFUUID *shot_scene_sets_uids; - MXFDMS1Shot **shot_scene_sets; -}; - -struct _MXFDMS1Titles { - MXFDMS1TextLanguage parent; - - gchar *main_title; - gchar *secondary_title; - gchar *working_title; - gchar *original_title; - gchar *version_title; -}; - -struct _MXFDMS1Identification { - MXFDMS1Thesaurus parent; - - gchar identifier_kind[33]; - guint8 *identifier_value; - guint16 identifier_value_length; - MXFUUID identification_locator; - gchar *identification_issuing_authority; -}; - -struct _MXFDMS1GroupRelationship { - MXFDMS1Thesaurus parent; - - gchar *programming_group_kind; - gchar* programming_group_title; - gchar *group_synopsis; - guint32 numerical_position_in_sequence; - guint32 total_number_in_the_sequence; - guint16 episodic_start_number; - guint16 episodic_end_number; -}; - -struct _MXFDMS1Branding { - MXFDMS1TextLanguage parent; - - gchar *brand_main_title; - gchar *brand_original_title; -}; - -struct _MXFDMS1Event { - MXFDMS1Thesaurus parent; - - gchar *event_indication; - gchar event_start_date_and_time[33]; - gchar event_end_date_and_time[33]; - - guint32 n_publication_sets; - MXFUUID *publication_sets_uids; - MXFDMS1Publication **publication_sets; - - guint32 n_annotation_sets; - MXFUUID *annotation_sets_uids; - MXFDMS1Annotation **annotation_sets; -}; - -struct _MXFDMS1Publication { - MXFDMS1 parent; - - gchar *publication_organisation_name; - gchar *publication_service_name; - gchar *publication_medium; - gchar *publication_region; -}; - -struct _MXFDMS1Award { - MXFDMS1Thesaurus parent; - - gchar *festival; - gchar festival_date_and_time[33]; - gchar *award_name; - gchar *award_classification; - gchar *nomination_category; - - guint32 n_participant_sets; - MXFUUID *participant_sets_uids; - MXFDMS1Participant **participant_sets; -}; - -struct _MXFDMS1CaptionsDescription { - MXFDMS1Thesaurus parent; - - gchar extended_captions_language_code[13]; - gchar *caption_kind; -}; - -struct _MXFDMS1Annotation { - MXFDMS1Thesaurus parent; - - gchar *annotation_kind; - gchar *annotation_synopsis; - gchar *annotation_description; - gchar *related_material_description; - - guint32 n_classification_sets; - MXFUUID *classification_sets_uids; - MXFDMS1Classification **classification_sets; - - MXFUUID cue_words_set_uid; - MXFDMS1CueWords *cue_words_set; - - guint32 n_related_material_locators; - MXFUUID *related_material_locators; - /* TODO */ - - guint32 n_participant_sets; - MXFUUID *participant_sets_uids; - MXFDMS1Participant **participant_sets; -}; - -struct _MXFDMS1SettingPeriod { - MXFDMS1Thesaurus parent; - - MXFTimestamp setting_date_and_time; - gchar *time_period_keyword; - gchar *setting_period_description; -}; - -struct _MXFDMS1Scripting { - MXFDMS1Thesaurus parent; - - gchar *scripting_kind; - gchar *scripting_text; - - guint32 n_scripting_locators; - MXFUUID *scripting_locators; - /* TODO */ -}; - -struct _MXFDMS1Classification { - MXFDMS1Thesaurus parent; - - gchar content_classification[128]; - - guint32 n_name_value_sets; - MXFUUID *name_value_sets_uids; - MXFDMS1NameValue **name_value_sets; -}; - -struct _MXFDMS1Shot { - MXFDMS1TextLanguage parent; - - gint64 shot_start_position; - gint64 shot_duration; - - guint32 n_shot_track_ids; - guint32 *shot_track_ids; - - gchar *shot_description; - gchar *shot_comment_kind; - gchar *shot_comment; - - MXFUUID cue_words_set_uid; - MXFDMS1CueWords *cue_words_set; - - guint32 n_key_point_sets; - MXFUUID *key_point_sets_uids; - MXFDMS1KeyPoint **key_point_sets; -}; - -struct _MXFDMS1KeyPoint { - MXFDMS1Thesaurus parent; - - gchar *keypoint_kind; - gchar *keypoint_value; - gint64 keypoint_position; -}; - -struct _MXFDMS1Participant { - MXFDMS1Thesaurus parent; - - MXFUUID participant_uid; - - gchar *contribution_status; - gchar *job_function; - gchar job_function_code[33]; - gchar *role_or_identity_name; - - guint32 n_person_sets; - MXFUUID *person_sets_uids; - MXFDMS1Person **person_sets; - - guint32 n_organisation_sets; - MXFUUID *organisation_sets_uids; - MXFDMS1Organisation **organisation_sets; -}; - -struct _MXFDMS1Contact { - MXFDMS1Thesaurus parent; - - MXFUUID contact_uid; - - guint32 n_name_value_sets; - MXFUUID *name_value_sets_uids; - MXFDMS1NameValue **name_value_sets; - - guint32 n_address_sets; - MXFUUID *address_sets_uids; - MXFDMS1Address **address_sets; -}; - -struct _MXFDMS1Person { - MXFDMS1Contact parent; - - gchar *family_name; - gchar *first_given_name; - gchar *other_given_names; - gchar *linking_name; - gchar *salutation; - gchar *name_suffix; - gchar *honours_qualifications; - gchar *former_family_name; - gchar *person_description; - gchar *alternate_name; - gchar *nationality; - gchar *citizenship; - - guint32 n_organisation_sets; - MXFUUID *organisation_sets_uids; - MXFDMS1Organisation **organisation_sets; -}; - -struct _MXFDMS1Organisation { - MXFDMS1Contact parent; - - gchar *nature_of_organisation; - gchar *organisation_main_name; - gchar *organisation_code; - gchar *contact_department; -}; - -struct _MXFDMS1Location { - MXFDMS1Contact parent; - - gchar *location_kind; - gchar *location_description; -}; - -struct _MXFDMS1Address { - MXFDMS1 parent; - - gchar *room_or_suite_number; - gchar *room_or_suite_name; - gchar *building_name; - gchar *place_name; - gchar *street_number; - gchar *street_name; - gchar *postal_town; - gchar *city; - gchar *state_or_province_or_country; - gchar *postal_code; - gchar *country; - guint8 geographical_coordinate[12]; - gchar *astronomical_body_name; - - guint32 n_communications_sets; - MXFUUID *communications_sets_uids; - MXFDMS1Communications **communications_sets; - - guint32 n_name_value_sets; - MXFUUID *name_value_sets_uids; - MXFDMS1NameValue **name_value_sets; -}; - -struct _MXFDMS1Communications { - MXFDMS1 parent; - - gchar central_telephone_number[33]; - gchar telephone_number[33]; - gchar mobile_telephone_number[33]; - gchar fax_number[33]; - gchar *email_address; - gchar *web_page; -}; - -struct _MXFDMS1Contract { - MXFDMS1Thesaurus parent; - - gchar supply_contract_number[33]; - - guint32 n_rights_sets; - MXFUUID *rights_sets_uids; - MXFDMS1Rights **rights_sets; - - guint32 n_participant_sets; - MXFUUID *participant_sets_uids; - MXFDMS1Participant **participant_sets; -}; - -struct _MXFDMS1Rights { - MXFDMS1Thesaurus parent; - - gchar *copyright_owner; - gchar *rights_holder; - gchar *rights_managment_authority; - gchar *region_or_area_of_ip_license; - gchar *intellectual_property_type; - gchar *right_condition; - gchar *right_remarks; - gchar *intellectual_property_right; - MXFTimestamp rights_start_date_and_time; - MXFTimestamp rights_stop_date_and_time; - guint16 maximum_number_of_usages; -}; - -struct _MXFDMS1PictureFormat { - MXFDMS1 parent; - - MXFFraction viewport_aspect_ratio; - gchar perceived_display_format[33]; - gchar *colour_descriptor; -}; - -struct _MXFDMS1DeviceParameters { - MXFDMS1Thesaurus parent; - - gchar *device_type; - gchar device_designation[33]; - gchar device_asset_number[33]; - guint8 ieee_device_identifier[6]; - gchar *manufacturer; - gchar *device_model; - gchar *device_serial_number; - gchar *device_usage_description; - - guint32 n_name_value_sets; - MXFUUID *name_value_sets_uids; - MXFDMS1NameValue **name_value_sets; -}; - -struct _MXFDMS1NameValue { - MXFDMS1 parent; - - gchar *item_name; - gchar *item_value; - - MXFUUID smpte_universal_label_locator; -}; - -struct _MXFDMS1Processing { - MXFDMS1 parent; - - gboolean quality_flag; - gchar *descriptive_comment; - gboolean logo_flag; - gchar *graphic_usage_type; - guint16 process_steps; - guint16 generation_copy_number; - guint16 generation_clone_number; -}; - -struct _MXFDMS1Project { - MXFDMS1 parent; - - gchar project_number[33]; - gchar *project_name_or_title; -}; - -struct _MXFDMS1ContactsList { - MXFDMS1 parent; - - guint32 n_person_sets; - MXFUUID *person_sets_uids; - MXFDMS1Person **person_sets; - - guint32 n_organisation_sets; - MXFUUID *organisation_sets_uids; - MXFDMS1Organisation **organisation_sets; - - guint32 n_location_sets; - MXFUUID *location_sets_uids; - MXFDMS1Location **location_sets; -}; - -struct _MXFDMS1CueWords { - MXFDMS1TextLanguage parent; - - gchar *in_cue_words; - gchar *out_cue_words; -}; - -void mxf_dms1_initialize (void); - -#endif /* _MXF_DMS1_H_ */
diff --git a/gst/mxf/mxfmetadata.c b/gst/mxf/mxfmetadata.c index 69aadb5..0fbc11e 100644 --- a/gst/mxf/mxfmetadata.c +++ b/gst/mxf/mxfmetadata.c
@@ -149,9 +149,13 @@ const guint8 *tag_data; g_return_val_if_fail (MXF_IS_METADATA_BASE (self), FALSE); - g_return_val_if_fail (data != NULL, FALSE); g_return_val_if_fail (primer != NULL, FALSE); + if (size == 0) + return FALSE; + + g_return_val_if_fail (data != NULL, FALSE); + while (mxf_local_tag_parse (data, size, &tag, &tag_size, &tag_data)) { if (tag_size == 0 || tag == 0x0000) goto next; @@ -2244,6 +2248,9 @@ d = MXF_METADATA_FILE_DESCRIPTOR (current); for (i = 0; i < package->n_tracks; i++) { + if (!package->tracks[i]) + continue; + if (!MXF_IS_METADATA_MULTIPLE_DESCRIPTOR (d)) { if (d->linked_track_id == package->tracks[i]->track_id || (d->linked_track_id == 0 && package->n_essence_tracks == 1 && @@ -3552,12 +3559,12 @@ if (GST_READ_UINT32_BE (tag_data + 4) != 4) goto error; - if (tag_size < 8 + 4 * len) - goto error; - tag_data += 8; tag_size -= 8; + if (tag_size / 4 < len) + goto error; + self->n_track_ids = len; self->track_ids = g_new0 (guint32, len); @@ -3725,7 +3732,10 @@ if (GST_READ_UINT32_BE (tag_data + 4) != 4) goto error; - if (len * 4 + 8 < tag_size) + tag_data += 8; + tag_size -= 8; + + if (len < tag_size / 4) goto error; self->n_track_ids = len; @@ -6493,7 +6503,7 @@ return NULL; } - for (i = 0; i < _dm_schemes->len; i++) { + for (i = 0; _dm_schemes && i < _dm_schemes->len; i++) { _MXFDescriptiveMetadataScheme *data = &g_array_index (_dm_schemes, _MXFDescriptiveMetadataScheme, i);
diff --git a/gst/mxf/mxftypes.c b/gst/mxf/mxftypes.c index 14e2362..ba7704b 100644 --- a/gst/mxf/mxftypes.c +++ b/gst/mxf/mxftypes.c
@@ -326,11 +326,12 @@ g_return_val_if_fail (array != NULL, FALSE); g_return_val_if_fail (count != NULL, FALSE); - g_return_val_if_fail (data != NULL, FALSE); if (size < 8) return FALSE; + g_return_val_if_fail (data != NULL, FALSE); + element_count = GST_READ_UINT32_BE (data); data += 4; size -= 4; @@ -351,7 +352,7 @@ return FALSE; } - if (16 * element_count < size) { + if (element_count > size / 16) { *array = NULL; *count = 0; return FALSE; @@ -492,7 +493,6 @@ gboolean mxf_timestamp_parse (MXFTimestamp * timestamp, const guint8 * data, guint size) { - g_return_val_if_fail (data != NULL, FALSE); g_return_val_if_fail (timestamp != NULL, FALSE); memset (timestamp, 0, sizeof (MXFTimestamp)); @@ -500,6 +500,8 @@ if (size < 8) return FALSE; + g_return_val_if_fail (data != NULL, FALSE); + timestamp->year = GST_READ_UINT16_BE (data); timestamp->month = GST_READ_UINT8 (data + 2); timestamp->day = GST_READ_UINT8 (data + 3); @@ -597,13 +599,14 @@ mxf_fraction_parse (MXFFraction * fraction, const guint8 * data, guint size) { g_return_val_if_fail (fraction != NULL, FALSE); - g_return_val_if_fail (data != NULL, FALSE); memset (fraction, 0, sizeof (MXFFraction)); if (size < 8) return FALSE; + g_return_val_if_fail (data != NULL, FALSE); + fraction->n = GST_READ_UINT32_BE (data); fraction->d = GST_READ_UINT32_BE (data + 4); @@ -669,13 +672,14 @@ const guint8 * data, guint size) { g_return_val_if_fail (product_version != NULL, FALSE); - g_return_val_if_fail (data != NULL, FALSE); memset (product_version, 0, sizeof (MXFProductVersion)); if (size < 9) return FALSE; + g_return_val_if_fail (data != NULL, FALSE); + product_version->major = GST_READ_UINT16_BE (data); product_version->minor = GST_READ_UINT16_BE (data + 2); product_version->patch = GST_READ_UINT16_BE (data + 4); @@ -769,8 +773,10 @@ gchar str[48]; #endif + if (size < 84) + return FALSE; + g_return_val_if_fail (data != NULL, FALSE); - g_return_val_if_fail (size >= 84, FALSE); memset (pack, 0, sizeof (MXFPartitionPack)); @@ -991,12 +997,13 @@ guint len, i; MXFRandomIndexPackEntry entry; - g_return_val_if_fail (data != NULL, FALSE); g_return_val_if_fail (array != NULL, FALSE); if (size < 4) return FALSE; + g_return_val_if_fail (data != NULL, FALSE); + if ((size - 4) % 12 != 0) return FALSE; @@ -1072,13 +1079,14 @@ const guint8 *tag_data; g_return_val_if_fail (ul != NULL, FALSE); - g_return_val_if_fail (data != NULL, FALSE); memset (segment, 0, sizeof (MXFIndexTableSegment)); if (size < 70) return FALSE; + g_return_val_if_fail (data != NULL, FALSE); + GST_DEBUG ("Parsing index table segment:"); while (mxf_local_tag_parse (data, size, &tag, &tag_size, &tag_data)) { @@ -1167,7 +1175,7 @@ tag_data += 4; tag_size -= 4; - if (tag_size < len * 6) + if (tag_size / 6 < len) goto error; segment->delta_entries = g_new (MXFDeltaEntry, len); @@ -1216,7 +1224,8 @@ tag_data += 4; tag_size -= 4; - if (tag_size < len * 11) + if (tag_size / (11 + 4 * segment->slice_count + + 8 * segment->pos_table_count) < len) goto error; segment->index_entries = g_new0 (MXFIndexEntry, len); @@ -1289,9 +1298,11 @@ g_return_if_fail (segment != NULL); - for (i = 0; i < segment->n_index_entries; i++) { - g_free (segment->index_entries[i].slice_offset); - g_free (segment->index_entries[i].pos_table); + if (segment->index_entries) { + for (i = 0; i < segment->n_index_entries; i++) { + g_free (segment->index_entries[i].slice_offset); + g_free (segment->index_entries[i].pos_table); + } } g_free (segment->index_entries); @@ -1434,8 +1445,10 @@ guint i; guint32 n; + if (size < 8) + return FALSE; + g_return_val_if_fail (data != NULL, FALSE); - g_return_val_if_fail (size >= 8, FALSE); memset (pack, 0, sizeof (MXFPrimerPack)); @@ -1447,14 +1460,16 @@ n = GST_READ_UINT32_BE (data); data += 4; + size -= 4; GST_DEBUG (" number of mappings = %u", n); if (GST_READ_UINT32_BE (data) != 18) goto error; data += 4; + size -= 4; - if (size < 8 + n * 18) + if (size / 18 < n) goto error; for (i = 0; i < n; i++) { @@ -1610,18 +1625,21 @@ mxf_local_tag_parse (const guint8 * data, guint size, guint16 * tag, guint16 * tag_size, const guint8 ** tag_data) { - g_return_val_if_fail (data != NULL, FALSE); - if (size < 4) return FALSE; + g_return_val_if_fail (data != NULL, FALSE); + *tag = GST_READ_UINT16_BE (data); *tag_size = GST_READ_UINT16_BE (data + 2); - if (size < 4 + *tag_size) + data += 4; + size -= 4; + + if (size < *tag_size) return FALSE; - *tag_data = data + 4; + *tag_data = data; return TRUE; } @@ -1645,7 +1663,7 @@ MXFUL *ul; g_return_val_if_fail (primer != NULL, FALSE); - g_return_val_if_fail (tag_data != NULL, FALSE); + g_return_val_if_fail (tag_size == 0 || tag_data != NULL, FALSE); g_return_val_if_fail (hash_table != NULL, FALSE); g_return_val_if_fail (primer->mappings != NULL, FALSE); @@ -1671,7 +1689,7 @@ local_tag = g_slice_new0 (MXFLocalTag); memcpy (&local_tag->ul, ul, sizeof (MXFUL)); local_tag->size = tag_size; - local_tag->data = g_memdup (tag_data, tag_size); + local_tag->data = tag_size == 0 ? NULL : g_memdup (tag_data, tag_size); local_tag->g_slice = FALSE; g_hash_table_insert (*hash_table, &local_tag->ul, local_tag);
diff --git a/gst/mxf/mxful.c b/gst/mxf/mxful.c index 3d186f9..75829c6 100644 --- a/gst/mxf/mxful.c +++ b/gst/mxf/mxful.c
@@ -616,11 +616,12 @@ g_return_val_if_fail (array != NULL, FALSE); g_return_val_if_fail (count != NULL, FALSE); - g_return_val_if_fail (data != NULL, FALSE); if (size < 8) return FALSE; + g_return_val_if_fail (data != NULL, FALSE); + element_count = GST_READ_UINT32_BE (data); data += 4; size -= 4; @@ -641,7 +642,7 @@ return FALSE; } - if (16 * element_count < size) { + if (element_count > size / 16) { *array = NULL; *count = 0; return FALSE;
diff --git a/gst/rawparse/gstrawaudioparse.c b/gst/rawparse/gstrawaudioparse.c index 98575dd..626604c 100644 --- a/gst/rawparse/gstrawaudioparse.c +++ b/gst/rawparse/gstrawaudioparse.c
@@ -161,6 +161,8 @@ static void gst_raw_audio_parse_get_units_per_second (GstRawBaseParse * raw_base_parse, GstFormat format, GstRawBaseParseConfig config, gsize * units_per_sec_n, gsize * units_per_sec_d); +static gint gst_raw_audio_parse_get_alignment (GstRawBaseParse * raw_base_parse, + GstRawBaseParseConfig config); static gboolean gst_raw_audio_parse_is_using_sink_caps (GstRawAudioParse * raw_audio_parse); @@ -228,6 +230,8 @@ GST_DEBUG_FUNCPTR (gst_raw_audio_parse_is_unit_format_supported); rawbaseparse_class->get_units_per_second = GST_DEBUG_FUNCPTR (gst_raw_audio_parse_get_units_per_second); + rawbaseparse_class->get_alignment = + GST_DEBUG_FUNCPTR (gst_raw_audio_parse_get_alignment); g_object_class_install_property (object_class, PROP_FORMAT, @@ -669,6 +673,38 @@ return gst_raw_audio_parse_get_config_ptr (raw_audio_parse, config)->ready; } +static guint +round_up_pow2 (guint n) +{ + n = n - 1; + n = n | (n >> 1); + n = n | (n >> 2); + n = n | (n >> 4); + n = n | (n >> 8); + n = n | (n >> 16); + return n + 1; +} + +static gint +gst_raw_audio_parse_get_alignment (GstRawBaseParse * raw_base_parse, + GstRawBaseParseConfig config) +{ + GstRawAudioParse *raw_audio_parse = GST_RAW_AUDIO_PARSE (raw_base_parse); + GstRawAudioParseConfig *config_ptr = + gst_raw_audio_parse_get_config_ptr (raw_audio_parse, config); + gint width; + + if (config_ptr->format != GST_RAW_AUDIO_PARSE_FORMAT_PCM) + return 1; + + width = + GST_AUDIO_FORMAT_INFO_WIDTH (gst_audio_format_get_info + (config_ptr->pcm_format)) / 8; + width = GST_ROUND_UP_8 (width); + width = round_up_pow2 (width); + + return width; +} static gboolean gst_raw_audio_parse_process (GstRawBaseParse * raw_base_parse,
diff --git a/gst/rawparse/gstrawbaseparse.c b/gst/rawparse/gstrawbaseparse.c index c2ccee5..5fb8e73 100644 --- a/gst/rawparse/gstrawbaseparse.c +++ b/gst/rawparse/gstrawbaseparse.c
@@ -430,6 +430,43 @@ return ret; } +static GstBuffer * +gst_raw_base_parse_align_buffer (GstRawBaseParse * raw_base_parse, + gsize alignment, GstBuffer * buffer, gsize out_size) +{ + GstMapInfo map; + + gst_buffer_map (buffer, &map, GST_MAP_READ); + + if (map.size < sizeof (guintptr)) { + gst_buffer_unmap (buffer, &map); + return NULL; + } + + if (((guintptr) map.data) & (alignment - 1)) { + GstBuffer *new_buffer; + GstAllocationParams params = { 0, alignment - 1, 0, 0, }; + + new_buffer = gst_buffer_new_allocate (NULL, out_size, ¶ms); + + /* Copy data "by hand", so ensure alignment is kept: */ + gst_buffer_fill (new_buffer, 0, map.data, out_size); + + gst_buffer_copy_into (new_buffer, buffer, GST_BUFFER_COPY_METADATA, 0, + out_size); + GST_DEBUG_OBJECT (raw_base_parse, + "We want output aligned on %" G_GSIZE_FORMAT ", reallocated", + alignment); + + gst_buffer_unmap (buffer, &map); + + return new_buffer; + } + + gst_buffer_unmap (buffer, &map); + + return NULL; +} static GstFlowReturn gst_raw_base_parse_handle_frame (GstBaseParse * parse, @@ -442,6 +479,7 @@ guint64 buffer_duration; GstFlowReturn flow_ret = GST_FLOW_OK; GstEvent *new_caps_event = NULL; + gint alignment; GstRawBaseParse *raw_base_parse = GST_RAW_BASE_PARSE (parse); GstRawBaseParseClass *klass = GST_RAW_BASE_PARSE_GET_CLASS (parse); @@ -567,6 +605,23 @@ frame->out_buffer = NULL; } + if (klass->get_alignment + && (alignment = + klass->get_alignment (raw_base_parse, + GST_RAW_BASE_PARSE_CONFIG_CURRENT)) != 1) { + GstBuffer *aligned_buffer; + + aligned_buffer = + gst_raw_base_parse_align_buffer (raw_base_parse, alignment, + frame->out_buffer ? frame->out_buffer : frame->buffer, out_size); + + if (aligned_buffer) { + if (frame->out_buffer) + gst_buffer_unref (frame->out_buffer); + frame->out_buffer = aligned_buffer; + } + } + /* Set the duration of the output buffer, or if none exists, of * the input buffer. Do this after the process() call, since in * case out_buffer is set, the subclass has created a new buffer.
diff --git a/gst/rawparse/gstrawbaseparse.h b/gst/rawparse/gstrawbaseparse.h index 519b409..4af4408 100644 --- a/gst/rawparse/gstrawbaseparse.h +++ b/gst/rawparse/gstrawbaseparse.h
@@ -193,6 +193,9 @@ gint (*get_overhead_size) (GstRawBaseParse * raw_base_parse, GstRawBaseParseConfig config); + + gint (*get_alignment) (GstRawBaseParse * raw_base_parse, + GstRawBaseParseConfig config); };
diff --git a/gst/rawparse/gstrawvideoparse.c b/gst/rawparse/gstrawvideoparse.c index 2fb58c1..3808369 100644 --- a/gst/rawparse/gstrawvideoparse.c +++ b/gst/rawparse/gstrawvideoparse.c
@@ -182,11 +182,12 @@ * gst_raw_video_parse_get_config_ptr (GstRawVideoParse * raw_video_parse, GstRawBaseParseConfig config); +static gint gst_raw_video_parse_get_alignment (GstRawBaseParse * raw_base_parse, + GstRawBaseParseConfig config); + static void gst_raw_video_parse_init_config (GstRawVideoParseConfig * config); static void gst_raw_video_parse_update_info (GstRawVideoParseConfig * config); - - static void gst_raw_video_parse_class_init (GstRawVideoParseClass * klass) { @@ -236,6 +237,8 @@ GST_DEBUG_FUNCPTR (gst_raw_video_parse_get_units_per_second); rawbaseparse_class->get_overhead_size = GST_DEBUG_FUNCPTR (gst_raw_video_parse_get_overhead_size); + rawbaseparse_class->get_alignment = + GST_DEBUG_FUNCPTR (gst_raw_video_parse_get_alignment); g_object_class_install_property (object_class, PROP_WIDTH, @@ -929,6 +932,12 @@ return gst_raw_video_parse_get_config_ptr (raw_video_parse, config)->ready; } +static gint +gst_raw_video_parse_get_alignment (GstRawBaseParse * raw_base_parse, + GstRawBaseParseConfig config) +{ + return 32; +} static gboolean gst_raw_video_parse_process (GstRawBaseParse * raw_base_parse,
diff --git a/gst/timecode/gsttimecodestamper.c b/gst/timecode/gsttimecodestamper.c index d930289..4cbdc68 100644 --- a/gst/timecode/gsttimecodestamper.c +++ b/gst/timecode/gsttimecodestamper.c
@@ -341,6 +341,16 @@ return ret; } +static gboolean +remove_timecode_meta (GstBuffer * buffer, GstMeta ** meta, gpointer user_data) +{ + if (meta && *meta && (*meta)->info->api == GST_VIDEO_TIME_CODE_META_API_TYPE) { + *meta = NULL; + } + + return TRUE; +} + static GstFlowReturn gst_timecodestamper_transform_ip (GstBaseTransform * vfilter, GstBuffer * buffer) @@ -350,10 +360,13 @@ GST_OBJECT_LOCK (timecodestamper); if (gst_buffer_get_video_time_code_meta (buffer) - && timecodestamper->override_existing == FALSE) { + && !timecodestamper->override_existing) { GST_OBJECT_UNLOCK (timecodestamper); return GST_FLOW_OK; + } else if (timecodestamper->override_existing) { + gst_buffer_foreach_meta (buffer, remove_timecode_meta, NULL); } + if (timecodestamper->source_clock != NULL) { if (timecodestamper->current_tc->hours == 0 && timecodestamper->current_tc->minutes == 0
diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c index be2f462..3153c2b 100644 --- a/gst/videoparsers/gsth264parse.c +++ b/gst/videoparsers/gsth264parse.c
@@ -1131,8 +1131,10 @@ goto skip; break; default: - g_assert_not_reached (); - break; + /* should not really occur either */ + GST_ELEMENT_ERROR (h264parse, STREAM, FORMAT, + ("Error parsing H.264 stream"), ("Invalid H.264 stream")); + goto invalid_stream; } } @@ -1829,8 +1831,8 @@ /* Pass through or set output stereo/multiview config */ if (s && gst_structure_has_field (s, "multiview-mode")) { caps_mview_mode = gst_structure_get_string (s, "multiview-mode"); - gst_structure_get_flagset (s, "multiview-flags", (guint*) &mview_flags, - NULL); + gst_structure_get_flagset (s, "multiview-flags", + (guint *) & mview_flags, NULL); } else if (mview_mode != GST_VIDEO_MULTIVIEW_MODE_NONE) { if (gst_video_multiview_guess_half_aspect (mview_mode, width, height, par_n, par_d)) { @@ -2583,6 +2585,10 @@ off = nalu.offset + nalu.size; } + if (off >= size) { + gst_buffer_unmap (codec_data, &map); + goto avcc_too_small; + } num_pps = data[off]; off++;
diff --git a/gst/videoparsers/gsth265parse.c b/gst/videoparsers/gsth265parse.c index 68fbe8d..f965a4b 100644 --- a/gst/videoparsers/gsth265parse.c +++ b/gst/videoparsers/gsth265parse.c
@@ -883,8 +883,10 @@ *skipsize = size - 3; goto skip; default: - g_assert_not_reached (); - break; + /* should not really occur either */ + GST_ELEMENT_ERROR (h265parse, STREAM, FORMAT, + ("Error parsing H.265 stream"), ("Invalid H.265 stream")); + goto invalid_stream; } } @@ -2016,6 +2018,7 @@ (value = gst_structure_get_value (str, "codec_data"))) { GstMapInfo map; guint8 *data; + guint num_nal_arrays; GST_DEBUG_OBJECT (h265parse, "have packetized h265"); /* make note for optional split processing */ @@ -2044,8 +2047,15 @@ GST_DEBUG_OBJECT (h265parse, "nal length size %u", h265parse->nal_length_size); + num_nal_arrays = data[22]; off = 23; - for (i = 0; i < data[22]; i++) { + + for (i = 0; i < num_nal_arrays; i++) { + if (off + 3 >= size) { + gst_buffer_unmap (codec_data, &map); + goto hvcc_too_small; + } + num_nals = GST_READ_UINT16_BE (data + off + 1); off += 3; for (j = 0; j < num_nals; j++) {
diff --git a/po/af.gmo b/po/af.gmo index 714f8f3..72c32a8 100644 --- a/po/af.gmo +++ b/po/af.gmo Binary files differ
diff --git a/po/af.po b/po/af.po index 4037d42..0e16b39 100644 --- a/po/af.po +++ b/po/af.po
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gst-plugins 0.7.6\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2004-03-18 14:16+0200\n" "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n" "Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo index 6da931a..f6c9536 100644 --- a/po/az.gmo +++ b/po/az.gmo Binary files differ
diff --git a/po/az.po b/po/az.po index cf4eb2d..32f7c2b 100644 --- a/po/az.po +++ b/po/az.po
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gst-plugins-0.8.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2004-03-19 18:29+0200\n" "Last-Translator: Metin Amiroff <metin@karegen.com>\n" "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/bg.gmo b/po/bg.gmo index 744e2c9..49ec4c6 100644 --- a/po/bg.gmo +++ b/po/bg.gmo Binary files differ
diff --git a/po/bg.po b/po/bg.po index 5fab88a..b4487eb 100644 --- a/po/bg.po +++ b/po/bg.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.7.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-02-21 21:03+0200\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Language-Team: Bulgarian <dict@ludost.net>\n"
diff --git a/po/ca.gmo b/po/ca.gmo index 1e58437..bca5133 100644 --- a/po/ca.gmo +++ b/po/ca.gmo Binary files differ
diff --git a/po/ca.po b/po/ca.po index 35620af..ccda1cb 100644 --- a/po/ca.po +++ b/po/ca.po
@@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2012-01-01 14:19+0100\n" "Last-Translator: Gil Forcada <gforcada@gnome.org>\n" "Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo index 2afbb6d..850e58b 100644 --- a/po/cs.gmo +++ b/po/cs.gmo Binary files differ
diff --git a/po/cs.po b/po/cs.po index 20f6976..77ab332 100644 --- a/po/cs.po +++ b/po/cs.po
@@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.6.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2015-10-15 20:54+0200\n" "Last-Translator: Marek Černocký <marek@manet.cz>\n" "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
diff --git a/po/da.gmo b/po/da.gmo index 70e6ccd..d24ab54 100644 --- a/po/da.gmo +++ b/po/da.gmo Binary files differ
diff --git a/po/da.po b/po/da.po index 01a70e1..bd90d18 100644 --- a/po/da.po +++ b/po/da.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad-1.10.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-11-03 11:28+0200\n" "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
diff --git a/po/de.gmo b/po/de.gmo index dab42d0..585f773 100644 --- a/po/de.gmo +++ b/po/de.gmo Binary files differ
diff --git a/po/de.po b/po/de.po index 6057d4b..d068781 100644 --- a/po/de.po +++ b/po/de.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.10.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-11-02 19:18+0100\n" "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
diff --git a/po/el.gmo b/po/el.gmo index 19e1623..22097b4 100644 --- a/po/el.gmo +++ b/po/el.gmo Binary files differ
diff --git a/po/el.po b/po/el.po index 708874b..6f248c4 100644 --- a/po/el.po +++ b/po/el.po
@@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2012-05-05 19:17+0100\n" "Last-Translator: Savvas Radevic <vicedar@gmail.com>\n" "Language-Team: Greek <team@lists.gnome.gr>\n"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo index fa5a4e6..7d0abe1 100644 --- a/po/en_GB.gmo +++ b/po/en_GB.gmo Binary files differ
diff --git a/po/en_GB.po b/po/en_GB.po index 326b081..8341e78 100644 --- a/po/en_GB.po +++ b/po/en_GB.po
@@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gst-plugins 0.8.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2004-04-26 10:41-0400\n" "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n" "Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo index 436db6e..303ce32 100644 --- a/po/eo.gmo +++ b/po/eo.gmo Binary files differ
diff --git a/po/eo.po b/po/eo.po index eb66941..21ce85c 100644 --- a/po/eo.po +++ b/po/eo.po
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2011-06-04 22:18+0200\n" "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
diff --git a/po/es.gmo b/po/es.gmo index 6cb202a..d08d44a 100644 --- a/po/es.gmo +++ b/po/es.gmo Binary files differ
diff --git a/po/es.po b/po/es.po index ce65055..d192f14 100644 --- a/po/es.po +++ b/po/es.po
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2011-10-02 15:47+0200\n" "Last-Translator: Jorge González González <aloriel@gmail.com>\n" "Language-Team: Spanish <es@li.org>\n"
diff --git a/po/eu.gmo b/po/eu.gmo index 1292bda..ed6c2e7 100644 --- a/po/eu.gmo +++ b/po/eu.gmo Binary files differ
diff --git a/po/eu.po b/po/eu.po index 0c7801f..5efc36c 100644 --- a/po/eu.po +++ b/po/eu.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad-0.10.17.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2010-03-25 12:30+0100\n" "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n" "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
diff --git a/po/fi.gmo b/po/fi.gmo index 907ce9f..f64759f 100644 --- a/po/fi.gmo +++ b/po/fi.gmo Binary files differ
diff --git a/po/fi.po b/po/fi.po index d949447..ec41403 100644 --- a/po/fi.po +++ b/po/fi.po
@@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.13.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2009-08-12 22:13+0300\n" "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n" "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
diff --git a/po/fr.gmo b/po/fr.gmo index ecdebbc..5ff6255 100644 --- a/po/fr.gmo +++ b/po/fr.gmo Binary files differ
diff --git a/po/fr.po b/po/fr.po index 8873911..95790c5 100644 --- a/po/fr.po +++ b/po/fr.po
@@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.7.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-02-20 16:27+0100\n" "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n" "Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.gmo b/po/gl.gmo index 21bb47b..aaceaa9 100644 --- a/po/gl.gmo +++ b/po/gl.gmo Binary files differ
diff --git a/po/gl.po b/po/gl.po index ef006b4..0fc6cb5 100644 --- a/po/gl.po +++ b/po/gl.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2011-09-05 12:50+0200\n" "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n" "Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/gst-plugins-bad-1.0.pot b/po/gst-plugins-bad-1.0.pot index edf7499..ee78a91 100644 --- a/po/gst-plugins-bad-1.0.pot +++ b/po/gst-plugins-bad-1.0.pot
@@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad 1.10.1\n" +"Project-Id-Version: gst-plugins-bad 1.10.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/po/hr.gmo b/po/hr.gmo index 3f8bf43..a6d89ab 100644 --- a/po/hr.gmo +++ b/po/hr.gmo Binary files differ
diff --git a/po/hr.po b/po/hr.po index 7b221a8..3192a86 100644 --- a/po/hr.po +++ b/po/hr.po
@@ -5,25 +5,26 @@ # Božidar Putanec <bozidarp@yahoo.com>, 2016. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad 1.7.2\n" +"Project-Id-Version: gst-plugins-bad-1.10.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" -"PO-Revision-Date: 2016-05-27 12:45-0700\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" +"PO-Revision-Date: 2016-11-19 10:21-0800\n" "Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n" "Language-Team: Croatian <lokalizacija@linux.hr>\n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -"X-Generator: Lokalize 2.0\n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 1.8.7.1\n" msgid "failed to draw pattern" -msgstr "" +msgstr "crtanje uzorka nije uspjelo" msgid "A GL error occured" -msgstr "" +msgstr "Dogodila se GL greška" msgid "format wasn't negotiated before get function" msgstr "format nije bio dogovoren prije ‘get’ funkcije" @@ -133,33 +134,31 @@ msgid "Could not open file \"%s\" for reading." msgstr "Datoteku „%s“ nije moguće otvoriti za čitanje." -#, fuzzy msgid "Couldn't find channel configuration file" -msgstr "Konfiguracijsku datoteku za DVB kanal nije moguće pronaći" +msgstr "Konfiguracijska datoteka kanala nije pronađena" -#, fuzzy, c-format +#, c-format msgid "Couldn't load channel configuration file: '%s'" -msgstr "Nije moguće učitati konfiguracijsku datoteku za DVB kanal: %s" +msgstr "Neuspjeh pri učitavanju konfiguracijske datoteke kanala: ‘%s’" -#, fuzzy, c-format +#, c-format msgid "Couldn't find details for channel '%s'" -msgstr "Pojedinosti za DVB kanal %s nije moguće pronaći" +msgstr "Pojedinosti za kanal ‘%s’ nisu nađene" -#, fuzzy, c-format +#, c-format msgid "No properties for channel '%s'" -msgstr "Pojedinosti za DVB kanal %s nije moguće pronaći" +msgstr "Svojstva za kanal ‘%s’ nisu nađena" -#, fuzzy, c-format +#, c-format msgid "Failed to set properties for channel '%s'" -msgstr "Pojedinosti za DVB kanal %s nije moguće pronaći" +msgstr "Nije uspjelo postaviti svojstva za kanal ‘%s’" -#, fuzzy, c-format +#, c-format msgid "Couldn't find channel configuration file: '%s'" -msgstr "Konfiguracijsku datoteku za DVB kanal nije moguće pronaći" +msgstr "Nije nađena konfiguracijska datoteka kanala: ‘%s’" -#, fuzzy msgid "Channel configuration file doesn't contain any channels" -msgstr "Konfiguracijska datoteka za DVB kanal ne sadrži nijedan kanal" +msgstr "Konfiguracijska datoteka za kanala ne sadrži niti jedan kanal" #~ msgid "Internal data flow error." #~ msgstr "Interna greška u protoku podataka."
diff --git a/po/hu.gmo b/po/hu.gmo index 857ff48..5388a47 100644 --- a/po/hu.gmo +++ b/po/hu.gmo Binary files differ
diff --git a/po/hu.po b/po/hu.po index 00e8286..1f14bde 100644 --- a/po/hu.po +++ b/po/hu.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.6.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2015-11-20 23:46+0100\n" "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n" "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
diff --git a/po/id.gmo b/po/id.gmo index 03b1840..1ad98ee 100644 --- a/po/id.gmo +++ b/po/id.gmo Binary files differ
diff --git a/po/id.po b/po/id.po index bb2421a..5c3a840 100644 --- a/po/id.po +++ b/po/id.po
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.10.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-11-14 20:38+0700\n" "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n" "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
diff --git a/po/it.gmo b/po/it.gmo index 06ff45f..fd78ab7 100644 --- a/po/it.gmo +++ b/po/it.gmo Binary files differ
diff --git a/po/it.po b/po/it.po index 3292328..0c3b1a0 100644 --- a/po/it.po +++ b/po/it.po
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.13.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2009-08-14 00:12+0200\n" "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n" "Language-Team: Italian <tp@lists.linux.it>\n"
diff --git a/po/ja.gmo b/po/ja.gmo index 514dbe0..22f7a8d 100644 --- a/po/ja.gmo +++ b/po/ja.gmo Binary files differ
diff --git a/po/ja.po b/po/ja.po index 3db9285..3116b0d 100644 --- a/po/ja.po +++ b/po/ja.po
@@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2011-04-26 19:38+0900\n" "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n" "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
diff --git a/po/ky.gmo b/po/ky.gmo index 2d2795c..a6a56d2 100644 --- a/po/ky.gmo +++ b/po/ky.gmo Binary files differ
diff --git a/po/ky.po b/po/ky.po index d7d69f0..cb7c08d 100644 --- a/po/ky.po +++ b/po/ky.po
@@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.5\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2007-11-13 17:16+0600\n" "Last-Translator: Ilyas Bakirov <just_ilyas@yahoo.com>\n" "Language-Team: Kirghiz <i18n-team-ky-kyrgyz@lists.sourceforge.net>\n"
diff --git a/po/lt.gmo b/po/lt.gmo index d9c1114..2c498c8 100644 --- a/po/lt.gmo +++ b/po/lt.gmo Binary files differ
diff --git a/po/lt.po b/po/lt.po index 96da4e8..e7612b3 100644 --- a/po/lt.po +++ b/po/lt.po
@@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad-0.10.6.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2008-05-14 02:13+0300\n" "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n" "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/lv.gmo b/po/lv.gmo index 98bd1b6..87753e0 100644 --- a/po/lv.gmo +++ b/po/lv.gmo Binary files differ
diff --git a/po/lv.po b/po/lv.po index aafa98b..1b850d8 100644 --- a/po/lv.po +++ b/po/lv.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.2.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2014-04-20 15:52+0300\n" "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n" "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
diff --git a/po/mt.gmo b/po/mt.gmo index a22b914..00d8da8 100644 --- a/po/mt.gmo +++ b/po/mt.gmo Binary files differ
diff --git a/po/mt.po b/po/mt.po index ffa22b4..16fe0a6 100644 --- a/po/mt.po +++ b/po/mt.po
@@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad-0.10.8.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2008-10-26 20:27+0100\n" "Last-Translator: Michel Bugeja <michelbugeja@rabatmalta.com>\n" "Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n"
diff --git a/po/nb.gmo b/po/nb.gmo index b519c79..ca1218a 100644 --- a/po/nb.gmo +++ b/po/nb.gmo Binary files differ
diff --git a/po/nb.po b/po/nb.po index f237fc3..6cd5dee 100644 --- a/po/nb.po +++ b/po/nb.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.6.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2015-12-22 21:08+0100\n" "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n" "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
diff --git a/po/nl.gmo b/po/nl.gmo index 2d04fe5..a381044 100644 --- a/po/nl.gmo +++ b/po/nl.gmo Binary files differ
diff --git a/po/nl.po b/po/nl.po index 2d69729..a400221 100644 --- a/po/nl.po +++ b/po/nl.po
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.7.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-02-20 12:35+0100\n" "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
diff --git a/po/or.gmo b/po/or.gmo index f96f0a8..76af1dd 100644 --- a/po/or.gmo +++ b/po/or.gmo Binary files differ
diff --git a/po/or.po b/po/or.po index 688a4b5..eba41b1 100644 --- a/po/or.po +++ b/po/or.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-0.8.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2004-09-27 13:32+0530\n" "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n" "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
diff --git a/po/pl.gmo b/po/pl.gmo index f2bb40d..e55d27f 100644 --- a/po/pl.gmo +++ b/po/pl.gmo Binary files differ
diff --git a/po/pl.po b/po/pl.po index a4cbe6f..357dc5e 100644 --- a/po/pl.po +++ b/po/pl.po
@@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.10.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-11-01 20:53+0100\n" "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n" "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index b97dbb9..067d978 100644 --- a/po/pt_BR.gmo +++ b/po/pt_BR.gmo Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po index bb1c130..d510617 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad-1.7.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-05-06 16:02-0300\n" "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n" "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
diff --git a/po/ro.gmo b/po/ro.gmo index 49deece..5c6ab53 100644 --- a/po/ro.gmo +++ b/po/ro.gmo Binary files differ
diff --git a/po/ro.po b/po/ro.po index 7410caf..8486783 100644 --- a/po/ro.po +++ b/po/ro.po
@@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.18.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2010-08-16 03:11+0300\n" "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n" "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
diff --git a/po/ru.gmo b/po/ru.gmo index 3cf96bd..dcd4387 100644 --- a/po/ru.gmo +++ b/po/ru.gmo Binary files differ
diff --git a/po/ru.po b/po/ru.po index 54b7bca..78dfbb1 100644 --- a/po/ru.po +++ b/po/ru.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.10.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-11-02 21:21+0300\n" "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" "Language-Team: Russian <gnu@d07.ru>\n"
diff --git a/po/sk.gmo b/po/sk.gmo index 49248ed..0b8c3f7 100644 --- a/po/sk.gmo +++ b/po/sk.gmo Binary files differ
diff --git a/po/sk.po b/po/sk.po index 4f86f86..27358de 100644 --- a/po/sk.po +++ b/po/sk.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.7.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-05-20 12:33+0100\n" "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n" "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
diff --git a/po/sl.gmo b/po/sl.gmo index 6d766ad..abf5726 100644 --- a/po/sl.gmo +++ b/po/sl.gmo Binary files differ
diff --git a/po/sl.po b/po/sl.po index 56533d7..c5d8077 100644 --- a/po/sl.po +++ b/po/sl.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2011-04-26 15:21+0100\n" "Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n" "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
diff --git a/po/sq.gmo b/po/sq.gmo index ee00767..27cc06f 100644 --- a/po/sq.gmo +++ b/po/sq.gmo Binary files differ
diff --git a/po/sq.po b/po/sq.po index 988c7e8..e391aff 100644 --- a/po/sq.po +++ b/po/sq.po
@@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.7.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2008-08-15 16:07+0200\n" "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n" "Language-Team: Albanian <translation-team-sq@lists.sourceforge.net>\n"
diff --git a/po/sr.gmo b/po/sr.gmo index 2553349..24c40d4 100644 --- a/po/sr.gmo +++ b/po/sr.gmo Binary files differ
diff --git a/po/sr.po b/po/sr.po index 487f409..b71d324 100644 --- a/po/sr.po +++ b/po/sr.po
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad-1.6.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2015-12-24 11:34+0200\n" "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" "Language-Team: Serbian <(nothing)>\n"
diff --git a/po/sv.gmo b/po/sv.gmo index b48ff05..9cc0a61 100644 --- a/po/sv.gmo +++ b/po/sv.gmo Binary files differ
diff --git a/po/sv.po b/po/sv.po index 693f7b8..7f92daf 100644 --- a/po/sv.po +++ b/po/sv.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.6.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2015-11-01 00:48+0100\n" "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
diff --git a/po/tr.gmo b/po/tr.gmo index 7306974..bd87b74 100644 --- a/po/tr.gmo +++ b/po/tr.gmo Binary files differ
diff --git a/po/tr.po b/po/tr.po index 33781e3..06cff2f 100644 --- a/po/tr.po +++ b/po/tr.po
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad-1.4.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2015-01-10 21:07+0100\n" "Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n" "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo index b0ec640..3eaa54d 100644 --- a/po/uk.gmo +++ b/po/uk.gmo Binary files differ
diff --git a/po/uk.po b/po/uk.po index d088181..db819b3 100644 --- a/po/uk.po +++ b/po/uk.po
@@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.10.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-11-01 20:55+0200\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
diff --git a/po/vi.gmo b/po/vi.gmo index 5fb1f7e..2ae17b5 100644 --- a/po/vi.gmo +++ b/po/vi.gmo Binary files differ
diff --git a/po/vi.po b/po/vi.po index cd187a7..f93b6d2 100644 --- a/po/vi.po +++ b/po/vi.po
@@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.10.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-11-02 13:38+0700\n" "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index e38d4fa..eb0db0c 100644 --- a/po/zh_CN.gmo +++ b/po/zh_CN.gmo Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po index 4d395a3..18f39db 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po
@@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gst-plugins-bad 1.10.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2016-11-17 15:03+0200\n" +"POT-Creation-Date: 2016-11-29 15:49+0200\n" "PO-Revision-Date: 2016-11-02 13:41+0800\n" "Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp index 184f124..8596337 100644 --- a/sys/decklink/gstdecklink.cpp +++ b/sys/decklink/gstdecklink.cpp
@@ -194,8 +194,8 @@ #define NTSC 10, 11, false, "bt601" #define PAL 12, 11, true, "bt601" -#define HD 1, 1, false, "bt709" -#define UHD 1, 1, false, "bt2020" +#define HD 1, 1, true, "bt709" +#define UHD 1, 1, true, "bt2020" static const GstDecklinkMode modes[] = { {bmdModeNTSC, 720, 486, 30000, 1001, true, NTSC}, // default is ntsc @@ -467,7 +467,7 @@ } static GstStructure * -gst_decklink_mode_get_structure (GstDecklinkModeEnum e, BMDPixelFormat f) +gst_decklink_mode_get_structure (GstDecklinkModeEnum e, BMDPixelFormat f, gboolean input) { const GstDecklinkMode *mode = &modes[e]; GstStructure *s = gst_structure_new ("video/x-raw", @@ -478,6 +478,13 @@ mode->interlaced ? "interleaved" : "progressive", "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, NULL); + if (input && mode->interlaced) { + if (mode->tff) + gst_structure_set (s, "field-order", G_TYPE_STRING, "top-field-first", NULL); + else + gst_structure_set (s, "field-order", G_TYPE_STRING, "bottom-field-first", NULL); + } + switch (f) { case bmdFormat8BitYUV: /* '2vuy' */ gst_structure_set (s, "format", G_TYPE_STRING, "UYVY", @@ -509,19 +516,19 @@ } GstCaps * -gst_decklink_mode_get_caps (GstDecklinkModeEnum e, BMDPixelFormat f) +gst_decklink_mode_get_caps (GstDecklinkModeEnum e, BMDPixelFormat f, gboolean input) { GstCaps *caps; caps = gst_caps_new_empty (); caps = - gst_caps_merge_structure (caps, gst_decklink_mode_get_structure (e, f)); + gst_caps_merge_structure (caps, gst_decklink_mode_get_structure (e, f, input)); return caps; } GstCaps * -gst_decklink_mode_get_caps_all_formats (GstDecklinkModeEnum e) +gst_decklink_mode_get_caps_all_formats (GstDecklinkModeEnum e, gboolean input) { GstCaps *caps; guint i; @@ -530,13 +537,13 @@ for (i = 1; i < G_N_ELEMENTS (formats); i++) caps = gst_caps_merge_structure (caps, gst_decklink_mode_get_structure (e, - formats[i].format)); + formats[i].format, input)); return caps; } GstCaps * -gst_decklink_pixel_format_get_caps (BMDPixelFormat f) +gst_decklink_pixel_format_get_caps (BMDPixelFormat f, gboolean input) { int i; GstCaps *caps; @@ -544,7 +551,7 @@ caps = gst_caps_new_empty (); for (i = 1; i < (int) G_N_ELEMENTS (modes); i++) { - s = gst_decklink_mode_get_structure ((GstDecklinkModeEnum) i, f); + s = gst_decklink_mode_get_structure ((GstDecklinkModeEnum) i, f, input); caps = gst_caps_merge_structure (caps, s); } @@ -552,7 +559,7 @@ } GstCaps * -gst_decklink_mode_get_template_caps (void) +gst_decklink_mode_get_template_caps (gboolean input) { int i; GstCaps *caps; @@ -561,7 +568,7 @@ for (i = 1; i < (int) G_N_ELEMENTS (modes); i++) caps = gst_caps_merge (caps, - gst_decklink_mode_get_caps_all_formats ((GstDecklinkModeEnum) i)); + gst_decklink_mode_get_caps_all_formats ((GstDecklinkModeEnum) i, input)); return caps; } @@ -578,7 +585,7 @@ return NULL; for (i = 1; i < (int) G_N_ELEMENTS (modes); i++) { - mode_caps = gst_decklink_mode_get_caps ((GstDecklinkModeEnum) i, *format); + mode_caps = gst_decklink_mode_get_caps ((GstDecklinkModeEnum) i, *format, FALSE); if (gst_caps_can_intersect (caps, mode_caps)) { gst_caps_unref (mode_caps); return gst_decklink_get_mode ((GstDecklinkModeEnum) i); @@ -918,6 +925,8 @@ GST_WARNING ("selected device does not have input interface: 0x%08x", ret); } else { + IDeckLinkDisplayModeIterator *mode_iter; + devices[i].input.device = decklink; devices[i].input.clock = gst_decklink_clock_new ("GstDecklinkInputClock"); GST_DECKLINK_CLOCK_CAST (devices[i].input.clock)->input = @@ -925,6 +934,27 @@ devices[i].input. input->SetCallback (new GStreamerDecklinkInputCallback (&devices[i]. input)); + + if ((ret = + devices[i].input.input->GetDisplayModeIterator (&mode_iter)) == + S_OK) { + IDeckLinkDisplayMode *mode; + + GST_DEBUG ("Input %d supports:", i); + while ((ret = mode_iter->Next (&mode)) == S_OK) { + const char *name; + + mode->GetName (&name); + GST_DEBUG (" %s mode: 0x%08x width: %ld height: %ld" + " fields: 0x%08x flags: 0x%08x", name, + (int) mode->GetDisplayMode (), mode->GetWidth (), + mode->GetHeight (), (int) mode->GetFieldDominance (), + (int) mode->GetFlags ()); + mode->Release (); + } + mode_iter->Release (); + } + ret = S_OK; } ret = decklink->QueryInterface (IID_IDeckLinkOutput, @@ -933,11 +963,34 @@ GST_WARNING ("selected device does not have output interface: 0x%08x", ret); } else { + IDeckLinkDisplayModeIterator *mode_iter; + devices[i].output.device = decklink; devices[i].output.clock = gst_decklink_clock_new ("GstDecklinkOutputClock"); GST_DECKLINK_CLOCK_CAST (devices[i].output.clock)->output = &devices[i].output; + + if ((ret = + devices[i].output.output->GetDisplayModeIterator (&mode_iter)) == + S_OK) { + IDeckLinkDisplayMode *mode; + + GST_DEBUG ("Output %d supports:", i); + while ((ret = mode_iter->Next (&mode)) == S_OK) { + const char *name; + + mode->GetName (&name); + GST_DEBUG (" %s mode: 0x%08x width: %ld height: %ld" + " fields: 0x%08x flags: 0x%08x", name, + (int) mode->GetDisplayMode (), mode->GetWidth (), + mode->GetHeight (), (int) mode->GetFieldDominance (), + (int) mode->GetFlags ()); + mode->Release (); + } + mode_iter->Release (); + } + ret = S_OK; } ret = decklink->QueryInterface (IID_IDeckLinkConfiguration,
diff --git a/sys/decklink/gstdecklink.h b/sys/decklink/gstdecklink.h index 9f95c56..90fda5c 100644 --- a/sys/decklink/gstdecklink.h +++ b/sys/decklink/gstdecklink.h
@@ -160,8 +160,8 @@ const GstDecklinkMode * gst_decklink_get_mode (GstDecklinkModeEnum e); const GstDecklinkModeEnum gst_decklink_get_mode_enum_from_bmd (BMDDisplayMode mode); const BMDVideoConnection gst_decklink_get_connection (GstDecklinkConnectionEnum e); -GstCaps * gst_decklink_mode_get_caps (GstDecklinkModeEnum e, BMDPixelFormat f); -GstCaps * gst_decklink_mode_get_template_caps (void); +GstCaps * gst_decklink_mode_get_caps (GstDecklinkModeEnum e, BMDPixelFormat f, gboolean input); +GstCaps * gst_decklink_mode_get_template_caps (gboolean input); typedef struct _GstDecklinkOutput GstDecklinkOutput; struct _GstDecklinkOutput { @@ -231,7 +231,7 @@ const GstDecklinkMode * gst_decklink_find_mode_for_caps (GstCaps * caps); const GstDecklinkMode * gst_decklink_find_mode_and_format_for_caps (GstCaps * caps, BMDPixelFormat * format); -GstCaps * gst_decklink_mode_get_caps_all_formats (GstDecklinkModeEnum e); -GstCaps * gst_decklink_pixel_format_get_caps (BMDPixelFormat f); +GstCaps * gst_decklink_mode_get_caps_all_formats (GstDecklinkModeEnum e, gboolean input); +GstCaps * gst_decklink_pixel_format_get_caps (BMDPixelFormat f, gboolean input); #endif
diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp index 741d74f..1612f8b 100644 --- a/sys/decklink/gstdecklinkvideosink.cpp +++ b/sys/decklink/gstdecklinkvideosink.cpp
@@ -227,7 +227,7 @@ (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); - templ_caps = gst_decklink_mode_get_template_caps (); + templ_caps = gst_decklink_mode_get_template_caps (FALSE); templ_caps = gst_caps_make_writable (templ_caps); /* For output we support any framerate and only really care about timestamps */ gst_caps_map_in_place (templ_caps, reset_framerate, NULL); @@ -405,17 +405,17 @@ if (self->mode == GST_DECKLINK_MODE_AUTO && self->video_format == GST_DECKLINK_VIDEO_FORMAT_AUTO) - mode_caps = gst_decklink_mode_get_template_caps (); + mode_caps = gst_decklink_mode_get_template_caps (FALSE); else if (self->video_format == GST_DECKLINK_VIDEO_FORMAT_AUTO) - mode_caps = gst_decklink_mode_get_caps_all_formats (self->mode); + mode_caps = gst_decklink_mode_get_caps_all_formats (self->mode, FALSE); else if (self->mode == GST_DECKLINK_MODE_AUTO) mode_caps = gst_decklink_pixel_format_get_caps (gst_decklink_pixel_format_from_type - (self->video_format)); + (self->video_format), FALSE); else mode_caps = gst_decklink_mode_get_caps (self->mode, - gst_decklink_pixel_format_from_type (self->video_format)); + gst_decklink_pixel_format_from_type (self->video_format), FALSE); mode_caps = gst_caps_make_writable (mode_caps); /* For output we support any framerate and only really care about timestamps */ gst_caps_map_in_place (mode_caps, reset_framerate, NULL);
diff --git a/sys/decklink/gstdecklinkvideosrc.cpp b/sys/decklink/gstdecklinkvideosrc.cpp index d82c5fc..f5e785c 100644 --- a/sys/decklink/gstdecklinkvideosrc.cpp +++ b/sys/decklink/gstdecklinkvideosrc.cpp
@@ -59,6 +59,8 @@ CaptureFrame *frame = (CaptureFrame *) data; frame->frame->Release (); + if (frame->tc) + gst_video_time_code_free (frame->tc); g_free (frame); } @@ -179,7 +181,7 @@ (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); - templ_caps = gst_decklink_mode_get_template_caps (); + templ_caps = gst_decklink_mode_get_template_caps (TRUE); gst_element_class_add_pad_template (element_class, gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, templ_caps)); gst_caps_unref (templ_caps); @@ -418,7 +420,7 @@ format = self->caps_format; g_mutex_unlock (&self->lock); - mode_caps = gst_decklink_mode_get_caps (mode, format); + mode_caps = gst_decklink_mode_get_caps (mode, format, TRUE); if (filter) { caps = @@ -585,6 +587,7 @@ CaptureFrame *f; GstCaps *caps; gboolean caps_changed = FALSE; + const GstDecklinkMode *mode; g_mutex_lock (&self->lock); while (g_queue_is_empty (&self->current_frames) && !self->flushing) { @@ -637,7 +640,7 @@ g_mutex_unlock (&self->lock); if (caps_changed) { - caps = gst_decklink_mode_get_caps (f->mode, f->format); + caps = gst_decklink_mode_get_caps (f->mode, f->format, TRUE); gst_video_info_from_caps (&self->info, caps); gst_base_src_set_caps (GST_BASE_SRC_CAST (bsrc), caps); gst_element_post_message (GST_ELEMENT_CAST (self), @@ -665,6 +668,10 @@ GST_BUFFER_DURATION (*buffer) = f->capture_duration; gst_buffer_add_video_time_code_meta (*buffer, f->tc); + mode = gst_decklink_get_mode (self->mode); + if (mode->interlaced && mode->tff) + GST_BUFFER_FLAG_SET (*buffer, GST_VIDEO_BUFFER_FLAG_TFF | GST_VIDEO_BUFFER_FLAG_INTERLACED); + GST_DEBUG_OBJECT (self, "Outputting buffer %p with timestamp %" GST_TIME_FORMAT " and duration %" GST_TIME_FORMAT, *buffer, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (*buffer)),
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 2c0cdb2..39f5aba 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am
@@ -322,7 +322,7 @@ elements_audiointerleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) elements_pnm_CFLAGS = \ - $(GST_PLUGINS_BASE_CFLAGS) + $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) elements_pnm_LDADD = \ $(GST_PLUGINS_BASE_LIBS) -lgstapp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD) @@ -395,7 +395,6 @@ libs_vp8parser_LDADD = \ $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_API_VERSION@.la \ - $(GST_PLUGINS_BAD_LIBS) -lgstcodecparsers-@GST_API_VERSION@ \ $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) elements_videoframe_audiolevel_CFLAGS = \ @@ -472,23 +471,21 @@ elements_dash_isoff_LDADD = $(LDADD) $(GST_BASE_LIBS) elements_dash_isoff_SOURCES = elements/dash_isoff.c -elements_dash_demux_CFLAGS = $(AM_CFLAGS) $(LIBXML2_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) +elements_dash_demux_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(AM_CFLAGS) $(LIBXML2_CFLAGS) elements_dash_demux_LDADD = \ - $(LDADD) $(LIBXML2_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ - -lgsttag-$(GST_API_VERSION) \ - -lgstapp-$(GST_API_VERSION) \ - $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la + $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) -lgstapp-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) $(LIBXML2_LIBS) $(LDADD) elements_dash_demux_SOURCES = elements/test_http_src.c elements/test_http_src.h elements/adaptive_demux_engine.c elements/adaptive_demux_engine.h elements/adaptive_demux_common.c elements/adaptive_demux_common.h elements/dash_demux.c elements_neonhttpsrc_CFLAGS = $(AM_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) -elements_mssdemux_CFLAGS = $(AM_CFLAGS) $(LIBXML2_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) +elements_mssdemux_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(AM_CFLAGS) $(LIBXML2_CFLAGS) elements_mssdemux_LDADD = \ - $(LDADD) $(LIBXML2_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ - -lgsttag-$(GST_API_VERSION) \ - -lgstapp-$(GST_API_VERSION) \ - $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la + $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) -lgstapp-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) $(LIBXML2_LIBS) $(LDADD) elements_mssdemux_SOURCES = elements/test_http_src.c elements/test_http_src.h elements/adaptive_demux_engine.c elements/adaptive_demux_engine.h elements/adaptive_demux_common.c elements/adaptive_demux_common.h elements/mssdemux.c @@ -499,7 +496,7 @@ $(top_builddir)/gst-libs/gst/insertbin/libgstinsertbin-@GST_API_VERSION@.la \ $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) libs_insertbin_CFLAGS = \ - $(GST_PLUGINS_BAD_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) libs_player_SOURCES = libs/player.c @@ -652,11 +649,11 @@ elements_hlsdemux_m3u8_LDADD = $(GST_BASE_LIBS) $(LDADD) elements_hlsdemux_m3u8_SOURCES = elements/hlsdemux_m3u8.c -elements_hls_demux_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) -elements_hls_demux_LDADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(LDADD) \ - -lgsttag-$(GST_API_VERSION) \ - -lgstapp-$(GST_API_VERSION) \ - $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la +elements_hls_demux_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) +elements_hls_demux_LDADD = \ + $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) -lgstapp-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) $(LDADD) elements_hls_demux_SOURCES = elements/test_http_src.c elements/test_http_src.h elements/adaptive_demux_engine.c elements/adaptive_demux_engine.h elements/adaptive_demux_common.c elements/adaptive_demux_common.h elements/hls_demux.c orc_compositor_CFLAGS = $(ORC_CFLAGS)
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in index cf3a183..98fcb0c 100644 --- a/tests/check/Makefile.in +++ b/tests/check/Makefile.in
@@ -315,10 +315,9 @@ elements/elements_dash_demux-adaptive_demux_common.$(OBJEXT) \ elements/elements_dash_demux-dash_demux.$(OBJEXT) elements_dash_demux_OBJECTS = $(am_elements_dash_demux_OBJECTS) -elements_dash_demux_DEPENDENCIES = $(am__DEPENDENCIES_2) \ +elements_dash_demux_DEPENDENCIES = $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) \ - $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) elements_dash_demux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_dash_demux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ @@ -403,9 +402,9 @@ elements/elements_hls_demux-adaptive_demux_common.$(OBJEXT) \ elements/elements_hls_demux-hls_demux.$(OBJEXT) elements_hls_demux_OBJECTS = $(am_elements_hls_demux_OBJECTS) -elements_hls_demux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ - $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la +elements_hls_demux_DEPENDENCIES = $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) elements_hls_demux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_hls_demux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ @@ -476,10 +475,9 @@ elements/elements_mssdemux-adaptive_demux_common.$(OBJEXT) \ elements/elements_mssdemux-mssdemux.$(OBJEXT) elements_mssdemux_OBJECTS = $(am_elements_mssdemux_OBJECTS) -elements_mssdemux_DEPENDENCIES = $(am__DEPENDENCIES_2) \ +elements_mssdemux_DEPENDENCIES = $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) \ - $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) elements_mssdemux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_mssdemux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ @@ -1835,7 +1833,8 @@ elements_audiointerleave_LDADD = $(GST_BASE_LIBS) -lgstbase-@GST_API_VERSION@ $(GST_AUDIO_LIBS) $(LDADD) elements_audiointerleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) elements_pnm_CFLAGS = \ - $(GST_PLUGINS_BASE_CFLAGS) + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) elements_pnm_LDADD = \ $(GST_PLUGINS_BASE_LIBS) -lgstapp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD) @@ -1902,7 +1901,6 @@ libs_vp8parser_LDADD = \ $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_API_VERSION@.la \ - $(GST_PLUGINS_BAD_LIBS) -lgstcodecparsers-@GST_API_VERSION@ \ $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) elements_videoframe_audiolevel_CFLAGS = \ @@ -1978,21 +1976,19 @@ elements_dash_isoff_CFLAGS = $(AM_CFLAGS) $(GST_BASE_CFLAGS) elements_dash_isoff_LDADD = $(LDADD) $(GST_BASE_LIBS) elements_dash_isoff_SOURCES = elements/dash_isoff.c -elements_dash_demux_CFLAGS = $(AM_CFLAGS) $(LIBXML2_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) +elements_dash_demux_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(AM_CFLAGS) $(LIBXML2_CFLAGS) elements_dash_demux_LDADD = \ - $(LDADD) $(LIBXML2_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ - -lgsttag-$(GST_API_VERSION) \ - -lgstapp-$(GST_API_VERSION) \ - $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la + $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) -lgstapp-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) $(LIBXML2_LIBS) $(LDADD) elements_dash_demux_SOURCES = elements/test_http_src.c elements/test_http_src.h elements/adaptive_demux_engine.c elements/adaptive_demux_engine.h elements/adaptive_demux_common.c elements/adaptive_demux_common.h elements/dash_demux.c elements_neonhttpsrc_CFLAGS = $(AM_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) -elements_mssdemux_CFLAGS = $(AM_CFLAGS) $(LIBXML2_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) +elements_mssdemux_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(AM_CFLAGS) $(LIBXML2_CFLAGS) elements_mssdemux_LDADD = \ - $(LDADD) $(LIBXML2_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ - -lgsttag-$(GST_API_VERSION) \ - -lgstapp-$(GST_API_VERSION) \ - $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la + $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) -lgstapp-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) $(LIBXML2_LIBS) $(LDADD) elements_mssdemux_SOURCES = elements/test_http_src.c elements/test_http_src.h elements/adaptive_demux_engine.c elements/adaptive_demux_engine.h elements/adaptive_demux_common.c elements/adaptive_demux_common.h elements/mssdemux.c pipelines_streamheader_CFLAGS = $(GIO_CFLAGS) $(AM_CFLAGS) @@ -2002,7 +1998,7 @@ $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) libs_insertbin_CFLAGS = \ - $(GST_PLUGINS_BAD_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) libs_player_SOURCES = libs/player.c libs_player_LDADD = \ @@ -2130,11 +2126,11 @@ elements_hlsdemux_m3u8_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS) -I$(top_srcdir)/ext/hls elements_hlsdemux_m3u8_LDADD = $(GST_BASE_LIBS) $(LDADD) elements_hlsdemux_m3u8_SOURCES = elements/hlsdemux_m3u8.c -elements_hls_demux_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) -elements_hls_demux_LDADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(LDADD) \ - -lgsttag-$(GST_API_VERSION) \ - -lgstapp-$(GST_API_VERSION) \ - $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la +elements_hls_demux_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) +elements_hls_demux_LDADD = \ + $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) -lgstapp-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) $(LDADD) elements_hls_demux_SOURCES = elements/test_http_src.c elements/test_http_src.h elements/adaptive_demux_engine.c elements/adaptive_demux_engine.h elements/adaptive_demux_common.c elements/adaptive_demux_common.h elements/hls_demux.c orc_compositor_CFLAGS = $(ORC_CFLAGS) @@ -4886,7 +4882,6 @@ clean-local: clean-local-check distclean-local: distclean-local-orc - $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) @WITH_GST_PLAYER_TESTS_TRUE@$(PLAYER_MEDIA_FILES): @WITH_GST_PLAYER_TESTS_TRUE@ $(MKDIR_P) media
diff --git a/win32/common/config.h b/win32/common/config.h index 45c018a..86b4818 100644 --- a/win32/common/config.h +++ b/win32/common/config.h
@@ -86,7 +86,7 @@ #define GST_PACKAGE_ORIGIN "Unknown package origin" /* GStreamer package release date/time for plugins as YYYY-MM-DD */ -#define GST_PACKAGE_RELEASE_DATETIME "2016-11-17" +#define GST_PACKAGE_RELEASE_DATETIME "2016-11-29" /* Define if static plugins should be built */ #undef GST_PLUGIN_BUILD_STATIC @@ -737,7 +737,7 @@ #define PACKAGE_NAME "GStreamer Bad Plug-ins" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "GStreamer Bad Plug-ins 1.10.1" +#define PACKAGE_STRING "GStreamer Bad Plug-ins 1.10.2" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gst-plugins-bad" @@ -746,7 +746,7 @@ #undef PACKAGE_URL /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.10.1" +#define PACKAGE_VERSION "1.10.2" /* directory where plugins are located */ #ifdef _DEBUG @@ -790,7 +790,7 @@ #undef USE_EGL_RPI /* Version number of package */ -#define VERSION "1.10.1" +#define VERSION "1.10.2" /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */