Commit graph

325 commits

Author SHA1 Message Date
Edward Hervey
eb0cdfe20f flvdemux: Use unchecked variant of GstByteReader
We know there's at least 7 bytes (checked above)
2012-04-12 15:48:00 +02:00
Mark Nauwelaerts
ea397f60e4 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	gst/flv/gstflvdemux.c
	gst/matroska/matroska-demux.c
2012-04-10 11:57:53 +02:00
Tim-Philipp Müller
e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Nicolas Dufresne
628816784f flvdemux: Fix threading issue in index handling 2012-04-06 09:15:13 +02:00
Sebastian Dröge
acca0e77f1 flvdemux: Don't use static variables to hold index associations
This not really threadsafe in any way.
2012-04-06 09:14:28 +02:00
Sebastian Dröge
aa2cd462da gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:36:38 +02:00
Sebastian Dröge
5cdd49bf25 gst: Update versioning 2012-04-04 14:37:47 +02:00
Wim Taymans
3d61d12e03 update for buffer api change 2012-03-30 18:15:34 +02:00
Wim Taymans
69002aa24f update for buffer changes 2012-03-28 12:53:05 +02:00
Wim Taymans
c44cd8f55b Merge branch 'master' into 0.11
unport gdkpixbuf
not merged: https://bugzilla.gnome.org/show_bug.cgi?id=654850

Conflicts:
	docs/plugins/Makefile.am
	docs/plugins/gst-plugins-good-plugins-docs.sgml
	docs/plugins/gst-plugins-good-plugins-sections.txt
	docs/plugins/gst-plugins-good-plugins.hierarchy
	docs/plugins/inspect/plugin-avi.xml
	docs/plugins/inspect/plugin-png.xml
	ext/flac/gstflacdec.c
	ext/flac/gstflacdec.h
	ext/libpng/gstpngdec.c
	ext/libpng/gstpngenc.c
	ext/speex/gstspeexdec.c
	gst/audioparsers/gstflacparse.c
	gst/flv/gstflvmux.c
	gst/rtp/gstrtpdvdepay.c
	gst/rtp/gstrtph264depay.c
2012-03-22 11:53:24 +01:00
Wim Taymans
513d480fbf don't pass random pointers to pull_range 2012-03-16 21:47:21 +01:00
Nicola Murino
3f4e4edaa2 gst: Fix some query leaks 2012-03-12 09:10:20 +01:00
Sebastian Dröge
78bb66902b gst: Update for the gstmarshal.[ch] removal 2012-03-02 11:17:33 +01:00
Tim-Philipp Müller
cc0511f5d8 flvmux, matroskamux, qtmux: if in doubt about downstream seekability default to streaming=true
If downstream didn't answer our SEEKING query and told us
it's seekable, default to streaming=true. We couldn't do
this in 0.10 for backwards compatibility reasons, but we
can in 0.11. Play it safe.
2012-02-27 01:12:09 +00:00
Tim-Philipp Müller
f49410d698 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/audioparsers/gstmpegaudioparse.c
2012-02-27 01:00:03 +00:00
Tim-Philipp Müller
6b0dd47586 flvmux: create streamable output if downstream is not seekable
Ignore the "streamable" property setting and create streamable
output if downstream is known not to be seekable (as queried
via a SEEKABLE query).

Fixes pipelines like flvmux ! appsink possibly creating seemingly
corrupted output if streamable has not been set to true.
2012-02-25 15:56:51 +00:00
Wim Taymans
ca9532ccc5 update for new memory api 2012-02-22 02:10:33 +01:00
Wim Taymans
225e98d623 Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacenc.c
	ext/jack/gstjackaudioclient.c
	ext/jack/gstjackaudiosink.c
	ext/jack/gstjackaudiosrc.c
	ext/pulse/plugin.c
	ext/shout2/gstshout2.c
	gst/matroska/matroska-mux.c
	gst/rtp/gstrtph264pay.c
2012-02-10 16:23:14 +01:00
Wim Taymans
8eca20ead0 flv: use default pad query
We need to chain up unknown queries to the default query handler instead of
blindly forwarding them. In this case it caused the caps query to be forwarded
to the upstream typefind and return the wrong type for the audio/video pad.
2012-02-10 10:07:34 +01:00
Wim Taymans
9365f12d6e GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:43:30 +01:00
Wim Taymans
6674b029e4 flv: fix caps 2012-02-06 15:52:36 +01:00
Vincent Penquerc'h
5e93d1ce4c flvmux: specify we only accept raw AAC in template caps
No header seems to be added, and the codec ID is the same as used
for raw by flvdemux, so raw seems the only supported case.

https://bugzilla.gnome.org/show_bug.cgi?id=665394
2012-02-02 12:36:30 +00:00
Vincent Penquerc'h
57a0eacc7b flvdemux: specify we only output raw AAC in template caps
https://bugzilla.gnome.org/show_bug.cgi?id=665394
2012-02-02 12:36:30 +00:00
Wim Taymans
bb2bd604e0 update for HEADER flag 2012-01-30 17:16:51 +01:00
Sebastian Dröge
76a22a6ebb flvmux: Update for new collectpads2 event handling API 2012-01-26 10:34:34 +01:00
Edward Hervey
03b9966bc0 flv: Fix unitialized variables
(or rather circumvent issues with naive compilers ...)
2012-01-25 16:58:12 +01:00
Wim Taymans
583d39dd8d update for new memory API 2012-01-25 12:30:28 +01:00
Wim Taymans
1584806634 port to new gthread API 2012-01-19 11:33:53 +01:00
Mark Nauwelaerts
e8c254f34d flvdemux: remove obsolete FIXME comments 2012-01-12 13:18:43 +01:00
Mark Nauwelaerts
559c800c4f flvdemux: add prefix to local GstIndex related copies
... to avoid duplicate type names with other such local copies in the wild.
2012-01-12 11:09:07 +01:00
Mark Nauwelaerts
68e0d2b60c flvdemux: activate pad before setting caps
... rather than the usual 0.10 other way around.

Fixes #667558.
2012-01-12 11:09:07 +01:00
Sebastian Dröge
93e3ed5a86 Merge branch 'master' into 0.11
Conflicts:
	ext/cairo/gsttextoverlay.c
	ext/pulse/pulseaudiosink.c
	gst/audioparsers/gstaacparse.c
	gst/avi/gstavimux.c
	gst/flv/gstflvmux.c
	gst/interleave/interleave.c
	gst/isomp4/gstqtmux.c
	gst/matroska/matroska-demux.c
	gst/matroska/matroska-mux.c
	gst/matroska/matroska-mux.h
	gst/matroska/matroska-read-common.c
	gst/multifile/gstmultifilesink.c
	gst/multipart/multipartmux.c
	gst/shapewipe/gstshapewipe.c
	gst/smpte/gstsmpte.c
	gst/udp/gstmultiudpsink.c
	gst/videobox/gstvideobox.c
	gst/videocrop/gstaspectratiocrop.c
	gst/videomixer/videomixer.c
	gst/videomixer/videomixer2.c
	gst/wavparse/gstwavparse.c
	po/ja.po
	po/lv.po
	po/sr.po
	tests/check/Makefile.am
	tests/check/elements/qtmux.c
	tests/check/elements/rgvolume.c
2012-01-10 14:32:32 +01:00
Wim Taymans
5fd2b7abe3 GST_FLOW_UNEXPECTED -> GST_FLOW_EOS 2012-01-03 15:26:21 +01:00
Tim-Philipp Müller
2884785d54 flvdemux: update for GstIndex removal
Add private GstMemIndex for now.
2011-12-30 17:20:57 +00:00
Tim-Philipp Müller
89521166b2 flvmux: don't try to push already-freed buffers
Fixes unit test.
2011-12-25 14:23:29 +00:00
Mark Nauwelaerts
b175d1cbc4 flvmux: properly determine final duration
... which can be authoratively obtained from our own written timestamps.
2011-12-19 17:45:07 +01:00
Mark Nauwelaerts
fa5c02b211 flvmux: only write full metadata at start
... rather than having (potentially) unnecessary duplicates written all over,
or even contradictory varying filesize info, or duration info that will not
be rewritten upon header rewrite.
2011-12-19 17:45:04 +01:00
Mark Nauwelaerts
8c32195d51 flvmux: use GstCollectPads2 buffer callback and running time clipper
... since the default collection heuristics suffice.
2011-12-19 17:45:01 +01:00
Mark Nauwelaerts
50be1d5dae flvmux: use GstCollectPads2 event callback
... in stead of local HACK.
2011-12-15 16:49:41 +01:00
Vincent Penquerc'h
44d001346a flxmux: port to GstCollectPads2 2011-12-14 18:52:37 +00:00
Tim-Philipp Müller
b8b8454bcb Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-12 09:46:27 +00:00
Tim-Philipp Müller
668e15598b Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	sys/v4l2/gstv4l2object.c
2011-12-08 01:28:26 +00:00
Vincent Penquerc'h
7a7db8cbaf flvdemux: fix discontinuity threshold check when timestamps go backwards
Since unsigned types are used, a negative value would show as very, very
positive.
Fixes A/V sync on some... less than well made files where timestamps go
backwards.
2011-12-03 17:30:10 +00:00
Wim Taymans
c36325f0aa Update for indexable change 2011-11-28 18:25:52 +01:00
Vincent Penquerc'h
c0e101e93f various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Tim-Philipp Müller
be0d6baac5 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/pulse/pulseaudiosink.c
	ext/pulse/pulsesrc.c
	gst/audioparsers/gstaacparse.c
	gst/audioparsers/gstamrparse.c
	gst/audioparsers/gstdcaparse.c
	gst/audioparsers/gstflacparse.c
	gst/effectv/gstradioac.c
	gst/effectv/gstradioac.h
	gst/effectv/gstripple.c

Some possible FIXMEs remaining in the audio parser getcaps functions.
2011-11-26 13:34:10 +00:00
Vincent Penquerc'h
21d3faa400 flvdemux: fix seeking
Which I accidentally broke when fixing flv videos breaking on
spurious timestamp discontinuities in broken files.

https://bugzilla.gnome.org/show_bug.cgi?id=631430
2011-11-25 16:03:59 +00:00
Matej Knopp
1e5dd9e315 Fix printf format compiler warnings on OS X / 64bit
https://bugzilla.gnome.org/show_bug.cgi?id=662615
2011-11-22 01:28:22 +00:00
Wim Taymans
f8e988a94c update for activation changes 2011-11-21 13:37:01 +01:00
Wim Taymans
6e4fb21331 update for new scheduling query 2011-11-18 17:59:16 +01:00
Wim Taymans
b7aa7bca52 add parent to activate functions 2011-11-18 13:57:20 +01:00
Wim Taymans
105650127e add parent to pad functions 2011-11-17 15:02:55 +01:00
Stefan Sauer
8643d1caaf collectpads: port API changes 2011-11-17 08:44:45 +01:00
Wim Taymans
6190312214 add parent to query function 2011-11-16 17:27:13 +01:00
Wim Taymans
e7918a5aba _query_peer_*() -> _peer_query_*() 2011-11-15 18:04:44 +01:00
Wim Taymans
95f3987332 Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacdec.c
	gst/audioparsers/gstflacparse.c
	gst/isomp4/qtdemux.c
2011-11-09 12:18:01 +01:00
Wim Taymans
49658dd5b5 remove query types 2011-11-09 11:53:01 +01:00
Raul Gutierrez Segales
91af805636 gst/flv/: add amfdefs.h to noinst_HEADERS
https://bugzilla.gnome.org/show_bug.cgi?id=663334
2011-11-07 17:28:38 +00:00
Vincent Penquerc'h
cf3f3f14da flvdemux: detect large pts gaps and resync
Should work on multiple gaps, but tested on only one.

https://bugzilla.gnome.org/show_bug.cgi?id=631430
2011-11-07 12:38:49 +00:00
Wim Taymans
e038ab5a0b tags: update for tag API removal 2011-11-02 12:09:20 +01:00
Tim-Philipp Müller
9cd17092d8 ext, gst: update for taglist API changes 2011-10-30 11:44:53 +00:00
Wim Taymans
d40e915449 Merge branch 'master' into 0.11 2011-10-28 16:52:08 +02:00
Stas Sergeev
6b168ffb44 flvdemux: be careful with negative cts
Fixes #661477.
2011-10-28 12:31:15 +02:00
Wim Taymans
facda96308 Merge branch 'master' into 0.11
Conflicts:
	gst/flv/gstflvmux.c
2011-10-27 19:06:06 +02:00
Wim Taymans
9c14280b1d make some more things compile again 2011-10-27 19:00:52 +02:00
Jan Schmidt
f6255bb8d0 flvmux: add some comments and defines to clarify code. 2011-10-27 00:41:29 +11:00
Wim Taymans
87fbd1e784 Merge branch 'master' into 0.11
Conflicts:
	common
	ext/pulse/pulsesink.c
	ext/soup/gstsouphttpclientsink.c
	gst/audioparsers/gstaacparse.c
	gst/audioparsers/gstac3parse.c
	gst/rtp/gstrtph264depay.c
	gst/rtpmanager/gstrtpjitterbuffer.c
	gst/rtpmanager/rtpjitterbuffer.c
	gst/rtsp/gstrtspsrc.c
	sys/ximage/gstximagesrc.c
2011-09-28 12:44:59 +02:00
Alessandro Decina
aea09188dc flvmux: don't release request pads going PAUSED->READY
Don't release request pads but just reset them. This makes pipelines using
flvmux reusable.
2011-09-12 10:00:59 +02:00
Tim-Philipp Müller
b843f8f99c gst: udpate for position/duration/convert query API changes 2011-07-28 11:38:31 +01: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
Wim Taymans
cf1248e566 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
2011-05-16 17:52:11 +02:00
Andoni Morales Alastruey
5b99b910ec flvmux: Add support for mpegversion 2, which is also AAC 2011-05-14 11:52:13 +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
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
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
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
Sebastian Dröge
283b30e312 flvdemux: Don't leak the SEEKING query 2011-04-14 13:47:05 +02: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
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
Zaheer Abbas Merali
d44d498aa4 flv: Specify the only possible stream-format for h264 in the pad templates. 2011-04-04 10:35:03 +01:00
Jan Urbański
9c5a12c11f flvdemux: Do not build an index if upstream is not seekable
An index is not useful if upstream cannot handle seeks and building it
for infinite files, for instance FLV streams, results in a memory leak.
2011-03-28 19:53:59 +02:00
Mark Nauwelaerts
87e1b06cac flvmux: use running time for synchronization
Fixes #432612.
2011-03-22 20:55:41 +01:00
Edward Hervey
6e1c701502 Revert "Check that collectpads exists before removing pad"
This reverts commit 8e6b876e76.

Depends on a core commit that was reverted
2011-02-21 12:25:19 +01:00
David Schleef
8e6b876e76 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-02-20 23:46:01 -08:00
David Schleef
63bb9807a3 flvmux: don't set duration for live stream 2011-02-17 18:05:43 -08:00
Stefan Kost
99e4bdd8f2 avidemux, flvdemux: formatting cleanup
Trim trailing whitespaces and fix the formatting of double negation.
2011-02-17 14:13:36 +02:00
Stefan Kost
ade128a002 avidemux, flvdemux: mark delta-units in the index
We need to use the 'delta' flag for delta units and not the 'none' flag.
2011-02-17 14:13:36 +02:00
Mark Nauwelaerts
6f8ce30c20 flvdemux: use aac codec-data to adjust samplerate if needed
Based on patch by Fabien Lebaillif-Delamare <fabien@arq-media.com>

Fixes #636621.
2010-12-07 13:12:02 +01:00
Edward Hervey
8eb0de13df flvdemux: Refactor tag pushing logic
The logic of when to push was wrong also (resulting in some tags never
being pushed).
2010-12-03 14:53:48 +01:00
Edward Hervey
4fde700113 flvdemux: Use pbutils for codec descriptions 2010-12-03 14:53:47 +01:00
Tom Janiszewski
05cc505289 flvmux: Fix for nellymoser codecid setting
Fixes bug #632897.
2010-12-02 19:18:03 +01:00
Andoni Morales Alastruey
0bffae750b flvmux: resend onMetada tag when tags changes in streamable mode 2010-10-06 09:14:24 +02:00
Wim Taymans
9e7b890a22 flvdemux: parse and use cts
For H264, there is an extra header containing the CTS, which is a timestamp
offset that should be applied to the PTS. Parse this value and use it to adjust
the pts.

Fixes #630088
2010-09-23 16:46:31 +02:00
Wim Taymans
77f02c2d7e flvdemux: improve pts debugging 2010-09-23 16:45:41 +02:00
Sebastian Dröge
78eca34a6d flvdemux: Don't use GST_FLOW_IS_FATAL() 2010-09-04 14:52:09 +02:00
Andrzej K. Haczewski
0b5172eb06 flvmux: Write duration at the correct position 2010-07-02 14:25:22 +02:00
Zaheer Abbas Merali
8269a028a0 flvmux: add documentation for streamable property 2010-06-17 17:24:22 +01:00
Thiago Santos
c27dc49bf7 flvmux: Rename unreleased property 'indexed' to 'streamable'
Rename 'indexed' to 'streamable' for a better name while it
hasn't been released
2010-06-09 09:13:09 -03:00
Zaheer Abbas Merali
44c911d255 flvmux: Add indexed property to replace disabled is-live.
Add indexed property to be the negation of what the disabled is-live property
was. Fixes bug #613066.
2010-06-08 14:12:16 +02:00
Sebastian Dröge
48934764e7 flvdemux: Don't handle non-TIME seeks
Don't send them upstream because for upstream a BYTES seek
might make sense but is completely wrong because upstream
can't seek to a byte position of the audio or video stream.

Also don't build the index in push mode for non-TIME seeks,
things will go wrong here otherwise.
2010-06-07 18:34:11 +02:00
Sebastian Dröge
f16ed4a91c gst: Don't use GST_DEBUG_FUNCPTR for GObject vfuncs 2010-06-06 17:52:40 +02:00
Sebastian Dröge
6e9e48c0b9 flvdemux: Clear adapter on discontinuities 2010-06-06 15:17:00 +02:00
Sebastian Dröge
0fe56cc0d6 flvdemux: First try upstream when handling seek events/queries 2010-06-06 14:57:27 +02:00
Mark Nauwelaerts
a8ffe6f593 flvdemux: delayed seek handling also deserves TRUE event response 2010-06-02 17:27:22 +02:00
Tim-Philipp Müller
d51576b14c Revert "avimux, flvmux, matroskamux: don't crash if tags arrive on multiple input pads at the same time"
This reverts commit 6a9983cd20.

Rely on locking done in GstTagSetter in core git.
2010-06-01 09:39:38 +01:00
Sebastian Dröge
f8c906e475 flvdemux: Fix position query 2010-05-29 13:55:07 +02:00
Tim-Philipp Müller
6a9983cd20 avimux, flvmux, matroskamux: don't crash if tags arrive on multiple input pads at the same time
This is a temporary fix for the release only.

Fixes #619533.
2010-05-26 00:05:54 +01:00
Jan Urbański
cf57f1b220 flvmux: only store the last buffer timestamp if it's valid
Fixes bug #618305
2010-05-11 06:35:48 +02:00
Stefan Kost
0148a230ac flvdemux: tell what we can do
Any-caps are bad. If apps scan the registry, they'd like to know what we can
output.
2010-05-06 15:43:53 +03:00
Tim-Philipp Müller
f48bc702af flvmux: hide is-live property for release
At the very least it needs a better/less wrong name.

See #613066.
2010-04-26 00:01:19 +01:00
Stefan Kost
054b84359b flvdemux: make debug category static 2010-04-08 14:34:59 +03:00
Stefan Kost
fa09b5d519 flxdemux: rename GstFLVDemux for GstFlvDemux 2010-04-08 14:29:59 +03:00
Stefan Kost
fcc3db73a3 flvdemux: merge flvparse into the demuxer and make function static
No need to hide certain function in the docs. Allows to do more cleanups.
2010-04-08 14:29:59 +03:00
Mark Nauwelaerts
2d6d2a4d95 flvdemux: remove obsolete reverse playback code path 2010-04-01 10:46:16 +02:00
Mark Nauwelaerts
1c7b1d110b flvdemux: support (pull mode) negative seek rate 2010-04-01 10:46:12 +02:00
Mark Nauwelaerts
d3ae0ef71f flvdemux: also check for segment stop for non-segment-seek 2010-04-01 10:46:10 +02:00
Benjamin Otte
3f511ec361 Add -Wwrite-strings to the configure flags
... and fix all warnings
2010-03-21 14:17:47 +01:00
Jan Urbański
7d32f46b7a flvmux: put more information in the metadata
Additional tags are: audiocodecid, videocodecid framerate and (in the
non-live case) filesize.

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

Fixes #613094.
2010-03-18 10:00:58 +01:00
Jan Urbański
dcb5afd351 flvmux: Put width and height in the metadata
Some players use that info to scale their display.

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

Fixes #613003.
2010-03-17 09:24:49 +01:00
Jan Urbański
a99ee96172 flvmux: Always put a duration tag in the metadata
Some Flash players (for instance JW Player) always expect a duration
tag, otherwise they don't start playback.

If duration can be queried from the sink pads or is provided as a tag,
use it. Otherwise try to determine it from the last seen timestamp of
the sink pads after EOS and rewrite it in the header before writing
the index.
2010-03-16 15:12:46 +01:00
Jan Urbański
ef8f7614ff flvmux: Remove the send_codec_data field from GstFlvPad
That field is not used anymore after the changes in
9fdecbc1c1.
2010-03-16 15:12:46 +01:00
Jan Urbański
c69c5cb0d7 flvmux: Correctly mark buffers as delta units
Mark video interframes, video codec data buffers and audio buffers (if
it's not an audio-only stream) as delta units.
2010-03-15 13:54:39 +01:00
Jan Urbański
9fdecbc1c1 flvmux: Support streamheaders
Put the FLV header, the metadata tag and (if present) codec
information in the streamheader to allow the muxer to be used for
streaming.
2010-03-15 13:53:53 +01:00
Jan Urbański
7deee29d2c flvmux: Preallocate index space and fill it after finishing output
Make the index appear at the beginning of the file, which is what most
players are expecting.

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

See #601236.
2010-03-15 13:45:21 +01:00
Jan Urbański
b21c5c9015 flvmux: Fix index building to make entries point to tag's start offset
Previous coding was wrongly incrementing the total byte count before
adding an index entry.
2010-03-15 13:44:14 +01:00
Edward Hervey
6dfcee8fdb flvdemux: Fix printf formatting for macosx 2010-03-11 17:04:41 +01:00
Edward Hervey
8e0a8b30b8 flvdemux: Fix unitialized variables 2010-03-11 17:04:41 +01:00
Edward Hervey
95d087ed77 flvparse: Make script tag parsing more flexible.
* The nb_elements for arrays is just an indication, we can therefore ignore
  it and carry on parsing metadata items until we reach the end marker.
* If type == 3, then the script tag contains a list of object followed
  by the end marker.

Refactor code slightly to handle both cases

https://bugzilla.gnome.org/show_bug.cgi?id=610447
2010-03-11 17:04:41 +01:00
Mark Nauwelaerts
1dfcc3227c flvdemux: conduct index scan in task thread
... rather than in seeking thread, which might then occupy mainloop
for some time with possible unresponsive side-effects.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
f23fb39bc7 flvdemux: avoid indefinite index growth
That is, check for and do not add an index entry that has already
been added.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
f79de81bb4 flvdemux: also collect index info on-the-fly in pull mode 2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
86a1aec2c0 flvdemux: incrementally build index in pull mode
Scan for needed part upon a seek as opposed to doing a complete scan
at startup, which may take some time depending on file and/or platform.
Also accept index metadata in pull mode and peek for some metadata
at the end of the file when deemed appropriate.
2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
66fabd8bfd flvdemux: some more variable cleanup 2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
122daaf6af flvdemux: refactor adding index entry 2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
6aa4d5df2d flvdemux: fix setting DELTA_UNIT flag on outgoing buffers
... which should not depend on having index available or not.
Also refactor resulting collapsed code.
2010-03-10 11:48:06 +01:00
Tim-Philipp Müller
8c46cce875 flvdemux: minor micro-optimisation
We know these values don't change during the loop, but the compiler
doesn't and has to re-check them for every iteration.
2010-02-19 12:13:08 +00:00
Tim-Philipp Müller
ec9add84a8 flvdemux: remove static keyword from variables that shouldn't be static
Multiple flvparse/flvdemux instances should be able to operate without
trampling over each other by accidentally re-using the same (static)
variables. (Spotted by Mark Nauwelaerts)
2010-02-19 12:13:07 +00:00
Edward Hervey
fa0e3184dd flvdemux: Audio tags without any content are valid.
We silently ignore them instead of erroring out.
2010-02-13 18:18:42 +01:00
Edward Hervey
817911664e flvdemux: Fix GST_CLOCK_DIFF usage.
It was previously checking for DIFF(a, b > 6 * GST_SECOND) instead of
the proper DIFF(a,b) > 6 * GST_SECOND
2010-02-13 18:07:50 +01:00
Edward Hervey
d263119589 flvdemux: Don't forget to reset the indexed variable when cleaning up 2010-02-13 16:27:07 +01:00
Edward Hervey
0dd06da5e8 flvdemux: Speedup GstIndex usage
Used the _add_associationv variant of GstIndex since we know how many
associations we're adding. Trims up to 50% from index generation time.

Note : It would be great if the index could be generated on the fly or
on request as opposed to being fully created at startup.
2010-02-13 14:57:59 +01:00