Commit graph

34 commits

Author SHA1 Message Date
Mathieu Duponchelle
daaa1c3aa8 ccconverter: fix typo in framerate 2019-02-21 23:51:39 +01:00
Nirbheek Chauhan
81fd48bcb5 closedcaption: Use portable variadic macro syntax
args... is not understood by MSVC:

error C2010: '.': unexpected in macro parameter list
2019-02-15 23:50:11 +05:30
Nirbheek Chauhan
a4323638b3 closedcaption: Port plugin to MSVC
pthread is not portable, so we can't use a pthread mutex use GMutex
instead.
2019-02-15 23:39:35 +05:30
Sebastian Dröge
8006979109 ccconverter: Don't output empty buffers 2019-02-12 14:38:40 +02:00
Sebastian Dröge
39381643c8 closedcaption: Add ccconverter element that can convert between different types of Closed Caption formats 2018-12-19 00:19:39 +02:00
Sebastian Dröge
aa72783b95 closedcaption: Use new API for converting GstVideoCaptionType from/to GstCaps 2018-12-15 21:31:28 +00:00
Sebastian Dröge
48f48cc4ba closedcaption: Replace GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW with CEA608_S334_1A
As a side-effect we can now actually store the line offset in the
line21dec element, and have to perform fewer transformations in the
decklink elements (which were also buggy as they assumed a single byte
triplet per meta).
2018-12-15 21:31:28 +00:00
Sebastian Dröge
f9e4ed99b0 line21dec: If CCs are not found at the previous line, reset and search from the beginning again 2018-12-15 21:31:28 +00:00
Sebastian Dröge
36ba1e80b6 line21dec: Don't read more lines than the height of the frame 2018-12-15 21:31:28 +00:00
Sebastian Dröge
98b2c705c4 ccextractor: Copy over timecode meta from the input buffers to the outgoing caption buffers
Formats like SCC and MCC work based on timecodes so ideally we pass
through the timecodes when writing them.
2018-12-06 16:06:05 +00:00
Sebastian Dröge
f0571a94fb ccextractor: Include framerate in the closedcaption caps
It depends on the framerate how many cc_data byte pairs are allowed per
frame, and the framerate is also needed for converting into the CDP or
MCC format as the framerate is part of the header metadata.
2018-12-06 16:06:05 +00:00
Tim-Philipp Müller
4f935e1e7f cc708overlay: fix deadlock
We would forget to unlock when a caption data buffer is deemed
out of segment, which makes everything lock up next time buffers
are received.
2018-11-29 11:24:39 +00:00
Sebastian Dröge
eb92865ea1 cccombiner: Add new closed caption combiner element
This is the inverse of ccextractor: it takes a video and closed caption
stream and places the closed caption metas on the video output buffers.
2018-11-06 16:21:42 +00:00
Sebastian Dröge
7ba9493ff1 ccextractor: Handle multiple caption metas per buffer 2018-11-06 16:21:06 +00:00
Sebastian Dröge
7cfe6b0bf3 ccextractor: Support changes of the caption type
https://bugzilla.gnome.org/show_bug.cgi?id=797370
2018-11-02 12:22:15 +02:00
Sebastian Dröge
3812985a9e ccextractor: Use gst_caps_new_simple() instead of gst_caps_from_string() 2018-09-18 17:47:04 +03:00
Víctor Manuel Jáquez Leal
85f142a8e2 closedcaption: comment out unused function
When compiling with clang-6 this error raises:

raw_decoder.c:411:1: error: unused function 'cpr1204_crc'
[-Werror,-Wunused-function]

This patch only comments it out.

https://bugzilla.gnome.org/show_bug.cgi?id=796957
2018-08-14 13:31:49 +02:00
Víctor Manuel Jáquez Leal
808b404e88 closedcaption: avoid implicit convertion of enums
When compiling with clang-6 this error pops out:

raw_decoder.c:1011:62: error: implicit conversion from enumeration
type 'const vbi_modulation' to different enumeration type
'vbi3_modulation' [-Werror,-Wenum-conversion]

This is because function vbi3_bit_slicer_set_params() sets
vbi3_modulation as enum type parameter, nonetheless vbi_modulation
enum is passed. Both enums looks semantically equal, thus the fix is a
simple cast.

https://bugzilla.gnome.org/show_bug.cgi?id=796957
2018-08-14 13:31:49 +02:00
Sebastian Dröge
f028f817e3 ceaccoverlay: Initialize debug category 2018-08-02 16:19:55 +03:00
Nirbheek Chauhan
b55dfb5313 Add feature options for almost all plugins
The only plugins remaining are those that haven't been ported to Meson
yet, and msdk. Also, the tests are still automagic.

https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 19:04:38 +05:30
Arun Raghavan
c6f19511b5 closedcaption: Fix compilation on older compilers
For when -std=c99 (or later) is not the default.
2018-07-09 06:40:29 +05:30
Olivier Crête
bfcc073ed4 ext/closedcaption/misc.h: Transform into UTF-8 2018-06-21 08:49:01 -04:00
Edward Hervey
5d697cd804 closedcaption: Fix compilation without debugging 2018-05-28 15:55:57 +02:00
Edward Hervey
a41fb3c6df ceaccoverlay: New CEA-708 Closed Caption decoder and overlayer
This new element allows decoding and overlaying CEA-708 Closed Caption
streams over video.

* Supports CDP and cc_data closedcaption/x-cea-708 streams
* Uses pango to render CC stream
* Support GstVideoOverlayComposition meta if downstream supports is

Tested on various test files.

Remains to be fixed/improved:
* Switch to GstByteReader (for code safety)
* Switch to GString (instead of manual pango string construction)
* Move pango/rendering code outside of main 708 decoder file (so
  that actual CC parser/decoder can be (re)used in other scenarios).

Initial patches and improvements by:
* CableLabs RUIH-RI Team <ruihri@cablelabs.com>
* Steve Maynard <steve@secondstryke.com>
* cjun.wang" <cjun.wang@samsung.com>

https://bugzilla.gnome.org/show_bug.cgi?id=704881
2018-05-28 15:29:01 +02:00
Tim-Philipp Müller
aab111b979 closedcaption: fix meson build 2018-05-28 14:17:05 +01:00
Edward Hervey
2a1553cb88 closedcaption: Add new "line 21 VBI" CC decoder
Allows detecting and extracting CEA608 closed caption present on
the VBI of analog NTSC SD signals.
2018-05-28 15:03:57 +02:00
Edward Hervey
9ee58b5aeb closedcaption: zvbi: Add gst-debug category to zvbi code
And adapt their logging system to go through it
2018-05-28 15:04:24 +02:00
Edward Hervey
af9e9d613a closedcaption: zvbi: Disable unused legacy bit slicer
The code only uses the new 'optimized' bit slicer
2018-05-28 15:04:19 +02:00
Edward Hervey
61334a38a3 closedcaption: zvbi: Enforce strict line21 CC detection
zvbi switched to a lot more flexible CC detection in VBI.

The problem is that it returns a *lot* of non-VBI lines as containing
CC which isn't the case.
2018-05-28 15:04:14 +02:00
Edward Hervey
7ea93b9f94 closedcaption: zvbi: Comment out bogus redefinition
All this code should be converted to glib eventually, but for now
just comment out a function which isn't even used
2018-05-28 15:04:02 +02:00
Edward Hervey
c3a9835c05 closedcaption: zvbi: Remove dead code
* RGB8 is never used
* some inline functions were never used
2018-05-28 15:03:57 +02:00
Edward Hervey
b0b02e7cb5 closedcaption: Include zvbi raw vbi decoder code
Current code from zapping/zvbi as of 2018-03-14. Files copied
are all LGPL v2+.

Changes from original zvbi code:
* Switch to gst-debug logging system
* Use glib for endianness detection
* Fix compilation warnings
2018-05-28 14:50:01 +02:00
Tim-Philipp Müller
483892d16a closedcaption: add meson build files 2018-05-28 11:09:45 +01:00
Edward Hervey
2550718f59 ext: New ccextractor element
Allows extracting GstVideoCaptionMeta from a stream and outputs
it to a standalone stream.

Part of a new 'ext' closedcaption plugin, since more features are
going to be added, which will depend on external dependencies such
as pango.
2018-05-28 11:54:17 +02:00