Commit graph

74 commits

Author SHA1 Message Date
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
Stas Sergeev
6b168ffb44 flvdemux: be careful with negative cts
Fixes #661477.
2011-10-28 12:31:15 +02:00
Mark Nauwelaerts
350b9b9d2d flvdemux: indicate raw format in aac caps 2011-07-04 11:36:46 +02:00
Tim-Philipp Müller
bb23575f6b flvdemux: fix deadlock on setting index on flvdemux 2011-04-19 14:34:48 +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
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
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
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
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
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
Sebastian Dröge
f8c906e475 flvdemux: Fix position query 2010-05-29 13:55:07 +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
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
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
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
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
Edward Hervey
d263119589 flvdemux: Don't forget to reset the indexed variable when cleaning up 2010-02-13 16:27:07 +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
Sebastian Dröge
48b784e715 flvdemux: If there's no audio stream after 6 seconds of video signal no-more-pads
...and the other way around. Also ignore any audio/video streams that appear
after no-more-pads.

Fixes bug #597091.
2009-10-03 12:21:34 +02:00
Sebastian Dröge
f84bc538b5 flvdemux: Make sure to only signal no-more-pads a single time 2009-10-03 12:21:34 +02:00
Jan Schmidt
3f69f8d3ee flvdemux: Fix tests warning from setting a NULL index
Setting a null index in the tests was causing warnings by unreffing
NULL pointers. This is a bug exposed by a recent change in core, it
seems.
2009-08-31 12:10:05 +01:00
Sebastian Dröge
aa02444768 flvdemux: Implement SEEKING query
Also add some more query types to the answer of the query type function.

Fixes bug #589424.
2009-07-23 11:51:07 +02:00
Edward Hervey
67ca4c57b1 flvdemux: Remove unused variable, hint branch likeliness, add comments. 2009-06-25 08:10:38 +02:00
Christian Schaller
121443eba7 [MOVED FROM BAD 57/57] Add ranks to various muxers and encoders in -bad 2009-05-12 21:21:03 +02:00
Sebastian Dröge
046311d3ea [MOVED FROM BAD 50/57] flv: Add documentation to flvmux and flvdemux
Partially fixes bug #573737.
2009-05-12 21:21:01 +02:00
Julien Moutte
d759265a51 [MOVED FROM BAD 47/57] gst/flv/gstflvdemux.c: Fix non key unit seeking by always going to the previous keyframe. Mark the discont flag when ...
Original commit message from CVS:
2008-11-24  Julien Moutte  <julien@fluendo.com>

* gst/flv/gstflvdemux.c: (gst_flv_demux_find_offset),
(gst_flv_demux_handle_seek_push),
(gst_flv_demux_handle_seek_pull):
Fix non key unit seeking by always going to the previous
keyframe. Mark
the discont flag when we've moved in the file.
* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate): MP3
streams
are parsed already, makes autoplugged pipelines shorter.
2009-05-12 21:21:00 +02:00
Sebastian Dröge
ee53e44fd1 [MOVED FROM BAD 45/57] gst/flv/gstflvdemux.c: Implement position query in time format.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_query):
Implement position query in time format.
2009-05-12 21:21:00 +02:00
Sebastian Dröge
b7f0ba61e4 [MOVED FROM BAD 44/57] gst/flv/: Put the GstSegment directly into the instance struct instead of allocating and free'ing it again.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
(gst_flv_demux_loop), (gst_flv_demux_handle_seek_push),
(gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event),
(gst_flv_demux_dispose), (gst_flv_demux_init):
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video), (gst_flv_parse_tag_timestamp):
Put the GstSegment directly into the instance struct instead of
allocating and free'ing it again.
Push tags already if only one pad was added, no need to wait for
the second one.
When generating our index set has_video and has_audio if we find
video or audio in case the FLV header has incorrect data.
2009-05-12 21:21:00 +02:00
Sebastian Dröge
029dfc56d4 [MOVED FROM BAD 43/57] gst/flv/: Don't memcpy() all data we want to push downstream, instead just create subbuffers and push them downstream.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_chain),
(gst_flv_demux_pull_tag), (gst_flv_demux_pull_header),
(gst_flv_demux_create_index):
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
(gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type),
(gst_flv_parse_header):
* gst/flv/gstflvparse.h:
Don't memcpy() all data we want to push downstream, instead just
create subbuffers and push them downstream.
Fix some minor memory leaks.
2009-05-12 21:20:59 +02:00
Sebastian Dröge
5b0cab9700 [MOVED FROM BAD 38/57] gst/flv/gstflvdemux.c: Don't post an error message on the bus if sending EOS downstream didn't work. Fixes bug #550454.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_loop),
(gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push),
(gst_flv_demux_handle_seek_pull):
Don't post an error message on the bus if sending EOS downstream
didn't work. Fixes bug #550454.
Fix seek event handling to look at the flags of the seek event
instead of assuming some random flags, don't send segment-start
messages when operating in push mode and push seek events upstream
if we couldn't handle them.
2009-05-12 21:20:58 +02:00