Commit graph

349 commits

Author SHA1 Message Date
Mark Nauwelaerts
1a60c7b040 avidemux: push mode; also report seekable without an element index
... since recent code also seeks around to obtain required data
from avi index.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
3a1a140e2d avidemux: add some check and standardized seek event handling in push mode 2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
d90aed1857 avidemux: fix offset handling in push mode seeking
Push mode seeking uses same index data as pull mode, and stores
offset to data in chunk, whereas push mode operates in chunks,
and as such needs offset consistently corresponding to chunk headers.
Also fix determining best matching stream for incoming newsegment event,
as well as setting some stream state accordingly.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
172c0c6a6a avidemux: reset some more stream state after seek
In particular, fixes non-flushing seek.
2010-02-16 15:03:59 +01:00
Robert Swain
dd23397b4f avidemux: Drop video frames up to the desired keyframe after a seek
The audio packets in AVI are generally muxed ~0.5s before the
corresponding video packet. This changes causes downstream to only
receive packets with roughly corresponding timestamps.
2010-02-12 15:56:18 +01:00
Wim Taymans
1175d0698c avidemux: more DISCONT handling
Add some debug in the DISCONT handling code.
When we receive a DISCONT in push mode, mark all streams as DISCONT.
2010-02-12 15:56:18 +01:00
Robert Swain
0011c9b0da avidemux: Fix _handle_seek_push () and new segement behaviour 2010-02-12 15:56:18 +01:00
Wim Taymans
2ce79998a1 avidemux: cleanups
Make sure we reset the demuxer correctly wrt parsing the index.
Don't leak pending seek events.
Rename some methods to reflect what they do and to avoid confusion with similar
method names.
Try to make the seeking threadsafe by protecting the setup code with a lock.
Make sure we post errors when a seek fails.
2010-02-12 15:56:18 +01:00
Wim Taymans
e6cc145352 avidemux: rename some variables
seek_event -> seg_event
event_seek -> seek_event
2010-02-12 15:56:18 +01:00
Wim Taymans
784d888cb2 avidemux: take fallback duration from avih
When we have not parsed any indexes yet, we don't know the length of the streams
and we must take the length given in the avih as a fallback.
Avoid some typechecking.
2010-02-12 15:56:18 +01:00
Robert Swain
3e1ed0c727 avidemux: Push mode seeking support 2010-02-12 15:56:18 +01:00
Stefan Kost
ef343d8ad9 avi,wav: also handle JUNQ chunk in addition to JUNK 2010-02-12 15:35:30 +02:00
Wim Taymans
01f0a5ce32 avidemux: ignore streams that finished
When we receive an UNEXPECTED from a stream, move to the next stream and only go
EOS when all streams are EOS. When selecting a stream to push, ignore streams
that went EOS.

Fixes #607949
2010-01-26 11:22:56 +01:00
Wim Taymans
7d39f8e5bb avidemux: don't parse NULL indexes
for some streams we might fail to fetch the index offsets. Don't try to parse
NULL indexes in those cases.
2010-01-21 17:59:25 +01:00
Wim Taymans
afc3c674c0 avidemux: skip RIFF and index in push mode
When we are in push mode, we can encounter RIFF and idx tags in the data chunk
when we are dealing with ODML files. In these cases, simply skip the chunks and
continue streaming instead of going EOS.
2010-01-20 11:47:04 +01:00
Wim Taymans
570319822a avidemux: more DISCONT handling
Add some debug in the DISCONT handling code.
When we receive a DISCONT in push mode, mark all streams as DISCONT.
2010-01-20 11:47:04 +01:00
Wim Taymans
40e3b0189a avidemux: reset on flush events
When we receive a flush event on the sinkpad, reset the EOS state and the
flowreturn of all streams. Also mark the streams with a DISCONT.
2010-01-20 11:47:03 +01:00
Wim Taymans
183d450113 avidemux: rename some variable
Rename the seek_event variable to seg_event because it really contains the
newsegment event that needs to be pushed.
2010-01-20 11:47:03 +01:00
Wim Taymans
fb716a6250 avidemux: avoid some typecasting 2010-01-15 18:15:14 +01:00
Wim Taymans
592b440911 avidemux: avoid some type checks 2010-01-15 18:13:24 +01:00
Wim Taymans
d4301d900f avidemux: fallback to avih duration
when we have not yet parsed the indexes (in push mode, for example) use
the duration as given in the avih header instead of -1.
2010-01-15 18:09:15 +01:00
Stefan Kost
7e3783cbac avi: add missing include for sscanf 2010-01-13 16:44:58 +02:00
Thiago Santos
8e84d457b2 avidemux: Use more glib and be safer
Be safer on sscanf by limiting string format sizes.
Remove useless parameter and use g_strndup.
2010-01-08 11:33:02 -03:00
Thiago Santos
c0e184641a avidemux: Simplifying code
Greatly simplify the IDIT chunk handling by using sscanf
instead of 'manually' parsing. Also replaces strncasecmp and
is_alpha/is_digit with glib versions.
2010-01-08 10:51:17 -03:00
Thiago Santos
7024ce14cf avidemux: it's feb for february
Fix typo in last commit.
2010-01-08 10:18:30 -03:00
Thiago Santos
a5197a94ee avidemux: Parse and post IDIT dates
Parses and post date tags contained in IDIT chunks.

Fixes #503582
2010-01-08 09:17:22 -03:00
Tim-Philipp Müller
1b786258c2 avidemux: minor debug message changes
Fix up a few debug messages so that it's clearer what they mean.
2009-12-13 12:51:13 +00:00
Wim Taymans
ee6d7fd2db avidemux: init current_entry in push mode
Set the current_entry to 0 (instead of -1) in push mode so that we correctly
calculate the current frame number and timestamp.

Add some more debug info and fic the duration debug.
2009-12-04 13:52:49 +01:00
Wim Taymans
0c12f585e3 avidemux: use segment_full when we can
Use segment_full so that we can pass the applied rate to the segment values. We
will change the applied rate when we implement skip mode.
2009-10-27 18:07:18 +01:00
Tim-Philipp Müller
457ac565ba avidemux: fix compilation with debugging disabled
total_idx is always evaluated.
2009-10-22 02:09:08 +01:00
Edward Hervey
683f2a02fb avidemux: Stop scanning at the last entry... and not the one before :)
This ensures we actually push out everything
2009-10-20 18:23:28 +02:00
Edward Hervey
024f1bae0c avidemux: MEMDUMP the junk blobs
It will only actually pull the junk blobs from upstream if the memdump
level is activated
2009-10-18 16:16:43 +02:00
Edward Hervey
1f5ace4de1 avidemux: Some avi files have INFO lists in the headers. 2009-10-18 16:16:43 +02:00
Edward Hervey
6e849f84fc avidemux: Don't seek on empty streams 2009-10-18 16:16:43 +02:00
Edward Hervey
a6ed612f42 avidemux: Ensure _calculate_durations_from_index only uses valid streams 2009-10-18 16:15:08 +02:00
Edward Hervey
1936d6ed26 avidemux: Only call convert function if we have strf.auds 2009-10-18 16:15:08 +02:00
Edward Hervey
af99a4a1de avidemux: Use first indexed stream for seeking.
In the future, main_stream can be adjusted to contain the optimal stream
as mentionned in the FIXME line 3440
2009-10-18 16:15:05 +02:00
Edward Hervey
2110cbe556 avidemux: Only expose streams that actually have something in it.
This guarantees that in pull-mode, all streams have a valid index to
work with.
2009-10-18 16:14:40 +02:00
Edward Hervey
546aa4c4dd avidemux: Properly mark presence of index.
Instead of blindly saying we have an index, only do so if we have a
non-empty index.
2009-10-18 15:40:37 +02:00
Mark Nauwelaerts
7ceeb14834 avidemux: adjust flow return aggregation to updated loop_data
In particular, each stream is now treated separately, and one stream's
EOS should not lead to overall EOS.
2009-10-15 21:32:08 +02:00
Mark Nauwelaerts
f071ff6993 avidemux: add missing argument in debug message 2009-10-15 11:26:09 +02:00
Mark Nauwelaerts
0141934eec avidemux: use GstIndex for (limited) seeking in push mode
... but disable this for now.  Although it basically works fine,
user experience might be shaky (depending on taste), since there
is no keyframe info in push mode.
2009-10-14 13:15:09 +02:00
Mark Nauwelaerts
35dc28d69a avidemux: add GstIndex support 2009-10-14 13:15:06 +02:00
Mark Nauwelaerts
92dd51e511 avidemux: also determine duration in push mode 2009-10-14 13:15:04 +02:00
Wim Taymans
daa6d8f206 avidemux: demote some warnings to debug 2009-10-13 18:19:32 +02:00
Wim Taymans
aea78a75ac avidemux: add debug for the superindex offsets 2009-10-13 17:48:50 +02:00
Josep Torra
28ccc40bab avidemux: fix warning in macosx making the format portable 2009-10-09 11:43:44 +02:00
Jan Schmidt
cdb0b68e21 avi/wav: Fix some compiler warnings about incompatible pointers. 2009-10-08 10:20:09 +01:00
Robert Swain
c45c304a7e Fix printf formats to avoid warnings in avidemux. Fixes #597214
https://bugzilla.gnome.org/show_bug.cgi?id=597214
2009-10-03 17:25:19 +02:00
Stefan Kost
458cd4dcdc avi: don't misues perf-category and remove unused ext category
The performance category is meant to be used to audit codepaths that lead to bad
performance (e.g. copies, conversion that can be avoided).
Remove the event category which is not used.
2009-10-01 10:57:42 +03:00