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
Robert Swain
bf9d8dbbdc
flvdemux: Obtain the index from the end of an flv file in push mode
...
Allows for better support of seeking in flv files when in push mode
2010-02-12 16:25:44 +01:00
Wim Taymans
1f9c39da2a
flvparse: fix confusing debug messages
2010-02-12 13:53:58 +01:00
Robert Swain
f9bf5970a3
flvmux: index timestamps should be in seconds, not milliseconds
2010-01-27 20:24:41 +01:00
Jan Urbański
dd82612340
flvmux: properly finish the ECMA array
...
The ECMA array with the file index was missing a mandatory end marker.
Fixes bug #601242 .
2009-11-18 08:03:43 +01:00