Commit graph

3924 commits

Author SHA1 Message Date
Marco Ballesio
2ff1558a87 h264depay: handle properly STAPs
in rtph264depay.c, lines 577-576, NALU-type 24 (Single-Time Aggregation
Packet) is handled in fall-through as NALU-type 26 (unhandled).

This leads high quality h264 streams such as:

rtsp://stream.yle.mobi/yle/areena/MEDIA_E0342657_p3.mp4

to fail with "NAL unit type 24 not supported yet" (but it's actually
supported), and thus to close any stream which contains STAPs.

The proposed one-liner patch fixes the issue.
Fixes #615051.
2010-04-07 16:17:06 +03:00
Thijs Vermeir
d17ad171c9 build: fix compiler warnings
fix warnings for all plugins that use: setlocale (LC_ALL...
2010-04-07 13:48:12 +02:00
Thijs Vermeir
1e5bb1c300 avi: fix compiler warning 2010-04-07 13:32:09 +02:00
Mark Nauwelaerts
dc09ace2bd matroskademux: restrict resyncing to subtitle tracks
This should prevent skipping audio or video in not so well interleaved
cases.

Fixes #614460.
2010-04-07 12:40:13 +02:00
Arun Raghavan
861311e8f6 qtdemux: Post avg./max. bitrate tags for H.264
This reads the average and maximum bitrates from the 'btrt' atom if
available, and pushes these as tags,

https://bugzilla.gnome.org/show_bug.cgi?id=614927
2010-04-07 11:55:32 +02:00
Sebastian Dröge
3c1940c187 videobox: Fix conversion from 3 byte RGB to ARGB 2010-04-05 17:31:36 +02:00
Sebastian Dröge
687ff84592 videobox: Add support for 3 byte RGB formats and refactor RGB code a bit 2010-04-05 17:08:15 +02:00
Sebastian Dröge
d0ad28ad54 videobox: Add support for all 32 bit RGB formats
...including conversion between them.
2010-04-05 15:52:11 +02:00
Wim Taymans
b84bf10455 rtspsrc: add property to control the buffering method
Add a property to control how the jitterbuffer performs timestamping and
buffering.
2010-04-05 15:26:03 +02:00
André Dieb Martins
5a395846c6 alphacolor: Removing unused variable
Fixes bug #614843.
2010-04-05 10:31:45 +02:00
Thiago Santos
f966ff66f8 qtdemux: Read replaygain peak/gain tags
Make qtdemux read tags replaygain tags that are within '----' atoms.

Fixes #614471
2010-04-02 15:23:51 -03:00
Arun Raghavan
95c6d558f0 matroska: Export h.264 profile and level in caps
This replicates the code in qtdemux to export the h.264 profile and
level in the stream caps.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:51:34 +02:00
Sebastian Dröge
9317ad6fe9 qtdemux: Fix off-by-one introduced in last commit 2010-04-02 18:50:45 +02:00
Arun Raghavan
ccef64be39 qtdemux: Minor refactor of the code
This will make it easier to clump together common code when copying to
mastroskademux.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:49:20 +02:00
Arun Raghavan
d6dcd70b4c qtdemux: Export h.264 level in caps
This exports the h.264 level in the stream caps (as a string) which can
be used to match a decoder, or as metadata.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:48:45 +02:00
Arun Raghavan
503f0988bf qtdemux: Export h.264 profile in caps
This adds the h.264 profile for a given stream into caps. This can
(eventually) be used to select an appropriate decoder and as metadata
for certain applications.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:48:23 +02:00
Mark Nauwelaerts
2d6d2a4d95 flvdemux: remove obsolete reverse playback code path 2010-04-01 10:46:16 +02:00
Mark Nauwelaerts
1c7b1d110b flvdemux: support (pull mode) negative seek rate 2010-04-01 10:46:12 +02:00
Mark Nauwelaerts
d3ae0ef71f flvdemux: also check for segment stop for non-segment-seek 2010-04-01 10:46:10 +02:00
Mark Nauwelaerts
b9f569bfd0 matroskademux: push correctly sized flac header buffers
Fixes #614353.
2010-03-30 16:51:36 +02:00
Tim-Philipp Müller
9e1f5031cc id3demux: fix parsing of unsynced frames with data length indicator
Fixes bug #614158.
2010-03-30 01:54:40 +01:00
Tim-Philipp Müller
d756bab488 build: build plugins and examples in parallel where possible 2010-03-29 11:00:57 +01:00
Tim-Philipp Müller
af5e4d935a qtdemux: extract stream language in more cases
The 16-bit language code can be either a packed ISO-639-2T code
or a 'Macintosh language code'. Handle the latter type of language
codes as well, and map to the matching ISO code. Lastly, fix
language code posting for language #0, which is valid and stands
for 'English'.

Fixes #614001.
2010-03-26 17:02:50 +00:00
Sebastian Dröge
2873c3ad6b videobox: Fix AYUV->I420 frame copying 2010-03-26 13:45:46 +01:00
Sebastian Dröge
3bdd50c93b videobox: Always fill the complete frame if borders should be added
This makes sure that we don't get any gaps between rectangles because
of chroma subsampling for example.
2010-03-26 13:28:53 +01:00
Sebastian Dröge
298f1c3202 videobox: Refactor boxing to reduce code duplication 2010-03-26 13:28:53 +01:00
Sebastian Dröge
2e043908de alpha: Simplify caps transformation 2010-03-26 13:28:53 +01:00
Sebastian Dröge
cd6b4214a6 videobox: Add const qualifier to the source frame data 2010-03-26 13:28:53 +01:00
Mark Nauwelaerts
b1f3e4d0cf matroskademux: only seek when in proper state
... and data structures can be thread-safely accessed.

See #601617.
2010-03-26 11:45:47 +01:00
Mark Nauwelaerts
9157c262ba matroskademux: support (pull mode) negative seek rate 2010-03-26 11:45:41 +01:00
Mark Nauwelaerts
95e38e59a2 matroskademux: track clip duration in segment 2010-03-26 11:45:39 +01:00
Mark Nauwelaerts
6ccffcf5f1 matroskademux: prefer index of video track to perform seeking 2010-03-26 11:45:36 +01:00
Mark Nauwelaerts
d654eeb6de avidemux: fix typo in header validation check 2010-03-25 11:40:20 +01:00
Edward Hervey
66d9dbe49e icydemux: Handle upstream Content-Type.
Allows us to handle ShoutCast TV (NSV) streams.

If the upstream caps have the 'content-type' field set to video/nsv, then
we shortcut the typefinding and set video/x-nsv directly.
2010-03-23 19:48:24 +01:00
Stefan Kost
f1a75adcbc i18n: build fixes: #if -> #ifdef for ENABLE_NLS 2010-03-22 17:26:37 +02:00
Benjamin Otte
382afe983b multifile: Include headers instead fo defining functions 2010-03-21 17:36:28 +01:00
Benjamin Otte
c2846f698b Make goom not use aggregate returns 2010-03-21 17:23:43 +01:00
Benjamin Otte
412cc10314 Add -Wold-style-definition flag
And fix the warnings
2010-03-21 15:17:46 +01:00
Benjamin Otte
3f511ec361 Add -Wwrite-strings to the configure flags
... and fix all warnings
2010-03-21 14:17:47 +01:00
Sebastian Dröge
0f7631f8ec shapewipe: Add support for the remaining ARGB formats
And handle AYUV like ARGB, we need no YUV specific handling.
2010-03-21 11:14:12 +01:00
Sebastian Dröge
b78937aa6f alpha: Add support for RGB and xRGB input 2010-03-20 21:30:58 +01:00
Sebastian Dröge
5bbc7dd114 alpha: Add support for ARGB input 2010-03-20 21:13:23 +01:00
Sebastian Dröge
985ec0260c alpha: Add support for generating ARGB output 2010-03-20 20:46:19 +01:00
Sebastian Dröge
fe4ff4f324 videomixer: Add support for ABGR and RGBA
Now all 4 ARGB variants are supported by videomixer.
2010-03-20 17:32:48 +01:00
Sebastian Dröge
1fdbfb35ff alpha: Move chroma keying parameters into stack variables to prevent multiple pointer dereferences per pixel 2010-03-20 10:26:13 +01:00
Sebastian Dröge
9d9ba5b00e alpha: Move color conversion matrixes into stack variables to speed up processing 2010-03-20 10:20:53 +01:00
Sebastian Dröge
eb7a146b51 alpha: Use correct matrixes to convert chroma keying color to YUV 2010-03-20 10:18:04 +01:00
Sebastian Dröge
b64619dc4e alpha: Add support for different color matrixes 2010-03-19 19:30:32 +01:00
Sebastian Dröge
00b3eb1dfc alpha: Rename and move functions as further preparation for supporting more color formats 2010-03-19 19:30:32 +01:00
Sebastian Dröge
46025bbd8f alpha: Remove some unneeded calculations and instance struct fields
And document the instance struct fields a bit better
2010-03-19 19:30:32 +01:00
Sebastian Dröge
6b0c535e8d alpha: Some preparations for supporting more color formats 2010-03-19 19:30:32 +01:00
Wim Taymans
b019a78ab8 h264pay: fix config-interval property
Use the same units for comparing the elapsed time against the interval.

Fixes #613013
2010-03-19 17:13:07 +01:00
Sebastian Dröge
e3584bf52c alphacolor: Implement color-matrix support and use integer arithmetic only
Alphacolor now uses the correct matrixes for SDTV and HDTV and can
convert between them.
2010-03-19 16:45:07 +01:00
Wim Taymans
ef804589ca rtsp: use GType from -base and bump required version
Use the transport flags GType from -base and bump the required version of -base
because of this.
2010-03-19 15:03:43 +01:00
Tim-Philipp Müller
553e0295b2 apetag: minor Makefile.am surgery
-I$(top_srcdir)/gst-libs/ is already in $(GST_CFLAGS)
2010-03-19 00:05:19 +00:00
Tim-Philipp Müller
073201b329 build: Makefile.am cleanups
Mostly add $(GST_BASE_CFLAGS) where it was missing, but also fix up
order of flags and libs if needed (see docs/random/moving-plugins).
2010-03-18 21:34:24 +00:00
Sebastian Dröge
dad4e96672 alpha: Remove remaining floating point arithmetic when processing a pixel 2010-03-18 19:01:47 +01:00
Sebastian Dröge
f7ba12513e alpha: Refactor chroma keying into a single function
This reduces code duplication once we add support for more color formats.
2010-03-18 19:01:47 +01:00
Benjamin Otte
cccfeaa59c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 14:32:00 +01:00
Benjamin Otte
bc1b65bee3 Remove oldcore directory
The elements have been unused for ages and all important ones have been
replaced or copied elsewhere.
2010-03-18 14:32:00 +01:00
Benjamin Otte
46fdd8b624 avi: Remove old file
Seems to be leftover from the 0.4 days or so.
2010-03-18 14:32:00 +01:00
Mark Nauwelaerts
fd5164af96 rtph264depay: do not call _push_ts with unneeded (and wrong) time parameter
Fixes #613206.
2010-03-18 12:43:14 +01:00
Mark Nauwelaerts
abd9c0c657 avidemux: fix typo in header validation check 2010-03-18 11:37:12 +01:00
Jan Urbański
7d32f46b7a flvmux: put more information in the metadata
Additional tags are: audiocodecid, videocodecid framerate and (in the
non-live case) filesize.

While at it, fix index rewriting to update duration and filesize
values even if the index is empty.

Fixes #613094.
2010-03-18 10:00:58 +01:00
Benjamin Otte
c76e72a7f5 Add -Wundef to configure flags
and fix the resulting warnings
2010-03-17 21:33:28 +01:00
Benjamin Otte
1055aaa9cb Add -Wredundant-decls warning flag
Also fix compile issues
2010-03-17 19:35:10 +01:00
Benjamin Otte
18bc896605 Fix warnings in experimental plugins, too 2010-03-17 18:49:11 +01:00
Benjamin Otte
3342b1679e Add -Wmissing-declarations -Wmissing-prototypes warning flags
And fix all the warnings.
2010-03-17 18:23:28 +01:00
Wim Taymans
7e363149f3 mp4gdepay: improve constantDuration guessing
When no constantDuration has been given in the caps, try to derive one from the
timestamp difference between packets. Also keep doing this for each packet
because some broken streams might simply provide wrong timestamps.
2010-03-17 16:27:13 +01:00
Jan Urbański
dcb5afd351 flvmux: Put width and height in the metadata
Some players use that info to scale their display.

See #613094.
2010-03-17 09:28:03 +01:00
Jan Urbański
96de71d74b flvmux: don't put timestamps larger than G_MAXINT32 in the FLV tags
For non-live input respond by pushing EOS, for live wrap the
timestamps every G_MAXINT32 miliseconds.

Fixes #613003.
2010-03-17 09:24:49 +01:00
Sebastian Dröge
f961f884b6 alphacolor: Fix RGBA<->AYUV conversion 2010-03-16 21:23:11 +01:00
Sebastian Dröge
117e7401c5 alpha: Remove redundant instance field 2010-03-16 21:16:26 +01:00
Sebastian Dröge
9e4ebba45e alpha: Protect property values from changes during frame processing 2010-03-16 21:10:08 +01:00
Jan Urbański
a99ee96172 flvmux: Always put a duration tag in the metadata
Some Flash players (for instance JW Player) always expect a duration
tag, otherwise they don't start playback.

If duration can be queried from the sink pads or is provided as a tag,
use it. Otherwise try to determine it from the last seen timestamp of
the sink pads after EOS and rewrite it in the header before writing
the index.
2010-03-16 15:12:46 +01:00
Jan Urbański
ef8f7614ff flvmux: Remove the send_codec_data field from GstFlvPad
That field is not used anymore after the changes in
9fdecbc1c1.
2010-03-16 15:12:46 +01:00
Wim Taymans
efbdecd0ac multiudpsink: get family of external sockets too
Get the family of externally configured sockets so that we can configure it
correctly.
2010-03-16 13:53:26 +01:00
Sebastian Dröge
3197490c2f alphacolor: Add support for the remaining ARGB formats 2010-03-15 20:37:51 +01:00
Sebastian Dröge
d6379362e5 alphacolor: Simplify ARGB<->AYUV conversions by code generation macros 2010-03-15 19:16:18 +01:00
Sebastian Dröge
322a8f5e6d alpha: Minor cleanups and move declarations into a separate header file 2010-03-15 19:07:28 +01:00
Sebastian Dröge
6f80d41c04 alpha: Use GstVideoFilter as base class for automatic QoS support 2010-03-15 18:58:51 +01:00
Sebastian Dröge
c01cf035c1 alphacolor: Add support for inplace conversions from AYUV to ARGB 2010-03-15 18:52:39 +01:00
Sebastian Dröge
8cbb9608f9 alphacolor: Use libgstvideo for caps parsing 2010-03-15 18:22:21 +01:00
Sebastian Dröge
751b293df8 alphacolor: Use GstVideoFilter as base class for automatic QoS support 2010-03-15 18:09:55 +01:00
Sebastian Dröge
e46f0261c8 alphacolor: Some minor cleanup 2010-03-15 18:07:29 +01:00
Jan Urbański
c69c5cb0d7 flvmux: Correctly mark buffers as delta units
Mark video interframes, video codec data buffers and audio buffers (if
it's not an audio-only stream) as delta units.
2010-03-15 13:54:39 +01:00
Jan Urbański
9fdecbc1c1 flvmux: Support streamheaders
Put the FLV header, the metadata tag and (if present) codec
information in the streamheader to allow the muxer to be used for
streaming.
2010-03-15 13:53:53 +01:00
Jan Urbański
7deee29d2c flvmux: Preallocate index space and fill it after finishing output
Make the index appear at the beginning of the file, which is what most
players are expecting.

Fixes #601236.
2010-03-15 13:52:03 +01:00
Sebastian Dröge
7c74f7d525 flvmux: Minor coding style fixes and cleanup 2010-03-15 13:47:13 +01:00
Jan Urbański
54a8237d62 flvmux: Add a is-live property
If it is set, the muxer will not write the index. Defaults to false.
2010-03-15 13:46:09 +01:00
Jan Urbański
c9bb3edd6f flvmux: Only put valid seek points in the index
For files containing video only video keyframes are valid points to
which a player can seek. For audio-only files any tag start is a valid
seek point.

See #601236.
2010-03-15 13:45:21 +01:00
Jan Urbański
b21c5c9015 flvmux: Fix index building to make entries point to tag's start offset
Previous coding was wrongly incrementing the total byte count before
adding an index entry.
2010-03-15 13:44:14 +01:00
Wim Taymans
ba6dbaecfc rtspsrc: don't forget to send keepalive messages
When we operate in TCP mode, still send keepalive messages when we
need to.

Fixes #612696
2010-03-15 11:38:23 +01:00
Thiago Santos
5efda5caf7 qtdemux: add XMP parsing support
Use xmp helpers to parse XMP metadata in udta atom.

Fixes #609539
2010-03-11 19:04:49 -03:00
Michael Smith
5b357ce22e udp: fix compilation errors on non-windows. 2010-03-11 12:32:56 -08:00
Andoni Morales Alastruey
7f980d28aa multiudpsink: avoid getting the socket family using getsockname() 2010-03-11 10:33:10 -08:00
Edward Hervey
32498746ad qtdemux: Fix print statements for pointer differences.
This fixes it for both 32 and 64 bit
2010-03-11 17:28:47 +01:00
Edward Hervey
8d794e6a9f qtdemux: Fix unitialized variables 2010-03-11 17:28:35 +01:00
Edward Hervey
6dfcee8fdb flvdemux: Fix printf formatting for macosx 2010-03-11 17:04:41 +01:00
Edward Hervey
8e0a8b30b8 flvdemux: Fix unitialized variables 2010-03-11 17:04:41 +01:00
Edward Hervey
c4d55cf782 avidemux: Fix unitialized variable. 2010-03-11 17:04:41 +01:00
Edward Hervey
95d087ed77 flvparse: Make script tag parsing more flexible.
* The nb_elements for arrays is just an indication, we can therefore ignore
  it and carry on parsing metadata items until we reach the end marker.
* If type == 3, then the script tag contains a list of object followed
  by the end marker.

Refactor code slightly to handle both cases

https://bugzilla.gnome.org/show_bug.cgi?id=610447
2010-03-11 17:04:41 +01:00
Mark Nauwelaerts
c007d8535c avidemux: ignore stream with invalid header time metadata 2010-03-11 15:04:19 +01:00
Thiago Santos
145b3a3079 qtdemux: Set stream-format=raw on AAC caps
Set stream-format=raw for AAC caps, as that is the
expected AAC format to be in this container family.

Fixes #566250
2010-03-11 09:38:32 -03:00
Wim Taymans
d29fa60f97 rtspsrc: check for NULL before doing strcmp
Check the connection and address type for NULL before doing strcmp and
crashing.

Fixes #612553
2010-03-11 12:56:11 +01:00
Stefan Kost
0a43c86723 build: include stdlib.h for atoi() 2010-03-11 11:09:55 +02:00
Stefan Kost
f405f9c775 audiopanorama: move invariant check out of the inner loop
Improves performance for simple method.
2010-03-11 10:35:05 +02:00
Benjamin Otte
21f66635e8 Update for recent changes to common submodule
This just replaces every "$ERROR_CFLAGS" usage with a usage of
"$WARNING_CFLAGS $ERROR_CFLAGS" to get the same functionality as
previously.

Actually using that separation will happen later.
2010-03-10 21:53:51 +01:00
Andoni Morales Alastruey
2eb651d46f multiudpsink: Reset windows error code after getting corresponding error message. 2010-03-10 10:51:28 -08:00
Michael Smith
c3b0509beb avimux: put the codec_data blob into the actual data for MPEG4 video,
to match other implementations in the wild.
2010-03-10 10:40:47 -08:00
Mark Nauwelaerts
1a60c7b040 avidemux: push mode; also report seekable without an element index
... since recent code also seeks around to obtain required data
from avi index.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
3a1a140e2d avidemux: add some check and standardized seek event handling in push mode 2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
d90aed1857 avidemux: fix offset handling in push mode seeking
Push mode seeking uses same index data as pull mode, and stores
offset to data in chunk, whereas push mode operates in chunks,
and as such needs offset consistently corresponding to chunk headers.
Also fix determining best matching stream for incoming newsegment event,
as well as setting some stream state accordingly.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
1dfcc3227c flvdemux: conduct index scan in task thread
... rather than in seeking thread, which might then occupy mainloop
for some time with possible unresponsive side-effects.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
f23fb39bc7 flvdemux: avoid indefinite index growth
That is, check for and do not add an index entry that has already
been added.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
f79de81bb4 flvdemux: also collect index info on-the-fly in pull mode 2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
86a1aec2c0 flvdemux: incrementally build index in pull mode
Scan for needed part upon a seek as opposed to doing a complete scan
at startup, which may take some time depending on file and/or platform.
Also accept index metadata in pull mode and peek for some metadata
at the end of the file when deemed appropriate.
2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
66fabd8bfd flvdemux: some more variable cleanup 2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
122daaf6af flvdemux: refactor adding index entry 2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
6aa4d5df2d flvdemux: fix setting DELTA_UNIT flag on outgoing buffers
... which should not depend on having index available or not.
Also refactor resulting collapsed code.
2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
561a506822 qtdemux: avoid erroneous codec-data overriding of stsd information 2010-03-10 11:48:06 +01:00
Wim Taymans
821096c4f1 rtspsrc: parse connection information
Parse the connection information from the SDP and use it to figure out if we are
dealing with ipv4 or ipv6 connections.
2010-03-10 11:28:22 +01:00
Wim Taymans
8eb5c2c794 rtspsrc: require a destination for multicast
When setting up the multicast sockets, we need a destination address to listen
on or else we error.
2010-03-10 11:21:20 +01:00
Wim Taymans
574447b092 rtspsrc: handle ipv6 listening ports when needed
Add some code to make udpsrc listen on an ipv6 address when needed. The
detection of IPV6 is not yet implemented.
2010-03-10 11:21:20 +01:00
Wim Taymans
455f53c896 udp: use uri parsing code
Use the uri parsing helper functions to manage the host and port pairs. This
adds support for IPV6.
2010-03-10 11:21:19 +01:00
Wim Taymans
14ae2080d2 udpnetutils: add helper functions for udp uri handling
Add some helpers to parse udp uris. Make sure IPV6 is supported too.
2010-03-10 11:21:19 +01:00
Olivier Crête
a6dfe96169 rtpsession: Make it possible to favor new sources in case of SSRC conflict
Add a "favor-new" property that tells the session to favor new sources when
there is a SSRC conflict. This is useful for SIP calls and other such cases
where a remote loop is extremely unlikely.

Fixes #607615
2010-03-10 11:21:19 +01:00
Olivier Crête
f336ea283f rtpsession: Move SSRC conflicts lists into RTPSource
We will also need to track SSRC conflicts in remote sources.

See #607615
2010-03-10 11:21:18 +01:00
Wim Taymans
38f2b4735d rtspsrc: send keep alive when paused
When we are paused, send keep alive messages to the server so that our session
doesn't time out when we go back to playing later.
2010-03-10 11:21:18 +01:00
David Schleef
acb6ebbc9a multifilesink: Add key-frame option to next-file
This allows segmenting of MPEG-TS files at key frames, which is
exactly what is needed for Apple's HTTP streaming.
2010-03-09 13:52:30 -08:00
Sebastian Dröge
42ff597f41 videobox: Fix autocropping for odd width/height differences 2010-03-09 21:03:18 +00:00
Sebastian Dröge
1819fcb4a5 videobox: Use libgstvideo for format specific stuff 2010-03-09 21:03:18 +00:00
Sebastian Dröge
79e720052a audiofx: Sync properties to the stream time 2010-03-09 21:03:18 +00:00
Sebastian Dröge
4381b9296f videobox: Make properties controllable 2010-03-09 21:03:18 +00:00
Sebastian Dröge
7dcb294b54 videobox: Some cleanup 2010-03-09 21:03:18 +00:00
Sebastian Dröge
f8b7308c21 effectv: Use controller where possible, optimize a bit and make properties threadsafe 2010-03-09 21:03:18 +00:00
Benjamin Otte
b5a3b9cb1c flx: fix description
It's video, not audio
2010-03-09 19:15:07 +01:00
Tim-Philipp Müller
8127670c86 Revert "Add 4:2:2, 4:1:1, and 4:4:4 output support"
This reverts commit 637c26f61a.
2010-03-09 00:09:34 +00:00
Wim Taymans
66709a7a68 rtspsrc: configure multicast correctly
Take the transport destination for multicast.
Disable loop and autojoin for multicast on the udpsinks.
2010-03-08 17:48:46 +01:00
Wim Taymans
83a0c73dc0 multicast: always configure loop and ttl
Also configure TTL and loop parameters when we add a client after initializing
the sender.
2010-03-08 17:48:37 +01:00
Wim Taymans
cabe01ef95 Revert "rtph263depay: baseclass handles timestamps for us"
This reverts commit 564581e1b8.

If we don't call push_ts, there will be no timestamp at all on the outgoing
buffer.

Fixes #612154
2010-03-08 17:48:27 +01:00
Benjamin M. Schwartz
637c26f61a Add 4:2:2, 4:1:1, and 4:4:4 output support 2010-03-08 17:48:11 +01:00
Wim Taymans
529f443a61 rtpsource: use payload size to estimate bitrate
Use the length of the payload for estimating the receiver bitrate so that it
matches the calculations done on the sender side. Together with the number of
packets one can scale the bitrate with the header overhead of the lower
transport.
2010-03-08 17:48:04 +01:00
Wim Taymans
c971d1a9ab rtpsource: refactor bitrate estimation
Don't reuse the same variable we need for stats for the bitrate estimation
because we're updating it.
Refactor the bitrate estimation code so that both sender and receivers use the
same code path.
2010-03-08 17:48:00 +01:00
Tristan Matthews
a0a6d4ff3b added bitrate estimation to receiver-side stats, fixes #611213 2010-03-08 17:47:55 +01:00
Wim Taymans
968c981e74 h263pay: fix typo in debug 2010-03-08 17:47:14 +01:00
Edward Hervey
869ff4263f matroskademux: Make sure we don't send invalid newsegments
Fixes #611501
2010-03-02 21:20:45 +01:00
Edward Hervey
be186bd089 matroskademux: Mark streams as being EOS at the right time.
This allows us to stop streaming only when all streams have gone past the
segment.stop and not before.

Fixes #611501
2010-03-02 21:20:31 +01:00
Sebastian Dröge
ad71d43f52 matroskademux: Advance sparse streams only as much as required to keep the gap smaller than 500ms
Changing it to the newest timestamp that was ever pushed will
increase the segment start in 500ms jumps, which could be just
after the next sparse stream buffer. E.g.

Video at 1.0s, sparse stream at 0.5s would jump the
sparse stream to 1.0s. Now a new sparse stream buffer could
appear that has a timestamp of 0.9s and this would be
dropped for no good reason because of bad luck.
2010-02-27 12:20:06 +01:00
Alessandro Decina
49b2a94644 Make sure FLUSH_STOP is sent so not to leave downstream flushing. 2010-02-24 02:05:49 +01:00
Sebastian Dröge
bcd06ea527 rtpjitterbuffer: Reset skew detection after instantiating the jitterbuffer
...not only when going to READY. This sets high_level and friends to
a more useful value.
2010-02-23 17:24:03 +01:00
Sebastian Dröge
0a12e69024 rtpjitterbuffer: Return 100 if high-level is 0 instead of dividing by zero 2010-02-23 17:20:02 +01:00
Wim Taymans
3a09d334a0 rtpmp4gdepay: avoid division by 0
Avoid a division by 0 when no constantDuration was specified and when out two
timestamps are equal.

Fixes #610265
2010-02-23 12:58:03 +01:00
Wim Taymans
e43839eae9 dvdepay: don't output frames until we have a header
Wait for the complete first 6 header DIF packets before outputting a frame.
Decoders need this info to correctly decode the data.

Fixes #610556
2010-02-23 12:54:36 +01:00
Tim-Philipp Müller
8c46cce875 flvdemux: minor micro-optimisation
We know these values don't change during the loop, but the compiler
doesn't and has to re-check them for every iteration.
2010-02-19 12:13:08 +00:00
Tim-Philipp Müller
ec9add84a8 flvdemux: remove static keyword from variables that shouldn't be static
Multiple flvparse/flvdemux instances should be able to operate without
trampling over each other by accidentally re-using the same (static)
variables. (Spotted by Mark Nauwelaerts)
2010-02-19 12:13:07 +00:00
Tim-Philipp Müller
07fa73f199 docs: add Since: markers for new jitterbuffer properties 2010-02-19 12:13:07 +00:00
Robert Swain
8d801f41d8 qtdemux: Fix off-by-one logic error in frame rate cap regression commit 2010-02-18 18:20:24 +01:00
Thiago Santos
f1c61e1d84 qtdemux: Use the correct duration when comparing segments
Do not confuse QtDemuxSegments with GstSegments when
comparing the total file duration with the segment duration

Fixes #610296
2010-02-18 07:53:34 -03:00
Robert Swain
2723de585e qtdemux: add durations modulo 1<<32
For calculating the durations of each sample, we are supposed to add each
duration modulo 1<<32 so make the elapsed time counter a uint32.

Fixes #610280
2010-02-17 18:06:29 +01:00
Anders Skargren
6a877b2e6d multipartdemux: improve header mime-type parsing
Make the handing of the mime type within the "boundary" a bit less naive.
The standard for MIME allows parameters to follow the "type" / "subtype"
clause separated from the mime type by ';'.

Modifies the multipartdemuxer's header parsing so it doesnt assume
the whole line after "content-type:" is the mime type and thus makes it a bit
more resilient to finding absurd mime types in the case where parameters are
added.

Fixes #604711
2010-02-16 21:05:24 +01:00
Wim Taymans
a0b651bf5b rtspsrc: avoid stopping NULL tasks
Check the task for NULL, it could be paused and set to NULL before.
2010-02-16 19:54:32 +01:00
Mark Nauwelaerts
d14685eb08 qtdemux: fix ALAC codec-data handling
ALAC codec-data apparently comes in (at least) two flavours (mov, mp4),
so use atom based parsing to retrieve required data, rather than
aiming for a specific offset.

See also #580731.
2010-02-16 16:22:28 +01:00
Mark Nauwelaerts
105d8c925b qtdemux: fix debug message 2010-02-16 16:09:36 +01:00
Mark Nauwelaerts
58d84a993c qtdemux: handle signed values in 3GPP location tag 2010-02-16 16:09:26 +01:00
Mark Nauwelaerts
87e80aab57 rtspsrc: fix typo in debug message 2010-02-16 16:07:21 +01:00
Mark Nauwelaerts
172c0c6a6a avidemux: reset some more stream state after seek
In particular, fixes non-flushing seek.
2010-02-16 15:03:59 +01:00
Robert Swain
e2f5409d40 qtdemux: Fix frame rate cap regression
Look for a non-zero min_duration during initialisation to avoid
incorrect frame rate caps.
2010-02-16 14:44:11 +01:00
Brian Cameron
a45b351ddf matroska: fix GST_ELEMENT_ERROR usage
Fixes #610053.
2010-02-16 01:40:19 +00:00
Wim Taymans
9d40d60960 rtpbin: remove use of ntp_ns_base 2010-02-15 21:36:29 +01:00
Wim Taymans
5a4ecc9da1 rtpbin: remove more ntpnstime and cleanups
Remove some code where we pass ntpnstime around, we can do most things with the
running_time just fine.
Rename a variable in the ArrivalStats struct so that it's clear that this is the
current system time.
2010-02-15 21:36:29 +01:00
Wim Taymans
74241e549f rtpsource: use running_time for jitter
Use the running_time to calculate the jitter instead of the ntp time. Part of
the plan to get rid of ntpnsbase.
2010-02-15 21:36:29 +01:00
Wim Taymans
83cb1aecc8 rtpbin: change how NTP time is calculated in RTCP
Don't calculate the NTP time based on the running_time of the pipeline but from
the systemclock. This allows us to generate more accurate NTP timestamps in case
the systemclock is synchronized with NTP or similar.
2010-02-15 21:36:29 +01:00
Tim-Philipp Müller
0233257612 matroska: fix printf format string 2010-02-15 10:33:02 +00:00
Tim-Philipp Müller
63c86ac3d8 raw1394, matroska, rtpmanager: remove padding from structures
None of these element and class structures are in public headers,
so don't need padding.
2010-02-15 00:50:10 +00:00
Edward Hervey
fa0e3184dd flvdemux: Audio tags without any content are valid.
We silently ignore them instead of erroring out.
2010-02-13 18:18:42 +01:00
Edward Hervey
817911664e flvdemux: Fix GST_CLOCK_DIFF usage.
It was previously checking for DIFF(a, b > 6 * GST_SECOND) instead of
the proper DIFF(a,b) > 6 * GST_SECOND
2010-02-13 18:07:50 +01:00
Edward Hervey
d263119589 flvdemux: Don't forget to reset the indexed variable when cleaning up 2010-02-13 16:27:07 +01:00
Edward Hervey
0dd06da5e8 flvdemux: Speedup GstIndex usage
Used the _add_associationv variant of GstIndex since we know how many
associations we're adding. Trims up to 50% from index generation time.

Note : It would be great if the index could be generated on the fly or
on request as opposed to being fully created at startup.
2010-02-13 14:57:59 +01:00
Wim Taymans
7f08081016 jitterbuffer: don't resync to invalid timestamps
If we detect backward timestamps on the server, don't try to resync when we
don't have an input timestamp (such as when using RTSP over TCP) instead, do
nothing but assume the timestamp was ok, it will correct itself when time goes
forwards.
2010-02-12 19:32:27 +01:00
Wim Taymans
d344754f03 rtpbin: fix typo 2010-02-12 17:22:56 +01:00
Wim Taymans
772eca5aff jitterbuffer: start out active and not buffering
There is no need to set the latency in the jittebuffer in _init, we will set
that later when going to PAUSED.
Set the jitterbuffer active and not buffering when starting.
2010-02-12 17:22:56 +01:00
Wim Taymans
8bbfd94c25 rtpbin: more buffering work
When deactivating jitterbuffers when the buffering starts, keep the current
percent of the jitterbuffer and also set the jitterbuffer in the buffering state
so that we know when it's filled again.
Add property to get the buffering percentage of the jitterbuffer.
2010-02-12 17:22:56 +01:00
Wim Taymans
e6e287cdcc rtpjitterbuffer: adjust latency in buffer mode
When we are in buffer mode, adjust the buffering low/high thresholds based on
the total configured latency. If we don't and there is a huge queue or element
with a big latency downstream we might drain the complete queue immediately and
start buffering again.
2010-02-12 17:22:55 +01:00
Wim Taymans
ab73603031 jitterbuffer: add ts-offset to timestamp
Add the ts-offset to the buffer timestamp to get the final output timestamp of
the buffer.
2010-02-12 17:22:55 +01:00
Wim Taymans
74a3be350d rtpbin: do more accurate buffer offsets
Return the next timestamp in the jitterbuffer.
Use the min-timestamp of the jitterbuffers to calculate an offset so that the
next timestamp is pushed with a timestamp equal to running_time.
Start producing timestamps from 0 in the buffering case too.
2010-02-12 17:22:55 +01:00
Wim Taymans
3efcc0fbc1 rtpbin: only start buffering when < 100%
Only start buffering when the percentage message is < 100 %.
2010-02-12 17:22:55 +01:00
Wim Taymans
0348ebe651 rtpbin: keep track of elapsed pause time
Keep track of the time we spend pausing the jitterbuffers when they were
buffering and distribute this elapsed time to the jitterbuffers.
Also keep the latency in nanosecond precision.
2010-02-12 17:22:54 +01:00
Wim Taymans
ecf6ed8fc1 jitterbuffer: keep track of offset
Keep track of an outgoing offset that we add to each outgoing buffer to
compensate for PAUSE when buffering.
Adjust the offset when activating.
2010-02-12 17:22:54 +01:00
Wim Taymans
048e5b6fbe jitterbuffer: report level using high watermark 2010-02-12 17:22:54 +01:00
Wim Taymans
8d814f3782 rtpbin: pass running_time to jitterbuffer pause
Pass the current running time to the jitterbuffer when pausing or resuming so
that it calculate the right offsets.
Small cleanups and comments.
Set the default rtspsrc latency to 2 seconds.
2010-02-12 17:22:54 +01:00
Wim Taymans
bf697b12e3 rtpbin: add some comments 2010-02-12 17:22:53 +01:00
Wim Taymans
20a27a545a rtpbin: more buffering updates
Add signal to pause the jitterbuffer. This will be emitted from gstrtpbin when
one of the jitterbuffers is buffering.
Make rtpbin collect the buffering messages and post a new buffering message with
the min value.
Remove the stats callback from jitterbuffer but pass a percent integer to
functions that affect the buffering state of the jitterbuffer. This allows us
then to post buffering messages from outside of the jitterbuffer lock.
2010-02-12 17:22:53 +01:00
Wim Taymans
a5b9d3f917 rtpbin: propagate buffer-mode property
Propagate buffer-mode property to the jitterbuffers.
Intercept BUFFERING messages in rtpbin
2010-02-12 17:22:53 +01:00
Wim Taymans
d3db9574a9 jitterbuffer: do more buffering implementation
Add callback for buffering stats.
Configure the latency in the jitterbuffer instead of passing it with _insert.
Calculate buffering levels when pushing and popping
Post buffering messages.
2010-02-12 17:22:52 +01:00
Wim Taymans
aeacbfed3e jitterbuffer: flesh out buffering mode some more
Add a buffering state to the jitterbuffer and wait until buffering ends before
pushing out packets.
2010-02-12 17:22:52 +01:00
Wim Taymans
56b29c9a6b jitterbuffer: hook up the mode property
Expose a mode property on the jitterbuffer.
Fix the case where timestamps are -1 in the check for outgoing timestamps.
2010-02-12 17:22:52 +01:00
Wim Taymans
be4517a6b8 jitterbuffer: add buffering mode options
Add getters and setters for different buffering modes that the jitterbuffer will
support. Default to the current slave mode.
2010-02-12 17:22:52 +01:00
Robert Swain
bf9d8dbbdc flvdemux: Obtain the index from the end of an flv file in push mode
Allows for better support of seeking in flv files when in push mode
2010-02-12 16:25:44 +01:00
Robert Swain
dd23397b4f avidemux: Drop video frames up to the desired keyframe after a seek
The audio packets in AVI are generally muxed ~0.5s before the
corresponding video packet. This changes causes downstream to only
receive packets with roughly corresponding timestamps.
2010-02-12 15:56:18 +01:00