Commit graph

5804 commits

Author SHA1 Message Date
Brian Li
a3e9b676c0 qtdemux: fragmented support; properly init return variable value
Fixes #655918.
2011-09-05 14:56:08 +02:00
Mark Nauwelaerts
2603c2079d rtspsrc: add gtk-doc for new short-header property 2011-09-05 13:32:17 +02:00
Marc Leeman
ce276d903c rtspsrc: allow sending short RTSP requests to a server
Some encoders (Arecont) do not like the long OPTIONS sent at startup as sent by
GStreamer, but do accept the short header as sent by Live555.

This patch makes the extending the request optional by adding a property
(short-header).

Fixes #655805.

API: GstRTSPSrc:short-header
2011-09-05 13:26:06 +02:00
Olivier Crête
d4778dbe43 rtph263ppay: Set H263-2000 if thats what the other side wants
The static caps states this element supports H263-2000, but setcaps never
sets it, so it was lie.

See https://bugzilla.gnome.org/show_bug.cgi?id=577784
2011-09-05 12:58:55 +02:00
Olivier Crête
b2e8362767 rtpsession: Initialise the last_keyframe_request variable 2011-09-02 19:24:46 -04:00
Peter Korsgaard
d73410c4af multiudpsink: make add/remove/clear/get-stats action signals
http://bugzilla.gnome.org/show_bug.cgi?id=657830

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-09-01 22:54:27 +01:00
Wim Taymans
24df106272 mp2t: fix encoding name according to RFC3551 2011-08-31 18:45:15 +02:00
Mark Nauwelaerts
e15d29ffe4 qtdemux: push mode; perform some extra checks prior to upstream seeking 2011-08-30 14:24:04 +02:00
Mark Nauwelaerts
9de9d7e4d4 qtdemux: push mode; fix buffered streaming
That is, in case where no seek is peformed to moov, but preceding
limited mdat is buffered.
2011-08-30 14:23:49 +02:00
Wim Taymans
9521326703 shapewipe: port to 0.11 2011-08-30 14:06:12 +02:00
Wim Taymans
ef560b86e2 law: port to 0.11 2011-08-30 12:25:35 +02:00
Wim Taymans
5ad41c7292 alaw: port to 0.11 2011-08-29 19:11:25 +02:00
Wim Taymans
e62d326dc2 goom: fix comment 2011-08-29 19:10:35 +02:00
Mark Nauwelaerts
5ea19b0696 qtdemux: avoid overflow wraparound in timestamp when adding durations
Do some type juggling to avoid overflow, while still allowing for 'negative'
durations (which would need a wraparound effect).
2011-08-29 15:16:16 +02:00
Wim Taymans
75e153bb13 allocation: fix for vmethod changes 2011-08-26 14:20:49 +02:00
Wim Taymans
18065ac823 port to new video flags 2011-08-25 16:41:23 +02:00
Wim Taymans
e9df54819c Merge branch 'master' into 0.11 2011-08-24 14:16:44 +02:00
Vincent Penquerc'h
f3fc3e1f69 aacparse: only require two frames in a row when we do not have sync
This avoids a single bit error dropping two frames unnecessarily.
The two consecutive frames check is still required when we don't
have sync.

https://bugzilla.gnome.org/show_bug.cgi?id=657080
2011-08-24 08:26:31 +02:00
Wim Taymans
60f0e44bf6 video: port to new colorimetry info 2011-08-23 19:09:31 +02:00
Wim Taymans
d6908f1a2d Merge branch 'master' into 0.11 2011-08-22 13:10:07 +02:00
Wim Taymans
9d6371405e fourcc: remove fourcc from caps 2011-08-22 12:24:15 +02:00
David Schleef
88557c4792 breakmydata: element is not passthrough 2011-08-21 15:15:14 -07:00
David Schleef
2a83da13fc multifilesrc: quiet debugging 2011-08-21 15:15:14 -07:00
David Schleef
0446787e65 deinterlace: change field handling through methods
This likely breaks stuff.  The good: all of the methods now create
field images aligned with input frames, without timestamp mangling.
The bad: this touches a lot of code, much of which is hairy and in
need of cleanup.  However, at this point we can reasonably create a
PSNR-based test.
2011-08-21 15:15:14 -07:00
Alessandro Decina
ad996feb28 multifilesink: reset ->streamheaders to NULL on _stop
Fixes invalid memory access reusing multifilesink
2011-08-21 14:41:59 +02:00
Wim Taymans
5e3a52f1d9 cutter: bring cutter somewhat into this millennium 2011-08-20 10:46:18 +02:00
Wim Taymans
c1abdd7626 rg: fix caps 2011-08-19 16:27:20 +02:00
Wim Taymans
445bf71bd1 port to more audio api changes 2011-08-19 16:09:48 +02:00
Wim Taymans
77ad0a1363 port more elements to new audio caps and API 2011-08-19 14:01:45 +02:00
Wim Taymans
90f5b31b4b port to new audio API and caps 2011-08-19 11:49:44 +02:00
Wim Taymans
135b41cb5b Merge branch 'master' into 0.11 2011-08-18 19:37:39 +02:00
Wim Taymans
09b15d7dfe port to new audio caps. 2011-08-18 19:21:07 +02:00
Vincent Penquerc'h
e032d26674 matroskademux: ensure no-more-pads is always emitted
In particular, do so even if failing to read while prerolling,
such as when reading from a partial file (eg, while it is being
downloaded).

This fixes a wedge in playbin2.

https://bugzilla.gnome.org/show_bug.cgi?id=651965
2011-08-18 11:30:07 +02:00
Wim Taymans
48e47ad702 Merge branch 'master' into 0.11 2011-08-17 11:17:38 +02:00
Vincent Penquerc'h
f8a9f5bc1c spectrum: avoid crashing by resetting the correct number of channels
https://bugzilla.gnome.org/show_bug.cgi?id=656606
2011-08-16 22:44:07 +01:00
Wim Taymans
4bb2b140e9 Merge branch 'master' into 0.11
Conflicts:
	sys/v4l2/v4l2src_calls.c
2011-08-16 18:35:53 +02:00
Vincent Penquerc'h
6ac7ad8a2c flacparse: fix off by one in frame size check
Yes, I was tracking another bug and the small test file I generated
to test with improbably just happened to trigger this, with a second
and last frame of 1615 bytes.

https://bugzilla.gnome.org/show_bug.cgi?id=656649
2011-08-16 13:25:30 +01:00
Tim-Philipp Müller
5866c3a413 id3demux: remove specs from git as well now that parsing code is in -base 2011-08-14 20:46:01 +01:00
Mark Nauwelaerts
1ca89389e4 id3demux: use -base provided id3 tag parsing
https://bugzilla.gnome.org/show_bug.cgi?id=654388
2011-08-13 23:19:32 +01:00
Stefan Kost
a1b1d19105 qtdemux: initialize bitrate variable and reset for each loop
Don't check eventually unset variable and don't accidentially use values from last
cycle.
2011-08-12 16:32:58 +02:00
Edward Hervey
d08e0ccc48 rtspsrc: Properly error out if SDP contains no streams
Also fixes unitialized variable error on macosx.
2011-08-09 11:28:17 +02:00
Wim Taymans
5fa0c28bc4 isomp4: fixup after small api changes
Port to recently changed api so that it compiles again.
2011-08-05 12:07:50 +02:00
Edward Hervey
eb8075111d y4menc: Now depends on libgstvideo 2011-08-05 11:32:45 +02:00
Wim Taymans
84371e4066 goom: port to new caps 2011-08-04 16:32:39 +02:00
Wim Taymans
ee2aa25e04 port to new API 2011-08-03 18:37:27 +02:00
Wim Taymans
4121021bb2 Merge branch 'master' into 0.11
Conflicts:
	ext/pulse/pulsesink.c
	ext/pulse/pulsesrc.c
	gst/audioparsers/gstac3parse.c
	gst/rtp/gstrtph264depay.c
	gst/rtp/gstrtph264pay.c
	gst/rtpmanager/gstrtpssrcdemux.c
2011-08-03 18:25:30 +02:00
Jan Schmidt
1438bf26ac matroska: Register new debug category
Register the matroskareadcommon debug category when the
plugin is loaded to avoid assertion output when debug is turned on.
2011-08-03 22:52:07 +10:00
Philippe Normand
0424368cfc qtdemux: soften assertion check on stream size
https://bugzilla.gnome.org/show_bug.cgi?id=655570
2011-08-03 10:11:59 +02:00
Robert Krakora
f7893b8721 rtpjpegpay: Add support for H.264 payload in MJPEG container
See http://www.quickcamteam.net/uvc-h264/USB_Video_Payload_H.264_0.87.pdf

Fixes bug #655530.
2011-08-03 10:09:42 +02:00
Sebastian Dröge
4aa5485cfc effectv: Fix unused but set variable compiler warnings 2011-08-03 08:51:19 +02:00
Tim-Philipp Müller
a1712ad87c docs: fix two more Since: tags 2011-08-02 23:42:58 +01:00
Mart Raudsepp
62cd1215c7 deinterlace: Fix Since tags for fieldanalysis related new properties
commit c1b100cf9c is after 0.10.29 and 0.10.30 was a branched release.
So fix Since tags from 0.10.29 to 0.10.31 for the new properties.
2011-08-02 23:38:13 +01:00
Wim Taymans
5771056ed5 rtpvorbispay: fix porting error 2011-08-02 11:51:45 +02:00
Wim Taymans
49af68ebf4 -good: fix for bufferpool API change 2011-07-29 17:27:07 +02:00
Mark Nauwelaerts
c03648c8bb rtpsession: properly init rtcp_min_interval 2011-07-29 12:08:42 +02:00
Mark Nauwelaerts
3a98f6f0fd rtpssrcdemux: keep a ref on the src pad while using it
Prevent a possible race if clear_ssrc() is called between getting the pad and
doing the push.

Based on patch by <olivier.crete@collabora.com>

https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:51:01 +02:00
Olivier Crête
c7b9b98648 rtpssrcdemux: Make the pads lock recursive and hold it across the signal emit
We need to keep the lock held because we don't want a push before the "new-ssrc-pad"
handler has completed. But we may want to push an event from inside that handler, hence
the recursive mutex.

https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:50:59 +02:00
Olivier Crête
e26b5391c2 rtpssrcdemux: Use PADs lock
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:50:57 +02:00
Tim-Philipp Müller
b843f8f99c gst: udpate for position/duration/convert query API changes 2011-07-28 11:38:31 +01:00
Tim-Philipp Müller
f94ea7299a avidemux: fix compiler warning
gstavidemux.c: In function 'gst_avi_demux_parse_stream':
gstavidemux.c:1261:24: error: 'data' may be used uninitialized in this function [-Werror=uninitialized]
gstavidemux.c:1204:11: note: 'data' was declared here
2011-07-28 11:38:31 +01:00
Sjoerd Simons
4c73439ee3 rtph264depay: Cope with FU-A E bit not being set
Some h264 payloaders are unfortunately buggy and don't correctly set the
E bit in FU-A NAL when they have ended. Work around this by assuming
such a fragmentation unit has ended when there was no packet loss and a
new NAL is started
2011-07-27 18:18:13 +01:00
Arun Raghavan
89564fcb69 ac3parse: Support switching alignment on-the-fly
This allows switching of alignment for E-AC3 streams at run-time. This
is requested by downstream elements via a custom event.

https://bugzilla.gnome.org/show_bug.cgi?id=650313
2011-07-27 20:43:56 +05:30
Wim Taymans
13d0ad188f warp: add stride support 2011-07-27 12:42:21 +01:00
Wim Taymans
3e089bd7a9 rtp: fix compilation 2011-07-26 17:45:01 +02:00
Arun Raghavan
96972eb462 ac3parse: Add support for IEC 61937 alignment
When pushing out buffers over S/PDIF or HDMI, IEC 61937 payloading
requires each buffer to contain 6 blocks from each substream. This adds
code to collect all the frames needed to meet this requirement before
pushing out a buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=650313
2011-07-26 10:40:00 +05:30
Olivier Crête
6095d2a3f0 rtpsession: Always send application requested feedback in immediate mode
Send as many application requested feedback messages in immediate mode, even if they
have already been sent.

https://bugzilla.gnome.org/show_bug.cgi?id=654583
2011-07-25 17:20:59 +02:00
Olivier Crête
354faabda0 rtpsession: Don't let the computed RTP bandwidth fall too low
If it falls too low, the computed RTCP bandwidth will be near zero and
the RTCP thread will be stopped.

https://bugzilla.gnome.org/show_bug.cgi?id=654583
2011-07-25 16:19:00 +02:00
Olivier Crête
4d48109f9d rtpsession: Wait longer to timeout SSRC collision
Using the current RTCP interval to timeout SSRC collision can lead to
collisions being timed out immediately if a BYE packet is sent because
it is sent immediately, so the interval is 0. This is not what we
want. So just set a static 10 times the default RTCP interval, it
should be enough

https://bugzilla.gnome.org/show_bug.cgi?id=648642
2011-07-25 16:18:58 +02:00
Mark Nauwelaerts
9764b57b0a rtspsrc: set SOURCE flag at init time
Fixes #654816.
2011-07-25 12:44:38 +02:00
Wim Taymans
7ca40d7a53 vertigotv: add stride support 2011-07-25 10:24:33 +01:00
Wim Taymans
83bc5e0765 replay: fix for event handler 2011-07-22 21:26:32 +02:00
Wim Taymans
984a0b54eb fixes for event handler changes 2011-07-22 21:19:45 +02:00
Olivier Crête
2591a882ae rtph264depay: Complete merged AU on marker bit
The marker bit on a RTP packet means the AU has been completed, so push it out
immediately to reduce the latency.

https://bugzilla.gnome.org/show_bug.cgi?id=654850
2011-07-21 17:11:08 +02:00
Olivier Crête
118a7cc36a rtph264pay: Only set the marker bit on the last NALU of a multi-NALU access unit
An access unit could contain multiple NAL units, in that case, only the last
RTP packet of the last NALU should have its marker bit set.

https://bugzilla.gnome.org/show_bug.cgi?id=654850
2011-07-21 17:11:06 +02:00
Alessandro Decina
216dc602c3 multipart: fix compiler warning 2011-07-20 08:53:25 +02:00
Mark Nauwelaerts
1880c4145e auparse: avoid hanging on invalid short input
... as in such case there is no srcpad yet on which to forward EOS.
2011-07-19 12:05:51 +02:00
Mark Nauwelaerts
471904032d rtph264depay: reset upon FLUSH_STOP
... which is particularly needed when merging NAL units, where not resetting
would lead to output of an older (pre-flush) AU (with unintended timestamp).
2011-07-18 14:32:26 +02:00
Mark Nauwelaerts
6c0aec783a multifilesink: do not use g_slist_free_full
... as that is only in GLib 2.28, which is not yet required at this time.
2011-07-18 14:31:40 +02:00
Alessandro Decina
072bd74cc4 multifilesink: add max-files property
Add max-files property to limit the number of files saved on disk.

API: multifilesink::max-files
2011-07-18 10:21:41 +02:00
Alessandro Decina
c9096c6829 multifilesink: refactor file opening and closing code 2011-07-17 23:36:55 +02:00
Alexey Fisher
69c14012c9 matroskademux: fix pixel-aspect-ratio if header has only one display variable
Current matroska demux calculates the pixel aspect ratio only if both
DisplayHeight and DisplayWidth are set, but it is legal to use only
one variable if the other is equal to PixelWidth or PixelHeight, at
least the mkclean utility is doing that. So this makse mkcleaned
files play correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=654744
2011-07-17 00:11:03 +01:00
Antoine Jacoutot
df3cee6606 goom: fix build on PPC on openbsd
A missing sys/param.h include results in:

/usr/include/sys/proc.h:64: error: 'MAXLOGNAME' undeclared here (not in a
function)
/usr/include/sys/proc.h:285: error: 'MAXCOMLEN' undeclared here (not in a
function)

when compiling goom on openbsd/ppc. We can just remove the two sys/ includes
here, they are not needed for anything.

https://bugzilla.gnome.org/show_bug.cgi?id=654749
2011-07-16 23:50:25 +01:00
Wim Taymans
9c087d7d85 Merge branch 'master' into 0.11 2011-07-15 17:06:39 +02:00
Olivier Crête
87c7f303b0 rtppcmApay/depay: Static clock rates on static payloads, dynamic on dynamic
Partially reverts 397dc60b
2011-07-14 20:13:01 -04:00
Olivier Crête
57a832cbb1 rtph264pay: Implement getcaps
Convert profile-level-id from RTP caps into video/x-h264 style caps (with profile and level)
2011-07-13 14:10:35 -04:00
Mark Nauwelaerts
b98585df82 rtspsrc: fix seeking regression
... introduced when shuffling around code for the async implementation
by setting state of source (and udp sources) in _play before downstream
flushing is undone.
2011-07-12 15:13:25 +02:00
René Stadler
fd38772d3e ac3parse: fix buffer duration on blocks-per-frame change
The gst_base_parse_set_frame_rate call was predicated on a change to
sample rate, duration or profile. However, the block count per frame can
also change between packets, which would result in incorrect buffer
durations.
2011-07-11 15:35:46 +03:00
Mark Nauwelaerts
eb82a50bd1 rtp: port remaining to 0.11 2011-07-10 21:50:19 +02:00
Wim Taymans
bee50961e4 y4m: port some more
Use video helpers.
2011-07-10 13:48:54 +02:00
Wim Taymans
924012111f y4m: port to 0.11 2011-07-10 13:28:27 +02:00
Wim Taymans
8926a8f753 multipart: port to 0.11 2011-07-10 12:46:03 +02:00
Wim Taymans
caf1760694 Merge branch 'master' into 0.11 2011-07-10 11:42:37 +02:00
Wim Taymans
1c4ec02be9 debug: port to 0.11, disable others
Diasable the efence and capsdebug elements, port them later.
2011-07-10 11:40:40 +02:00
David Schleef
abb646dcd1 multifilesrc: Improve looping
Add start-index and stop-index properties.
2011-07-09 19:23:41 -07:00
Jonny Lamb
9149ce8d9d multifile: add loop property to multifilesrc
Fixes: #652727

Signed-off-by: Jonny Lamb <jonnylamb@jonnylamb.com>
Signed-off-by: David Schleef <ds@schleef.org>
2011-07-09 18:58:52 -07:00
Wim Taymans
734ec56617 Merge branch 'master' into 0.11 2011-07-08 12:51:14 +02:00
Alexey Fisher
a2e0bda3b5 matroskademux: handle blocks with duration=0
Some video frames, for example alt-ref frame in VP8, will be
never displayed. This is why it has duration=0.

This patch allow to use this duration.

Bug: 654175
Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
2011-07-08 09:58:29 +02:00
David Schleef
4dcc9ee42a qtmux: Add direct dirac mapping 2011-07-07 11:27:52 -07:00
Wim Taymans
a3a253af15 effectv: port last effectv element to 0.11 2011-07-07 17:59:04 +02:00
Wim Taymans
69e2de76de effectv: port streaktv to 0.11 2011-07-07 17:49:34 +02:00
Wim Taymans
b8c426564f effectv: port radioactv to 0.11 2011-07-07 17:40:22 +02:00
Wim Taymans
99c45328b7 effectv: fix docs 2011-07-07 17:29:58 +02:00
Wim Taymans
7e3e4a90d4 effectv: port op to 0.11 2011-07-07 17:29:44 +02:00
Wim Taymans
63e05a0cc4 effectv: port quark tv 2011-07-07 17:18:21 +02:00
Wim Taymans
ec7b96010f effectv: port revtv to 0.11 2011-07-07 16:57:39 +02:00
Wim Taymans
577f689f7e effectv: port vertigotv to 0.11 2011-07-07 16:46:51 +02:00
Wim Taymans
39f689dc97 effectv: port shagadelictv to 0.11 2011-07-07 16:38:10 +02:00
Mark Nauwelaerts
6aea70a8a1 auparse: use ALWAYS src pad rather than SOMETIMES 2011-07-07 11:22:26 +02:00
Mark Nauwelaerts
6ebb23d2a0 auparse: port to 0.11 2011-07-07 11:14:16 +02:00
Wim Taymans
01fe86d53c shapewipe: beginnings of porting 2011-07-06 19:03:52 +02:00
Wim Taymans
be50d18a57 warptv: port to 0.11 2011-07-06 18:50:26 +02:00
Wim Taymans
a462c14b9d dice: keep track of info 2011-07-06 18:50:15 +02:00
Wim Taymans
a1b4b089ec effectv: port dice 2011-07-06 18:32:45 +02:00
Wim Taymans
50b0751799 effectv: port agingtv 2011-07-06 18:09:49 +02:00
Mark Nauwelaerts
a6d9995705 wavparse: use ALWAYS source pad rather than SOMETIMES 2011-07-06 16:32:13 +02:00
Mark Nauwelaerts
e9146e7aec wavparse: port to 0.11 2011-07-06 16:32:13 +02:00
Mark Nauwelaerts
9cf287ebcc wavenc: port to 0.11 2011-07-06 16:32:11 +02:00
Mark Nauwelaerts
88f107b30b qtdemux: adjust to unsigned segment fields 2011-07-06 16:32:11 +02:00
Wim Taymans
3fd1106b7e Merge branch 'master' into 0.11 2011-07-06 12:05:12 +02:00
Mark Nauwelaerts
ef02634dc6 rtpmanager: port to 0.11
* use G_DEFINE_TYPE
* adjust to new GstBuffer and corresponding rtp and rtcp buffer interfaces
* misc caps and segment handling changes

FIXME: also relies on being able to pass caps along with a buffer,
which has no evident equivalent yet, so that either needs one,
or still needs quite some code path modification to drag along caps.
2011-07-06 10:16:12 +02:00
Wim Taymans
794320a202 videoflip: fix caps 2011-07-05 15:37:52 +02:00
Wim Taymans
301e3e32ff effectv: port edgetv 2011-07-05 11:46:16 +02:00
David Schleef
f2c8761a50 goom: Don't answer lantency queries before negotiation 2011-07-04 12:59:50 -07:00
Wim Taymans
f1df4c4b32 udp: port to new API 2011-07-04 18:15:42 +02:00
Wim Taymans
99c102578f alpha: fix caps 2011-07-04 18:10:55 +02:00
Wim Taymans
b9b007e1be alpha: port to new video API 2011-07-04 18:06:48 +02:00
Wim Taymans
3c27f2435a alpha: more porting 2011-07-04 17:00:34 +02:00
Wim Taymans
476e2184f4 port to new video api 2011-07-04 16:49:55 +02:00
Wim Taymans
ead60adb33 video: port to new video apis 2011-07-04 16:49:47 +02:00
Mark Nauwelaerts
54c9b13ea7 flv: port to 0.11
* use G_DEFINE_TYPE
* adjust to new GstBuffer
* misc segment and caps changes
2011-07-04 11:50:02 +02:00
Mark Nauwelaerts
d59a00aa1c Merge branch 'master' into 0.11
Conflicts:
	ext/pulse/pulsesink.c
2011-07-04 11:48:13 +02:00
Mark Nauwelaerts
b307c74e9e flvmux: pass along segment info to collectpads
... so it can track this and be subsequently used to determine running time etc.
2011-07-04 11:36:48 +02:00
Mark Nauwelaerts
350b9b9d2d flvdemux: indicate raw format in aac caps 2011-07-04 11:36:46 +02:00
Mark Nauwelaerts
611c950868 qtmux: mind requested name for request pad 2011-07-04 11:07:13 +02:00
Mark Nauwelaerts
1ea692bc63 avidemux: free scheduling query 2011-07-04 11:06:54 +02:00
David Schleef
32aa80cda8 multipartmux: Add \r\n to tail of pushed buffers
Clients such as Firefox require the \r\n after the payload.
2011-07-03 18:27:17 -07:00
Branko Subasic
e385108f84 matroskademux: avoid looping when searching for clusters
Fixes some bugs that results in the demuxer looping when seaching
for clusters in non-finalized files.

https://bugzilla.gnome.org/show_bug.cgi?id=652195
2011-07-01 17:19:40 +01:00
Mark Nauwelaerts
70b561bc13 multifile: port to 0.10
* use G_DEFINE_TYPE
* adjust to new GstBuffer
* misc caps handling
2011-06-30 12:35:35 +02:00
Mark Nauwelaerts
01fcf3f2ed cutter: port to 0.11
* use G_DEFINE_TYPE
* adjust to new GstBuffer
* minor misc
2011-06-30 12:35:34 +02:00
Mark Nauwelaerts
19145ce5f5 replaygain: port to 0.11
* use G_DEFINE_TYPE
* adjust to new GstBuffer
2011-06-30 12:35:33 +02:00
Mark Nauwelaerts
8d73748509 spectrum: remove deprecated property 2011-06-30 12:35:32 +02:00
Mark Nauwelaerts
2d9bcbdf03 spectrum: port to 0.11
* use G_DEFINE_TYPE
* adjust to new GstBuffer
2011-06-30 12:35:31 +02:00
Mark Nauwelaerts
696ffc85d7 level: port to 0.11
* use G_DEFINE_TYPE
* adjust to new GstBuffer
2011-06-30 11:19:12 +02:00
Mark Nauwelaerts
d9ba4b7616 equalizer: port to 0.11 2011-06-30 10:30:16 +02:00
Debarshi Ray
c8619aa0fd matroskaparse: fix reference counting of parse->streamheader
https://bugzilla.gnome.org/show_bug.cgi?id=652286

Signed-off-by: David Schleef <ds@schleef.org>
2011-06-29 23:56:53 -07:00
Mark Nauwelaerts
f886681367 isomp4: port to 0.11 2011-06-29 12:46:20 +02:00
Mark Nauwelaerts
65bb271a95 avidemux: tweak some ported segment handling
... to avoid losing duration during push mode seeking, and to properly
accumulate running time when segment seeking.
2011-06-29 12:16:38 +02:00
Mark Nauwelaerts
cc526d2e52 qtmux: free date tag 2011-06-29 12:05:23 +02:00
Jonas Larsson
1912c86946 aacparse: not so greedy minimum frame size
Fixes #653559.
2011-06-28 12:40:27 +02:00
Miguel Angel Cabrera Moya
977a5eee7a rtpjitterbuffer: return correct type when assertion fails 2011-06-24 11:59:01 +02:00
Wim Taymans
f0749ed617 rtsp: fix for uri changes 2011-06-22 16:41:13 +02:00
Wim Taymans
cc65bff7c1 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	docs/plugins/inspect/plugin-esdsink.xml
	docs/plugins/inspect/plugin-gconfelements.xml
2011-06-21 18:24:41 +02:00
Mark Nauwelaerts
3daf1ecc21 rtpmp4adepay: fix output buffer timestamps in case of multiple frames 2011-06-21 15:15:33 +02:00
Olivier Crête
581a30d892 rtpsession: The signal has 5 arguments, not 4 2011-06-20 16:47:36 -04:00
Wim Taymans
458d163ccb avimux: use string for video format now 2011-06-20 12:13:11 +02:00
Wim Taymans
c9b154df2f avi: link against gstvideo now 2011-06-20 12:04:48 +02:00
Wim Taymans
b138a0906d avi: port to new caps 2011-06-20 12:03:24 +02:00
Wim Taymans
7ef7157986 Merge branch 'master' into 0.11 2011-06-17 18:12:50 +02:00
Wim Taymans
582e18b673 autodetect: fix caps 2011-06-17 18:11:55 +02:00
Luis de Bethencourt
1a3401f1be goom: fix unused-but-set-compiler warnings
Remove unnecessary res variables, core checks existance
and type of these fields for us already via the template
caps, and we know that these fields exist because we've
fixated them before in _negotiate().
2011-06-17 11:12:31 +01:00
Stefan Kost
6c3e77964a audioecho: fix param flags
If the parameter cannot be changed in paused&playing, it is not controlable. Set
the appropriate mutability flag instead.
2011-06-17 03:07:09 +03:00
Wim Taymans
83678af5e0 flacparse: fix unitialized access 2011-06-15 15:17:19 +02:00
Stefan Kost
b5d5fa2bb9 matroska: add missing stdio include for sscanf 2011-06-14 01:07:57 +03:00
Wim Taymans
fdd93fa85d Merge branch 'master' into 0.11 2011-06-13 19:08:38 +02:00
Wim Taymans
409f29700d -good: port some more plugins 2011-06-13 17:51:40 +02:00
Wim Taymans
e221908169 rtsp: fix for flush_stop API change 2011-06-13 17:14:51 +02:00
Wim Taymans
3c889415a3 rtp: port some more (de)payloader 2011-06-13 17:14:00 +02:00
Mark Nauwelaerts
d17d6d74be audioparsers: not so greedy minimum frame size
... which will be determined by parsing anyway, and avoids introducing
redundant additional latency.
2011-06-13 17:06:37 +02:00
Wim Taymans
eed80e2dd3 -good: update for buffer API change 2011-06-13 16:33:57 +02:00
Wim Taymans
9a54175e9f rtp: port to 0.11 2011-06-13 16:33:46 +02:00
Wim Taymans
b0fbb1725f rtp: fix for API changes in the base classes 2011-06-13 13:25:49 +02:00
Wim Taymans
ea16d8a4d8 avimux: use caps event for negotiation 2011-06-13 13:07:50 +02:00
Wim Taymans
3846eea65a avidemux: fix for flush stop event changes 2011-06-13 13:07:27 +02:00
Raimo Järvi
4f15c9e30e udp: Fix compiler warning on mingw-w64
Fixes: #652144.
gstudpnetutils.h:32:0: error: "WINVER" redefined
/usr/i686-w64-mingw32/sys-root/mingw/include/_mingw.h:231:0: note: this is the
location of the previous definition
2011-06-11 18:02:17 -07:00
Wim Taymans
43460d4357 goom: fix for bufferpool update 2011-06-11 18:58:07 +02:00
Wim Taymans
42f39385d6 goom: update for alignment change 2011-06-10 18:05:01 +02:00
Wim Taymans
c731cd3d95 rtsp: port to 0.11 2011-06-09 17:52:34 +02:00
Wim Taymans
7416c0e13e udp: port to 0.11 2011-06-09 17:50:08 +02:00
Wim Taymans
9290baba06 goom: port goom 2011-06-09 10:50:44 +02:00
Wim Taymans
710fa239d5 Merge branch 'master' into 0.11 2011-06-08 18:06:56 +02:00
Edward Hervey
a8effacf82 debugutils: Switch from GST_BOILERPLATE to G_DEFINE_TYPE 2011-06-07 12:06:08 +02:00
Edward Hervey
8c02b650c9 videofilter: Use new GstBaseTransform::transform_caps API 2011-06-07 11:25:18 +02:00
Edward Hervey
b3a1f5d1ed auparse: Don't use GST_BOILERPLATE 2011-06-07 11:23:55 +02:00
Edward Hervey
8c83978d56 audiofxbasefirfilter: Buffers no longer have caps 2011-06-07 11:22:35 +02:00
Edward Hervey
7505654cf7 alpha: Use new transform_caps vmethod (with filter) 2011-06-07 11:20:00 +02:00
Edward Hervey
7389cb1513 audioparsers: fix some more parsers 2011-06-06 20:43:31 +02:00
Debarshi Ray
9175a903fb matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_chapters

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:54:23 +02:00
Debarshi Ray
05778b85d5 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_attachments

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:43:12 +02:00
Debarshi Ray
d8a8326d7c matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_attached_file

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:43:04 +02:00
Debarshi Ray
366f064e73 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_info

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:42:55 +02:00
Debarshi Ray
2d282a6c79 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_metadata

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:42:46 +02:00
Debarshi Ray
493e197588 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_metadata_id_tag

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:42:33 +02:00
Debarshi Ray
febfcce0fd matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_metadata_id_simple_tag

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:41:51 +02:00
Mark Nauwelaerts
785247cfb3 rtspsrc: reset state tracking variable when appropriate
... so we don't end up interrupting an operation that should not be interrupted
based on the indication of a previous interruptable operation.
2011-06-06 12:59:23 +02:00
David Schleef
f6c348430e interleave: Work around changes in g_atomic API
See #651514 for details.
2011-06-04 13:49:52 -07:00
Debarshi Ray
25e0da562b matroskaparse: Use ARTIST tag instead of AUTHOR for GST_TAG_ARTIST
AUTHOR only existed in an old version of the spec and ARTIST is
the new replacement for this. We are still reading both to still
be compatible with old files.

Fixes bug #644875.
2011-06-04 13:43:27 -07:00
Wim Taymans
0b1bdcf7cb Merge branch 'master' into 0.11
Conflicts:
	sys/ximage/ximageutil.c
2011-06-02 18:51:29 +02:00
Wim Taymans
e9eb7919c7 avi: port AVI elements to new API 2011-06-02 18:47:36 +02:00
David Schleef
0672232b26 matroskamux: For streaming files, push tags first 2011-06-01 17:20:44 -07:00
Thijs Vermeir
cdc3b20ba9 udpsrc: allow skip-first-bytes of full buffer size 2011-06-01 10:19:31 +02:00
Debarshi Ray
399fc9cd1c matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_header

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 17:43:01 +02:00
Antonio Frediani
63d350ceb3 qtmux: Use GST_TAG_IMAGE for coverart too
Fixes bug #638107.
2011-05-30 12:09:31 +02:00
Debarshi Ray
bc7d61abca matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_get_seek_track
    - gst_matroska_{demux,parse}_reset_streams

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:57:30 +02:00
Debarshi Ray
17ff8a73d8 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska{demux,parse}_found_global_tag

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:57:06 +02:00
Debarshi Ray
eeb4d19992 matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_index_seek_find
    - gst_matroska{demux,parse}_do_index_seek

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:56:54 +02:00
Debarshi Ray
1a6e658444 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_tracknumber_unique

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:56:44 +02:00
Debarshi Ray
0aa35a6bcc matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_decode_data

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:56:38 +02:00
Debarshi Ray
b437744b70 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_get_length

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:56:21 +02:00
Sebastian Dröge
0a67d131b9 avimux: Revert 1a90a6c4 and drop Dirac support again
It does not work at all (A/V sync issues), is not very useful,
other containers work much better with Dirac and Dirac in AVI
is not supported by other software.

Fixes bug #541215.
2011-05-27 09:17:46 +02:00
Debarshi Ray
5ba333bcad matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_encoding_cmp
    - gst_matroska_{demux,parse}_read_track_encodings

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-27 09:10:17 +02:00
Debarshi Ray
2589f1cd2d matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_peek_id_length_pull
    - gst_matroska_{demux,parse}_peek_id_length_push

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-27 09:09:33 +02:00
Debarshi Ray
f3820b61a1 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_peek_adapter

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-27 09:09:10 +02:00
Marc Leeman
ff1c05d876 rtpmp4vpay: Deprecated send-config property and replace by config-interval
Fixes bug #622412.
2011-05-26 12:22:52 +02:00
Mark Nauwelaerts
74e0c05ff7 matroskademux: UTF-8 subtitles may have markup
Fixes #616936.
2011-05-26 12:12:57 +02:00
David Hoyt
86f9fa785a multipartdemux: Add property to assume a single stream and emit no-more-pads
Fixes bug #616686.
2011-05-25 21:12:12 +02:00
Miguel Angel Cabrera Moya
c39b7a5359 rtspsrc: uniform unknown message handling
Do the same processing in all the cases when an unknown message is received.
That is, give a warning.

https://bugzilla.gnome.org/show_bug.cgi?id=651059
2011-05-25 20:06:16 +02:00
Debarshi Ray
5384308c99 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_peek_pull

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-25 20:02:40 +02:00
Debarshi Ray
72d969b360 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_peek_bytes

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-25 10:16:31 +02:00
Debarshi Ray
f885e2721a matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_encoding_order_unique
    - gst_matroska_{demux,parse}_read_track_encoding

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-25 10:13:27 +02:00
Wim Taymans
f612f54a40 autodetect: port to new API 2011-05-24 18:27:10 +02:00
Wim Taymans
d89790d545 Merge branch 'master' into 0.11
Conflicts:
	gst/avi/gstavidemux.c
	gst/rtp/gstrtpac3depay.c
	gst/rtp/gstrtpg726depay.c
	gst/rtp/gstrtpmpvdepay.c
	gst/videofilter/gstgamma.c
2011-05-24 17:34:19 +02:00
Mark Nauwelaerts
397dc60b71 pcmudepay: allow variable sample rate 2011-05-24 13:13:55 +02:00
Mark Nauwelaerts
f335fee99e pcmadepay: allow variable sample rate 2011-05-24 13:13:52 +02:00
Debarshi Ray
b316e2346c matroska: fixed copyright headers
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-24 09:53:54 +02:00
Debarshi Ray
85036682cb matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_decode_content_encodings
    - gst_matroska_decompress_data

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-24 09:53:45 +02:00
Debarshi Ray
51c7e6d252 matroska: move GstMatroska{Demux,Parse}::state to GstMatroskaReadCommon
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-24 09:52:50 +02:00
Jonas Larsson
090e3a6f41 qtdemux: Fix buffer leak with corrupted files
Fixes bug #650912.
2011-05-24 09:48:56 +02:00
Miguel Angel Cabrera Moya
16d71c7d96 deinterlace: fix parameter type in trace
https://bugzilla.gnome.org/show_bug.cgi?id=650937
2011-05-24 09:45:31 +02:00
Debarshi Ray
15ce1142ca matroska: refactor code common to matroskademux and matroskaparse
Replace the following functions with their gst_matroska_read_common_*
counterparts:
    - gst_matroska_{demux,parse}_parse_index
    - gst_matroska_{demux,parse}_parse_skip
    - gst_matroska_{demux,parse}_stream_from_num

Introduce GstMatroskaReadCommon to contain those members of
GstMatroskaDemux and GstMatroskaParse that were used by the above
functions.

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-23 17:21:52 +02:00
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
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
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
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
Mark Nauwelaerts
4cd2dac1da avidemux: ensure 0-padding when correcting dubious list size 2011-05-18 14:51:11 +02: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
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
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
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
Sebastian Dröge
f8ed8dd613 wavenc: Allow setcaps to be called after a format was negotiated if it's compatible
Otherwise wavenc will fail if upstream decides to set equivalent caps or caps
with additional information later.

Thanks to Alexander Schremmer for finding this bug.
2011-05-14 11:52:12 +02:00
Edward Hervey
cca48a42c6 qtmux: Fix signed floating point values writing
You would end up on some architectures with 0 being written out
instead of the proper value.

https://bugzilla.gnome.org/show_bug.cgi?id=649449
2011-05-05 15:10:09 +02:00
Mark Nauwelaerts
fc94b78fe1 matroskamux: avoid building index when streamable
... as it will not be written anyway.

Fixes #648937 (?).
2011-05-04 13:12:16 +02:00
Tom Janiszewski
b9c2f8b38f flvmux: don't overwrite metadata tag with duration in streaming mode
A duration tag gets inserted only for streamable=false, so only
update/write the duration later if we actually inserted that tag,
otherwise we write garbage into other tags.

https://bugzilla.gnome.org/show_bug.cgi?id=649060
2011-05-01 14:13:50 +01:00
Tim-Philipp Müller
c25bf5dc34 quicktime: rename plugin to isomp4
https://bugzilla.gnome.org/show_bug.cgi?id=648004
2011-04-30 17:58:02 +01:00
Wim Taymans
63a17f4ec9 audioparsers: fix some parsers 2011-04-29 17:55:28 +02:00
Wim Taymans
b121bb0ae9 audiofx: fix pad_alloc 2011-04-29 15:46:21 +02:00
Wim Taymans
31ffc671f2 rtpgstpay: fix buffer leak 2011-04-26 16:04:07 +01:00
Wim Taymans
eb84592cad rtpgstpay: fix buffer leak 2011-04-26 15:58:12 +02:00
Wim Taymans
9a96783abb rtp: port some more elements 2011-04-25 18:14:45 +02:00
Wim Taymans
bf9b4f8362 rtp: port more to 0.11 2011-04-25 17:27:40 +02:00
Wim Taymans
60db07b4bb rtp: port some more (de)payloaders 2011-04-25 13:16:58 +02:00
Wim Taymans
237ca1631f port some more elements to 0.11 2011-04-25 12:49:36 +02:00
Wim Taymans
a1894ed363 Merge branch 'master' into 0.11 2011-04-25 11:38:28 +02:00
David Schleef
bddac50961 avimux,matroskamux: Add stream-format to h264 caps
Fixes #606662.
2011-04-24 18:56:02 -07:00
Tim-Philipp Müller
234fd201c9 quicktime: rename plugin filename from *qtdemux* to *quicktime*
https://bugzilla.gnome.org/show_bug.cgi?id=648004
2011-04-24 14:14:27 +01:00
Tim-Philipp Müller
3346a53374 docs: add various qtmux variants to documentation 2011-04-21 23:30:26 +01:00
Tim-Philipp Müller
0671b2325e quicktime: register 3gppmux element in addition to the misnamed gppmux 2011-04-21 22:51:52 +01:00
Olivier Crête
42531337f5 rtpsession: Remove incomplete support for RTCP FIR
Remove bits that were meant to suppport RTCP FIR

https://bugzilla.gnome.org/show_bug.cgi?id=648160
2011-04-20 07:50:43 +01:00
Wim Taymans
77acc618e1 use G_DEFINE_TYPE some more 2011-04-19 17:35:47 +02:00
Wim Taymans
a80f3a5d74 avi: use G_DEFINE_TYPE 2011-04-19 17:20:19 +02:00
Wim Taymans
dea50d0b98 use G_DEFINE_TYPE 2011-04-19 17:07:18 +02:00
Wim Taymans
d67288dd03 Merge branch 'master' into 0.11 2011-04-19 16:25:28 +02:00
Tim-Philipp Müller
bb23575f6b flvdemux: fix deadlock on setting index on flvdemux 2011-04-19 14:34:48 +01:00
Wim Taymans
4aa6ca5578 port more plugins to 0.11 2011-04-18 10:54:43 +02:00
Wim Taymans
7555d0949f Merge branch 'master' into 0.11
Conflicts:
	android/apetag.mk
	android/avi.mk
	android/flv.mk
	android/icydemux.mk
	android/id3demux.mk
	android/qtdemux.mk
	android/rtp.mk
	android/rtpmanager.mk
	android/rtsp.mk
	android/soup.mk
	android/udp.mk
	android/wavenc.mk
	android/wavparse.mk
	configure.ac
2011-04-18 10:23:45 +02:00
Tim-Philipp Müller
75d5c41f29 avidemux: fix 'variable may be used uninitialized' warnings caused by -DG_DISABLE_ASSERT 2011-04-17 01:29:01 +01:00
Tim-Philipp Müller
9be707d54d gst: update disted orc backup code 2011-04-16 18:49:27 +01:00
Tim-Philipp Müller
cf953fe923 qtmux: refuse incomplete legacy h264 caps
Refuse h264 caps without stream-format and codec_data fields for
now, to avoid creating broken files. This might cause some pipelines
that worked previously to fail. However, the move from -bad to -good
is our only chance to fix this up, so make it strict for now. We can
always change it back to be less strict in future.

https://bugzilla.gnome.org/show_bug.cgi?id=647919
2011-04-16 18:17:01 +01:00
Tim-Philipp Müller
f325935314 pulse, speexenc, rtpgsmpay: don't use g_assert() for error handling
Don't use g_assert() for error handling, even if they're highly unlikely.
Either we *know* that something can't happen, in which case we
should just not handle it, or we think something can happen, but it is
very very unlikely that it will ever happen, in which case we should
handle it like any other error instead of asserting.

g_assert() is best left for conditions we have control of, like checking
internal consistency of our code, not checking return values of external
code.

Fixes a bunch of warnings when compiling with -DG_DISABLE_ASSERT:
gstrtpgsmpay.c: In function 'gst_rtp_gsm_pay_handle_buffer':
gstrtpgsmpay.c:130:17: warning: variable 'rtpgsmpay' set but not used
gstspeexenc.c: In function 'gst_speex_enc_encode':
gstspeexenc.c:904:19: warning: variable 'written' set but not used
pulsesink.c: In function 'gst_pulsesink_change_state':
pulsesink.c:2725:9: warning: variable 'res' set but not used
pulsesrc.c: In function 'gst_pulsesrc_change_state':
pulsesrc.c:1253:7: warning: variable 'e' set but not used
2011-04-16 18:15:43 +01:00
Tim-Philipp Müller
c2bc6327cd deinterlace, matroska: fix two variable-may-be-used-uninitialized compiler warnings
We use -DG_DISABLE_ASSERT for the pre-releases, which makes these
warnings pop up in cases that were previously covered by g_assert_not_reached()
and the like:
tvtime/greedyh.c:801:14: warning: 'scanline' may be used uninitialized in this function
matroska-mux.c:501:19: warning: 'context' may be used uninitialized in this function
2011-04-16 16:51:32 +01:00
Sebastian Dröge
8a4ae3dd2d apedemux: Port to 0.11 2011-04-16 14:45:25 +02:00
Robert Swain
b5c8c7708b y4mencode: shapewipe: Address unused but set variables
GCC 4.6.x complains about such usage.
2011-04-16 13:12:50 +01:00
Robert Swain
e757793b21 videomixer: Fix argb/rgba overlay orc code
Remove some redundant operations (convubw) and use the correct variable,
t2, in the orc_overlay_bgra function.
2011-04-16 13:00:49 +01:00
Robert Swain
fd6ac6aa8a videomixer: address unused but set variables
GCC 4.6.x spits warnings about variables that are set but unused. Such
variables have been removed in blend, collectpads2 and videomixer2.
2011-04-16 12:52:49 +01:00
Robert Swain
5b18c652fb rtp, rtpmanager: Address unused but set variables
GCC 4.6.x spits warnings about variables that are unused but set. Such
variables have been removed where trivial but with comments left behind
for informational purposes in some cases.

gst_rtp_session_chain_recv_rtcp () was changed in commit 490113d4
to always return GST_FLOW_OK instead of the return value of
rtp_session_process_rtcp (), so we'll keep it that way.
2011-04-16 12:49:16 +01:00
Robert Swain
1c6e8682ec quicktime: Remove unused but set variables
GCC 4.6.x spits warnings about such variable usage. Note that some
calculations are left as comments for informative purposes.
2011-04-16 12:46:12 +01:00
Robert Swain
d596c2e926 matroska: Remove unused but set variables
GCC 4.6.x spits warnings about such variable usage.
2011-04-16 12:40:53 +01:00
Robert Swain
101087a23a imagefreeze: Remove unused but set duration variable
GCC 4.6.x spits warnings about such variable usage.
2011-04-16 12:40:40 +01:00
Robert Swain
383e99c224 flxdemux: Remove unused but set keyframe variables
The FIXMEs about the keyframe flag never being used are left for later
fixing, at which point the keyframe variables could be added back.
2011-04-16 12:40:30 +01:00
Robert Swain
358fa0bc7a edgetv: Remove unused but set height variable
GCC 4.6.x spits warnings about such variables.
2011-04-16 12:40:17 +01:00
Tim-Philipp Müller
a0205ecd51 flacparse: update for gst_base_parse_frame_init() API change 2011-04-15 18:51:20 +01:00
Olivier Crête
9d9257916b rtpsession: Use existing functions to parse RTCP FB packets
Use existing functions to get the FCI from FB packets.

https://bugzilla.gnome.org/show_bug.cgi?id=622553
2011-04-15 12:48:04 +01:00
Olivier Crête
5ccd964d86 rtpsession: marshal GstBuffer as a MiniObject instead of a pointer
https://bugzilla.gnome.org/show_bug.cgi?id=622553
2011-04-15 12:47:40 +01:00
David Schleef
41f3b30010 matroskademux: Better calculation of framerate
https://bugzilla.gnome.org/show_bug.cgi?id=647833
2011-04-15 12:27:57 +01:00
Tim-Philipp Müller
c8b5014892 qtmux: default to dts-method=reorder and presentation-time=true
https://bugzilla.gnome.org/show_bug.cgi?id=636699
2011-04-15 12:19:34 +01:00
Mark Nauwelaerts
4df05e76ed qtmux: fix corner case buffer handling for reorder method 2011-04-15 12:49:02 +02:00
Sebastian Dröge
283b30e312 flvdemux: Don't leak the SEEKING query 2011-04-14 13:47:05 +02:00
Sebastian Dröge
bf046e0430 qtmoovrecover: Don't leak the static recursive mutex 2011-04-14 13:43:06 +02:00
Sebastian Dröge
54349be39f matroskaparse: Allow webm and matroska caps and don't leak caps 2011-04-14 13:27:27 +02:00
Tim-Philipp Müller
eb15dcb473 capsdebug: fix unused-but-set-variable warnings with gcc 4.6 2011-04-13 17:22:19 +01:00
Tim-Philipp Müller
b6b59ab1c1 avidemux: fix unused-but-set-variable warning with gcc 4.6
Most likely a leftover from when the index parsing code was rewritten.
2011-04-13 17:22:19 +01:00
Tim-Philipp Müller
063b3d9dcd ac3parse: fix unused-but-set-variable warning with gcc 4.6 2011-04-13 17:22:19 +01:00
Tim-Philipp Müller
c8a15a097a videobalance: fix handling of YUV images with 'odd' widths
Fixes unused-but-set-variable warnings with gcc 4.6.
2011-04-13 17:22:19 +01:00
Tim-Philipp Müller
d1d3e3ea02 videoflip: fix unused-but-set-variable warnings with gcc 4.6 2011-04-13 17:22:19 +01:00
Sebastian Dröge
6f480ad0ed audiowsinc{band,limit}: Fix check for divison by zero 2011-04-13 18:11:34 +02:00
Sebastian Dröge
de7a976531 audiowsincband: Fix range of kernel elements (lim -> lim-1) 2011-04-13 18:01:01 +02:00
Sebastian Dröge
4fd5fea2b2 audiowsinclimit: Add some more braces to make the code more readable 2011-04-13 18:00:44 +02:00
Jordi Burguet-Castell
766e437af1 audiowsinclimit: Fix range of kernel elements (lim -> lim-1) in high/low-pass filters 2011-04-13 17:57:06 +02:00
Sebastian Dröge
2575cfc4a6 audiowsincband: Add new windowing functions: gaussian, cos and hann 2011-04-13 17:52:30 +02:00
Jordi Burguet-Castell
782d6af83d audiowsinclimimt: Add new windows to high/low-pass filters: gaussian, cosine, hann 2011-04-13 17:52:30 +02:00
Tim-Philipp Müller
d3a24dc842 matroskademux: set stream-format=byte-stream on h264 caps if there's no codec data
https://bugzilla.gnome.org/show_bug.cgi?id=606662
2011-04-13 16:47:05 +01:00
Thiago Santos
c385a46438 qtmux: restrict h264 some more to only accept AU-aligned AVC
https://bugzilla.gnome.org/show_bug.cgi?id=606662
2011-04-13 16:38:33 +01:00
Sebastian Dröge
4250ff5994 mpegaudioparse: The VBRI header is always at offset 0x20, independent of MPEG version
Also clean up advancing of the data pointer a bit.

Fixes bug #647659.
2011-04-13 17:12:47 +02:00
Tim-Philipp Müller
025417f124 qtmux: add variant-less video/quicktime to source pad template caps
This is needed for automatic transcoding using encodebin. Our typefinder
does not always add a variant to the found caps, and encodebin needs
an *exact* match to the caps on the source pad template, so we need
to add the variant-less video/quicktime caps to the template as well
for encodebin to be able to find it. Add unit test for this as well.

https://bugzilla.gnome.org/show_bug.cgi?id=642879
2011-04-13 15:21:59 +01:00
Tim-Philipp Müller
4d780297d8 quicktime: move qtmux plugin from -bad to -good
https://bugzilla.gnome.org/show_bug.cgi?id=636699
2011-04-13 11:55:59 +01:00
Mark Nauwelaerts
6630f7def2 qtmux: more helpful debug error message when no needed duration on input buffers
Fixes #646256.
2011-04-12 20:32:21 +01:00
Thiago Santos
aba8000188 qtmux: Adding GstTagXmpWriter interface
Adds GstTagXmpWriter interface support to qtmux
2011-04-12 20:32:21 +01:00
Mark Nauwelaerts
d178329eb0 qtmux: use running time for synchronization
See also #432612.
2011-04-12 20:32:21 +01:00
Mark Nauwelaerts
a4fad64141 qtmux: provide for PTS metadata when so configured
... and not only when sort-of feeling like it.
In any case, if it turns out all really is in order,
and presumably DTS == PTS, then no ctts will be produced anyway.
2011-04-12 20:32:21 +01:00
Mark Nauwelaerts
31c26a4551 qtmux: also track original PTS buffer timestamp in reorder dts-method 2011-04-12 20:32:21 +01:00
Edward Hervey
0a884e5620 Revert "Check that collectpads exists before removing pad"
This reverts commit 6d8740476c.

Depends on a core commit that was reverted
2011-04-12 20:32:21 +01:00
David Schleef
fe3a5c3f08 Check that collectpads exists before removing pad
The core now calls release pad from finalize, at which point
the collectpads might have already been freed.
2011-04-12 20:32:21 +01:00
Mark Nauwelaerts
20e4bdee32 qtmux: set src pads when starting file
... rather than at _init time, so they are also available following a
pad (de)activation cycle.

https://bugzilla.gnome.org/show_bug.cgi?id=639338
2011-04-12 20:32:20 +01:00
Mark Nauwelaerts
ae644937fc qtmux: adjust nasty case timestamp tracking
That is, all sorts of problems arise with re-ordered input timestamps that
tend to defy automagic handling for every case, so allow for a few variations
that can be tried depending on circumstances.

Also try to document accordingly.

Also fixes #638288.
2011-04-12 20:32:20 +01:00
Felipe Contreras
62c728464e qtmux: get rid of timestamp overprotectiveness
Signed-off-by: Felipe Contreras <felipe.contreras@nokia.com>
2011-04-12 20:32:20 +01:00
Mark Nauwelaerts
b6945d4afe qtmux: simplify and fix pts_offset storing
In particular, only write a ctts atom if and only if ever a non-zero offset.
2011-04-12 20:32:20 +01:00
Mark Nauwelaerts
b852dde2db qtmux: add some more documentation 2011-04-12 20:32:20 +01:00
Mark Nauwelaerts
60c8ed21d5 qtmux: remove large-file property
Rather, auto-determine if 64-bits fields are needed for a valid result, and
stick to plain 32-bits if not needed.

API: GstQTMux:large-file (removed)
2011-04-12 20:32:20 +01:00
Sebastian Dröge
d8a690e64c qtmux: Free AtomInfo structs 2011-04-12 20:32:20 +01:00
Sebastian Dröge
6e350ec961 qtmux: Free tag string after use 2011-04-12 20:32:20 +01:00
Lasse Laukkanen
02bdefd9ba qtmux: allow zero duration tracks 2011-04-12 20:32:20 +01:00
Mark Nauwelaerts
07be810e0e qtmux: add documentation 2011-04-12 20:32:20 +01:00
David Hoyt
62484ac805 qtmux: handle msvc ftruncate incompatibility
Fixes #636185.
2011-04-12 20:32:20 +01:00
Alejandro Gonzalez
04b0a37f87 qtmux: gst_qtmux_check_difference verify before subtract
Avoid negative overflow by checking the order of operands
on subtraction of unsigned integers.

https://bugzilla.gnome.org/show_bug.cgi?id=635878
2011-04-12 20:32:20 +01:00
Mark Nauwelaerts
9c198ffeed qtmux: remove remnant of obsolete property 2011-04-12 20:32:20 +01:00
Marc-André Lureau
bee00aa70f qtmux: allow specifying trak timescale
This is mainly because Smoothstreaming client are broken and don't
take the TimeScale property into account.
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
92b8a00ac8 qtmux: include sdtp atoms for ismv fragmented files
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
f490e3a868 qtmux: enable default fragmented file for ismlmux 2011-04-12 20:32:19 +01:00
Marc-André Lureau
7a447b4372 qtmux: add ismlmux, for fragmented isml major brand 2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
50464d5f93 qtmux: finalize sinkpads list 2011-04-12 20:32:19 +01:00
Marc-André Lureau
bd0d320d6c qtmux: add moov in streamheader 2011-04-12 20:32:19 +01:00
Marc-André Lureau
61964eb109 qtmux: add streamable property to avoid building fragmented mfra index 2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
26a281bdab qtmux: add mfra to fragmented file
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
4b64dc2f3e qtmux: optionally create fragmented file
In this mode, an initial empty moov (containing only stream metadata) is written,
followed by fragments containing actual data (along with required metadata).
New fragments are started either at keyframe (if such are sparse) or when
property configured duration exceeded.

Based on patch by Marc-André Lureau <mlureau@flumotion.com>

Fixes #632911.
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
c61dc2ec4a qtmux: use helper to set atom flags from given uint 2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
69d07466e0 qtmux: refactor configuring and sending of moov
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
35e028f33b qtmux: refactor extra top-level atom handling
Also check a bit more for possible errors, and free proper items in such case.
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
79f565f962 qtmux: refactor slightly using buffer helper 2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
1e3da91bd1 qtmux: fix misinforming comment 2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
ce865cc374 qtmux: delegate mvex handling to atoms
... which keeps qtmux simpler.
2011-04-12 20:32:19 +01:00
Marc-André Lureau
2618cb03af qtmux: add mvex/trex in header if fragmented
One "trex" is added per "trak". We don't support default values,
but the "trex" box is mandatory.
2011-04-12 20:32:18 +01:00
Marc-André Lureau
9100168eae qtmux: add a couple of fourcc for fragmented mp4 2011-04-12 20:32:18 +01:00
Mark Nauwelaerts
c35074499a qtmux: avoid removing temp file when error occurred 2011-04-12 20:32:18 +01:00
Marc-André Lureau
c2718fdd5f qtmux: truncate buffer file after each send 2011-04-12 20:32:18 +01:00
Marc-André Lureau
3e6a415e52 qtmux: remove temp file when reset/finalize 2011-04-12 20:32:18 +01:00
Stefan Kost
1d1ffe234f various (gst): add missing G_PARAM_STATIC_STRINGS flags
Canonicalize property names as needed.
2011-04-12 20:32:18 +01:00
Mark Nauwelaerts
a5edbe38a0 qtmux: prevent infinite loop when adjusting framerate
Fixes #632070.
2011-04-12 20:32:18 +01:00
Thiago Santos
5ccc066c98 qtmux: Add G_PARAM_STATIC_STRINGS
Add G_PARAM_STATIC_STRINGS to qtmux properties
2011-04-12 20:32:18 +01:00
Thiago Santos
7065a65ec8 qtmux: Follow xmp serialization guidelines closer
qt and isom variants have different ways of serializing
xmp, follow these guidelines.

Those can be found in Adobe's xmp docs.
2011-04-12 20:32:18 +01:00
Mark Nauwelaerts
365b419216 qtmux: autodetect out-of-order input timestamps and determine DTS accordingly
Favour using input buffer timestamps for DTS, but fallback to using buffer
duration (accumulation) if input ts detected out-of-order.

Fixes #624212.
2011-04-12 20:32:18 +01:00
Marc-André Lureau
9e79307431 qtmux: use caps bitrate at last chance
If we didn't get the stream's bitrate from one of the atoms,
try getting it from the caps as a last resort.

https://bugzilla.gnome.org/show_bug.cgi?id=625496
2011-04-12 20:32:18 +01:00
Marc-André Lureau
da6bfa460d qtmux: btrt - max bitrate before average
According to iso base media file format, the max bitrate
is before the avg

https://bugzilla.gnome.org/show_bug.cgi?id=625496
2011-04-12 20:32:18 +01:00
Arun Raghavan
9e5c575b49 qtmux: Write 'btrt' atom for H.264 media if possible
This writes out the optional 'btrt' atom (MPEG4BitrateBox) for H.264
media if either or both of average and maximum bitrate are available for
the stream.

https://bugzilla.gnome.org/show_bug.cgi?id=623678
2011-04-12 20:32:18 +01:00
Arun Raghavan
4b4398c9dd qtmux: Write avg/max bitrate to ESDS if available
This collects the 'bitrate' and 'maximum-bitrate' tags on the
corresponding pad and uses these to populate these fields in the ESDS
where applicable.

https://bugzilla.gnome.org/show_bug.cgi?id=623678
2011-04-12 20:32:18 +01:00
Edward Hervey
099ad6380f qtmux: Don't use bogus codec/format tags
https://bugzilla.gnome.org/show_bug.cgi?id=623365
2011-04-12 20:32:17 +01:00
Thiago Santos
ac7f4cba67 qtmux: Write uint tags that don't have a complement
Write uint tags that have complements (e.g. track-number/
track-count) even when we only have one of them available
and set the other one to 0.

Fixes #622484
2011-04-12 20:32:17 +01:00
Edward Hervey
0fa380b199 qtmux: Remove the pad from our internal list before calling collectpads
Previously we would end up with the collectpaddata structure already freed.
This would result in a bogus iteration of mux->sinkpads (all the
GstQTPad being freed) and it wouldn't be removed from that list.

Finally, due to it not being removed from that list, we would end up
calling a bogus gst_qt_mux_pad_reset on those structures => SEGFAULT
2011-04-12 20:32:17 +01:00
David Schleef
4bb9ffa8fb qtmux: Add VP8 2011-04-12 20:32:17 +01:00
Tim-Philipp Müller
48880abb5b qtmux: use GStreamer package name and origin in the plugin info 2011-04-12 20:32:17 +01:00
Tim-Philipp Müller
1663c51243 qtmux: init debug category before using it 2011-04-12 20:32:17 +01:00
Benjamin Otte
6f27e4e488 Add -Wold-style-definition
and fix the warnings
2011-04-12 20:32:17 +01:00
Benjamin Otte
c4161b3c33 Add -Wwrite-strings
and fix its warnings
2011-04-12 20:32:17 +01:00
Benjamin Otte
62be91708f Add -Wmissing-declarations -Wmissing-prototypes to configure flags
And fix all warnings
2011-04-12 20:32:17 +01:00
Benjamin Otte
af347a9545 gst_element_class_set_details => gst_element_class_set_details_simple 2011-04-12 20:32:17 +01:00
Thiago Santos
281ef57d2b qtmux: Use xmp on mp4mux and gppmux too
Do not restrict xmp to qtmux, but use it too
on mp4mux and gppmux
2011-04-12 20:32:17 +01:00
Thiago Santos
a740adc137 qtmux: add xmp support
Adds xmp metatags adding to qtmux.

Fixes #609539
2011-04-12 20:32:16 +01:00
Tim-Philipp Müller
f9bba010fa qtmux: fix GST_ELEMENT_ERROR usage
We need to pass (NULL) rather than NULL for empty arguments.
2011-04-12 20:32:16 +01:00
Rob Clark
ae0d32843e qtmux: fix compile error
gst/quicktime/gstqtmoovrecover.c:268: warning: format not a string literal and no format arguments

https://bugzilla.gnome.org/show_bug.cgi?id=612454
2011-04-12 20:32:16 +01:00
Thiago Santos
8d86f34871 qtmux: Rename 'avc-sample' to 'avc' in caps
Fixes #606662
2011-04-12 20:32:16 +01:00
Michael Smith
8b3aca9070 qtmux: Take lock around use of (non-threadsafe) tagsetter interface. 2011-04-12 20:32:16 +01:00
Thiago Santos
953aa983bb qtmux: write all udta children atoms
UDTA might have META and other children atoms
together, write them all.
2011-04-12 20:32:16 +01:00
Thiago Santos
c92785e1c2 qtmux: Use internal sink pads list
Due to GstCollectPads sink pads list being not reliably
iteratable (when not inside the collected function) this
patch adds a sink pads list to qtmux to be used when iterating
sink pads on reset function.

Fixes #609055
2011-04-12 20:32:16 +01:00
Mark Nauwelaerts
589f70955c qtmux: prevent leaking hdlr name 2011-04-12 20:32:16 +01:00
Mark Nauwelaerts
bcc9fe0463 qtmux: support for ALAC
Fixes #580731.
2011-04-12 20:32:16 +01:00
Mark Nauwelaerts
76b6997b55 qtmux: refactor building stsd entry 'wave' extension 2011-04-12 20:32:16 +01:00
Thiago Santos
528846c5a1 qtmux: atomsrecovery: Fix compilation problem
Fixes a compilation error due to unused function result.
2011-04-12 20:32:16 +01:00
Thiago Santos
b692f9ffb0 qtmux: Adds moov recovery feature
Adds a new property to qtmux that sets a path to a file to write
and update data about the moov atom (that is not writen till the
end of the file). If the pipeline/app crashes during execution it
might be possible to recover the movie using the qtmoovrecover element.

qtmoovrecover is an element that is also a pipeline. It is not
meant to be used with other elements (it has no pads). It is merely
a tool/utilitary to recover unfinished qtmux files.

Fixes #601576
2011-04-12 20:32:16 +01:00
Michael Smith
3c0e4d8267 qtmux: for fixed-sample size streams (PCM audio, etc) don't allocate an enormous
buffer that we then won't use at all.
2011-04-12 20:32:15 +01:00
Michael Smith
d784a8da6a qtmux: handle muxing adpcm correctly. 2011-04-12 20:32:15 +01:00
Michael Smith
5f1941a000 qtmux: Set the mdia hdlr name field to what quicktime uses. Fix writing it
since it's not null-terminated. Improves compatibility with some hardware
players.
2011-04-12 20:32:15 +01:00
Michael Smith
2d3dc1653b qtmux: endianness in gstreamer is an int, not boolean. 2011-04-12 20:32:15 +01:00
Mark Nauwelaerts
150f9ad64d qtmux: streamline moov data memory storage
In particular, use arrays rather than (double) linked lists.
2011-04-12 20:32:15 +01:00
Thiago Santos
6dc515bfa7 qtmux: g_free is NULL safe 2011-04-12 20:32:15 +01:00
Benjamin Otte
6569e9587c [cleanup] Various style and cleanups
Various fixes for gtk-doc warnings and making functions without
arguments take void as parameter.
2011-04-12 20:32:15 +01:00
Thiago Santos
33bf180eaa qtmux: Actually use new caps info on renegotiation
Following the previous qtmux commit, this patch tries
to use the new info added to the caps to fill the 'trak'
atom's fields and children atoms. This way qtmux will
use the late added 'codec_data' when h264parse adds
it in the following pipeline:

videotestsrc num-buffers=200 ! x264enc byte-stream=true ! \
h264parse output-format=0 ! qtmux ! \
filesink location=test.mov
2011-04-12 20:32:15 +01:00
Thiago Santos
a5f22f03aa qtmux: Do caps renegotiation when it only adds fields
Qtmux can accept caps renegotiation if the new caps is a
superset of the old one, meaning upstream added new info to
the caps. This patch still doesn't make qtmux update any
atoms info from the new info, but at least it doesn't
reject the new caps anymore.

A pipeline that reproduces this use case is:

videotestsrc num-buffers=200 ! x264enc byte-stream=true ! \
h264parse output-format=0 ! qtmux ! \
filesink location=test.mov
2011-04-12 20:32:15 +01:00
Mark Nauwelaerts
6beda8aae0 qtmux: provide request pads under wider conditions
Fixes #606859.
2011-04-12 20:32:15 +01:00
Thiago Santos
45458c44a4 qtmux: Only accept avc-sample h264
qtmux and mp4mux should only accept h264 in avc-sample
format
2011-04-12 20:32:15 +01:00
Thiago Santos
87450c1b6e Rename aac's stream-format 'none' to 'raw'
Renames aac's stream-format from previous commits from none to
raw
2011-04-12 20:32:15 +01:00
Thiago Santos
cbc0b053ee qtmux: Only accept stream-format='none' aac
Only accept raw aac streams (stream-format=none) to avoid
generating invalid files.

Fixes #604925
2011-04-12 20:32:15 +01:00
Stefan Kost
02d1035571 qtmux: also add .h file changes to unbreak the build 2011-04-12 20:32:14 +01:00
Stefan Kost
05257feb87 qtmux: use correct names from template for request pads
The pads where names pad0, pad1, ...
2011-04-12 20:32:14 +01:00
Stefan Kost
7d9ed16bbe qtmux: move errors _new_pad to the end 2011-04-12 20:32:14 +01:00
Thiago Santos
592171b9b5 qtmux: Accept non-paired uint tags
Adds support for unpaired unsigned interger tags
2011-04-12 20:32:14 +01:00
Thiago Santos
9a6514e4a7 qtmux: Adds new tags
Maps more tags that are already posted by qtdemux

Fixes #599759
2011-04-12 20:32:14 +01:00
Thiago Santos
c5f6e74db9 qtmux: support more of j2k
Reads the new caps added to qtdemux by commit
c917d65e6d
and adds its corresponding atoms.

Also adds support for image/x-jpc as it is the same
as image/x-jp2, except that the buffers need to be
boxed inside a jp2c isom box before muxing. To solve
this the QTPads now have a function that (if
not NULL) is called when a buffer is collected. This
function returns a replacement to the current collected
buffer.

Fixes #598916
2011-04-12 20:32:14 +01:00
Thiago Santos
083f825c43 qtmux: Maps 'classification' tag for 3gpp files
Adds the mapping of 'classification' tags to writing of
'clsf' atoms for gppmux.

Based on a patch by: Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>
2011-04-12 20:32:14 +01:00
Michael Smith
a597bd7273 qtmux: remove c++ comments and add some more comments. 2011-04-12 20:32:14 +01:00
Michael Smith
d74567ca94 qtmux: add ima adpcm support 2011-04-12 20:32:14 +01:00
Thiago Santos
79a9031c16 qtmux: replace _scale with _scale_round
Use the rounding version for improved sync between streams.
Small variations in the duration when muxing might lead to
cumullative wrong timestamping when demuxing.

Fixes #602936
2011-04-12 20:32:14 +01:00
Thiago Santos
259c204f42 qtmux: use timestamps for muxing
Try to use timestamps even when the stream has out of order
timestamps, only fall back to durations when we detect an
out of order buffer. Improves sync between streams.
2011-04-12 20:32:14 +01:00
Thiago Santos
e62be695a1 qtmux: fix missing debug argument
Adds a missing debug argument
2011-04-12 20:32:14 +01:00
Mark Nauwelaerts
7bf67a6e3d qtmux: fix misinforming debug statement 2011-04-12 20:32:13 +01:00
Mark Nauwelaerts
a64873e15a qtmux: ensure writable buffer metadata before setting caps 2011-04-12 20:32:13 +01:00
Thiago Santos
496bd01a0f qtmux: support for SVQ3
Adds support for muxing SVQ3 content. Usually this format
has decoder info that must be passed in the 'seqh' field
in the caps. It is also good to add the gama atom to make
quicktime not crash.

Fixes #587922
2011-04-12 20:32:13 +01:00
Thiago Sousa Santos
d24d1e40ea qtmux: do not leak a string
Frees a string after use. Also does some code organization
2011-04-12 20:32:13 +01:00
Thiago Sousa Santos
2f90d33509 qtmux: do not add size to the pointer variable
Do not wrongly add the result of the function to the
pointer to the buffer size. Instead, check the result
to see if the serialization was ok.

Based on a patch by: "Carsten Kroll <car@ximidi.com>"

Fixes #602106
2011-04-12 20:32:13 +01:00
Thiago Santos
8d80e93512 qtmux: handle 'late' streams
When muxing streams, some can start later than others. qtmux
now handle this by adding an empty edts entry with the
duration of the 'lateness' to the stream's trak.
It tolerates a stream to be up to 0.1s late.

Fixes #586848
2011-04-12 20:32:13 +01:00
Thiago Santos
22e4fb92a9 qtmux: adds the EDTS and ELTS atoms to atoms.c
These atoms will be useful for signaling streams
that start later in the file. As well for adding
edit lists if needed sometime later.
2011-04-12 20:32:13 +01:00
Thiago Santos
009d104a34 qtmux: Adding some ifs for protection
Adding somes ifs to protect against warning conditions
that might happen when upstream element is not sane

Fixes #600895
2011-04-12 20:32:13 +01:00
Thiago Santos
4ff2fad6a0 gppmux: Add support for 3gr6
Keep track of the chunk durations to be able to add 3gr6
brand if it is a faststart file and the longest chunk is
smaller than a sec. Implemented according to 3gpp
TS 26.244 v6.4.0 (2005-09)

Fixes #584361
2011-04-12 20:32:13 +01:00
Thiago Santos
e8c21f14cc qtmux: Only push ftyp later (in faststart mode)
In faststart mode, there is no need to send the ftyp
right at the beginning of the stream. Waiting and sending it
only later (when the moov atom is ready to be sent) provides
us with more information about the stream and we can better
select the compatible brands.
2011-04-12 20:32:13 +01:00
Thiago Santos
99f47c4b17 qtmux: Improve error message
Improve error message when we can't get or estimate the
timestamp/duration of a buffer
2011-04-12 20:32:13 +01:00
Marc-André Lureau
0dec6cbbba qtmux: fix flags_as_uint to flags[] 2011-04-12 20:32:13 +01:00
Jan Urbanski
d43db1bc8d qtmux: Don't require endianness field for 8 bit raw audio
Fixes bug #590360.
2011-04-12 20:32:12 +01:00
Edward Hervey
ac88adca6e qtmux: Remove unused variable. 2011-04-12 20:32:12 +01:00
Edward Hervey
430953e8d2 qtmux: Fix debug statement. 2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
c3f462d9b2 qtmux: only use (64-bit) extended (mdat) atom size if needed. Fixes #585319. 2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
55afb65f8c qtmux: set default movie timescale to microsecond units 2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
579a7edb3a qtmux: compress/optimize stsc writing 2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
7c9a6093d8 qtmux: add 3GP style tagging (and refactor appropriately) 2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
65b69ddc99 qtmux (and variants): handle pixel-aspect-ratio. Fixes #584358. 2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
7ab5ff91ad gppmux: enhance ftyp brand heuristic. Fixes #584360. 2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
4dbeaeefe3 qtmux: use different stsd atom type for H263 for ISO and QT variants
Fixes #584114.
2011-04-12 20:32:12 +01:00
Thiago Santos
8e95c502f7 [qtmux] Fixes segfault when adding a blob as first tag.
Moves tags data initialization to the function that actually appends
the tags to the list. Fixes #582702

Also fixes some style caught by the pre-commit hook.
2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
0643bf85bc gppmux: Add MPEG-4 part 2 to supported formats. Fixes #581593. 2011-04-12 20:32:11 +01:00
Christian Schaller
f77f7c3979 Add ranks to various muxers and encoders in -bad 2011-04-12 20:32:11 +01:00
Thiago Santos
cea5e53465 qtmux: changes caps of src pads to video/quicktime, variant=something
Take a look at bug #580005 for further info.
2011-04-12 20:32:11 +01:00
Thiago Santos
6f763db3b8 mp4mux: Changes src caps to application/x-iso-mp4
Fixes #580005
2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
4da6cd7c36 qtmux: fix reusing element
State change to READY and then back to PAUSED should still provide
the proper structures as are otherwise freshly available following
a request_new_pad.

Pointed out by Thiago Santos.
2011-04-12 20:32:11 +01:00
Wim Taymans
1fbca3b89d qtmux: fix includes for lseek
--
2011-04-12 20:32:11 +01:00
LRN
61d88bd7da win32: fix seeking in large files
Use _lseeki64() on Windows to seek in large files.
Fixes #576021.
2011-04-12 20:32:11 +01:00
Edward Hervey
f383b6a5b4 qtmux: Be a bit more verbose in our debug message when failing to renegotiate 2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
ffd2ff3ee6 Additional media type support in qtmux (and friends).
Support AMR and H263 for both qtmux and gppmux,
and add extensions in sample table description.
2011-04-12 20:32:11 +01:00
David Schleef
975c375b09 gst/quicktime/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part to caps so schroenc/schroparse can use it. Fixes #5...
Original commit message from CVS:
* gst/quicktime/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part
to caps so schroenc/schroparse can use it.  Fixes #566958
2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
c201ab463b gst/quicktime/gstqtmux.c: Do not tempt or suggest to violate gst_collect_pads API specification.
Original commit message from CVS:
* gst/quicktime/gstqtmux.c: (gst_qt_mux_change_state):
Do not tempt or suggest to violate gst_collect_pads API specification.
2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
9b0cbfebd6 gst/quicktime/: Dual license qtmux LGPL/MIT. Fixes #564232.
Original commit message from CVS:
* gst/quicktime/atoms.c:
* gst/quicktime/atoms.h:
* gst/quicktime/descriptors.c:
* gst/quicktime/descriptors.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/ftypcc.h:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
* gst/quicktime/gstqtmuxmap.c:
* gst/quicktime/gstqtmuxmap.h:
* gst/quicktime/properties.c:
* gst/quicktime/properties.h:
Dual license qtmux LGPL/MIT.  Fixes #564232.
2011-04-12 20:32:10 +01:00
Stefan Kost
6a47f1f4b5 Totally remove the internal taglists and fully use tagsetter. Fixes various tag muxing issues.
Original commit message from CVS:
* ext/celt/gstceltenc.c:
* ext/celt/gstceltenc.h:
* ext/metadata/gstmetadatamux.c:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
Totally remove the internal taglists and fully use tagsetter. Fixes
various tag muxing issues.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
877f7fb3ab gst/quicktime/atoms.c: Fix mj2 sample description metadata construction.
Original commit message from CVS:
* gst/quicktime/atoms.c: (build_jp2h_extension):
Fix mj2 sample description metadata construction.
2011-04-12 20:32:10 +01:00
David Schleef
71eacf835e gst/quicktime/gstqtmux.c: Quiet a debugging message that I recently added.
Original commit message from CVS:
* gst/quicktime/gstqtmux.c: Quiet a debugging message that I recently
added.
2011-04-12 20:32:10 +01:00
David Schleef
b11186eba4 gst/quicktime/gstqtmux.*: Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part.
Original commit message from CVS:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
4f64f6c0e1 gst/quicktime/: Revert previous commit.
Original commit message from CVS:
* gst/quicktime/atoms.c:
* gst/quicktime/atoms.h:
* gst/quicktime/descriptors.c:
* gst/quicktime/descriptors.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/ftypcc.h:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
* gst/quicktime/gstqtmuxmap.c:
* gst/quicktime/gstqtmuxmap.h:
* gst/quicktime/properties.c:
* gst/quicktime/properties.h:
Revert previous commit.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
af97040b98 gst/quicktime/: Dual license LGPL/MIT, as apparently supposed to.
Original commit message from CVS:
* gst/quicktime/atoms.c:
* gst/quicktime/atoms.h:
* gst/quicktime/descriptors.c:
* gst/quicktime/descriptors.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/ftypcc.h:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
* gst/quicktime/gstqtmuxmap.c:
* gst/quicktime/gstqtmuxmap.h:
* gst/quicktime/properties.c:
* gst/quicktime/properties.h:
Dual license LGPL/MIT, as apparently supposed to.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
3f72fadc76 gst/quicktime/: Cut detour in sample description extension construction.
Original commit message from CVS:
* gst/quicktime/atoms.c: (build_esds_extension),
(build_mov_aac_extension), (build_jp2h_extension),
(build_codec_data_extension):
* gst/quicktime/atoms.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/gstqtmux.c: (gst_qt_mux_audio_sink_set_caps),
(gst_qt_mux_video_sink_set_caps):
* gst/quicktime/gstqtmuxmap.c: (gst_qt_mux_map_format_to_header):
Cut detour in sample description extension construction.
Also actually implement ISO JPEG2000 mj2 format.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
6b15001dc5 gst/quicktime/gstqtmux.c: Add some more safety/sanity checks in tag manipulation.
Original commit message from CVS:
* gst/quicktime/gstqtmux.c: (gst_qt_mux_add_metadata_tags):
Add some more safety/sanity checks in tag manipulation.
2011-04-12 20:32:09 +01:00
Thiago Sousa Santos
c991a04a93 Copy qtmux from revision 148 of the gst-qtmux repository.
Original commit message from CVS:
patch by: Thiago Sousa Santos <thiagossantos@gmail.com>
* configure.ac:
* gst/quicktime/Makefile.am:
* gst/quicktime/atoms.c:
* gst/quicktime/atoms.h:
* gst/quicktime/descriptors.c:
* gst/quicktime/descriptors.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/ftypcc.h:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
* gst/quicktime/gstqtmuxmap.c:
* gst/quicktime/gstqtmuxmap.h:
* gst/quicktime/properties.c:
* gst/quicktime/properties.h:
Copy qtmux from revision 148 of the gst-qtmux repository.
Fixes #550280.
2011-04-12 20:32:09 +01:00
Tim-Philipp Müller
ed96310d57 qtdemux: rename directory to quicktime to match plugin name
In preparation for qtmux moving to -good.
2011-04-12 19:29:56 +01:00
Mark Nauwelaerts
c539fc40dd flvdemux: simplify framerate fraction calculation 2011-04-12 11:50:08 +02:00
Leonardo Sandoval
071b90059f flvdemux: add width, height and framerate to caps when present on onMetaData
Fixes #640483.
2011-04-12 10:48:21 +02:00
Pascal Buhler
0d2d52856f rtpssrcdemux: Unknown SSRC is not fatal
https://bugzilla.gnome.org/show_bug.cgi?id=646966
2011-04-11 17:37:58 -04:00
Pascal Buhler
58ef84846e rtpsession: Number of active sources should be updated whenever the status of the source changes to active
Forward-ported by Olivier Crête

https://bugzilla.gnome.org/show_bug.cgi?id=646965
2011-04-11 17:37:36 -04:00
Havard Graff
53c88ae33e rtpmanager: ignore a BYE if it is sent with our internal SSRC
https://bugzilla.gnome.org/show_bug.cgi?id=646964
2011-04-11 17:34:12 -04:00
Thiago Santos
3d96f40f6a qtdemux: Adds more h264 fields to its caps
Adds alignment=au and stream-format=avc to h264 caps

Fixes #606662
2011-04-11 22:41:23 +02:00
Thibault Saunier
b541208b77 android: Make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized

To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 01:20:11 +02:00
Haakon Sporsheim
fd545e260d rtpgstpay: declare frag_offset to hold 32bits.
As specified in documenation above and below.

https://bugzilla.gnome.org/show_bug.cgi?id=646954
2011-04-09 23:14:18 +01:00
Havard Graff
93f022d6ab rtpsession: fix wrongly applied patch
Obviously recv_rtp_sink does not have much to do with send_rtcp_src...
See commit 046ff170.

https://bugzilla.gnome.org/show_bug.cgi?id=647263
2011-04-09 12:32:37 +01:00
Tim-Philipp Müller
ad0e4442e9 audioparsers: update for set_frame_props -> set_frame_rate API change 2011-04-08 18:07:18 +01:00
Mark Nauwelaerts
dbbf54720c mpegaudioparse: relax sync match a bit when draining
... to at least allow initial caps change (but no further caps jitter).
Fixes unit test again after previous change.
2011-04-08 18:07:18 +01:00
Tim-Philipp Müller
e067c554c2 aacparse, amrparse: gst_fooparse_xyz -> gst_foo_parse_xyz to match GstFooParse
See moving-plugins checklist.
2011-04-08 18:07:17 +01:00
Tim-Philipp Müller
e44456b481 audioparsers: hook up to build 2011-04-08 18:07:17 +01:00
Tim-Philipp Müller
7a2a088c53 audioparsers: port to new GstBaseParse in core 2011-04-08 18:07:17 +01:00
Mark Nauwelaerts
de54fa0699 mpegaudioparse: require tighter sync match when draining 2011-04-08 18:07:17 +01:00
Sebastian Dröge
f3a1dc9796 mpegaudioparse: Parse encoder delay and encoder padding from the LAME header if present 2011-04-08 18:07:17 +01:00
Arun Raghavan
a1ec326204 dcaparse: Bump rank to primary+1
Seems to work fine with a reasonably wide range of media, so bumping
rank.
2011-04-08 18:07:17 +01:00
Arun Raghavan
3050dbb8fe dcaparse: Expose frame size in caps
This exports the size of the frame (number of bytes from one sync point
to the next) as the "frame_size" field in caps.
2011-04-08 18:07:17 +01:00
Arun Raghavan
c0bc522f24 dcaparse: Expose block size in caps
This sets the "block_size" field on caps as the number of samples
encoded in one frame.
2011-04-08 18:07:17 +01:00
Tim-Philipp Müller
d92eba5563 mpegaudioparse: add FIXME for making the base class use xing seek tables better 2011-04-08 18:07:17 +01:00
Sebastian Dröge
bf9859ad61 dcaparse: Add depth and endianness to the caps
Some decoders can only handle specific endianness or a fixed
depth and this allows better negotiation.

Fixes bug #644208.
2011-04-08 18:07:17 +01:00
David Schleef
7d876727b3 Revert "aacparse: allow parsed frames on sink pad"
This reverts commit e49b89d5c5.
2011-04-08 18:07:17 +01:00
David Schleef
ef8edf91d9 aacparse: allow parsed frames on sink pad 2011-04-08 18:07:16 +01:00
David Schleef
9469aa92f3 baseparse: Create baseparse library 2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
f3f44f81c3 baseparse: tune QUERY_SEEKING response
Even if we currently do not have a duration yet, assume seekable if
it looks like we'll likely be able to determine it later on
(which coincides with needed information to perform seeking).

Fixes #641047.
2011-04-08 18:07:16 +01:00
Arun Raghavan
f0435d6fd6 baseparse: Update min/max bitrate before first posting them
This avoids posting an initial min-bitrate of G_UINTMAX and max-bitrate
of 0.

https://bugzilla.gnome.org/show_bug.cgi?id=641857
2011-04-08 18:07:16 +01:00
Arun Raghavan
7f4a61b56c mpegaudioparse: Post CBR bitrate as nominal bitrate
Even if VBR headers are missing, we can't guarantee that a stream is in
fact a CBR stream, so it's safer to let baseparse calculate the average
bitrate rather than assume a CBR stream. However, in order to make
/some/ metadata available before the requisite number of frames have
been parsed, this posts the bitrate from the non-VBR headers as the
nominal bitrate.

https://bugzilla.gnome.org/show_bug.cgi?id=641858
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
cc1b5ded6d amrparse: a valid amr-wb frame should not have reserved frame type index
See #639715.
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
d1bea6361b ac3parse: improve handling of dependent substream frames
In particular, timestamps of these should track main-stream timestamps.
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
3f2ffc9e53 baseparse: tune default duration estimate update interval
Rather than a fixed default frame count, estimate frame count to aim for
an interval duration depending on fps if available, otherwise use old
fixed default.
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
fa16a9a0ef baseparse: reverse playback; mind keyframes for fragment boundary 2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
39da316386 amrparse: properly check for sufficient available data prior to access 2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
fd064765a7 baseparse: ensure non-empty candidate frames 2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
2e76193c56 baseparse: clarify some debug statements 2011-04-08 18:07:15 +01:00
Mark Nauwelaerts
054621a58c baseparse: properly track upstream timestamps
... rather than with a delay.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
6df2a01762 baseparse: need proper frame duration to obtain sensible frame bitrate 2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
1749b527c1 baseparse: proper initial values for index tracking variables 2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
6616883390 baseparse: arrange for consistent event handling 2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
de1d89dba6 baseparse: header style cleaning 2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
9f5840572e baseparse: provide some more initial frame metadata in parse_frame
... and document accordingly.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
551eefb757 baseparse: refactor passthrough into format flags
Also add a format flag to signal baseparse that subclass/format can provide
(parsed) timestamp rather than an estimated one.  In particular, such "strong"
timestamp then allows to e.g. determine duration.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
4163969a24 baseparse: introduce a baseparse frame to serve as context
... and adjust subclass parsers accordingly
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
b45821c83f baseparse: restrict duration scanning to pull mode and avoid extra set_caps call 2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
9a76c1d8cd baseparse: update some documentation
Also add some more debug.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
32f57133ac baseparse: allow increasing min_size for current frame parsing only
Also check that subclass actually either directs to skip bytes or
increases expected frame size to avoid going nowhere in bogus
indefinite looping.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
d9def3d05d baesparse: fix refactor regression in loop based parsing 2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
9d9d9beb04 baseparse: pass all available data to subclass rather than minimum
Also reduce some adapter calls and add a few debug statements.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
feaf23f8bd baseparse: fix reverse playback handling 2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
95c2251390 baseparse: minor typo and debug statement cleanup 2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
d1bb142b68 baseparse: reduce locking
... which is either already mute and/or implicitly handled by STREAM_LOCK.
2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
ce23c62f58 baseparse: avoid loop in frame locating interpolation 2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
eafcdf67b9 flacparse: mind gst_buffer_unref not liking NULL
Fixes #639950.
2011-04-08 18:07:13 +01:00
Thiago Santos
244f747df2 audioparsers: baseparse: Be careful to not lose the event ref
Don't unref the event if it hasn't been handled, because the caller
assumes it is still valid and might reuse it.

I ran into this problem when transcoding an AVI (with mp3 inside)
to gpp.

https://bugzilla.gnome.org/show_bug.cgi?id=639555
2011-04-08 18:07:13 +01:00
Tim-Philipp Müller
bb8f0d3b4c dcaparse: fix sync word for 14-bit little endian coding
Fix copy'n'paste bug that made us look for the raw little endian
sync word twice instead of looking for the 14-bit LE sync word
as well. Fixes parsing of such streams (see #636234 for sample file).
2011-04-08 18:07:13 +01:00
Tim-Philipp Müller
a8c854374b docs: minor baseparse docs/comment fixes
Remove copy'n'paste leftovers.
2011-04-08 18:07:13 +01:00
Edward Hervey
6fbdfa07a8 flacparse: Fix unitialized variable on macosx 2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
cf5b01a55f ac3parse: relax bsid checking
... to the widest possible spec interpretation.

Fixes #637062.
2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
d2a9daec36 audioparsers: update some documentation 2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
cfbc40aca7 mpegaudioparse: add to documentation 2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
d1d1239fe4 dcaparse: add to documentation 2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
0bb654ed66 baseparse: increase keyframe awareness
... which is not particular relevant for audio parsing, but more so
in video cases.  In particular, auto-determine if dealing with video (caps).
2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
f7de334d61 ac3parse: use proper EAC-3 caps 2011-04-08 18:07:12 +01:00
Mark Nauwelaerts
b8af812987 baseparse: avoid unexpected stray metadata 2011-04-08 18:07:12 +01:00
Mark Nauwelaerts
24cf864c91 baseparse: use proper _NONE output value when applicable 2011-04-08 18:07:12 +01:00
Edward Hervey
1e71d31e67 audioparsers: Remove dead assignments 2011-04-08 18:07:12 +01:00
Andoni Morales Alastruey
5bfc92714e audioparse: fix possible division-by-zero
https://bugzilla.gnome.org/show_bug.cgi?id=635786
2011-04-08 18:07:12 +01:00
Mark Nauwelaerts
a45019fdd6 baseparse: use correct offset when adding index entry
... bearing in mind that BUFFER_OFFSET is media specific and may not
reflect the basic offset after having been parsed.
2011-04-08 18:07:12 +01:00
Mark Nauwelaerts
76b322a429 baseparse: enhancements for timestamp marked framed formats
That is, as such formats allow subclass to extract position from frame,
it is possible to extract duration (if not otherwise provided)
from (near) last frame, and a seek can fairly accurately target the required
position.

Fixes #631389.
2011-04-08 18:07:12 +01:00
Mark Nauwelaerts
634d4de627 baseparse: refactor frame scanning peformed by _loop 2011-04-08 18:07:12 +01:00
Mark Nauwelaerts
563f1a136b baseparse: slightly optimize sending of pending newsegment events 2011-04-08 18:07:12 +01:00
Mark Nauwelaerts
5eeb1f2e1f baseparse: minor fixes and enhancements
Arrange for upstream as well as downstream flushing when seeking.
Also determine upstream size as well as seekability.  Adjust some comments
to reality and employ debug statement in proper order.
2011-04-08 18:07:12 +01:00
Mark Nauwelaerts
3e50f0a3c9 aacparse: minor cleanups 2011-04-08 18:07:12 +01:00