Commit graph

18 commits

Author SHA1 Message Date
Edward Hervey
63145f4576 mpegts: Fix descriptor checks
Only use g_return_val_if_fail on provided direct arguments. The others get
checked all the time.

https://bugzilla.gnome.org/show_bug.cgi?id=724464
2014-02-25 10:19:23 +01:00
Edward Hervey
142233d917 mpegts: Add size guards for descriptors where neeeded
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724464
2014-02-20 19:08:33 +01:00
Jesper Larsen
dc968163da mpegts: Updated docs with new API 2014-02-06 16:01:35 +01:00
Jesper Larsen
b7d256b4c2 mpegts: Support registration and custom descriptor
Support for registration descriptor (0x05)
Add function to create a descriptor with custom tag and data
2014-02-06 15:55:46 +01:00
Jesper Larsen
930cde73a7 mpegts: Add functions to packetize section
Sections needs to be packetized for use in i.e. mpegtsmux.
These functions handles the generic common parts of a GstMpegTsSection
2014-02-06 14:00:28 +01:00
Jesper Larsen
b1c5143b79 mpegts: Add init functions for descriptor/section 2014-02-06 12:18:13 +01:00
Jesper Larsen
4630dfda05 mpegts: Add function to encode UTF8 strings
This can be used to create descriptors with appropriate character maps
2014-02-06 12:18:13 +01:00
Jesper Larsen
465dea6f32 mpegts: Use big endian UCS-2 coding
Parsing of control codes requires a big endian character map
2014-02-06 12:18:13 +01:00
Jesper Larsen
73c82e3f1c mpegts: Add support for two-way iconv conversions
To use in conversions from UTF-8 to another character map
2014-02-06 12:18:13 +01:00
Jesper Larsen
0d57756512 mpegts: Fix assertion fault in ISO 639 parsing
https://bugzilla.gnome.org/show_bug.cgi?id=709180
2013-10-11 10:20:57 +02:00
Jesper Larsen
7cb434e42f mpegts: Add ISO 639 parsing functions
https://bugzilla.gnome.org/show_bug.cgi?id=709180
2013-10-07 10:23:22 +02:00
Edward Hervey
5d06aed3e2 mpegts: ABI/API break: Use GPtrArray instead of GArray
While it was a great idea, various g-i based bindings don't support
GArray with entries greater than sizeof(gpointer) :(

So let's just make everybody happy by just using GPtrArray.

And since we're breaking the API, also rename the various descriptor fields
to no longer have the descriptor_ prefix.

It does cost a bit more in terms of memory/cpu usage, but makes it usable
from bindings.
2013-08-21 08:59:42 +02:00
Edward Hervey
f24c0b62e3 mpegts: Improve documentation
* Add a base page for the library
* Add pages for the base MPEG-TS section and descriptors
* Add pages for the known variants
* Add documentation on more fields/sections/types
* Remove some fixmes that were ... fixed
2013-07-04 08:45:33 +02:00
Edward Hervey
34164610b0 mpegtsdescriptor: Fix handling of unknown stream encodings
If we cannot identify the encoding used for a string, return a NULL
string instead of garbage and add a FIXME so we can detect and later
fix it.
2013-07-04 08:45:32 +02:00
Edward Hervey
51d8fa5860 mpegts: split dvb descriptors/enums into a separate file
We will do the same once we have ATSC/ISDB/... descriptor parsing
2013-07-03 18:52:18 +02:00
Edward Hervey
982aee25c6 mpegts: Split files and implement free functions
* In order to avoid future clashing between table_id for the various
  mpeg-ts variants, use different enums.
* In order to keep everything clean(ish) and allow for cleaner growth,
  split into different files (will need the same for descriptors later)
* Also ... implement free functions for all table types :)
2013-07-03 17:59:02 +02:00
Edward Hervey
c1366efcd6 libs/mpegts: Rename GstMpegTS => GstMpegTs
Sorry for this :( But this makes it more in sync with expected type
naming in gobject (i.e. CamelCase and not CamelMAYBECase).

Also split descriptor type enums into the different variants:
* ISO H.222.0 / 13818-1 (i.e. standard mpeg-ts)
* DVB
* ATSC
* ISDB
* miscellaneous

This will avoid future clashes when specs use the same descriptor type
2013-07-03 13:59:56 +02:00
Edward Hervey
3665e8543a gst-libs: New Mpeg-TS support library
Exposes various MPEG-TS (ISO/IEC 13818-1) and DVB (EN 300 468) Section
Information as well as descriptors for usage by plugins and applications.

This replaces entirely the old GstStructure-based system for conveying
mpeg-ts information to applications and other plugins.

Parsing and validation is done on a "when-needed" basis. This ensures
the minimal overhead for elements and applications creating and using
sections and descriptors.

Since all information is made available, this also allows applications
to parse custom sections and descriptors.

Right now the library is targeted towards parsing, but the structures
could be used in the future to allow applications to create and inject
sections and descriptors (for usage by various mpeg-ts elements).

https://bugzilla.gnome.org/show_bug.cgi?id=702724
2013-07-03 09:17:25 +02:00