Commit graph

5740 commits

Author SHA1 Message Date
Edward Hervey
c28acaa3c5 mpegtspacketizer: Fix PCR LUT table
We were only resetting the first 512 values of the lookup table instead
of the whole 8192.
This resulted in any PCR PID over 0x0200 ... ending up taking the first PCR
table around :(
2013-08-02 10:41:25 +02:00
Tim-Philipp Müller
646ba6b3df mpegts: private/teletext -> application/x-teletext 2013-07-30 16:08:17 +01:00
Sebastian Dröge
f2b14c68d5 midi: Fix handling of the SEGMENT query 2013-07-29 12:17:57 +02:00
Sebastian Dröge
6812f96de4 gst: Don't swap start/stop for negative rates in the SEGMENT query 2013-07-29 12:14:08 +02:00
Sebastian Dröge
38e832cdef mpegdemux: Implement SEGMENT query 2013-07-29 11:02:55 +02:00
Sebastian Dröge
12981a5d82 tsdemux: Implement SEGMENT query 2013-07-29 11:02:55 +02:00
Sebastian Dröge
6b78fa336d mxfdemux: Implement SEGMENT query 2013-07-29 11:02:54 +02:00
Edward Hervey
97426a1caa all: Fix for GST_DISABLE_GST_DEBUG
Where applicable, remove methods that don't do anything different than
the default implementation.
2013-07-29 09:42:12 +02:00
Edward Hervey
3ee8aa2c2d 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
2013-07-29 09:42:12 +02:00
Edward Hervey
a45aa8fe48 tsdemux: Remove unused macros 2013-07-29 09:42:12 +02:00
Edward Hervey
edd69b2989 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.
2013-07-29 09:42:11 +02:00
Edward Hervey
a76c658e8d tsdemux: Flush out pending data on EOS
Ensures downstream elements (like decoders) really get all the data
2013-07-29 09:42:11 +02:00
Edward Hervey
ca77865bce mpegtspacketizer: More AFC flags
I should have put those in a previous commit. sorry :(
2013-07-29 09:42:11 +02:00
Edward Hervey
cea403eaa5 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).
2013-07-29 09:42:11 +02:00
Matej Knopp
f42176b877 dvdspu: artifacts when rendering clipped spu
https://bugzilla.gnome.org/show_bug.cgi?id=705039
2013-07-29 08:43:25 +02:00
Matej Knopp
bcff370c43 mpegvideoparse: do not update caps when bitrate changes
https://bugzilla.gnome.org/show_bug.cgi?id=705035
2013-07-29 08:41:50 +02:00
Edward Hervey
e6ebd9024e tsdemux: HDV only has mpeg 1 audio layer 2
Set that accordingly on the caps
2013-07-27 12:18:36 +02:00
Edward Hervey
2c4f994db4 asfmux: Various debug argument fixes
mainly G_GUINT16_FORMAT to ... the right type (guint32 or guint8)
2013-07-27 06:39:16 +02:00
Edward Hervey
8c60e42070 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)
2013-07-26 08:17:17 +02:00
Edward Hervey
dbe350d380 pesparse: Demote a Warning
We actually now know what to do ... have a log message :)
2013-07-26 06:46:41 +02:00
Vincent Penquerc'h
5c82a510d9 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.
2013-07-25 15:06:12 +01:00
Edward Hervey
1f7fa9be1d 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
2013-07-24 15:51:46 +02:00
Edward Hervey
06717150bf 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
2013-07-23 18:16:32 +02:00
Edward Hervey
069a497d19 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
2013-07-23 15:11:51 +02:00
Sebastian Dröge
46e85b4a6c mxfdemux: Add support for group-id in the stream-start event 2013-07-23 10:33:31 +02:00
Sebastian Dröge
44e404fe41 tsdemux: Add support for group-id in the stream-start event 2013-07-23 10:33:31 +02:00
Sebastian Dröge
2a1877909f tsparse: Add support for group-id in the stream-start event 2013-07-23 10:33:31 +02:00
Sebastian Dröge
4ec7baa61a mpegdemux: Add support for group-id in the stream-start event 2013-07-23 10:33:31 +02:00
Sebastian Dröge
a68733ea91 midiparse: Add support for group-id in the stream-start event 2013-07-23 10:33:31 +02:00
Tim-Philipp Müller
580a94d18b 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.
2013-07-22 17:32:50 +01:00
Olivier Crête
6a1896d805 h264parse: Don't abort on invalid streams
Just return an error
2013-07-22 16:27:16 +02:00
Edward Hervey
1db3d40a4b 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
2013-07-22 10:46:23 +02:00
Douglas Bagnall
dfb101e0ed 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.
2013-07-22 09:53:46 +02:00
Jesper Larsen
8e4f966018 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
2013-07-22 09:53:46 +02:00
Arnaud Vrac
506abb06e2 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
2013-07-17 18:36:30 +01:00
Tim-Philipp Müller
ff495342f2 h263parse: fix height extraction for H263p 2013-07-15 23:04:35 +01:00
Tim-Philipp Müller
79249be0aa h263parse: add pixel-aspect-ratio if upstream doesn't provide one 2013-07-15 23:04:35 +01:00
Edward Hervey
1b1b3a40d7 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).
2013-07-15 11:20:40 +02:00
Arnaud Vrac
024aa47f64 tsdemux: implement seeking in push mode 2013-07-15 11:20:40 +02:00
Arnaud Vrac
388c28381f 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.
2013-07-15 10:51:28 +02:00
Sreerenj Balachandran
654744a03c 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
2013-07-12 10:06:05 +02:00
Sebastian Dröge
1e7b3a8c9e Release 1.1.2
Oops... should've been part of 1.1.2 tag already :(
2013-07-12 09:46:11 +02:00
Sebastian Dröge
f83e9405de mpegpsmux: Send stream-start event before any data 2013-07-10 12:28:38 +02:00
Edward Hervey
8ca1751f00 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.
2013-07-09 12:25:11 +02:00
Edward Hervey
2fb7b87140 mpegtsdemux: Avoid vmethod calls
Depending on usage, tsparse and tsdemux might not need to be called
when new section/pes-data is available.
2013-07-09 12:25:11 +02:00
Edward Hervey
61b30175b3 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
2013-07-09 12:25:11 +02:00
Gwenole Beauchesne
18984f98dd 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>
2013-07-09 12:15:07 +02:00
Edward Hervey
f58f13e874 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
2013-07-07 08:29:37 +02:00
Edward Hervey
513417e0ff mpegtbase: Fix switch/case typo
Ended up trying to analyze PMT ... with a PAT :(
2013-07-07 07:21:46 +02:00
Edward Hervey
1c96c79b88 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
2013-07-06 14:50:52 +02:00
Edward Hervey
a3b6b1a951 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
2013-07-06 10:59:54 +02:00
Brendan Long
f53e66f4c6 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
2013-07-05 18:32:43 +01:00
Gwenole Beauchesne
d10acd3879 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>
2013-07-05 17:39:28 +02:00
Edward Hervey
9da7551993 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
2013-07-05 17:25:17 +02:00
Edward Hervey
b7bba5658a mpegtsdemux: Fix compilation with debugging disabling
We previously weren't using that variable ...
2013-07-05 10:57:34 +02:00
Edward Hervey
7814ed196b 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
2013-07-04 08:45:32 +02:00
Edward Hervey
1f2bb15618 mpegtsdemux: GstMpegTS => GstMpegTs 2013-07-03 14:00:58 +02:00
Edward Hervey
92edd82c86 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
2013-07-03 09:17:25 +02:00
Andoni Morales Alastruey
977bf98b44 frei0r: add the build prefix path in the search dirs 2013-06-28 12:40:52 +02:00
Edward Hervey
358a68e65b mpegdesc: Extend list of known descriptors
Add the various ATSC ones
2013-06-24 14:55:28 +02:00
Edward Hervey
26689fc437 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.
2013-06-24 08:24:58 +02:00
Edward Hervey
f9b3b46ab5 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.
2013-06-24 07:49:34 +02:00
Edward Hervey
15e3afc099 mpegdesc: Extend list of known descriptors
From ITU-T H222.0 (06/2012). Freely available from itu.int
2013-06-24 07:49:34 +02:00
Edward Hervey
9fd7f1c082 mpegtspacketizer: Speedup packet parsing
Avoid using bitshifting where not needed.

Speeds up packet parsing by 3% (this is *the* hotspot of mpeg-ts elements).
2013-06-24 07:49:34 +02:00
Edward Hervey
0592bcc3c9 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
2013-06-23 09:06:15 +02:00
Edward Hervey
c0ce94dbf2 mpegtspacketizer: Speed up NIT parsing
Avoid duplicating the delivery structure, and instead give it to the
receiving container.
2013-06-19 19:31:12 +02:00
Edward Hervey
40bcf48b0c mpegtbase: simplify code
We don't need generic methods for push/flush since we know all the
subclass that we control
2013-06-19 12:29:47 +02:00
Edward Hervey
79e63e3daf mpegtsdemux: Fix for compiling without GST_DEBUG
Protect debug-only variables/usage, and in one case remove a useless
variable.
2013-06-19 12:29:46 +02:00
Edward Hervey
e66d543f00 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
2013-06-19 07:40:28 +02:00
Sebastian Dröge
d50625eeb0 mpegvideoparse: Make sure the buffer is writable before we add the MPEG video meta
https://bugzilla.gnome.org/show_bug.cgi?id=702174
2013-06-14 14:53:52 +02:00
Arnaud Vrac
a5402d6eeb 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.
2013-06-12 08:01:24 +02:00
Arnaud Vrac
065d421d34 tsdemux: move some debug prints at the log level 2013-06-12 08:01:20 +02:00
Josep Torra
28a2902a7b 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
2013-06-12 08:01:06 +02:00
Hans de Goede
28e64d1031 wrappercamerabinsrc: Add video-source-filter during construction
By adding the video-source-filter during construction time, rather then
patching it in later (*), we can greatly reduce the amount of caps involved
in negotation, speeding up pipeline creation.

I wrote this while working on speeding up the startup of cheese. My cheese
has been modified to add a capsfilter, filtering for only the configured
resolution, with that cheese patch + this patch, the pipeline creation time
goes from aprox 1.1 seconds to aprox 350ms. This is with a Logitech 9000
pro camera, which supports lots of different resolutions at many different
framerates per resolution, causing a caps "explosion" if not filtered.

*) Note the code for this is left in, as it is still necessary if the
video-source-filter is changed between a stop + re-start.

https://bugzilla.gnome.org/show_bug.cgi?id=701953
2013-06-11 12:47:53 +02:00
Hans de Goede
8dc7fae455 wrappercamerabinsrc: Don't unset the video-source property on pipeline start
check_and_replace_src() was setting self->app_vid_src to NULL, which
means that an app setting the video-source property, and then starting,
stopping and re-starting the pipeline (ie to make changes to the
video-source-filter property) would after the restart no longer have
a video-source.

This patch fixes this by making gst_camerabin_setup_default_element return a
ref to the passed in user_element, rather then returning the user_element as
is, so that that ref can be passed on to the bin, and the app_vid_src ref
stays valid.

https://bugzilla.gnome.org/show_bug.cgi?id=701915
2013-06-10 16:16:29 +02:00
Sebastian Dröge
c383dd6420 rfb: Link with libgstbase for GstPushSrc 2013-06-07 15:18:15 +02:00
Alban Browaeys
44b1bc6081 mpegdemux: accept ID_PRIVATE_STREAM_1 to avoid loosing sync
Current fallback to lost_sync seems to impede a delay to restore
sync. Let the parser parse and skip the private stream.
Here it contains the digital camera brand (in 2010 bytes)
and is repeated twice.

https://bugzilla.gnome.org/show_bug.cgi?id=697283
2013-06-07 12:57:03 +02:00
Ilya Smelykh
ef0e051e7d h264parse: Wait until SPS/PPS before outputting any data
https://bugzilla.gnome.org/show_bug.cgi?id=646327
2013-06-07 12:10:08 +02:00
Sebastian Dröge
37427ccaef Release 1.1.1 2013-06-05 18:29:49 +02:00
Edward Hervey
0809770d26 mpegtspacketizer: Fix leak
Since we were manually setting GValue to the GValueArray, we also need
to specify how many were set, otherwise all values in the array will
be leaked.
2013-06-05 15:23:18 +02:00
Edward Hervey
877019ae00 mpegtspacketizer: Speedup TDT/TOT parsing
Use quarks where needed, makes it 2.5 times faster
2013-06-05 13:39:14 +02:00
Edward Hervey
824f08d1d8 mpegtspacketizer: Fix string leak
The description/text get copied in the structure.
2013-06-05 13:21:29 +02:00
Edward Hervey
f3bf40e2b0 mpegtspacketizer: Speed up descriptor parsing/packing
descriptors are stored as a GValueArray of GString. The downside is
that there is no way to "pass" ownership of a GValue to a GValueArray
which previously resulted in expensive copy/free of the (already expensive)
GString.

Here we estimate first the size of the GValueArray, then create it,
then directly use the GValue of that array.

Speeds up total SI parsing by ~30%
2013-06-05 12:49:09 +02:00
Edward Hervey
e6f0986b9e mpegtspacketizer: Use gst_value_list_append_and_take_value
Avoids doing the expensive copy of structures/arrays/...

Speeds up parsing SI by about 50%
2013-06-05 12:48:05 +02:00
Edward Hervey
b378b7e9d6 mpegtspacketizer: Avoid copying GValueArray
Just give the GValueArray to the container GValue.
2013-06-05 11:27:05 +02:00
Sebastian Dröge
b8cb2b4d79 midiparse: In pull mode drop SEGMENT, CAPS and STREAM_START events
We create and send our own later from another thread.
2013-05-28 15:55:25 +02:00
Sebastian Dröge
357779d3c6 midiparse: Push stream-start event before anything else 2013-05-28 15:55:25 +02:00
Stefan Sauer
116f7c0a77 audiochannelmix: fill in the author template
The copyright header still contained the author template.
2013-05-26 14:29:54 +02:00
Michael Rubinstein
e6c8224609 mpegtsdemux: Free memory behind GString if we don't use it
https://bugzilla.gnome.org/show_bug.cgi?id=700903
2013-05-25 15:49:21 +02:00
Edward Hervey
ce441cbff7 mpegtsbase: Post an error message when EOS'ing without source pads
This ensures we don't "hang" when files can't be decoded, or contain
no valid streams.
2013-05-23 14:59:34 +02:00
Edward Hervey
7837cab44e tsdemux: Demote a warning to debug level
We will get it for virtually every first packets.
2013-05-23 14:59:34 +02:00
David Schleef
35018ae632 audiofx: Add plugin, add audiochannelmix 2013-05-18 14:02:18 -07:00
Tim-Philipp Müller
a204ddd225 videosignal: fix CFLAGS order 2013-05-18 12:21:59 +01:00
Sebastian Dröge
f0a1935119 mpegtsmux: Push stream-start event before anything else 2013-05-15 11:38:35 +02:00
Sebastian Dröge
a5ac2d3aee audiovisualizer: Enable GLib deprecation warnings again 2013-05-15 11:02:29 +02:00
Sebastian Dröge
3d09d0068d audiovisualizer: Negotiate as soon as possible when getting the sinkpad caps 2013-05-15 11:00:46 +02:00
Sebastian Dröge
3de73279df asfmux: Send stream-start event 2013-05-15 10:56:20 +02:00
Tim-Philipp Müller
f0039c6dc3 nsf: remove nsf plugin, replaced by gme plugin
https://bugzilla.gnome.org/show_bug.cgi?id=648021
2013-05-14 00:14:34 +01:00
David Schleef
e5288a2464 intervideosrc: Fix timestamp generation 2013-05-11 12:07:36 -07:00
Tim-Philipp Müller
146e78ffdb rfbsrc: post error messages on errors 2013-05-11 19:42:31 +01:00
David Schleef
e79b977fdb videofilters: Add videodiff element 2013-05-10 17:40:17 -07:00
David Schleef
4b7f0d99f0 y4mdec: set timestamps when restriding buffer 2013-05-10 17:40:17 -07:00
David Schleef
4a88eebe0e videomark/detect: rename to simplevideomark[detect] 2013-05-10 17:31:10 -07:00
David Schleef
b3ff0630e8 videomark/detect: port to 1.0 2013-05-10 17:31:10 -07:00
Tim-Philipp Müller
4cfa3f5af3 rfbsrc: fix rfbdecoder new/free asymetry and wrong free in error case
If rfb_decoder_new() allocates the decoder sructure, rfb_decoder_free()
should free the structure. We should not free the decoder when an
error occurs during connection - it holds lots of configuration/state
and will be freed later in finalize.
2013-05-11 00:36:06 +01:00
Tim-Philipp Müller
14d20271c1 rfbsrc: make authentication handshake safe for multiple instances
Move DES key into context struct.
2013-05-11 00:29:40 +01:00
Tim-Philipp Müller
0fc4af8498 rfbsrc: remove GPL-licensed source file
and replace the 1% of it that we need with new code, so we
don't have to change the runtime license of rfbsrc to GPL.
2013-05-10 23:11:05 +01:00
Aleix Conchillo Flaque
90e006513a rfbsrc: use glib gio sockets for network access
https://bugzilla.gnome.org/show_bug.cgi?id=700038
2013-05-10 20:52:29 +01:00
Aleix Conchillo Flaque
42783e676e rfbsrc: port to 1.0
https://bugzilla.gnome.org/show_bug.cgi?id=700038
2013-05-10 20:43:16 +01:00
Greg Rutz
4d4fd09a3a mpegtsmux: Fix memory leak when using prepare_func
prepare_func will allocate a new buffer to replace the original
one. Instead of using gst_buffer_replace (which causes an extra
refcount increment on the new buffer), we just unref the original
buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=699786
2013-05-07 16:37:49 +02:00
Matej Knopp
946ffd0da5 mpegvideoparse: don't compare buffer size when checking whether to update caps
https://bugzilla.gnome.org/show_bug.cgi?id=699398
2013-05-03 12:52:18 +02:00
Tim-Philipp Müller
f1a6d84a6c mpegvideoparse: don't announce incomplete source caps
Don't send any source caps yet if we're still in
drop-buffers-until-we-get-a-sequence-header mode.

Fixes transmuxing of many MPEG-TS/PS streams into
formats which require things like width, height or
codec_data on the input caps.

Also fixes issues when using playbin with decoder
sinks that want width/height etc.

https://bugzilla.gnome.org/show_bug.cgi?id=695879
2013-05-01 17:42:11 +01:00
Olivier Crête
6e5db57d24 liveadder: Document that the latency is in milliseconds
Bug #698896
2013-04-26 15:33:18 -04:00
Edward Hervey
65ba9b4756 tsdemux: convert packet PTS/DTS as soon as possible
We let the mpegtspacketizer deal with pcr wraparound/resets.

https://bugzilla.gnome.org/show_bug.cgi?id=674536
2013-04-26 15:49:18 +02:00
Edward Hervey
05b51dfec0 mpegtsdemux: header cleanups/updates 2013-04-26 15:49:18 +02:00
Josep Torra
b946de7211 h264parse: Update src pad caps when it was explicitly signaled
Fixes src pad caps aren't updated when converting from AVC to bytestream
and new caps had been received in the sink pad.

https://bugzilla.gnome.org/show_bug.cgi?id=698679
2013-04-26 10:38:36 +02:00
Thiago Santos
d8b8809d57 tsdemux: Fix caps string leak 2013-04-24 12:28:17 +02:00
Wim Taymans
57ed87f51b aiff: port to 1.0 2013-04-18 17:18:49 +02:00
Greg Rutz
2306d51d9d tsdemux: Add support for Motorola DigiCipher II MPEG2 video
Since there is a conflict between the DCII stream type and BluRay
stream types, moved the processing of BluRay-specific stream types
to the beginning of the function.  Only if a BluRay stream type
IS NOT found do we proceed to check the rest of the stream type
identifiers

Previous code was also "sort-of" handling a similar conflict between
BluRay AC3 audio and standard AC3 audio.  Moved the special case BluRay
AC3 handling in the main switch statement to the new BluRay-specific
switch.

https://bugzilla.gnome.org/show_bug.cgi?id=697892
2013-04-18 09:30:58 +02:00
Youness Alaoui
ece3d1c2f6 h264parse: Do not check for VUI parameters if they were not present in the SPS 2013-04-16 19:58:06 -04:00
David Schleef
303a2eaec4 mpegtsdemux: check value before using as denominator 2013-04-15 17:05:30 -07:00
Sebastian Dröge
e51cd4fe2f gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
Wim Taymans
9699a974ca sdpdemux: fix timeout value
Timeout on udpsrc is in nanoseconds in 1.0
2013-04-15 09:28:05 +02:00
Alexander Olsson
90229af34c jpegparse: accept any jpeg input - parsed, unparsed or unmarked
The src element may not include information about whether
the data is parsed or not. Hence do not require parsed=false.

Fixes multipartdemux ! jpegparse ! ...

https://bugzilla.gnome.org/show_bug.cgi?id=697884
2013-04-13 13:54:52 +01:00
David Schleef
8552396c36 videoanalyse: port to 1.0 2013-04-12 14:11:09 -07:00
David Schleef
83862968a3 videofiltersbad: port to 1.0 2013-04-12 14:11:06 -07:00
Matej Knopp
13ac73bef4 mpegdemux: decrease log priority for repeating messages
https://bugzilla.gnome.org/show_bug.cgi?id=697834
2013-04-12 00:18:36 +01:00
Sebastian Dröge
2713fd1058 tsdemux: Check the continuity counter for non-section packets too
And if we detect a discontinuity there (like... when losing packets
or having MPEGTS over raw UDP with out-of-order packets) we just
drop the corresponding packet.

A future version could try to implement a re-ordering algorithm based
on that, similar to what rtpjitterbuffer does.
2013-04-11 13:11:44 +02:00
Stefan Sauer
2991e1ed48 mfxdemus: update todo (ther eis a muxer) 2013-04-11 10:06:23 +02:00
Sebastian Dröge
4ca886c53b mpegtsbase: Call ::program_stopped after removing all streams
Subclasses want to access the program while removing the streams
and will currently crash because of dereferencing NULL in some cases.
2013-04-10 16:19:00 +02:00
Alexander Schrab
3320f29a88 watchdog: race between g_main_loop_run/_quit fixed
https://bugzilla.gnome.org/show_bug.cgi?id=697694
2013-04-10 10:36:19 +01:00
David Schleef
329c250a41 watchdog: fix event handling 2013-04-09 15:43:35 -07:00
David Schleef
63a2fac9a9 yadif: remove extra template code 2013-04-09 15:43:35 -07:00
David Schleef
45cb1195a6 ivtc: remove transform_size, it's not needed 2013-04-09 15:43:35 -07:00
David Schleef
9fd00c01a3 interaudiosink: fix leak when not connected 2013-04-09 15:36:17 -07:00
Edward Hervey
98265d0b28 tsdemux: Add support for TrueHD audio 2013-04-07 18:41:38 +02:00
Tim-Philipp Müller
a84e2ccbb8 audiovisualizer: shaders assume 32bpp
Backport fix for crashes and invalid writes in totem from libvisual
in -base, to minimise differences to version in -base and to make
sure the bug doesn't sneak back in later when the base class is
made public.

The shader code looks like it makes assumptions that are not
necessarily always true, even if they're true for now for the
existing elements, namly that pixel stride is 4, for example.

See https://bugzilla.gnome.org/show_bug.cgi?id=683527
2013-04-05 00:53:54 +01:00
Matthew Waters
bf502f5502 audiovisualizer: handle non-existant pool in the default allocation query
gst_query_set_nth_allocation_pool() requires there to be a pool in the
query already. This is not always the case when we get the query from
upstream.  Use gst_query_add_allocation_pool() instead in such case.

https://bugzilla.gnome.org/show_bug.cgi?id=681719
2013-04-05 00:38:36 +01:00
Wim Taymans
5d72759fec audiovisualizer: improve allocation
Based on patch by Matthew Waters

Add private data
Add decide_allocation vmethod
Refactor bufferpool negotiation

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681719
2013-04-05 00:37:08 +01:00
Edward Hervey
2296296a51 mpegvideoparse: Only add meta if downstream needs it
It's not perfect, because in the cases where upstream doesn't
initiate an allocation query, we won't know.
2013-03-31 19:04:12 +02:00
Edward Hervey
14e7e78b7a mpegvideoparse: Store information in GstMpegVideo12Meta
FIXME : Only do so if we know downstream will need it
2013-03-31 18:55:33 +02:00
Edward Hervey
ca3146a2cd tsparse: Ensure segment events are forwarded
We skip them for tsdemux though (recreated later)

Fixes #690949
2013-03-30 13:54:37 +01:00
Wim Taymans
d7bcf7206f mpegpsdemux: push stream start event 2013-03-30 11:15:48 +01:00
Josep Torra
b6719fe0e3 midiparser: ensure variable is initialized and fix debug message access 2013-03-30 10:57:08 +01:00
Josep Torra
030cf658e6 mpeg4videoparser: Fix a compiler warning about uninitialised variable use 2013-03-30 09:52:45 +01:00
David Schleef
a1bb437ece watchdog: new element 2013-03-27 15:31:21 -07:00
David Schleef
65cb59912b mxfdemux: Use %03u for format in gst_pad_create_stream_id_printf() 2013-03-25 18:57:32 -07:00
Wim Taymans
f468979dea interlaced: set both DTS and PTS
Handle both dts and pts on output buffers.
2013-03-25 10:10:28 +01:00
Douglas Bagnall
0c9db072ce tsdemux: remove unused current_program_number field
https://bugzilla.gnome.org/show_bug.cgi?id=690934
2013-03-24 20:58:28 +00:00
Tim-Philipp Müller
0002f7638b rawparse: send segment event in time format also in push mode
When converting the incoming segment from byte to time format,
don't just convert the start/stop/time values, but also change
the segment format to TIME.

https://bugzilla.gnome.org/show_bug.cgi?id=696361
2013-03-22 19:40:58 +00:00
Sebastian Dröge
dfa6c17de5 y4mdec: Use the correct strides as used by y4m and convert to GStreamer strides if necessary
https://bugzilla.gnome.org/show_bug.cgi?id=696361
2013-03-22 15:53:08 +01:00
Sebastian Dröge
58bfdb2798 y4mdec: Use the default event/query handlers for the default handling
Especially don't forward caps events from the sinkpad to the srcpad.

https://bugzilla.gnome.org/show_bug.cgi?id=696282
2013-03-22 14:52:54 +01:00
Sebastian Dröge
5dba06113d y4mdec: Properly handle segment and time values of -1 2013-03-22 14:50:28 +01:00
Wim Taymans
5981ad182e midi: set midi parser rank primary
Now that it supports seeking and all, mark it primary
2013-03-22 14:48:52 +01:00
Wim Taymans
5474532f57 midiparse: always seek back to beginning
We always need to seek back to the beginning because when we do a flushing seek,
we might have lost events downstream.
2013-03-22 13:49:49 +01:00
Wim Taymans
803f564013 midiparse: implement seeking
Seek back to 0 for backward seeking and let things run and clip for forwards
seeking.
2013-03-22 12:25:16 +01:00
Wim Taymans
661989bcb7 midiparse: simplify the callbacks
We only need one callback to send bytes out.
2013-03-21 18:18:29 +01:00
Wim Taymans
06e06b6159 midiparse: clean up tracks 2013-03-21 17:25:32 +01:00
Wim Taymans
7a14606b51 midiparse: don't leak midi data 2013-03-21 17:16:24 +01:00
Wim Taymans
15f07e7f12 midiparse: small cleanups in error paths 2013-03-21 16:06:46 +01:00
Wim Taymans
adae7f1859 midiparse: duration is max of all track durations 2013-03-21 16:06:46 +01:00
Wim Taymans
7498d104a7 midiparse: fix klass 2013-03-21 16:06:46 +01:00
Wim Taymans
5492631d84 midiparse: Update duration
Rework things a bit so that we can run over the midi events and fire callbacks
for each of them. We can then use that for calculating the duration and also for
doing playback.
Only parse as many tracks as specified in the header.
Fix default tempo;
Send MIDI tick events every 10ms
2013-03-21 15:00:16 +01:00
Wim Taymans
76cd090503 midiparse: handle midi in RIFF 2013-03-21 09:30:41 +01:00
Wim Taymans
a093d65310 midiparse: small fixes 2013-03-21 07:21:41 +01:00
Wim Taymans
10cb1a7a3a midi: set rank as marginal
Set the mark to marginal until we implement more features.
2013-03-21 07:21:41 +01:00
Wim Taymans
235f2a962e midiparse: add basic midi parser
Parses midi files and outputs buffers with midi events.
2013-03-21 07:21:40 +01:00
Tim-Philipp Müller
3af6effcf2 ivtc: fix make dist 2013-03-20 15:29:51 +00:00
David Schleef
160f996c2f combdetect,ivtc: code cleanup 2013-03-19 18:08:53 -07:00
David Schleef
db40edff17 combdetect: output progressive video 2013-03-19 16:26:45 -07:00
David Schleef
16091ef422 combdetect: code cleanup 2013-03-19 16:26:45 -07:00
David Schleef
f1993545cf combdetect: switch to zebra striping 2013-03-19 16:26:45 -07:00
David Schleef
cac6b94922 ivtc: drop early fields 2013-03-19 16:26:45 -07:00
David Schleef
91310bd4c5 ivtc: new inverse telecine filter
This filter converts interlaced content that was originally
telecine'd from 24 fps (or similar) progressive content.  It works
approximately like videorate, but with awareness of interlacing.
It merges neighboring fields in the input interlaced stream with
the goal of minimizing combing artifacts, while keeping the output
framerate constant.  If it cannot avoid combing artifacts, it will
reconstruct the image from a single field.  Note that this filter
does not autodetect the framerate, but will automatically fixate
at 24 fps.
2013-03-19 16:26:45 -07:00
Alessandro Decina
d2d6798087 Make the hls plugin depend on gnutls and move to ext/hls/
gnutls is used to implement AES decryption
2013-03-19 10:54:18 +01:00
Alessandro Decina
5c77ef61ed hlsdemux: use gnutls instead of openssl 2013-03-19 10:26:54 +01:00
Alessandro Decina
7d982d3418 hlsdemux: support encrypted streams 2013-03-19 10:26:54 +01:00
Alessandro Decina
1f177beb33 hlsdemux: fix invalid free() introduced by last commit 2013-03-18 21:03:50 +01:00
Kevin Thornberry
72c5c70b90 mpegtsmux: fix creation of ADTS header for AAC audio in MPEG-TS
https://bugzilla.gnome.org/show_bug.cgi?id=695412
2013-03-18 10:31:51 +00:00
Alessandro Decina
175498434c hlsdemux: parse #EXT-X-KEY tags 2013-03-18 07:34:13 +01:00
Alessandro Decina
4ca7426f2a hlsdemux: factor out URI joining utility 2013-03-18 07:27:51 +01:00
Alessandro Decina
cb7ee940d2 hlsdemux: fix URI parsing for absolute fragment paths 2013-03-18 07:02:54 +01:00
Jean-François Fortin Tam
7b268f6965 frei0r: improve readability of RGB and XY property nickname strings
Also fix the Y prop nickname string being incorrect.

https://bugzilla.gnome.org/show_bug.cgi?id=695884
2013-03-16 18:16:34 +00:00
Jean-François Fortin Tam
53d33062e1 frei0r: fix nicknames for color and position properties
https://bugzilla.gnome.org/show_bug.cgi?id=695884
2013-03-16 18:14:37 +00:00
David Schleef
a80726c8d7 videosegmentclip: Don't leak buffers after segment 2013-03-15 00:16:16 -07:00
David Schleef
aa8918411e videosignal: add FIXME for future revival 2013-03-15 00:16:16 -07:00
David Schleef
6005ab322d mxfdemux: Add a second MXF UL for uncompressed audio 2013-03-14 14:41:38 -07:00
David Schleef
f0ab12fe89 mxfdemux: Ignore missing metadata descriptors 2013-03-14 14:41:37 -07:00
Wim Taymans
88492ff72e hlsdemux: don't stop tasks in paused
A non-live element is supposed to continue streaming in the paused state so
don't stop the tasks when going to paused.
We also always want to start the update task after we prerolled enough data,
not only in the playing state.
2013-03-14 12:17:13 +01:00
Wim Taymans
3de57b9754 hlsdemux: add more debug 2013-03-14 12:17:13 +01:00
Greg Rutz
c66fd54e78 audiovisualizer: fix improper video frame clear operation
The current code is memsetting the GstVideoFrame.data address to 0s (which
causes a segfault). This member is actually an array of data buffers (one for
each plane).  This fix iterates over each data plane to clear them all.

https://bugzilla.gnome.org/show_bug.cgi?id=695655
2013-03-13 00:40:24 +00:00
Tim-Philipp Müller
c2446a70f6 Remove DTMF plugin, moved to -good
https://bugzilla.gnome.org/show_bug.cgi?id=687416
2013-03-09 01:06:31 +00:00
Sebastian Dröge
acacef9fbb mpegtsdemux: Fix various compiler warnings 2013-03-03 12:30:32 +01:00
Sebastian Dröge
ac6967a843 mpeg4videoparse: Use correct type specifiers for format strings to fix compiler warnings 2013-03-03 12:30:21 +01:00
Sebastian Dröge
570f012b58 freeverb: Fix compiler warning caused by wrong format specifier 2013-03-03 10:54:10 +01:00
Vincent Penquerc'h
b6f50c51f3 rawparse: fix caps leak 2013-02-28 16:55:36 +00:00
Tim-Philipp Müller
6325b06204 dvbsuboverlay: add all supported video formats to template caps
We now use gst_video_overlay_composition_blend(), so can support
all video formats supported by that, not just I420.
2013-02-19 13:04:21 +00:00
Tim-Philipp Müller
f2f9e4b68a dvbsuboverlay: proxy the allocation query
Pass allocation query downstream.
2013-02-19 13:04:14 +00:00
Tim-Philipp Müller
79f419c82d dvbsuboverlay: don't forward CAPS event from subtitle pad
May results in not-negotiated flow errors otherwise.
2013-02-19 11:14:11 +00:00
Stefan Sauer
57ff02f485 freeverb: remove channel-mask from caps
The channel-mask is only needed for channels>2 which we don't do.
2013-02-15 21:30:33 +01:00
Tim-Philipp Müller
829076358e Revert "mpeg4videoparse: set 0 duration when vop_coded is 0"
This reverts commit d3219a261a.

vop_coded 0 means that the previous frame should be repeated,
so it should have valid duration after all.

https://bugzilla.gnome.org/show_bug.cgi?id=683169
2013-02-14 09:40:08 +00:00
Olivier Crête
f25b0eda09 pngparse: Declare the width/height outside the loop
Also initialize them to make gcc happy
2013-02-12 18:11:34 -05:00
Olivier Crête
41afff88e0 videoparsers: Add png file parser
https://bugzilla.gnome.org/show_bug.cgi?id=690639
2013-02-12 17:04:38 -05:00
David Schleef
168c8406b5 Unrevert: mpegvideoparse: set timestamp based on pic offset
API is now in baseparse in gstreamer.

Timestamps in MPEG-TS streams are based on the last timestamp
before the start code of the picture.  GstBaseParse sets the
timestamp based on the beginning of the sequence header, if
one exists before the picture.  This fixes the case where the
timestamp occurs in the MPEG-TS stream between the seq header
and picture start code.
2013-02-12 12:23:03 -08:00
David Schleef
e614bd037e yadif: Add mode property
Copy mode from deinterlace element.  Isn't actually implemented
in yadif, every frame is deinterlaced, so effectively mode=1.
2013-02-12 12:23:03 -08:00
David Schleef
e5e7fccd03 yadif: Fix non-x86_64 builds 2013-02-12 11:48:21 -08:00
David Schleef
aeee2084ff mpegdemux: add parsed=false to mpeg2 caps 2013-02-12 11:48:21 -08:00
Tim-Philipp Müller
aedc136926 Revert "mpegvideoparse: set timestamp based on pic offset"
This reverts commit 63718da919.

The required baseparse API addition has not been pushed yet,
which breaks the build.
2013-02-12 09:38:35 +00:00
David Schleef
63718da919 mpegvideoparse: set timestamp based on pic offset
Timestamps in MPEG-TS streams are based on the last timestamp
before the start code of the picture.  GstBaseParse sets the
timestamp based on the beginning of the sequence header, if
one exists before the picture.  This fixes the case where the
timestamp occurs in the MPEG-TS stream between the seq header
and picture start code.
2013-02-11 17:41:17 -08:00
Tim-Philipp Müller
b738115ebd yadif: fix distcheck 2013-02-11 23:46:27 +00:00
Tim-Philipp Müller
d3c79a6079 yadif: fix build in uninstalled setup 2013-02-11 22:40:35 +00:00
David Schleef
b339812c07 yadif: Add YADIF deinterlacing filter
Code copied from Libav, commit 26e4f0c70.  Will eventually be
moved to -ugly because underlying code is GPL.
2013-02-11 12:30:29 -08:00
David Schleef
10b44cc81b fieldanalysis: Add Y42B and Y444 formats 2013-02-11 12:30:29 -08:00
Tim-Philipp Müller
dee6536421 mxfdemux: fix taglist leak
Don't leak demuxer tag list.
2013-02-11 20:24:14 +00:00
Tim-Philipp Müller
453438a9dd mxfdemux: fix push mode unit test failure
In the sink event handler we end up sending multiple EOS
events per pad. Don't return FALSE when sending the
second EOS on an already-EOS pad fails. Not sure if there
was a reason for sending a second EOS, so leaving the
code in there for now, but assume all went fine if there
are source pads, which is slightly less wrong than before.
This function needs work.
2013-02-11 19:59:20 +00:00
Tim-Philipp Müller
e63027f198 gdp: actually log generic dataprotocol stuff to gdp category 2013-02-11 12:34:24 +00:00
Tim-Philipp Müller
632f2ac1c6 inter: don't use deprecated GLib threading API 2013-02-11 12:01:19 +00:00
Tim-Philipp Müller
eef2324e4d liveadder: don't use deprecated GLib threading API 2013-02-11 12:01:19 +00:00
Marc Leeman
6aa399ec9f mxfdemux: deprecated GStaticRWLock -> GRWLock
https://bugzilla.gnome.org/show_bug.cgi?id=693322
2013-02-09 18:35:48 +00:00
Marc Leeman
f7b16f6185 chromahold: deprecated GStaticMutex -> GMutex
https://bugzilla.gnome.org/show_bug.cgi?id=693322
2013-02-09 18:35:33 +00:00
Tim 'mithro' Ansell
c8cbe98d90 gdppay: fix buffer leak when new caps are same as old caps
The leak occurs when you got a message with identical caps to the ones you
already had.

https://bugzilla.gnome.org/show_bug.cgi?id=693324
2013-02-07 14:07:17 +00:00
Jan Schmidt
0344b33f40 dvdspu: Fix the rendering of PGS windows with left != 0
When rendering a PGS window area where the left edge is not at
pixel 0, the chroma was being rendered in the wrong place since
commit 4dc648d343
2013-02-07 22:51:05 +11:00
Tim Ansell
12255ff660 inter: fix leaks in test
https://bugzilla.gnome.org/show_bug.cgi?id=693300
2013-02-07 11:31:12 +00:00
Stefan Sauer
998cfde158 freeverb: port to 1.0 2013-02-07 08:56:37 +01:00
Stefan Sauer
09764eca37 audiovisualizers: add comments for monoscope porting 2013-02-07 07:29:17 +01:00
David Schleef
65927acc45 interlace: fix negotiation for true interlaced modes 2013-02-06 15:51:01 -08:00
Josep Torra
7fafbe2e22 tsdemux: expose VC1 streams with missing descriptor.
Fixes playback of VC1 streams when the descriptor is missing.
2013-02-05 23:07:12 +01:00
Robert Swain
4513a48e8a interlace: Add support for more telecine patterns 2013-02-05 13:40:39 +01:00
Robert Swain
0fc9b0b289 interlace: Add more verbose hints about field patterns 2013-02-05 13:40:32 +01:00
David Schleef
a19c0b5697 tsdemux: Add descriptors for SMPTE 302m audio 2013-02-04 18:07:17 -08:00
Mark Nauwelaerts
7df753165f h264parse: separate fields for distinct functional uses of codec_data field
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692789
2013-02-02 19:29:40 +01:00
Tim-Philipp Müller
74d1f8a400 rtpdtmfsrc: fix compiler warning
gstrtpdtmfsrc.c: In function 'gst_dtmf_src_prepare_message.isra.1':
gstrtpdtmfsrc.c:669:3: error: 's' may be used uninitialized in this function
2013-01-26 22:58:29 +00:00
Olivier Crête
bbc8fda864 rtpdtmfdepay: Fix missing work in doc 2013-01-25 21:06:05 -05:00
Olivier Crête
a2384408f0 rtpdtmfsrc: Post the messages after the clock wait
This way, the messages will be closer in time to when the packets are sent out
2013-01-25 20:45:43 -05:00
Olivier Crête
b69f09e26f rtpdtmfsrc: Only set the duration when starting to send
The duration depends on the clock rate, which could change due to renegotiation
2013-01-25 20:45:43 -05:00
Olivier Crête
917d491d63 rtpdtmfsrc: remove "ssrc" from caps
ssrc is uint and we don't have a uint range type
2013-01-25 20:45:43 -05:00
Olivier Crête
81b452ba5d dtmf/spandsp: Move dtmfdetect to use libspandsp
Remove our copy of the tone_detect.c file and use the original
from libspandsp. Also move the element to the spandsp plugin.
2013-01-09 20:05:16 -05:00
Victor Gottardi
21477d37e2 hlssink: don't forward multifilesink messages to application
These messages are usually only needed internally.

https://bugzilla.gnome.org/show_bug.cgi?id=689822
2013-01-06 22:53:11 +00:00
Victor Gottardi
e6f5c5674c hlssink: m3u8 add EXT-X-ALLOW-CACHE
https://bugzilla.gnome.org/show_bug.cgi?id=689822
2013-01-06 22:53:11 +00:00
Victor Gottardi
4fb227b340 hlssink: round segment duration to nearest number of seconds
E.g. for 1s period, duration can be 0.99s, rounds down to 0, results in invalid
playlist

https://bugzilla.gnome.org/show_bug.cgi?id=689822
2013-01-06 22:53:10 +00:00
Tim-Philipp Müller
c313b7e212 hlssink: don't leak old playlist entries when using max-files
Based on patch by: Victor Gottardi <vgottardi@hotmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=689822
2013-01-06 22:53:00 +00:00
Tim-Philipp Müller
5522cceb55 inter: don't use deprecated GStaticMutex API 2013-01-04 17:19:25 +00:00
Tim-Philipp Müller
d1e9a96a69 mpegpsmux: use DTS in addition to PTS
And refactor choose_best_stream() a little.

videotestsrc pattern=ball ! x264enc ! mpegpsmux ! ...

plays much nicer now.
2013-01-01 11:59:39 +00:00
Tim-Philipp Müller
37de5a081c mpegpsmux: use gstreamer debug logging system everywhere 2012-12-31 19:45:54 +00:00
Tim-Philipp Müller
c056ecb02b mpegpsmux: port to 0.11
Naive port. Barely tested.
2012-12-31 19:42:03 +00:00
Matthias Hardt
0e3fdb1e16 tsdemux: extract ISO 639 language codes for subtitles into taglists
https://bugzilla.gnome.org/show_bug.cgi?id=680200
2012-12-28 23:32:55 +00:00
Thijs Vermeir
471ad809f6 videoparsers: use appropriate printf format for gsize 2012-12-18 16:52:26 +01:00
Thijs Vermeir
35a5100bc3 mxf: use appropriate printf format for gsize 2012-12-18 16:50:37 +01:00
Thijs Vermeir
67bbe5ebaf jpeg: use appropriate printf format for gsize 2012-12-18 16:40:59 +01:00
Thijs Vermeir
775cf6ab3e inter: use appropriate printf format for gsize 2012-12-18 16:20:08 +01:00
Sebastian Dröge
f623a78924 videoparsers: Make sure the caps are actually writable before changing them 2012-12-17 15:16:48 +01:00
Sebastian Dröge
9f1257330d videoparsers: Use the peer caps for restrictions instead of the srcpad allowed caps
Otherwise we will intersect with the srcpad template caps and add all the caps fields
that the parser will ever set, no matter if downstream restricts this field or not.
This requires upstream to set this field on the caps to successfully negotiate.

https://bugzilla.gnome.org/show_bug.cgi?id=690184
2012-12-17 15:04:44 +01:00
Tim-Philipp Müller
02ab609c11 rtpmux: remove rtpmux plugin, moved to -good
Move rtpmux and rtpdtmfmux into rtpmanager plugin in -good.

https://bugzilla.gnome.org/show_bug.cgi?id=629117
2012-12-16 17:36:45 +00:00
Tim-Philipp Müller
7ab936fa7e scaletempo: remove scaletempo plugin, moved to -good
https://bugzilla.gnome.org/show_bug.cgi?id=687262
2012-12-15 13:37:23 +00:00
Tim-Philipp Müller
8b2641805f autoconvert: don't use deprecated threading API 2012-12-14 18:09:06 +00:00
Wim Taymans
0e0dd05fd6 h264parse: use upstream width/height when given
The upstream width and height should override the dimension detected in the
file.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683142
2012-12-13 14:15:04 +01:00
Arnaud Vrac
0d15c8a7a5 mpeg4videoparse: export number of sprite warping points in caps
This allows filtering out videos for hardware decoders that do not
support GMC at all or only support a limited number of sprite warping
points (usually 1).
2012-12-13 11:01:00 +00:00
Arnaud Vrac
07c2a82e5d mpeg4videoparse: handle divx caps
DivX 4/5 are MPEG4 part 2 videos, so they can be parsed by this plugin.
2012-12-13 11:01:00 +00:00
Tim-Philipp Müller
b0c30383ca mxfdemux: printf format fixes for debug messages 2012-12-12 18:50:09 +00:00
Tim-Philipp Müller
796708b3e3 hls: minor Makefile clean-up
Remove superfluous SOUP_CFLAGS and SOUP_LIBS.
2012-12-12 00:40:20 +00:00
Michael Esemplare
91bf909469 hls: link to the right gst-plugins-base libs and fix libs order
https://bugzilla.gnome.org/show_bug.cgi?id=690030
2012-12-11 21:13:21 +00:00
Sebastian Dröge
3478231790 mxfdemux: Don't allow any wrapping other than frame wrapping
Bad things will happen otherwise, like reading a complete,
multiple GB large video track into a single buffer.

Conflicts:
	gst/mxf/mxfdemux.c
2012-12-06 10:10:05 +01:00
Sebastian Dröge
76ca3c77d7 mxfdemux: Add function to get the essence track wrapping 2012-12-06 10:09:21 +01:00
Sebastian Dröge
28c11b2762 mxf: Add support for parsing filler structural components
This does not add support for actually producing filler data
if there's a filler component in a timeline.
2012-12-05 12:24:30 +01:00
Sebastian Dröge
a83b798312 mxf: Improve debug output during metadata resolval 2012-12-05 12:10:44 +01:00
Tim-Philipp Müller
caa9014bce resindvd, frei0r: link to libgmodule-2.0 in plugins that use g_module_* API
Probably needed for other plugins as well.
2012-11-30 20:01:16 +00:00
Sebastian Dröge
84e5418cfc mxf: Add more support for RP2008 (AVC in the MPEG mapping)
Conflicts:
	gst/mxf/mxfmpeg.c
2012-11-30 15:19:35 +01:00
Krzysztof Konopko
13910f5154 mpegtsmux: crashes when trying to re-use the element
A crash occured after pushing buffers and changing mpegtsmux state to
NULL/READ and then back to PLAYING/PAUSED.

The crash was caused by holding a dangling pointer in the MpegTsMux
program table.

Additionally stream headers were leaked when resetting the element:
mux->streamheader set to NULL in mpegtsmux_reset() before it's released
later in the same function.

Added a unit test: test_multiple_state_change

https://bugzilla.gnome.org/show_bug.cgi?id=689107
2012-11-27 19:00:25 +00:00
Krzysztof Konopko
76b8e8be51 mpegtsmux: propagate flow returns
And add a unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=688870
2012-11-23 00:14:53 +00:00
Tim-Philipp Müller
c6343ae5b5 hlssink: add doc chunk with example command line 2012-11-20 23:20:38 +00:00
Thibault Saunier
d53a447731 mpeg4videoparse: Fix nitpick 2012-11-15 11:40:05 -03:00
Thibault Saunier
daed78039e mpeg4videoparse: Make sure pad template caps are not fixed from the begging
Right now decodebin will concider the pad template caps as fixed and if a decoder
has restriction on for example height/width it won't be autoplugged because
gst_caps_is_subset fails as those fields are missing from the pad template caps.
We fix the issue here making sure that the pad caps are fixed using data from
the stream.
2012-11-15 10:45:53 -03:00
Josep Torra
3d012665f0 tsdemux: forward upstream time segments after flushes
Also reset segment info and drop the segment event when demuxer is
flushed.
Restore demuxer segment with the info stored in base when demuxer is
going to push data again if needed.
Drop code to recover the segment info from base in the initial program
becauses it's superseded by the new code.
2012-11-14 22:51:35 +01:00
Tim-Philipp Müller
9f7e7d305d gst_adapter_prev_timestamp -> gst_adapter_prev_pts 2012-11-14 12:41:27 +00:00
Tim-Philipp Müller
3abce95e61 hls: dist all header files needed to build 2012-11-14 11:35:23 +00:00
Tim-Philipp Müller
acd20a7960 accurip: fix linker flags
Spotted by Rico Tzschichholz.
2012-11-14 10:46:55 +00:00
Josep Torra
0b3e0ed080 tsdemux: reset the stream some more in the flushes
Now that we handle flushing in the FLUSH_STOP event we need to make
the streams ready if they were flushing.
2012-11-12 22:57:19 +01:00
Josep Torra
150376efe4 mpegtspacketizer: flush observations too
Flush the previous observations when the packetizer is flushed.
Also don't leak them in the dispose.
2012-11-12 22:57:19 +01:00
Josep Torra
1fc5fffe08 mpegtsbase: fix double unref of seek event 2012-11-12 22:57:19 +01:00
Josep Torra
cc40d49bed mpegtsbase: flush in FLUSH_STOP to avoid race conditions
Ensure the chain is not running before reset the state to avoid race
conditions and random corruptions downstream.
Also fixes segfaults in the packetizer due wrong available values that
causes gst_adapter_map to return a NULL pointer.
2012-11-12 22:57:19 +01:00
Josep Torra
996da425a9 Revert "tspacketizer: ensure that a null pointer isn't accessed"
This reverts commit 6efd611b8c.

Also this extra check won't be needed if it's fixed the race by moving
flush actions to FLUSH_STOP.
2012-11-10 19:52:46 +01:00
Josep Torra
80dd130fb0 Revert "tsbase: add a guard with an atomic boolean when flushing"
This reverts commit e14e310f71.

Would be better move the packetizer flushing to FLUSH_STOP and avoid
the race that way. Without introducing a memory barrier that could
have impact in the performance.
2012-11-10 19:46:40 +01:00
Alessandro Decina
51c4f255be hlssink: remove vim .swp files that I just committed accidentally... 2012-11-10 14:43:17 +01:00
Alessandro Decina
48431d76e6 hlssink: port to 1.0 2012-11-10 14:40:50 +01:00
Alessandro Decina
8cc1400488 hlssink: cut segments using the running-time 2012-11-10 14:40:50 +01:00
Alessandro Decina
b9018b2870 hlssink: don't unref ->multifilesink.
We gst_bin_add it to ourself so no need to unref in _dispose.
2012-11-10 14:40:50 +01:00
Alessandro Decina
b46886643b hlssink: rework _reset a bit 2012-11-10 14:40:38 +01:00
Josep Torra
e14e310f71 tsbase: add a guard with an atomic boolean when flushing 2012-11-10 00:08:35 +01:00
Josep Torra
6efd611b8c tspacketizer: ensure that a null pointer isn't accessed
Mitigates segfault due race condition in FLUSH_START handling and
mpegts_base_chain.
2012-11-09 22:17:11 +01:00
Edward Hervey
651203de07 mpegts: Only use timestamp-based PCR/PTS estimation when needed
When dealing with non-time based push-mode streams, we need to revert
to using the offset-based PCR/PTS estimation logic of packetizer.

This solves uses cases such as:
 pushfile:// ! tsdemux
 src ! queue ! tsdemux

https://bugzilla.gnome.org/show_bug.cgi?id=687178
2012-11-09 12:15:24 +01:00
Kevin Thornberry
c2d4c0da5e mpegtsmux: fix DTS value being used for PTS
https://bugzilla.gnome.org/show_bug.cgi?id=687806
2012-11-07 20:34:38 +00:00
Thibault Saunier
b3abd51656 h264parse: don't rewind to the NAL length size in bytewriter if the format is bytestream
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687548

Signed-off-by:  Kevin Thornberry
2012-11-06 12:44:29 -03:00
Thibault Saunier
72933e3929 h264parse: Actually add PPS data to the output buffer 2012-11-06 11:54:39 -03:00
Will Thompson
b4bf05b32e hlssink: add a playlist-length property
Probably not particularly useful in general, but handy
to cut down the latency on a stream.

https://bugzilla.gnome.org/show_bug.cgi?id=687133
2012-11-05 12:50:11 +00:00
Luciana Fujii Pontello
40325be3a4 hlssink: reset when going to NULL state
https://bugzilla.gnome.org/show_bug.cgi?id=687133
2012-11-05 12:50:07 +00:00
Luciana Fujii Pontello
dda3106650 hlssink: Fix segment names on playlist
When the playlist-root is not set, the segment name must not be
appended by the path.

https://bugzilla.gnome.org/show_bug.cgi?id=687133
2012-11-05 12:50:04 +00:00
Tim-Philipp Müller
9e1b75fda3 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Sebastian Dröge
6fbf96d3e4 scaletempo: Use a better plugin filename 2012-11-02 13:44:02 +01:00
Tim-Philipp Müller
854626c908 rtpvp8: remove and move to -good
https://bugzilla.gnome.org/show_bug.cgi?id=687263
2012-11-01 20:50:56 +00:00
Jan Schmidt
119c27c9b9 tsmux: Slightly reflow collected buffer handler for clarity. 2012-10-30 10:00:08 +11:00
Sebastian Pölsterl
43938bbf54 tsdemux: Fix name of CAT GstStructure
The structure previously was assigned the name "pat".

https://bugzilla.gnome.org/show_bug.cgi?id=686948
2012-10-29 13:16:46 +01:00
Tim-Philipp Müller
72353aeb71 docs: add new accurip element to docs
https://bugzilla.gnome.org/show_bug.cgi?id=685163
2012-10-28 16:54:07 +00:00
Christophe Fergeau
8c81e39de0 accuraterip: new element for AccurateRip calculation
https://bugzilla.gnome.org/show_bug.cgi?id=685163
2012-10-28 16:36:01 +00:00
Michael Smith
0c8a7fa46f mxf: Port mxfdemux to 1.0
Also ports mxfmux to 1.0 to the extent that it compiles, but is 100% untested,
so remains disabled.

Conflicts:
	gst/mxf/mxfdemux.c
	gst/mxf/mxfmux.c
2012-10-26 13:48:06 -07:00
Mark Nauwelaerts
0d1c7f6ea2 videoparsers: use parsed or upstream fps to set some baseparse parameters 2012-10-25 18:02:38 +02:00
Mark Nauwelaerts
58441bf262 h264parse: extract structure from correct caps
... which are known != NULL.
2012-10-25 18:02:38 +02:00
Mark Nauwelaerts
821c8519e0 videoparsers: preserve upstream fps and par
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=660866
2012-10-25 17:07:18 +02:00
Sebastian Dröge
36680b1190 vc1parse: Give vc1parse a rank of NONE for now 2012-10-25 14:05:48 +02:00
Sebastian Dröge
6d5fc5a771 vc1parse: Port to 1.0 2012-10-25 14:05:48 +02:00
Alessandro Decina
00abb674ca vc1parse: disable BDU parsing until it's more mature
Parsing and splitting BDUs seems to trigger a few bugs in
downstream decoders so disable it for now.
2012-10-25 14:05:48 +02:00
Alessandro Decina
d03f5499bd vc1parse: set duration on output buffers
This has the nice side effect of avoiding hanging at EOS with truncated asf
clips.

Conflicts:
	gst/videoparsers/gstvc1parse.c
2012-10-25 14:05:48 +02:00
Alessandro Decina
f287dec1a2 vc1parse: workaround for simple/main codec_data being 5 bytes long
Sometimes the codec_data buffer for simple/main pushed by asfdemux is 5 bytes
instead of 4. When that happens, codec_data is still valid but it seems to have
one 0x00 trailing byte. Might be a bug in the demuxer, needs more investigation.
2012-10-25 14:05:48 +02:00
Alessandro Decina
8aec23ac05 vc1parse: remove stub stream conversion code 2012-10-25 14:05:48 +02:00
Alessandro Decina
cbecbbe23e vc1parse: add some more debugging to _renegotiate 2012-10-25 14:05:48 +02:00
Sebastian Dröge
5af8f82ecd vc1parse: Add VC1 parser plugin 2012-10-25 14:05:48 +02:00
Thijs Vermeir
1d710ad13a mpegdemux: check base_time before calculating new_start
https://bugzilla.gnome.org/show_bug.cgi?id=623387
2012-10-24 12:01:46 +02:00
Sebastian Dröge
df12aae15b scaletempo: Fix event leak 2012-10-23 14:33:21 +02:00
Sebastian Dröge
7c136f1166 scaletempo: Fix timestamp tracking 2012-10-23 14:32:24 +02:00
Sebastian Dröge
bb0c2d40c4 scaletempo: Implement LATENCY query 2012-10-23 14:20:12 +02:00
Sebastian Dröge
9319b48d24 scaletempo: Store instance private data in the instance struct
Getting it over and over again via G_TYPE_INSTANCE_GET_PRIVATE()
is really slow.
2012-10-23 13:39:17 +02:00
Sebastian Dröge
1bafd6191a hls: Link to $(LIBM) for isfinite() 2012-10-23 10:07:31 +02:00
Tim-Philipp Müller
2c02e25640 subenc: port to 1.0 2012-10-22 11:00:38 +01:00
Jan Schmidt
5888c60570 mpegtsmux: Don't make the same buffer writable twice.
Fixes Bug 686327 - mpegtsmux: fix refcount issue with input buffers
2012-10-22 01:41:41 +11:00
Mark Nauwelaerts
88f407bb5b mpegdemux: forward non-processed dvd events
... such as notably dvd-spu-clut-change.
2012-10-19 16:17:45 +02:00
Mark Nauwelaerts
a2b6f46f00 mpegdemux: segment event should be sent before gap event 2012-10-19 16:17:45 +02:00
Tim-Philipp Müller
465374f3c8 tsdemux: fix program packet sequence counter parsing in PES header 2012-10-19 01:05:44 +01:00
Tim-Philipp Müller
10c881b107 tsdemux: fix some inconsequential PES header parsing issues
additional_copy_info: need to get rid of the highest
bit, not the lowest one

program_packet_sequence_counter: also need to get rid
of the highest bit instead of multiplying with a random
value

original_stuff_length: want to AND 0x3f to extract the
lowest 6 bits, not multiply by it.

None of these fields are actually used though, so these
should not have caused any issues.
2012-10-19 01:05:34 +01:00
Raimo Järvi
9640669689 tsdemux: Fix parsing P-STD_buffer in PES header
https://bugzilla.gnome.org/show_bug.cgi?id=686294
2012-10-19 00:29:40 +01:00
Andoni Morales Alastruey
f768dfd925 tsdemux: fix potential crash dereferencing NULL program pointer
https://bugzilla.gnome.org/show_bug.cgi?id=686358
2012-10-18 17:54:41 +01:00
Tim-Philipp Müller
32ba17cd0f Use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Sebastian Dröge
5e6783f5af mpegdemux: Fix unitialized variable compiler warning 2012-10-16 11:38:08 +02:00
Sebastian Dröge
932c7175d3 hlsdemux: And fix another deadlock caused by the update thread not correctly shutting down
Conflicts:
	gst/hls/gsthlsdemux.c
2012-10-15 11:46:45 +02:00
Sebastian Dröge
477b04a282 hlsdemux: Also hold the mutex before signalling the condition variable
Conflicts:
	gst/hls/gsturidownloader.c
2012-10-15 11:04:06 +02:00
Sebastian Dröge
113ccb1a53 hlsdemux: Also cancel the downloader before stopping the playlist update task 2012-10-15 10:55:12 +02:00
Sebastian Dröge
b335f5a68e hlsdemux: Only lock the mutex when it's not locked already
Conflicts:
	gst/hls/gsthlsdemux.c
2012-10-15 10:39:52 +02:00
Sebastian Dröge
443703a08e hlsdemux: Fix another race condition by holding the mutex that the condition variable uses
Conflicts:
	gst/hls/gsthlsdemux.c
2012-10-15 10:38:36 +02:00
Sebastian Dröge
e3f00d6252 hlsdemux: Port some things from the last commits 2012-10-15 09:47:35 +02:00
Sebastian Dröge
4df3fad9e4 hlsdemux: Never ever stop a task from the task function
This will deadlock. Also make sure to always post an error message
if required before pausing tasks from the task function.

Should fix another bunch of deadlocks.

Conflicts:
	gst/hls/gsthlsdemux.c
2012-10-15 09:45:14 +02:00
Sebastian Dröge
ca57dd81e4 hlsdemux: Fix lots of deadlocks caused by race conditions in the task state handling 2012-10-15 09:44:09 +02:00
Mark Nauwelaerts
953e94ac78 mpegdemux: advance stream time when sending GAP event 2012-10-12 22:35:05 +02:00
Mark Nauwelaerts
c24eb1db9b mpegdemux: send language info downstream if available
... as extracted from dvd event.
2012-10-12 22:35:05 +02:00
Mark Nauwelaerts
f708ab8de9 mpegdemux: remove obsolete struct field 2012-10-12 22:34:56 +02:00
Michael Smith
e3a1e489d2 audioparse: Set framesize and properties correctly when taking format
from caps.
2012-10-12 12:29:59 -07:00
Mark Nauwelaerts
ba47769823 mpegdemux: tweak flow return aggregation 2012-10-12 17:51:51 +02:00
Mark Nauwelaerts
a9c0609ae8 mpegdemux: handle upstream TIME segments 2012-10-12 17:03:38 +02:00
Mark Nauwelaerts
69cfbcbd0b mpegdemux: handle and combine downstream flow return 2012-10-12 17:03:38 +02:00
Mark Nauwelaerts
acc0530f33 mpegdemux: handle new style dvd event 2012-10-12 17:03:38 +02:00
Mark Nauwelaerts
61849aad61 mpegdemux: do not add pad after no-more-pads 2012-10-12 17:03:38 +02:00
Mark Nauwelaerts
44583eae90 mpegdemux: clean up segment sending
... to use the src_segment as a basis for the sent segment,
thereby properly conveying accumulated base_time etc.

Also ensure src_segment is only adjusted once, so that
all downstream segments are identical to avoid stream
misalignment.
2012-10-12 17:03:38 +02:00
Mark Nauwelaerts
b8312df0a3 mpegdemux: send GAP event rather than segment updates 2012-10-12 17:03:38 +02:00