platform/upstream/gstreamer.git
10 years agopo: update translations
Tim-Philipp Müller [Mon, 29 Jul 2013 20:23:48 +0000 (21:23 +0100)]
po: update translations

10 years agoBack to development
Sebastian Dröge [Mon, 29 Jul 2013 12:48:02 +0000 (14:48 +0200)]
Back to development

10 years agoRelease 1.1.3
Sebastian Dröge [Mon, 29 Jul 2013 11:52:29 +0000 (13:52 +0200)]
Release 1.1.3

10 years agoUpdate .po files
Sebastian Dröge [Mon, 29 Jul 2013 11:52:24 +0000 (13:52 +0200)]
Update .po files

10 years agomidi: Fix handling of the SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 10:17:57 +0000 (12:17 +0200)]
midi: Fix handling of the SEGMENT query

10 years agogst: Don't swap start/stop for negative rates in the SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 10:14:08 +0000 (12:14 +0200)]
gst: Don't swap start/stop for negative rates in the SEGMENT query

10 years agompegdemux: Implement SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 09:02:34 +0000 (11:02 +0200)]
mpegdemux: Implement SEGMENT query

10 years agotsdemux: Implement SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 09:01:09 +0000 (11:01 +0200)]
tsdemux: Implement SEGMENT query

10 years agomxfdemux: Implement SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 09:00:14 +0000 (11:00 +0200)]
mxfdemux: Implement SEGMENT query

10 years agoall: Fix for GST_DISABLE_GST_DEBUG
Edward Hervey [Mon, 29 Jul 2013 07:35:08 +0000 (09:35 +0200)]
all: Fix for GST_DISABLE_GST_DEBUG

Where applicable, remove methods that don't do anything different than
the default implementation.

10 years agodocs/spec: Really remove all mentions of CELT plugin
Edward Hervey [Mon, 29 Jul 2013 06:46:39 +0000 (08:46 +0200)]
docs/spec: Really remove all mentions of CELT plugin

10 years agoh264parse: Show NALU string type in debug messages
Edward Hervey [Mon, 29 Jul 2013 06:29:34 +0000 (08:29 +0200)]
h264parse: Show NALU string type in debug messages

If you know the NALU type by heart I tip my hat to you, for the rest of
us mere mortals this is a bit more helpful

10 years agotsdemux: Remove unused macros
Edward Hervey [Mon, 29 Jul 2013 06:28:17 +0000 (08:28 +0200)]
tsdemux: Remove unused macros

10 years agotsdemux: Add more AC3 detection cases
Edward Hervey [Mon, 29 Jul 2013 06:23:30 +0000 (08:23 +0200)]
tsdemux: Add more AC3 detection cases

ATSC ac3 streams are always guaranteed to be AC3 if EAC3 descriptor
is not present
If stream registration id is 'AC-3' then it's also guaranteed to be AC3.
Finally if AC3 descriptor is present it's guaranteed to be AC3.

Only silences a warning, but still.

10 years agotsdemux: Flush out pending data on EOS
Edward Hervey [Mon, 29 Jul 2013 06:20:10 +0000 (08:20 +0200)]
tsdemux: Flush out pending data on EOS

Ensures downstream elements (like decoders) really get all the data

10 years agompegtspacketizer: More AFC flags
Edward Hervey [Mon, 29 Jul 2013 06:18:24 +0000 (08:18 +0200)]
mpegtspacketizer: More AFC flags

I should have put those in a previous commit. sorry :(

10 years agompegdefs: Simplify PCR/PTS/DTS => GST conversion macros
Edward Hervey [Mon, 29 Jul 2013 06:14:57 +0000 (08:14 +0200)]
mpegdefs: Simplify PCR/PTS/DTS => GST conversion macros

We know we will not overflow 64 bits, therefore just use direct
multiplication/division instead of the scale method (trims usage from
50 instruction calls to 2/3).

10 years agodvdspu: artifacts when rendering clipped spu
Matej Knopp [Sun, 28 Jul 2013 18:14:55 +0000 (20:14 +0200)]
dvdspu: artifacts when rendering clipped spu

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

10 years agompegvideoparse: do not update caps when bitrate changes
Matej Knopp [Sun, 28 Jul 2013 16:28:30 +0000 (18:28 +0200)]
mpegvideoparse: do not update caps when bitrate changes

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

10 years agoFix URIs in REQUIREMENTS
David Schleef [Sun, 28 Jul 2013 21:22:38 +0000 (14:22 -0700)]
Fix URIs in REQUIREMENTS

10 years agocelt: remove, replaced by opus.
David Schleef [Sun, 28 Jul 2013 20:12:32 +0000 (13:12 -0700)]
celt: remove, replaced by opus.

10 years agouvch264_mjpgdemux: Remove duplicated variables
Olivier Crête [Sun, 28 Jul 2013 15:29:32 +0000 (17:29 +0200)]
uvch264_mjpgdemux: Remove duplicated variables

10 years agouvch264_mjpgdemux: Don't unmap/unref buffer if it's pushed out as-is
Olivier Crête [Sun, 28 Jul 2013 15:25:10 +0000 (17:25 +0200)]
uvch264_mjpgdemux: Don't unmap/unref buffer if it's pushed out as-is

10 years agouvcv4l2_mjpegdemux: Unmap buffer
Robert Krakora [Fri, 26 Jul 2013 18:33:00 +0000 (18:33 +0000)]
uvcv4l2_mjpegdemux: Unmap buffer

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

10 years agoUpdate spec file to be current
Christian Fredrik Kalager Schaller [Sun, 28 Jul 2013 13:46:33 +0000 (15:46 +0200)]
Update spec file to be current

10 years agotsdemux: HDV only has mpeg 1 audio layer 2
Edward Hervey [Sat, 27 Jul 2013 10:17:34 +0000 (12:17 +0200)]
tsdemux: HDV only has mpeg 1 audio layer 2

Set that accordingly on the caps

10 years agoasfmux: Various debug argument fixes
Edward Hervey [Fri, 26 Jul 2013 15:31:22 +0000 (17:31 +0200)]
asfmux: Various debug argument fixes

mainly G_GUINT16_FORMAT to ... the right type (guint32 or guint8)

10 years agompg123: Remove dead assignment
Edward Hervey [Fri, 26 Jul 2013 15:25:42 +0000 (17:25 +0200)]
mpg123: Remove dead assignment

harder ? :)

10 years agoladspa: initialize debug category earlier
David Schleef [Fri, 26 Jul 2013 20:20:27 +0000 (13:20 -0700)]
ladspa: initialize debug category earlier

You know, before it's used.

10 years agompegtsdemux: Add more flag debugging for PES and TS packets
Edward Hervey [Fri, 26 Jul 2013 05:53:06 +0000 (07:53 +0200)]
mpegtsdemux: Add more flag debugging for PES and TS packets

Helps with debugging issues. And also remove unused variable (opcr)

This will also allow us in the future to properly detect:
* random-access location (to enable keyframe observation and
  potentially seeking
* discont location (to properly handle resets)
* splice location (to properly handle new stream changes)

10 years agocodecparser: Make warnings more meaningful
Edward Hervey [Wed, 24 Jul 2013 15:49:59 +0000 (17:49 +0200)]
codecparser: Make warnings more meaningful

By stating whether we don't have enough data or it's a corrupted
packet

10 years agopesparse: Demote a Warning
Edward Hervey [Wed, 24 Jul 2013 15:49:23 +0000 (17:49 +0200)]
pesparse: Demote a Warning

We actually now know what to do ... have a log message :)

11 years agompegtsmux: avoid using clipped out buffers
Vincent Penquerc'h [Thu, 25 Jul 2013 14:06:12 +0000 (15:06 +0100)]
mpegtsmux: avoid using clipped out buffers

If a buffer was entirely clipped out (ie, it's out of the segment
entirely), we'll end up with a NULL buffer, which we don't want
to process/dereference.

11 years agotsdemux: Remember requested seek rate and use it
Edward Hervey [Wed, 24 Jul 2013 13:50:14 +0000 (15:50 +0200)]
tsdemux: Remember requested seek rate and use it

The new seek handling re-creates the segment time information once it
has enough information after a seek.

The problem was that we'd completely ignore the requested rate. So store
that and use it in the newly created segment.

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

11 years agoapplemedia: atdec: destroy the queue if set_format fails
Alessandro Decina [Wed, 24 Jul 2013 07:18:43 +0000 (09:18 +0200)]
applemedia: atdec: destroy the queue if set_format fails

11 years agoapplemedia: atdec: remove c++ style comments
Alessandro Decina [Wed, 24 Jul 2013 07:15:49 +0000 (09:15 +0200)]
applemedia: atdec: remove c++ style comments

11 years agoapplemedia: atdec: 1st round of fixes
Alessandro Decina [Wed, 24 Jul 2013 07:11:59 +0000 (09:11 +0200)]
applemedia: atdec: 1st round of fixes

11 years agompegvideoparse: Fix codec_data handling
Edward Hervey [Tue, 23 Jul 2013 08:10:13 +0000 (10:10 +0200)]
mpegvideoparse: Fix codec_data handling

Set to sequence_offset so that _process_config accepts it.

(btw: seq_offset usage throughout this plugin is really dodgy)

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

11 years agotsdemux: Create and send codec tag
Edward Hervey [Fri, 14 Jun 2013 05:28:29 +0000 (07:28 +0200)]
tsdemux: Create and send codec tag

Helps with applications that rely on presence of that tag for user-facing
information.

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

11 years agohlsdemux: Implement pkcs7 unpadding
Sebastian Dröge [Tue, 23 Jul 2013 11:29:18 +0000 (13:29 +0200)]
hlsdemux: Implement pkcs7 unpadding

Every encrypted fragment will be a multiple of 128 bits, the last byte
contains the number of bytes that were added as padding in the end
and should be removed.

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

11 years agoapplemedia: add AudioToolbox based audio decoder
Alessandro Decina [Tue, 23 Jul 2013 08:30:39 +0000 (10:30 +0200)]
applemedia: add AudioToolbox based audio decoder

11 years agodecklink: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:33:21 +0000 (10:33 +0200)]
decklink: Add support for group-id in the stream-start event

11 years agomxfdemux: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:31:27 +0000 (10:31 +0200)]
mxfdemux: Add support for group-id in the stream-start event

11 years agotsdemux: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:24:22 +0000 (10:24 +0200)]
tsdemux: Add support for group-id in the stream-start event

11 years agotsparse: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:21:26 +0000 (10:21 +0200)]
tsparse: Add support for group-id in the stream-start event

11 years agompegdemux: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:15:58 +0000 (10:15 +0200)]
mpegdemux: Add support for group-id in the stream-start event

11 years agomidiparse: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:14:01 +0000 (10:14 +0200)]
midiparse: Add support for group-id in the stream-start event

11 years agomssdemux: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:11:49 +0000 (10:11 +0200)]
mssdemux: Add support for group-id in the stream-start event

11 years agoresindvd: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:09:38 +0000 (10:09 +0200)]
resindvd: Add support for group-id in the stream-start event

11 years agohlsdemux: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:07:24 +0000 (10:07 +0200)]
hlsdemux: Add support for group-id in the stream-start event

11 years agodash: Add support for group-id in the stream-start event
Sebastian Dröge [Tue, 23 Jul 2013 08:04:42 +0000 (10:04 +0200)]
dash: Add support for group-id in the stream-start event

11 years agointerlace: fix negotiation if filter caps are passed to query_caps
Tim-Philipp Müller [Mon, 22 Jul 2013 16:30:31 +0000 (17:30 +0100)]
interlace: fix negotiation if filter caps are passed to query_caps

Make videotestsrc ! interlace ! $anything work again. Problem
was that upstream filter caps were passed which contained
interlace-mode=progressive, which doesn't intersect too well
with interlace's source pad template caps, leading to
not-negotiated errors.

11 years agoh264parse: Don't abort on invalid streams
Olivier Crête [Mon, 22 Jul 2013 12:56:32 +0000 (14:56 +0200)]
h264parse: Don't abort on invalid streams

Just return an error

11 years agohls: fix for assert failure when using encrypted HLS streams
Alex Ashley [Fri, 19 Jul 2013 14:30:42 +0000 (15:30 +0100)]
hls: fix for assert failure when using encrypted HLS streams

When using an HLS encrypted stream, an assertion failure is thrown:
(gst-launch-1.0:31028): GLib-GObject-WARNING **: cannot register
existing type `GstFragment'

(gst-launch-1.0:31028): GLib-CRITICAL **: g_once_init_leave: assertion
`result != 0' failed

Eventually tracked this down to the call gst_fragment_new()
in function gst_hls_demux_decrypt_fragment.

The GstFragment class is defined in ext/hls/gstfragment.c and in
gst-libs/gst/uridownloader/gstfragment.c. Having two class definitions
with the same name causes the assert failure when trying to allocate
GstFragment. Deleting the version from hls and editing the
Makefile.am solves this assert failure.

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

11 years agodecklink: actually enable decklinksink
Youri Westerman [Fri, 19 Jul 2013 21:42:12 +0000 (23:42 +0200)]
decklink: actually enable decklinksink

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

11 years agodecklink: add "device-number" to select from multiple devices
Youri Westerman [Fri, 19 Jul 2013 18:09:28 +0000 (20:09 +0200)]
decklink: add "device-number" to select from multiple devices

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

11 years agompegvideoparse: Only map input buffer once
Edward Hervey [Mon, 22 Jul 2013 08:46:23 +0000 (10:46 +0200)]
mpegvideoparse: Only map input buffer once

Instead of constantly map/unmapping it a bit everywhere, we pass along
to all functions the GstMapInfo.

Makes mpeg video frame parsing 6% faster

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

11 years agotsdemux: disentangle requested program number from active program number
Douglas Bagnall [Sat, 9 Mar 2013 23:07:40 +0000 (12:07 +1300)]
tsdemux: disentangle requested program number from active program number

The program_number attribute was overloaded, trying to indicate both
the currently playing program, and the program requested via the
"program-number" property.  The end result was that setting the
property didn't work (see #690934).

I added a new requested_program_number field rather than reviving the
current_program_number field because it seemed this would result in
fewer changes overall and be less confusing.  It breaks symmetry with
the "program-number" property, but it retains parallels with the likes
of program->program_number.

Because gst_ts_demux_reset is called after the properties have been
parsed, requested_program_number is initialised in gst_ts_demux_init.
Whether this is exactly the right place, I don't know.

11 years agotsdemux: fix program-number functionality
Jesper Larsen [Wed, 6 Mar 2013 11:15:47 +0000 (12:15 +0100)]
tsdemux: fix program-number functionality

Setting the program-number property does not affect which program
is actually being demuxed.

Moving the initialization of the program_number from
gst_ts_demux_reset to gst_ts_demux_init seems to fix this issue.

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

11 years agoresindvd: Send stream-start event before anything else on the mpeg demuxer srcpads
Sebastian Dröge [Mon, 22 Jul 2013 07:18:32 +0000 (09:18 +0200)]
resindvd: Send stream-start event before anything else on the mpeg demuxer srcpads

11 years agompegdemux: do not push discont buffers if they aren't discont
Arnaud Vrac [Wed, 17 Jul 2013 15:12:59 +0000 (17:12 +0200)]
mpegdemux: do not push discont buffers if they aren't discont

Explicitly unset discont flag when it shouldn't be set.

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

11 years agograbcut: Add GrabCut segmentation element
Miguel Casas-Sanchez [Wed, 17 Jul 2013 09:28:28 +0000 (11:28 +0200)]
grabcut: Add GrabCut segmentation element

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

11 years agoh263parse: fix height extraction for H263p
Tim-Philipp Müller [Mon, 15 Jul 2013 22:01:31 +0000 (23:01 +0100)]
h263parse: fix height extraction for H263p

11 years agoh263parse: add pixel-aspect-ratio if upstream doesn't provide one
Tim-Philipp Müller [Mon, 15 Jul 2013 21:57:06 +0000 (22:57 +0100)]
h263parse: add pixel-aspect-ratio if upstream doesn't provide one

11 years agodashdemux: fix typo in check_queue_full function
Thiago Santos [Tue, 9 Jul 2013 15:49:55 +0000 (12:49 -0300)]
dashdemux: fix typo in check_queue_full function

It should return True when the queue IS full

Fixes #704226

11 years agompegtsdemux: Remember seek sequence number
Edward Hervey [Mon, 15 Jul 2013 09:15:11 +0000 (11:15 +0200)]
mpegtsdemux: Remember seek sequence number

* Avoids handling twice the same seek (can happen with playbin and files
  with subtitles)
* Set the sequence number of the segment event to the sequence number of
  the seek event that generated it (-1 for the initial one).

11 years agotsdemux: implement seeking in push mode
Arnaud Vrac [Fri, 24 May 2013 16:18:35 +0000 (18:18 +0200)]
tsdemux: implement seeking in push mode

11 years agotsdemux: recalculate new segment after byte seek
Arnaud Vrac [Tue, 28 May 2013 14:14:42 +0000 (16:14 +0200)]
tsdemux: recalculate new segment after byte seek

The seeking start time is approximated from the seek offset in bytes
using the accumulated PCR observations, so on a VBR stream there might
be a big difference between the actual PCR and the estimated one after
the seek. This might result in a long wait to skip all out of segments
packets.

Instead we just recalculate the new segment to start at the first PTS
after the seek, so that playback starts immediatly.

11 years agoUpdate docs and win32 config.h to development version
Tim-Philipp Müller [Sat, 13 Jul 2013 22:49:44 +0000 (23:49 +0100)]
Update docs and win32 config.h to development version

11 years agodocs: add newly-ported elements to docs
Tim-Philipp Müller [Fri, 12 Jul 2013 14:58:33 +0000 (15:58 +0100)]
docs: add newly-ported elements to docs

11 years agompegvideoparse: Use sequence_display_extension values to update the src caps
Sreerenj Balachandran [Thu, 11 Jul 2013 14:46:37 +0000 (17:46 +0300)]
mpegvideoparse: Use sequence_display_extension values to update the src caps

The caps should always represent what the user is supposed to see.
So if there is a sequence_display_extension associated with the
stream then use the display_horizontal_size/display_vertical_size
to update the src caps (if they are less than the values provided
by sequence header).

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

11 years agoRelease 1.1.2
Sebastian Dröge [Fri, 12 Jul 2013 07:45:38 +0000 (09:45 +0200)]
Release 1.1.2

Oops... should've been part of 1.1.2 tag already :(

11 years agoBack to development
Sebastian Dröge [Thu, 11 Jul 2013 14:57:20 +0000 (16:57 +0200)]
Back to development

11 years agoUpdate .po files
Sebastian Dröge [Thu, 11 Jul 2013 14:31:22 +0000 (16:31 +0200)]
Update .po files

11 years agompegpsmux: Send stream-start event before any data
Sebastian Dröge [Wed, 10 Jul 2013 10:28:38 +0000 (12:28 +0200)]
mpegpsmux: Send stream-start event before any data

11 years agompegtsdemux: Avoid parsing section without enough data
Edward Hervey [Mon, 8 Jul 2013 06:44:43 +0000 (08:44 +0200)]
mpegtsdemux: Avoid parsing section without enough data

This is actually a workaround (we'll be skipping the upcoming section)

This will only happen for sections where the beginning is located within
the last 8 bytes of a packet (which is the minimum we need to properly
identify any section beginning).

Later we should figure out a way to store those bytes and mark that
some analysis needs to happen. The probability of this happening is
too low for me to care right now and do that fix. There is a good chance
that section will eventually be repeated and won't end up on such border.

11 years agoexamples: Add BAT support to mpegts example
Edward Hervey [Mon, 8 Jul 2013 06:43:50 +0000 (08:43 +0200)]
examples: Add BAT support to mpegts example

11 years agompegts: Unify section checks and add BAT parsing
Edward Hervey [Mon, 8 Jul 2013 06:42:18 +0000 (08:42 +0200)]
mpegts: Unify section checks and add BAT parsing

* Avoid repeating code everywhere, and instead provide all parsing
  information in one go.
* Add BAT support
* Refine BAT/CAT identification (by adding PID checks)

11 years agompegtsdemux: Avoid vmethod calls
Edward Hervey [Sun, 7 Jul 2013 09:42:50 +0000 (11:42 +0200)]
mpegtsdemux: Avoid vmethod calls

Depending on usage, tsparse and tsdemux might not need to be called
when new section/pes-data is available.

11 years agompegtsdemux: Remove unneeded variables
Edward Hervey [Sun, 7 Jul 2013 08:25:27 +0000 (10:25 +0200)]
mpegtsdemux: Remove unneeded variables

* packet.origts is no longer used since the PCR refactoring done ages ago
* known_packet_size is a duplicate of packet_size != 0
* caps was never used outside of the packetizer

11 years agoh264parser: fix size caps to report cropped dimensions.
Gwenole Beauchesne [Tue, 9 Jul 2013 09:39:46 +0000 (11:39 +0200)]
h264parser: fix size caps to report cropped dimensions.

Restore the original h264parser behaviour to report cropped dimensions
in size caps.

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

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11 years agocodecparsers: h264: fix calculation of the frame cropping rectangle.
Gwenole Beauchesne [Mon, 8 Jul 2013 16:44:24 +0000 (18:44 +0200)]
codecparsers: h264: fix calculation of the frame cropping rectangle.

Fix calculation of the frame cropping rectangle, and more precisely
the actual cropped height. The frame_crop_top_offset subtraction
was not scaled up with SubHeightC.

Also clean-up variables to align more with (7-18) to (7-21).

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11 years agoh264parser: Parse the cropping-rectangle separately.
Sreerenj Balachandran [Fri, 15 Feb 2013 12:18:49 +0000 (14:18 +0200)]
h264parser: Parse the cropping-rectangle separately.

Assign the un-cropped width/height to sps->width/sps->height
during sps header parsing. Added new fields to SPS header structure
to provide the crop-rectangle dimensions.

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

11 years agodashdemux: implement queue full check function
Thiago Santos [Wed, 3 Jul 2013 19:38:33 +0000 (16:38 -0300)]
dashdemux: implement queue full check function

Checks if the queue is full according to max buffering time
set by the user

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

11 years agodashdemux: minor refactor
Thiago Santos [Tue, 9 Jul 2013 03:47:07 +0000 (00:47 -0300)]
dashdemux: minor refactor

Split one very large function into 2 smaller but still large functions.

Also change the if conditions to positive checks to improve readability.

11 years agodashdemux: handle live playback resync
Thiago Santos [Tue, 9 Jul 2013 02:24:28 +0000 (23:24 -0300)]
dashdemux: handle live playback resync

During a live stream it is possible for dashdemux to lag behind on a
slow connection or to rush ahead of the connection os too fast.

For the first case it is necessary to jump some segments ahead to be able to
continue playback as old segments are usually deleted from the server.

For the later, dashdemux should wait a little before attempting another
download do give time to the server to produce a new segment

11 years agodashdemux: fix template based segment generation
Thiago Santos [Fri, 5 Jul 2013 16:22:17 +0000 (13:22 -0300)]
dashdemux: fix template based segment generation

When using a template based segment list, do not try to
contruct a finite segment list for the limits of the available periods.

We might not know when the period ends (for live streams) and we can
always create the segment on demand when requested by dashdemux,
avoiding use of some memory and cpu when re-creating this list.

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