Mark Nauwelaerts
f62c6ce5c8
avidemux: push mode; handle 0-size data chunks
...
Fixes #618535 .
2010-07-22 11:46:51 +02:00
Mark Nauwelaerts
7955c01f19
avidemux: additional verification heuristics for VBR audio stream
...
Check for and override some header field(s) for reasonable values, according
to later expected use in calculations.
2010-07-16 13:58:12 +02:00
Michael Grzeschik
b26785d9f9
reset the have_index flag at transition PAUSED_TO_READY
...
If we restart the Stream in the case of doing a transition from
PAUSED_TO_READY and back with READY_TO_PAUSED aso. the duration of the video
will get calculated even if we have a avi header with that information.
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
2010-06-23 21:40:50 +02:00
Mark Nauwelaerts
a69e419c8e
avidemux: improve audio vbr detection
...
Subsequent entry time calculations use blockalign value to determine
number of frames per chunk, and blockalign == 1 is then most unlikely to result
in reasonable values (which also aligns with "spec").
2010-06-16 15:53:47 +02:00
Sebastian Dröge
e49d8a286b
avidemux: Assign variables before printing them
2010-06-15 20:04:35 +02:00
Mark Nauwelaerts
de5cb168ee
avimux: fix avi header bytewriting
...
... by using proper offsets for tag list writing.
Also use _reset rather than _free and consistently use bytewriter position.
See #619293 .
2010-06-11 10:57:41 +02:00
Mark Nauwelaerts
53365b91e6
avimux: clean up code for avi header using a bytewriter
...
https://bugzilla.gnome.org/show_bug.cgi?id=619293
2010-06-02 14:20:26 +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
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
Sebastian Dröge
d1842481c1
avimux: Add support for On2 VP8
...
...avidemux automatically supports it through libgstriff.
2010-05-17 17:18:24 +02:00
Mark Nauwelaerts
5ae7119d11
avimux: check that pads have been negotiated
...
Also set fcc_handler field in audio stream header.
Fixes #618351 .
2010-05-11 13:58:03 +02:00
Stefan Kost
e7a5ff40bd
docs: trim sections file more
...
Rename some defines and move some itesm to *.c files. Add more items to internal
subsection.
2010-04-08 12:14:07 +03:00
Thijs Vermeir
d17ad171c9
build: fix compiler warnings
...
fix warnings for all plugins that use: setlocale (LC_ALL...
2010-04-07 13:48:12 +02:00
Thijs Vermeir
1e5bb1c300
avi: fix compiler warning
2010-04-07 13:32:09 +02:00
Mark Nauwelaerts
d654eeb6de
avidemux: fix typo in header validation check
2010-03-25 11:40:20 +01:00
Benjamin Otte
3f511ec361
Add -Wwrite-strings to the configure flags
...
... and fix all warnings
2010-03-21 14:17:47 +01:00
Tim-Philipp Müller
073201b329
build: Makefile.am cleanups
...
Mostly add $(GST_BASE_CFLAGS) where it was missing, but also fix up
order of flags and libs if needed (see docs/random/moving-plugins).
2010-03-18 21:34:24 +00:00
Benjamin Otte
cccfeaa59c
gst_element_class_set_details => gst_element_class_set_details_simple
2010-03-18 14:32:00 +01:00
Benjamin Otte
46fdd8b624
avi: Remove old file
...
Seems to be leftover from the 0.4 days or so.
2010-03-18 14:32:00 +01:00
Mark Nauwelaerts
abd9c0c657
avidemux: fix typo in header validation check
2010-03-18 11:37:12 +01:00
Edward Hervey
c4d55cf782
avidemux: Fix unitialized variable.
2010-03-11 17:04:41 +01:00
Mark Nauwelaerts
c007d8535c
avidemux: ignore stream with invalid header time metadata
2010-03-11 15:04:19 +01:00
Michael Smith
c3b0509beb
avimux: put the codec_data blob into the actual data for MPEG4 video,
...
to match other implementations in the wild.
2010-03-10 10:40:47 -08:00
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
5975b01b01
avimux: matroskamux: rename aac's stream-format to raw
...
AAC's none stream-format has been renamed to raw, rename
on avimux and matroskamux as well
2010-01-11 13:26:32 -03:00
Thiago Santos
bacd350483
avimux: Only accept raw aac
...
makes avimux reject aac streams that are not
in raw format (stream-format=none)
Fixes #598350
2010-01-11 12:32:27 -03: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
Stefan Kost
fd9530d2d5
avimux: fix typo in warning message
2010-01-05 00:12:44 +02: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
Thiago Santos
b59dc3e5fb
avimux: also set the suggested buf size for audio
...
We were only setting the suggested buf size for video,
we can set it for audio as well.
This and 195e14529d80ef318ce3a778c1995efb11f266cd
fix an issue that prevented seeking on large avi files
on WMP (non-recent versions).
2009-11-24 12:44:57 -03:00
Thiago Santos
831b1e958a
avimux: fix indx duration for PCM audio
...
GstBuffers for PCM audio usually contains more than
1 sample, we need to get the total number of samples to set
the indx duration.
2009-11-24 12:44:56 -03:00
Thiago Santos
8dd78015f1
avimux: Audio buffers should be picked earlier
...
Adds a 0.5s advantage for audio buffers to being
picked earlier for muxing.
2009-11-24 12:44:56 -03:00
Thiago Santos
feed8c2af3
avimux: do not write empty INFO list
...
avoid writing an empty INFO list chunk, both because
it is useless and because vlc refuses to play the
resulting file.
2009-11-05 12:31:56 -03: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
Michael Smith
b0b54d9324
Add dependencies of gstriff to things that link to gstriff, needed on Win32.
2009-10-23 18:09:43 -07: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
8f2beb5e51
avimux: support (some) VBR audio muxing
...
AVI format can handle VBR audio provided audio chunks are of fixed duration
(cfr fixed duration video frames). Apply this approach to (always) parsed
raw AAC and (if parsed) to MPEG-1/2 audio.
See #368681 .
2009-10-16 17:31:02 +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
9aa151a661
avi: add new avi flag we might want to use
2009-10-13 17:48:51 +02:00
Wim Taymans
df0335e65b
avimux: calculate suggested buffer size
...
Calculate the suggested buffer size based on the largest chunk in the file.
See #597847
2009-10-13 17:48:51 +02:00
Wim Taymans
b134ca31fa
avimux: add jpeg2000 to allowed caps
2009-10-13 17:48:51 +02:00
Wim Taymans
aea78a75ac
avidemux: add debug for the superindex offsets
2009-10-13 17:48:50 +02:00
Wim Taymans
50110d022d
avi: lower max file size
...
Make a constant of the max file size and lower the value to what ffmpeg does,
hopefully improving compatibility with windows media player.
See #597847
2009-10-13 13:08:33 +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
Wim Taymans
3f263edbbf
avi: small cleanups
2009-09-28 22:18:25 +02:00
Wim Taymans
217315c20b
avi: fix timestamping in some audio streams
...
For vbr audio streams we need to use the number of blocks to calculate the
timestamps.
When the allocation of additional index memory fails, don't throw away what
we had before.
Various cleanups.
2009-09-28 22:17:02 +02:00
Wim Taymans
7b9b8343ba
avi: add support for ODML indexes again
2009-09-28 22:17:00 +02:00
Wim Taymans
ceb7d66e25
avi: implement index scanning
...
Implement scanning of the file when we can parse the index.
Some refactoring of common code.
Cleanups and comments.
Remove some reimplemented code.
Remove index massage code and put a FIXME where we should do something
equivalent later.
2009-09-28 22:16:57 +02:00
Wim Taymans
8aa3830852
avi: fix reverse playback
2009-09-28 22:16:55 +02:00
Wim Taymans
3338f91cfe
avi: fix prev keyframe search and cleanups
2009-09-28 22:16:53 +02:00
Wim Taymans
1b325945e5
avi: remove code that got converted
2009-09-28 22:16:50 +02:00
Wim Taymans
c199b1d039
avi: more cleanups
...
Remove some duplicate counters.
Be smarter when updateing the current the timestamp and offset in the stream
because we can reuse previously calculated values when simply go forward one
step.
Correctly set metadata on outgoing buffers.
2009-09-28 22:16:48 +02:00
Wim Taymans
0d70fe30a8
avidemux: small cleanups
2009-09-28 22:16:46 +02:00
Wim Taymans
b4a490655a
avi: fix read offset and cleanups
2009-09-28 22:16:43 +02:00
Wim Taymans
9c37611dfa
avi: rewrite index playback
...
disable code, start on reimplementing loop based operation.
Rewrite the index handling so that all streams use their own index for decoding
media.
2009-09-28 22:16:41 +02:00
Wim Taymans
89bcbbbe7c
avidemux: add new index parsing code
...
Add a new function and datastructure to parse and hold the index entries on a
per stream base. Also avoid doing too much work trying to figure out the
timestamps and durations as we can trivially do that later.
Less information in the entries makes them 2 times smaller and not doing too
much work makes this code about 12 times faster than the regular case.
Hook in the new function alongside the existing function for comparison until
the rest of the code is updated to handle the new index datastructure.
2009-09-28 22:16:38 +02:00
Alessandro Decina
195883b30a
Fix compile warnings with gcc 4.0.1.
2009-09-22 15:04:36 +02:00
Wim Taymans
10eb1a0ff4
avi: fix timestamps in push mode
2009-09-21 18:10:12 +02:00