platform/upstream/gstreamer.git
11 years agodashdemux: use more appropriate data structures for parsing
Thiago Santos [Fri, 5 Jul 2013 02:42:23 +0000 (23:42 -0300)]
dashdemux: use more appropriate data structures for parsing

Replaces the 2 likely larger lists with more appropriate structures
to improve performance.

Replaces S nodes GList for a GQueue, this reduces latency to startup
because of traversing the list just append an element.

Replaces the processed media segments GList for a GPtrArray as it is
constantly acessed by index during playback.

11 years agodashdemux: answer to latency queries
Thiago Santos [Thu, 4 Jul 2013 18:14:00 +0000 (15:14 -0300)]
dashdemux: answer to latency queries

Set live if stream is live and also add to the max latency the
max internal buffering

11 years agouridownloader: fix crash when download is null
Thiago Santos [Tue, 9 Jul 2013 01:01:58 +0000 (22:01 -0300)]
uridownloader: fix crash when download is null

Do no try to unref a NULL download attribute

11 years agouridownloader: do not set cancelled unless explicitly called by user
Thiago Santos [Tue, 9 Jul 2013 01:00:48 +0000 (22:00 -0300)]
uridownloader: do not set cancelled unless explicitly called by user

Cancelled is a 'permanent' state of the uridownloader and is only
removed by a call to _reset. When a download fails we just want to
return NULL on the fetch function and leave the downloader ready
for another fetch, otherwise the user has to call _reset after
failed downloader, even when it didn't call _cancel.

11 years agompegts: Avoid false-positives in section type detection
Edward Hervey [Sun, 7 Jul 2013 06:35:02 +0000 (08:35 +0200)]
mpegts: Avoid false-positives in section type detection

Due to the variety of section types out there, we need to add
some checks when identifying section types.

We check here that the PID is also consistent with the table_id.

11 years agompegtsdemux: Fix multiple-SI detection/parsing
Edward Hervey [Sun, 7 Jul 2013 06:29:37 +0000 (08:29 +0200)]
mpegtsdemux: Fix multiple-SI detection/parsing

We had two issues with the previous code:
1) We were badly handling PUSI-flagged packets. We were discarding the
   initial data (if pointer != 0) whereas we should have been accumulating
   it with the previous data (if there was a continuity of course).
   => First series of information loss
2) We were not checking whether there were more sections after the end
   of one (i.e. when the following byte was not a stuff byte).

This fixes those two issues.

Fixes #677443

https://bugzilla.gnome.org/show_bug.cgi?id=677443

11 years agompegtbase: Fix switch/case typo
Edward Hervey [Sun, 7 Jul 2013 05:21:46 +0000 (07:21 +0200)]
mpegtbase: Fix switch/case typo

Ended up trying to analyze PMT ... with a PAT :(

11 years agompegtsdemux: Handle private section streams
Edward Hervey [Sat, 6 Jul 2013 12:50:52 +0000 (14:50 +0200)]
mpegtsdemux: Handle private section streams

Until now we simply ignored those streams (since we couldn't do anything
with it anyway). Now that we have the mpegts library and we offload the
section handling to the application side we can properly identify and
extract them.

By default it is disabled for tsparse and enabled for tsdemux, but there is
a property to change that.

This should open the way to properly handle all private section streams,
including:
* DSM-CC
* MHEG
* Carousel data
* Metadata streams (though I haven't seen any of those in the wild)
* ... And all other specs/protocols making use of those

Partially fixes #560631

11 years agompegts: Properly handle UTC time in sections
Edward Hervey [Sat, 6 Jul 2013 10:39:49 +0000 (12:39 +0200)]
mpegts: Properly handle UTC time in sections

* don't unref inexistant GstDateTime
* Fine-tune hour/min/sec BCD reading code
* Update example code accordingly

11 years agoexamples: Registration descriptor support
Edward Hervey [Sat, 6 Jul 2013 08:59:08 +0000 (10:59 +0200)]
examples: Registration descriptor support

And output the length of the descriptors

11 years agompegts: Fix NIT parsing
Edward Hervey [Sat, 6 Jul 2013 08:38:26 +0000 (10:38 +0200)]
mpegts: Fix NIT parsing

The size checks were wrong. The smallest size for a NIT is 16 bytes
(12 for the smallest content + 4 for crc) and the smallest size for
a inner stream loop is 6 bytes (without any descriptors).

Also remove FIXME that has already moved elsewhere

11 years agompegtsdemux: Handle registration descriptor for programs and streams
Edward Hervey [Sat, 6 Jul 2013 08:36:33 +0000 (10:36 +0200)]
mpegtsdemux: Handle registration descriptor for programs and streams

* Allows us to simplify some code and prepare for future cleanups.
* Remove useless casts
* Add some FIXME regarding VC1

11 years agopo: update POTFILES
Piotr Drąg [Fri, 5 Jul 2013 19:49:48 +0000 (21:49 +0200)]
po: update POTFILES

https://bugzilla.gnome.org/show_bug.cgi?id=703683

11 years agowebvttenc: Separate cues with two line breaks instead of one.
Brendan Long [Fri, 5 Jul 2013 17:20:49 +0000 (11:20 -0600)]
webvttenc: Separate cues with two line breaks instead of one.

See http://dev.w3.org/html5/webvtt/#syntax

https://bugzilla.gnome.org/show_bug.cgi?id=703673

11 years agocodecparsers: mpeg2: fix video packet header size checks.
Gwenole Beauchesne [Fri, 5 Jul 2013 16:33:42 +0000 (18:33 +0200)]
codecparsers: mpeg2: fix video packet header size checks.

Fix video packet header size checks for:
- Sequence Header: 64 bits ;
- Sequence Scalable Extension: 10 bits ;
- Slice Header: 6 bits.

https://bugzilla.gnome.org/show_bug.cgi?id=703668

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11 years agocodecparsers: mpeg2: add missing gtk-doc entries.
Gwenole Beauchesne [Fri, 5 Jul 2013 12:58:25 +0000 (14:58 +0200)]
codecparsers: mpeg2: add missing gtk-doc entries.

The following functions were missing gtk-doc entries:
- gst_mpeg_video_parse_sequence_display_extension
- gst_mpeg_video_finalise_mpeg2_sequence_header
- gst_mpeg_video_quant_matrix_get_raster_from_zigzag
- gst_mpeg_video_quant_matrix_get_zigzag_from_raster

https://bugzilla.gnome.org/show_bug.cgi?id=703667

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11 years agocodecparsers: mpeg2: update test program with new GstMpegVideoPacket API.
Gwenole Beauchesne [Thu, 31 Jan 2013 10:57:54 +0000 (11:57 +0100)]
codecparsers: mpeg2: update test program with new GstMpegVideoPacket API.

This is the lost hunk from:
https://bugzilla.gnome.org/show_bug.cgi?id=692933

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11 years agocodecparsers: mpeg2: add slice header parsing API.
Sreerenj Balachandran [Wed, 30 Jan 2013 14:56:15 +0000 (16:56 +0200)]
codecparsers: mpeg2: add slice header parsing API.

Add API to parse the Slice header. This also calculates the macroblock
position as specified in 6.3.16.

https://bugzilla.gnome.org/show_bug.cgi?id=664274

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11 years agocodecparsers: mpeg2: add sequence scalable extension parsing API.
Sreerenj Balachandran [Fri, 25 Jan 2013 13:48:58 +0000 (15:48 +0200)]
codecparsers: mpeg2: add sequence scalable extension parsing API.

Add API to parse the Sequence Scalable Extension header.

https://bugzilla.gnome.org/show_bug.cgi?id=664274

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11 years agompegvideoparse: cope with new parser API.
Gwenole Beauchesne [Thu, 4 Jul 2013 12:22:14 +0000 (14:22 +0200)]
mpegvideoparse: cope with new parser API.

Migrate the code to use the new parser API based on GstMpegVideoPacket.

Also try to optimize gst_mpegv_parse_process_config() by using more of
GstMpegVideoPacket and determining the extension_start_code_identifier
prior to calling the parser function for that extension packet.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11 years agocodecparsers: mpeg2: add new API that takes GstMpegVideoPacket arguments.
Gwenole Beauchesne [Thu, 31 Jan 2013 10:57:54 +0000 (11:57 +0100)]
codecparsers: mpeg2: add new API that takes GstMpegVideoPacket arguments.

Add new interface to MPEG-2 video parser that takes GstMpegVideoPacket
arguments instead of data, size, and offset. New functions are called
after gst_mpeg_video_packet_*() and provide the default implementation.

Older API is moved to the deprecated namespace and uses the new functions.

https://bugzilla.gnome.org/show_bug.cgi?id=692933

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11 years agompegtsbase: Remove no-longer needed code
Edward Hervey [Fri, 5 Jul 2013 14:46:42 +0000 (16:46 +0200)]
mpegtsbase: Remove no-longer needed code

Since we now send all sections to the packetizer, we no longer need to do
anymore in-depth checks for the validity of a section.

The choice boils down to:
1) Is it from a known PES pid ? If so pass it on (which might be just pushing
   downstream in the case of tsparse, or accumulating PES data for tsdemux)
2) Is it from a known SI pid ? If so pass it to the section packetizer

11 years agodvb: Fix PMT handling
Edward Hervey [Fri, 5 Jul 2013 11:53:06 +0000 (13:53 +0200)]
dvb: Fix PMT handling

Was using an older (temporary) version of the mpegts library API.

11 years agompegtsdemux: Fix compilation with debugging disabling
Edward Hervey [Fri, 5 Jul 2013 08:57:34 +0000 (10:57 +0200)]
mpegtsdemux: Fix compilation with debugging disabling

We previously weren't using that variable ...

11 years agompegts: Improve documentation
Edward Hervey [Thu, 4 Jul 2013 06:43:37 +0000 (08:43 +0200)]
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

11 years agompegtsdemux: Switch to using GstMpegTsStreamType
Edward Hervey [Thu, 4 Jul 2013 05:49:37 +0000 (07:49 +0200)]
mpegtsdemux: Switch to using GstMpegTsStreamType

We still have some other stream types which haven't been ported, but
we will do so once we have defined the enums in the mpegts library.

Also add some FIXMEs regarding items discovered during analysis

11 years agompegtsdescriptor: Fix handling of unknown stream encodings
Edward Hervey [Thu, 4 Jul 2013 05:48:10 +0000 (07:48 +0200)]
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.

11 years agompegts: Add registered mpeg-ts stream types
Edward Hervey [Thu, 4 Jul 2013 05:45:12 +0000 (07:45 +0200)]
mpegts: Add registered mpeg-ts stream types

These are the values officially registered in the base specification
(H.222.0/13818-1). Later on we can add other enums for other variants

Note that the enum is not used in the structure fields (such as a pmt
stream stream_type field) since it can contain values from other
variants.

11 years agocamerabin: examples: add missing lib to makefile
Thiago Santos [Thu, 4 Jul 2013 05:12:30 +0000 (02:12 -0300)]
camerabin: examples: add missing lib to makefile

Fixes initialization of sample application

11 years agodashdemux: prevent assertion when duration is unknown
Thiago Santos [Wed, 3 Jul 2013 22:11:45 +0000 (19:11 -0300)]
dashdemux: prevent assertion when duration is unknown

Duration from segment being unknown is a issue from the MPD and not
a programming issue, so the assert isn't useful here. Instead check
and return an error code so the caller can fallback to alternatives

11 years agodashdemux: Fix event leak when parsing manifest fails
Thiago Santos [Wed, 3 Jul 2013 22:11:11 +0000 (19:11 -0300)]
dashdemux: Fix event leak when parsing manifest fails

Always remember to unref the event before proceeding, in both success
and failure cases

11 years agodashdemux: various cleanups
Thiago Santos [Wed, 3 Jul 2013 15:30:28 +0000 (12:30 -0300)]
dashdemux: various cleanups

Removing unused function, replacing // comments with /* */ and
replacing some GST_WARNING with GST_INFO/_DEBUG as they are meant
to be

11 years agodashdemux: Change first fragment selection for live streams
Alex Ashley [Tue, 11 Jun 2013 13:28:53 +0000 (14:28 +0100)]
dashdemux: Change first fragment selection for live streams

When dashdemux selects its first fragment, it always selects the
first fragment listed in the manifest. For on-demand content,
this is the correct behaviour. However for live content, this
behaviour is undesirable because the first fragment listed in the
manifest might be some considerable time behind "now".

The commit uses the host's idea of UTC and tries to find the
oldest fragment that contains samples for this time of day.

https://bugzilla.gnome.org/show_bug.cgi?id=701509

11 years agompegts: split dvb descriptors/enums into a separate file
Edward Hervey [Wed, 3 Jul 2013 16:52:18 +0000 (18:52 +0200)]
mpegts: split dvb descriptors/enums into a separate file

We will do the same once we have ATSC/ISDB/... descriptor parsing

11 years agompegts: Fix TOT section parsing
Edward Hervey [Wed, 3 Jul 2013 16:44:54 +0000 (18:44 +0200)]
mpegts: Fix TOT section parsing

And use it in example

11 years agoexamples: Fix a leak
Edward Hervey [Wed, 3 Jul 2013 16:00:55 +0000 (18:00 +0200)]
examples: Fix a leak

11 years agompegts: Split files and implement free functions
Edward Hervey [Wed, 3 Jul 2013 15:59:02 +0000 (17:59 +0200)]
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 :)

11 years agowin32: back to feature development
Edward Hervey [Wed, 3 Jul 2013 13:30:01 +0000 (15:30 +0200)]
win32: back to feature development

11 years agodashdemux: only generate index segment uri if there is a template
Thiago Santos [Wed, 3 Jul 2013 13:16:29 +0000 (10:16 -0300)]
dashdemux: only generate index segment uri if there is a template

Simple fix to avoid an assertion.

11 years agodashdemux: Implement inheritance for certain MPD elements
Greg Rutz [Fri, 21 Jun 2013 23:09:30 +0000 (17:09 -0600)]
dashdemux: Implement inheritance for certain MPD elements

According to the MPEG-DASH spec, certain elements (i.e.
SegmentBase, SegmentTemplate, and SegmentList) should inherit
attributes from the same elements in the containing AdaptationSet
or Period.

Updated the SegmentBase, SegmentTemplate, and SegmentList parsers
to properly inherit attributes from the corresponding elements in
AdaptationSet and/or Period.

https://bugzilla.gnome.org/show_bug.cgi?id=702677

11 years agodashdemux: Properly detect presence of xml attributes
Greg Rutz [Fri, 21 Jun 2013 21:51:46 +0000 (15:51 -0600)]
dashdemux: Properly detect presence of xml attributes

Convert all xml attribute/content parsing functions to return a
boolean value indicating whether or not the attribute/content was
present.  We need this finer-grained control in order to properly
implement the inheritance policies described in the spec

Also fixed several memory leak conditions when handling errors in
the xml attribute/content parsing functions.

https://bugzilla.gnome.org/show_bug.cgi?id=702677

11 years agodashdemux: change debug message from warning to info
Thiago Santos [Wed, 3 Jul 2013 00:31:48 +0000 (21:31 -0300)]
dashdemux: change debug message from warning to info

It isn't a warning/issue.

11 years agodashdemux: protect from access to empty list data
Thiago Santos [Wed, 3 Jul 2013 00:28:26 +0000 (21:28 -0300)]
dashdemux: protect from access to empty list data

Check if the list has elements before trying to access the last one
and causing a segfault

11 years agouridownloader: Simplify locking to fix deadlocks
Thiago Santos [Wed, 3 Jul 2013 02:16:59 +0000 (23:16 -0300)]
uridownloader: Simplify locking to fix deadlocks

Use object lock to protect variables from concurrent access and
use download_lock to only allow one download running

11 years agodashdemux: protect against failed header downloads
Thiago Santos [Tue, 2 Jul 2013 19:04:45 +0000 (16:04 -0300)]
dashdemux: protect against failed header downloads

Avoids criticals when downloaded fragment is NULL

11 years agoexamples: GstMpegTS => GstMpegTs
Edward Hervey [Wed, 3 Jul 2013 11:59:04 +0000 (13:59 +0200)]
examples: GstMpegTS => GstMpegTs

11 years agodvb: GstMpegTS => GstMpegTs
Edward Hervey [Wed, 3 Jul 2013 11:57:57 +0000 (13:57 +0200)]
dvb: GstMpegTS => GstMpegTs

11 years agompegtsdemux: GstMpegTS => GstMpegTs
Edward Hervey [Wed, 3 Jul 2013 11:57:38 +0000 (13:57 +0200)]
mpegtsdemux: GstMpegTS => GstMpegTs

11 years agolibs/mpegts: Rename GstMpegTS => GstMpegTs
Edward Hervey [Wed, 3 Jul 2013 11:56:22 +0000 (13:56 +0200)]
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

11 years agoexamples: Add an example of a mpeg-ts SI extractor
Edward Hervey [Mon, 1 Jul 2013 06:35:26 +0000 (08:35 +0200)]
examples: Add an example of a mpeg-ts SI extractor

Serves as an example of usage of the new mpegts library from an
application.

Will parse/dump all sections received on a bus.

Usage is ./tsparse <any gst-launch line using tsdemux or tsparse>

Examples:
  ./tsparse file:///some/mpegtsfile ! tsparse ! fakesink
  ./tsparse dvb://CHANNEL ! tsparse ! fakesink
  ./tsparse playbin uri=dvb://CHANNEL
  ./tsparse playbin uri=file:///some/mpegtsfile
  ...

https://bugzilla.gnome.org/show_bug.cgi?id=702724

11 years agodvb: Switch to MPEG-TS SI library
Edward Hervey [Sun, 23 Jun 2013 06:44:08 +0000 (08:44 +0200)]
dvb: Switch to MPEG-TS SI library

Also serves as an example of using mpegts library from a plugin

https://bugzilla.gnome.org/show_bug.cgi?id=702724

11 years agompegtsdemux: Switch to MPEG-TS SI library
Edward Hervey [Sun, 23 Jun 2013 06:43:23 +0000 (08:43 +0200)]
mpegtsdemux: Switch to MPEG-TS SI library

* Only mpeg-ts section packetization remains.
* Improve code to detect duplicated sections as early as possible
* Add FIXME for various issues that need fixing (but are not regressions)

https://bugzilla.gnome.org/show_bug.cgi?id=702724

11 years agogst-libs: New Mpeg-TS support library
Edward Hervey [Sun, 23 Jun 2013 06:41:12 +0000 (08:41 +0200)]
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

11 years agodashdemux: Handle case without an initialization segment
Olivier Crête [Mon, 10 Jun 2013 22:01:14 +0000 (18:01 -0400)]
dashdemux: Handle case without an initialization segment

If no initialization segment is defined, then don't print a
critical or a warning, just ignore it.

https://bugzilla.gnome.org/show_bug.cgi?id=701961

11 years agodash: save 1 or 2 string copies when getting fragment uris
Thiago Santos [Mon, 1 Jul 2013 21:22:46 +0000 (18:22 -0300)]
dash: save 1 or 2 string copies when getting fragment uris

Only create new string if required, saving maybe 1 or 2 str copies per
fragment.

11 years agodocs: add uridownloader lib to gtk-doc libs
Thiago Santos [Mon, 1 Jul 2013 21:15:43 +0000 (18:15 -0300)]
docs: add uridownloader lib to gtk-doc libs

fixes runtime linking error on windows

11 years agodashdemux: each fragment can have its own index
Thiago Santos [Mon, 1 Jul 2013 20:50:37 +0000 (17:50 -0300)]
dashdemux: each fragment can have its own index

Return index URI/range to dashdemux from the mpdparser to be able
to download and deliver them downstream for playback.

11 years agodashdemux: handle top-level index urls
Thiago Santos [Mon, 1 Jul 2013 16:19:15 +0000 (13:19 -0300)]
dashdemux: handle top-level index urls

Parse and provide access to top-level index segments if available.
dashdemux should push those whenever a header is pushed.

Fixes #700489

11 years agodashdemux: Fix critical error output when Initialization has no URL
Arthur Shipkowski [Mon, 6 May 2013 21:08:54 +0000 (17:08 -0400)]
dashdemux: Fix critical error output when Initialization has no URL

Issue evinced by
http://yt-dash-mse-test.commondatastorage.googleapis.com/car-20120827-manifest.mpd
which produces output like ** (gst-launch-1.0:8060): CRITICAL **:
gst_mpdparser_get_initializationURL: assertion `InitializationURL->sourceURL
!= NULL' failed

https://bugzilla.gnome.org/show_bug.cgi?id=700489

11 years agodashdemux: prevent crash by checking if the segment node is present
Thiago Santos [Mon, 1 Jul 2013 17:35:02 +0000 (14:35 -0300)]
dashdemux: prevent crash by checking if the segment node is present

Do not try to access range data if there is no segment node

11 years agodash: use same debug category for dashdemux and the mpd parser
Thiago Santos [Tue, 25 Jun 2013 21:34:13 +0000 (18:34 -0300)]
dash: use same debug category for dashdemux and the mpd parser

Makes debugging easier

11 years agodashdemux: add support for range based segments
Thiago Santos [Thu, 20 Jun 2013 06:52:31 +0000 (03:52 -0300)]
dashdemux: add support for range based segments

Use the mediaRange information and pass it to the uridownloader
to correctly download only the segment ranges indicated in the
MPD

https://bugzilla.gnome.org/show_bug.cgi?id=702206

11 years agouridownloader: add support for range based downloads
Thiago Santos [Wed, 19 Jun 2013 21:28:15 +0000 (18:28 -0300)]
uridownloader: add support for range based downloads

Adds a new API gst_uri_downloader_fetch_uri_with_range that allows
downloading only a byte range from an URI. It uses a seek event
sent to the source to signal the range to be downloaded.

https://bugzilla.gnome.org/show_bug.cgi?id=702206

11 years agoh264parser: Fix the return value type for the SEI palyload parsing methods.
Sreerenj Balachandran [Fri, 8 Mar 2013 23:49:23 +0000 (01:49 +0200)]
h264parser: Fix the return value type for the SEI palyload parsing methods.

The return value type of SEI payload parsing functions
are GstH264ParserResult.

https://bugzilla.gnome.org/show_bug.cgi?id=695475

11 years agosrtp: Don't require a key if both auth and cipher are null
Olivier Crête [Sat, 29 Jun 2013 00:15:08 +0000 (20:15 -0400)]
srtp: Don't require a key if both auth and cipher are null

11 years agosrtp: Move the enums to the common header
Olivier Crête [Sat, 29 Jun 2013 00:32:36 +0000 (20:32 -0400)]
srtp: Move the enums to the common header

The types are used in both the encoder and decoder

11 years agosrtp: Remove unused code
Olivier Crête [Sat, 29 Jun 2013 00:13:38 +0000 (20:13 -0400)]
srtp: Remove unused code

11 years agofrei0r: add the build prefix path in the search dirs
Andoni Morales Alastruey [Fri, 28 Jun 2013 10:25:59 +0000 (12:25 +0200)]
frei0r: add the build prefix path in the search dirs

11 years agodashdemux: Cleanup memory allocation/deallocation
Greg Rutz [Tue, 25 Jun 2013 16:26:24 +0000 (10:26 -0600)]
dashdemux: Cleanup memory allocation/deallocation

Ensure that g_free/xmlFree is used correctly based on how the
memory was allocated.

When deallocating GLists, there were many places that were using
g_list_foreach and g_list_free.  Converted these occurrences to
call g_list_free_full.

Add NULL checks to all xmlFree calls since the documentation does
not guarantee that passing NULL is safe

In places where we are strdup'ing memory allocated by libxml2,
changed those calls to use xmlMemStrdup().

There were several places where we were missing g_slice_free when
deallocating a top-level node structure.

https://bugzilla.gnome.org/show_bug.cgi?id=702837

11 years agompegdesc: Extend list of known descriptors
Edward Hervey [Mon, 24 Jun 2013 11:02:40 +0000 (13:02 +0200)]
mpegdesc: Extend list of known descriptors

Add the various ATSC ones

11 years agompegtsbase: Only warn for added streams when needed
Edward Hervey [Mon, 24 Jun 2013 06:24:58 +0000 (08:24 +0200)]
mpegtsbase: Only warn for added streams when needed

We use add_stream(stream_type:-1) to ensure a programs' PCR Stream is
also taken into account. For most programs this will re-use an
existing ES stream.

So only warn that we are re-adding a stream if it was already present
AND it is not to ensure the PCR stream is taken into account.

11 years agompegtspacketizer: Speed up section parsing
Edward Hervey [Sun, 23 Jun 2013 13:12:58 +0000 (15:12 +0200)]
mpegtspacketizer: Speed up section parsing

Only create subtables when needed. It was previously creating one every
single time ... to check if one was present.
And speed up code to detect whether a subtable was already present or not.

Overall makes section pushing 2 times faster.

11 years agompegdesc: Extend list of known descriptors
Edward Hervey [Mon, 24 Jun 2013 05:40:20 +0000 (07:40 +0200)]
mpegdesc: Extend list of known descriptors

From ITU-T H222.0 (06/2012). Freely available from itu.int

11 years agompegtspacketizer: Speedup packet parsing
Edward Hervey [Sun, 23 Jun 2013 13:26:14 +0000 (15:26 +0200)]
mpegtspacketizer: Speedup packet parsing

Avoid using bitshifting where not needed.

Speeds up packet parsing by 3% (this is *the* hotspot of mpeg-ts elements).

11 years agocodecparsers: Fix gtk-doc
Edward Hervey [Sat, 22 Jun 2013 06:57:12 +0000 (08:57 +0200)]
codecparsers: Fix gtk-doc

Detected by initial pre-run of gi-scanner.

11 years agodaaladec: Add decoder element
Sebastian Dröge [Sun, 23 Jun 2013 09:29:23 +0000 (11:29 +0200)]
daaladec: Add decoder element

11 years agodaalaenc: Add encoder element
Sebastian Dröge [Sun, 23 Jun 2013 08:04:29 +0000 (10:04 +0200)]
daalaenc: Add encoder element

11 years agodaala: Initial version of a Daala plugin
Sebastian Dröge [Sat, 22 Jun 2013 09:27:37 +0000 (11:27 +0200)]
daala: Initial version of a Daala plugin

11 years agosrtp: Fix dist
Edward Hervey [Sun, 23 Jun 2013 07:05:29 +0000 (09:05 +0200)]
srtp: Fix dist

The enums should not be dist-ed and instead be re-generated when
compiling.

11 years agompegtspacketizer: Better detect already seen section
Edward Hervey [Wed, 19 Jun 2013 18:39:54 +0000 (20:39 +0200)]
mpegtspacketizer: Better detect already seen section

In some cases (NIT on highly-populated DVB-C operator for example), there
will be more than one section emitted for the same subtable and version
number.

In order not to lose those updates for the same version number, we checked
against the CRC of the previous section we parsed.

The problem is that, while it made sure we didn't lose any information, it
also meant that if the same section came back (same version, same CRC) later
on we would re-process it, re-parse it and re-emit it.

This version improves on that by keeping a list of previously observed CRC
for identical PID/subtable/version-number and will only process sections if
they really were never seen in the past (as opposed to just before).

On a 30s clip, this brings down the number of NIT section parsing from 4541
down to 663.

https://bugzilla.gnome.org/show_bug.cgi?id=614479

11 years agowinscreencap: Initial port to 1.0
Sebastian Dröge [Thu, 20 Jun 2013 20:12:11 +0000 (22:12 +0200)]
winscreencap: Initial port to 1.0

11 years agoandroidmedia: Fix copying of raw video frames on Samsung Galaxy S3 with Exynos 4 SOC
Xavi Artigas [Thu, 20 Jun 2013 07:52:31 +0000 (09:52 +0200)]
androidmedia: Fix copying of raw video frames on Samsung Galaxy S3 with Exynos 4 SOC

11 years agoshmsink: unref buffer if no clients are connected
Aleix Conchillo Flaque [Wed, 19 Jun 2013 19:52:52 +0000 (12:52 -0700)]
shmsink: unref buffer if no clients are connected

If no client has received the command, unref the buffer. This will
make sure that the shared memory area does not get filled with buffers
no one knows about.

https://bugzilla.gnome.org/show_bug.cgi?id=702684

11 years agompegtspacketizer: Speed up NIT parsing
Edward Hervey [Wed, 19 Jun 2013 17:29:27 +0000 (19:29 +0200)]
mpegtspacketizer: Speed up NIT parsing

Avoid duplicating the delivery structure, and instead give it to the
receiving container.

11 years agompegtbase: simplify code
Edward Hervey [Fri, 7 Jun 2013 10:53:08 +0000 (12:53 +0200)]
mpegtbase: simplify code

We don't need generic methods for push/flush since we know all the
subclass that we control

11 years agompegtsdemux: Fix for compiling without GST_DEBUG
Edward Hervey [Wed, 5 Jun 2013 13:51:58 +0000 (15:51 +0200)]
mpegtsdemux: Fix for compiling without GST_DEBUG

Protect debug-only variables/usage, and in one case remove a useless
variable.

11 years agotsparse: Ensure initial events are sent in the right order
Edward Hervey [Mon, 17 Jun 2013 06:15:54 +0000 (08:15 +0200)]
tsparse: Ensure initial events are sent in the right order

First send stream-start, then caps, then segment.

The segment we push is from upstream in push-mode. If we work in pull-mode
then we initialize the base segment to BYTES.

https://bugzilla.gnome.org/show_bug.cgi?id=702422

11 years agoshmsink: propagate events to basesink class
Aleix Conchillo Flaque [Tue, 18 Jun 2013 19:29:41 +0000 (12:29 -0700)]
shmsink: propagate events to basesink class

https://bugzilla.gnome.org/show_bug.cgi?id=702597

11 years agowayland: Add support for RGBx and RGBA formats
Benjamin Gaignard [Tue, 18 Jun 2013 11:47:54 +0000 (13:47 +0200)]
wayland: Add support for RGBx and RGBA formats

Wayland interface could offer two buffers pixels formats: WL_SHM_FORMAT_XRGB8888 and WL_SHM_FORMAT_ARGB8888.
Update waylandsink to support them and check if the format is really available.

https://bugzilla.gnome.org/show_bug.cgi?id=702112

11 years agoopencv: fix CFLAGS order and add plugins base libs includes to CXXFLAGS
Tim-Philipp Müller [Tue, 18 Jun 2013 11:46:07 +0000 (12:46 +0100)]
opencv: fix CFLAGS order and add plugins base libs includes to CXXFLAGS

https://bugzilla.gnome.org/show_bug.cgi?id=702297

11 years agoopencv: fixes build by moving the c++ header to gstsegmentation.cpp
Alban Browaeys [Fri, 14 Jun 2013 22:12:18 +0000 (00:12 +0200)]
opencv: fixes build by moving the c++ header to gstsegmentation.cpp

Fixes:
In file included from gstsegmentation.h:51:0,
                 from gstopencv.c:42:
/usr/include/opencv2/video/background_segm.hpp:47:16: fatal error: list:
No such file or directory
 #include <list>
                ^
compilation terminated.

https://bugzilla.gnome.org/show_bug.cgi?id=702297

11 years agoapplemedia: fix release of null pointer
Andoni Morales Alastruey [Tue, 18 Jun 2013 11:33:14 +0000 (13:33 +0200)]
applemedia: fix release of null pointer

11 years agoapplemedia: coremediabuffer: fix leaking of apple media structs
Thiago Santos [Tue, 18 Jun 2013 11:17:52 +0000 (13:17 +0200)]
applemedia: coremediabuffer: fix leaking of apple media structs

remember to release the apple's api buffers to avoid huge leaking

11 years agoapplemedia: move defines to CPPFLAGS for obj-c files
Andoni Morales Alastruey [Tue, 18 Jun 2013 11:02:42 +0000 (13:02 +0200)]
applemedia: move defines to CPPFLAGS for obj-c files

11 years agodshowaudiosrc: fix audiocapture producing silence
Andoni Morales Alastruey [Tue, 11 Jun 2013 09:54:41 +0000 (11:54 +0200)]
dshowaudiosrc: fix audiocapture producing silence

Configure the capture latency using the IAMBufferNegotiation
interface and try to respect the configured latency-time and buffer-time

11 years agompegvideoparse: Make sure the buffer is writable before we add the MPEG video meta
Sebastian Dröge [Fri, 14 Jun 2013 12:52:07 +0000 (14:52 +0200)]
mpegvideoparse: Make sure the buffer is writable before we add the MPEG video meta

https://bugzilla.gnome.org/show_bug.cgi?id=702174

11 years agobuild: Fix some automake warnings
Sebastian Dröge [Thu, 13 Jun 2013 11:34:37 +0000 (13:34 +0200)]
build: Fix some automake warnings

11 years agotsdemux: fix M2TS stream resync
Arnaud Vrac [Mon, 27 May 2013 20:22:32 +0000 (22:22 +0200)]
tsdemux: fix M2TS stream resync

Sync byte scan is incorrect for M2TS streams because the timestamp 4
bytes were not included in the flush size. This can result in an
infinite loop.

Rework the scan code to be clearer and work in all cases.

11 years agotsdemux: move some debug prints at the log level
Arnaud Vrac [Fri, 24 May 2013 08:59:55 +0000 (10:59 +0200)]
tsdemux: move some debug prints at the log level

11 years agotsdemux: fixes seeking in pull mode
Josep Torra [Fri, 24 May 2013 08:59:59 +0000 (10:59 +0200)]
tsdemux: fixes seeking in pull mode

Preserve the current segment and observations in pull mode seeks with
flushing.

https://bugzilla.gnome.org/show_bug.cgi?id=698050