Arnaud Vrac [Fri, 24 May 2013 16:18:35 +0000 (18:18 +0200)]
tsdemux: implement seeking in push mode
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.
Tim-Philipp Müller [Sat, 13 Jul 2013 22:49:44 +0000 (23:49 +0100)]
Update docs and win32 config.h to development version
Tim-Philipp Müller [Fri, 12 Jul 2013 14:58:33 +0000 (15:58 +0100)]
docs: add newly-ported elements to docs
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
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 :(
Sebastian Dröge [Thu, 11 Jul 2013 14:57:20 +0000 (16:57 +0200)]
Back to development
Sebastian Dröge [Thu, 11 Jul 2013 14:31:22 +0000 (16:31 +0200)]
Update .po files
Sebastian Dröge [Wed, 10 Jul 2013 10:28:38 +0000 (12:28 +0200)]
mpegpsmux: Send stream-start event before any 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.
Edward Hervey [Mon, 8 Jul 2013 06:43:50 +0000 (08:43 +0200)]
examples: Add BAT support to mpegts example
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)
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.
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
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>
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>
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
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
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.
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
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.
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.
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
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
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.
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.
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
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 :(
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
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
Edward Hervey [Sat, 6 Jul 2013 08:59:08 +0000 (10:59 +0200)]
examples: Registration descriptor support
And output the length of the descriptors
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
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
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
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
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>
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>
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>
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>
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>
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>
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>
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
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.
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 ...
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
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
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.
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.
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
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
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
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
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
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
Edward Hervey [Wed, 3 Jul 2013 16:44:54 +0000 (18:44 +0200)]
mpegts: Fix TOT section parsing
And use it in example
Edward Hervey [Wed, 3 Jul 2013 16:00:55 +0000 (18:00 +0200)]
examples: Fix a leak
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 :)
Edward Hervey [Wed, 3 Jul 2013 13:30:01 +0000 (15:30 +0200)]
win32: back to feature development
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.
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
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
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.
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
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
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
Edward Hervey [Wed, 3 Jul 2013 11:59:04 +0000 (13:59 +0200)]
examples: GstMpegTS => GstMpegTs
Edward Hervey [Wed, 3 Jul 2013 11:57:57 +0000 (13:57 +0200)]
dvb: GstMpegTS => GstMpegTs
Edward Hervey [Wed, 3 Jul 2013 11:57:38 +0000 (13:57 +0200)]
mpegtsdemux: 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
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
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
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
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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
Olivier Crête [Sat, 29 Jun 2013 00:13:38 +0000 (20:13 -0400)]
srtp: Remove unused code
Andoni Morales Alastruey [Fri, 28 Jun 2013 10:25:59 +0000 (12:25 +0200)]
frei0r: add the build prefix path in the search dirs
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
Edward Hervey [Mon, 24 Jun 2013 11:02:40 +0000 (13:02 +0200)]
mpegdesc: Extend list of known descriptors
Add the various ATSC ones
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.
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.
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
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).
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.
Sebastian Dröge [Sun, 23 Jun 2013 09:29:23 +0000 (11:29 +0200)]
daaladec: Add decoder element
Sebastian Dröge [Sun, 23 Jun 2013 08:04:29 +0000 (10:04 +0200)]
daalaenc: Add encoder element
Sebastian Dröge [Sat, 22 Jun 2013 09:27:37 +0000 (11:27 +0200)]
daala: Initial version of a Daala plugin
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.