Commit graph

10187 commits

Author SHA1 Message Date
Tim-Philipp Müller
a53540346a flacparse: tell baseparse the duration in samples for better accuracy
Tell GstBaseParse the duration in samples instead of time, so that
a duration query in DEFAULT format will return the correct number
of samples without rounding errors. Baseparse will convert this
into time itself when needed.

https://bugzilla.gnome.org/show_bug.cgi?id=650785
2011-05-23 13:50:46 +01:00
Tim-Philipp Müller
900b2fb63d flacdec: also try upstream first for duration query in DEFAULT format
https://bugzilla.gnome.org/show_bug.cgi?id=650785
2011-05-23 13:25:44 +01:00
Tim-Philipp Müller
1183d0c1ab flacparse: make conversion from TIME to DEFAULT format (samples) work
Fix copy'n'paste error in the previous commit.
2011-05-23 13:23:21 +01:00
Sebastian Dröge
8823ae251a flacparse: Implement conversions between TIME and DEFAULT format
Fixes bug #650785.
2011-05-23 11:43:02 +02:00
Tim-Philipp Müller
e0cadab5c2 flacparse: don't error out on invalid minimum_blocksize value in streaminfo header
We don't use it, so may just as well accept an invalid value
of 0 here, which is likely inconsequential anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=650691
2011-05-22 18:54:18 +01:00
Stefan Kost
d122ea0122 rtp: fix static array overruns in a nicer way
Use G_N_ELEMENTS instead of hard-coding the array size.
2011-05-20 10:34:47 +03:00
Stefan Kost
5792d3b9c0 rtp: fix static array overruns
Yes array[10] has elements from 0...9.
2011-05-20 00:53:44 +03:00
Stefan Kost
aff7701f80 docs: update plugin introspection data
Now more files are merged and produced in a canonical fashion, which hopefully
creates less or no delta in the future.
2011-05-19 23:31:19 +03:00
Stefan Kost
7105ead626 Automatic update of common submodule
From 9e5bbd5 to 69b981f
2011-05-19 22:57:15 +03:00
Stefan Kost
9f3ae3244c qtdemux: add missing break 2011-05-19 18:27:33 +03:00
Robert Swain
c1b100cf9c deinterlace: Add support for deinterlacing using buffer caps/flags
When not using the fieldanalysis element immediately upstream of deinterlace,
behaviour should remain unchanged. fieldanalysis will set the caps and flags on
the buffers such that they can be interpreted and acted upon to produce
progressive output.

There are two main modes of operation:

- Passive pattern locking
  Passive pattern locking is a non-blocking, low-latency mode of operation that
  is suitable for close-to-live usage. Initially a telecine stream will be
  output as variable framerate with naïve timestamp adjustment. With each
  incoming buffer, an attempt is made to lock onto a pattern. When a lock is
  obtained, the src pad and output buffer caps will reflect the pattern and
  timestamps will be accurately interpolated between pattern repeats. This
  means that initially and at pattern transitions there will be short periods
  of inaccurate timestamping.

- Active pattern locking
  Active pattern locking is a blocking, high-latency mode of operation that is
  targeted at use-cases where timestamp accuracy is paramount. Buffers will be
  queued until enough are present to make a lock. When locked, timestamps will
  be accurately interpolated between pattern repeats. Orphan fields can be
  dropped or deinterlaced. If no lock can be obtained, a single field might be
  pushed through to be deinterlaced.

Locking can also be disabled or 'auto' chooses between passive and active
locking modes depending on whether upstream is live.
2011-05-19 05:45:57 +02:00
David Schleef
165fbc368e configure: Remove config script check for caca 2011-05-18 12:25:16 -07:00
Jose Antonio Santos Cadenas
9d32243671 rtp: Fix segmentation fault processing payload buffers
This commit checks if the value returned by
gst_rtp_buffer_get_payload_buffer and
gst_rtp_buffer_get_payload_subbuffer is NULL before using it.
2011-05-18 15:25:24 +02:00
Stefan Kost
23ecab67d6 Automatic update of common submodule
From fd35073 to 9e5bbd5
2011-05-18 16:10:07 +03:00
Mark Nauwelaerts
4cd2dac1da avidemux: ensure 0-padding when correcting dubious list size 2011-05-18 14:51:11 +02:00
Stefan Kost
ee8aef2901 Automatic update of common submodule
From 46dfcea to fd35073
2011-05-18 12:24:25 +03:00
Stefan Kost
be413185d0 rtspsrc: use EINVAL for missing url parameter
Fixes gcc warning about using uninitialized variable 'res'.
2011-05-18 10:22:27 +03:00
Stefan Kost
e34ab46420 various: fix author tag in element details 2011-05-18 09:36:58 +03:00
Chris E Jones
a1b7eeceb1 auparse: implement seeking
Implement seeking and seeking query. Fixes #644512
2011-05-18 09:36:58 +03:00
Wim Taymans
e15651816e Merge branch 'master' into 0.11 2011-05-17 16:13:59 +02:00
Mark Nauwelaerts
dc2ddea91b rtspsrc: also allow PAUSE to be interrupted
... as it is on the way out to NULL.

See #632504.
2011-05-17 11:56:47 +02:00
Mark Nauwelaerts
283e4e4afd rtspsrc: ensure proper closing and cleanup
... since the TEARDOWN sequence might not have had a chance to even start,
but at least connections should be closed (synchronously) and state cleaned up.

See #632504.
2011-05-17 11:56:38 +02:00
Mark Nauwelaerts
f7ddf811d7 rtspsrc: fix and improve async handling
Simplify the command handling; passing a command to thread means we really
want it to get the message, which means to always flush provided the command
can handle being interrupted.  Command thread indicates whether command
allows interruption and ensure non-flushing connection as it subsequently
needs it.

In particular, this also makes the TEARDOWN sequence interruptable
and also prevents races where _loop_ could miss a command and would
continue receiving (or at least trying to).

See #632504.
2011-05-17 11:56:22 +02:00
Mark Nauwelaerts
e6798ad54c rtspsrc: tweak post-seek loop handling 2011-05-17 11:55:40 +02:00
Wim Taymans
ddfcd8bbfd rtspsrc: open on play and pause when not done yet
With the async state changes, it is possible that we need to open the stream
before play and pause.
Also make sure we remember a previous open failure so that we don't keep trying
again.
2011-05-17 11:55:34 +02:00
Wim Taymans
6fe680934a rtspsrc: improve async handling
Simplify the command handling, only continue looping when we have not received
another command or when the previous loop was successfull.
Avoid looping on a disconnected socket.
2011-05-17 11:55:32 +02:00
Wim Taymans
2513207433 rtspsrc: rework reconnect code
Use the same async code path to implement reconnects.
Make sure we only post progress messages when doing async things.
2011-05-17 11:55:29 +02:00
Wim Taymans
c27c10f8f4 rtspsrc: small cleanups
Make sure we cancel the previous task when queuing a new one.
Move the messages to a central place so we can more easily post them.
2011-05-17 11:55:27 +02:00
Wim Taymans
852c6e11cd rtspsrc: don't post errors when interrupting 2011-05-17 11:55:24 +02:00
Wim Taymans
220e47adcf rtspsrc: implement more async handling
Remove some old locks.
Make sure we never go into the loop function when flushing.
2011-05-17 11:55:20 +02:00
Wim Taymans
2873585238 rtspsrc: first attempt at async implementation 2011-05-17 11:55:18 +02:00
Wim Taymans
dae679e560 rtspsrc: small header cleanups 2011-05-17 11:55:15 +02:00
Sebastian Dröge
b694bfeca3 ssrcdemux: Fix uninitialized variable compiler warning for (pre-) releases too 2011-05-17 10:47:32 +02:00
Edward Hervey
1a310d558c v4l2objects: Only allow mpeg-ts on source objects
Ugly fix for #648312
2011-05-17 09:25:23 +02:00
Sebastian Dröge
0f05d3e5a5 rtpssrcdemux: Fix uninitialized variable compiler warning 2011-05-17 09:24:08 +02:00
Olivier Crête
b6bfc512e8 ssrcdemux: Implement iterate internal links for sink pads
https://bugzilla.gnome.org/show_bug.cgi?id=649617
2011-05-17 09:22:29 +02:00
Olivier Crête
23b6c8febc rtpssrcdemux: iterate pad function is only valid for src pads
The iterate function is only used for src pads, so mark it as such and remove
dead code.

https://bugzilla.gnome.org/show_bug.cgi?id=649617
2011-05-17 09:22:25 +02:00
Olivier Crête
1bf94a92b0 rtpssrcdemux: Release lock before emitting signal
If the lock is not released before emitting a signal, it may cause a deadlock
if any other function in the element is called.

Also removed an unused timestamp parameter

https://bugzilla.gnome.org/show_bug.cgi?id=649617
2011-05-17 09:22:20 +02:00
Debarshi Ray
4df5d896f0 matroskaparse: calculate segment duration after parsing all the IDs
Since the segment duration is given in terms of the
GST_MATROSKA_ID_TIMECODESCALE we should only convert it into
nanoseconds when we are sure that any scale specified in the file has
been read.

https://bugzilla.gnome.org/show_bug.cgi?id=650258
2011-05-17 09:03:50 +02:00
Wim Taymans
cf1248e566 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
2011-05-16 17:52:11 +02:00
Wim Taymans
a0e301ab1a -good: fix for new API 2011-05-16 17:50:15 +02:00
Mark Nauwelaerts
8b910885ec matroskademux: additional lock safety
Fixes #619590.
2011-05-16 13:30:10 +02:00
Mark Nauwelaerts
4db6dce2db qtdemux: also check for bitrate info in caps 2011-05-16 13:30:06 +02:00
Arun Raghavan
f89caeff5c qtdemux: guess bitrate if only one stream's bitrate is unknown
If the bitrates for all but one audio/video streams are known, and the
total stream size and duration can be determined, this calculates the
unkown bitrate as (stream size / duration) - (sum of known bitrates).
While this is not guaranteed to be very accurate, it should be good
enough for most purposes.

For example, this is useful for H.263 + AAC streams where no 'btrt' atom
is available for the video portion.

https://bugzilla.gnome.org/show_bug.cgi?id=619548
2011-05-16 13:29:56 +02:00
Arun Raghavan
6e2774af55 qtdemux: Export max bitrate for AMR-NB/-WB streams
This parses the 'damr' atom if present, and exports the maximum bitrate
of the stream using the mode set field to determine the highest bitrate
frame type that might be present.

https://bugzilla.gnome.org/show_bug.cgi?id=620186
2011-05-16 13:29:50 +02:00
Pino Toscano
b52c7ebd19 pulse: Define PATH_MAX if it isn't defined
GNU Hurd for example doesn't define it.
2011-05-16 09:04:31 +02:00
Debarshi Ray
bdc464a778 matroskademux: calculate segment duration after parsing all the IDs
Since the segment duration is given in terms of the
GST_MATROSKA_ID_TIMECODESCALE we should only convert it into
nanoseconds when we are sure that any scale specified in the file has
been read.

https://bugzilla.gnome.org/show_bug.cgi?id=650258
2011-05-16 08:56:06 +02:00
Andoni Morales Alastruey
5b99b910ec flvmux: Add support for mpegversion 2, which is also AAC 2011-05-14 11:52:13 +02:00
Sebastian Dröge
d4b9cbc1ae flacdec: Send EOS when seeking after the end of file instead of failing
Fixes bug #649780.
2011-05-14 11:52:13 +02:00
Sebastian Dröge
88203989cd wavenc: Set fixedcaps getcaps function on the sinkpad
wavenc does not allow to change the caps during playback
and always returning the template caps is just wrong.
2011-05-14 11:52:12 +02:00