Commit Graph

71148 Commits

Author SHA1 Message Date
Michael Niedermayer
2c660e34cf avcodec/dnxhddec: Check that the frame is interlaced before using cur_field
Fixes Ticket4227

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 23:28:39 +01:00
Andreas Cadhalpun
30e6abd1a8 webp: ensure that each transform is only used once
According to the WebP Lossless Bitstream Specification
"each transform is allowed to be used only once".

If a transform is more than once this can lead to memory
corruption.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-19 21:03:13 +01:00
Anton Khirnov
cf18e777ae movenc: write the display transform matrix 2015-03-19 21:02:59 +01:00
Michael Niedermayer
bbcc09518e avformat/avienc: Expand master ODML index when its end is reached
Fixes 256Gb limit
Fixes Ticket4225

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 18:17:16 +01:00
Michael Niedermayer
adfde9a646 avformat/avienc: Fix wrongly placed comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 17:30:28 +01:00
Michael Niedermayer
81a6b075bd avformat/avidec: also print frame_num in debug output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 16:36:29 +01:00
Michael Niedermayer
01775c8858 avformat/avienc: factor out update_odml_entry()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 16:33:50 +01:00
Michael Niedermayer
c3a6d179fb avformat/avienc: factor write_odml_master() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 16:33:49 +01:00
Michael Niedermayer
5440d4b68b Merge commit '30a041887f89cd97c372ad6a516da6e012f2c88b'
* commit '30a041887f89cd97c372ad6a516da6e012f2c88b':
  ismindex: Calculate the pts duration of trun atoms, not the dts duration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 14:00:39 +01:00
Michael Niedermayer
b5448e66b0 Merge commit '67a2912307c3c08f2725ccae162cfe3426b80184'
* commit '67a2912307c3c08f2725ccae162cfe3426b80184':
  movenc: Don't assume that fragment durations in pts is equal to duration in dts

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 13:38:25 +01:00
Michael Niedermayer
25d7e3ad59 Merge commit '5c337353a2546416631a87de4881850d99141c39'
* commit '5c337353a2546416631a87de4881850d99141c39':
  movenc: Move sidx edit list timestamp adjustment into a block

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 13:26:47 +01:00
Michael Niedermayer
3602782429 Merge commit 'eee13d653953083553cceadbbedf6222ef78a006'
* commit 'eee13d653953083553cceadbbedf6222ef78a006':
  movenc: Only adjust the cts offset at the start of fragments if necessary

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:47:19 +01:00
Michael Niedermayer
4631d4bec3 Merge commit '5cf892d6946b19a87bcd00d6b76ce81f45960fdb'
* commit '5cf892d6946b19a87bcd00d6b76ce81f45960fdb':
  movenc: Write pts timestamps in tfxd, instead of dts timestamps

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:38:51 +01:00
Michael Niedermayer
00ad3432e1 Merge commit 'b81b0cc22b22413760423e239ea644c9afdbfa2d'
* commit 'b81b0cc22b22413760423e239ea644c9afdbfa2d':
  movenc: Set the last packet duration based on the next packet when autoflushing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:38:29 +01:00
Michael Niedermayer
09585e377c Merge commit '3041183677bda0a431b36e96a2c76617abaa8183'
* commit '3041183677bda0a431b36e96a2c76617abaa8183':
  dashenc: Heuristically fill in the duration of packets that need it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:18:05 +01:00
Michael Niedermayer
76fef5cd27 Merge commit '2889c5e16711770437f380f1bead5f72c6a0b17a'
* commit '2889c5e16711770437f380f1bead5f72c6a0b17a':
  movenc: Heuristically set the duration of the last sample in a fragment if not set

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 12:09:51 +01:00
Michael Niedermayer
4f8540ba40 Merge commit '8dc72eeaf647736c287b59a3856a11904bedd58b'
* commit '8dc72eeaf647736c287b59a3856a11904bedd58b':
  udp: Fix crashes after adding AVOptions

See: aefed6ca87
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 11:22:39 +01:00
Martin Storsjö
30a041887f ismindex: Calculate the pts duration of trun atoms, not the dts duration
Since the duration is compared to the tfra durations/intervals which
are expressed in pts, calculate that here as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:22 +02:00
Martin Storsjö
67a2912307 movenc: Don't assume that fragment durations in pts is equal to duration in dts
For strict CFR, they should be pretty much equal, but if the stream
is VFR, there can be a sometimes significant difference.

Calculate the pts duration separately, used in sidx atoms and for
tfrf/tfxd boxes in smooth streaming ismv files.

Also make sure to reduce the duration of sidx entries according to
edit lists.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:20 +02:00
Martin Storsjö
5c337353a2 movenc: Move sidx edit list timestamp adjustment into a block
When reading these values from track->frag_info, the same adjustment
has already been done.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:17 +02:00
Martin Storsjö
eee13d6539 movenc: Only adjust the cts offset at the start of fragments if necessary
Adjusting it is only necessary when a sidx/tfrf/tfxd atom already has
been written for the previous fragment (since the sidx/tfrf/tfxd atoms
include the duration between the first pts of the previous fragment, to
the first pts of the new fragment).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:15 +02:00
Martin Storsjö
5cf892d694 movenc: Write pts timestamps in tfxd, instead of dts timestamps
This matches what we write in tfra and tfrf since 9cbf70fa0e.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:12 +02:00
Martin Storsjö
b81b0cc22b movenc: Set the last packet duration based on the next packet when autoflushing
When automatically flushing fragments based on set conditions
(fragmentation on keyframes, after some interval or byte size),
we already have the next packet for one stream - use this for setting
the duration of the last packet in the flushed fragment correctly.

This avoids having to adjust the timestamp of the first packet in
the new fragment since the last duration was unknown.

Unfortunately, this only works for automatic flushing (not for
caller-triggered flushing, like in the dash muxer), and only for the
one single track that triggered the flushing. The duration of the
last sample in all other tracks still is dependent on AVPacket
duration (or heuristics).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:07 +02:00
Martin Storsjö
3041183677 dashenc: Heuristically fill in the duration of packets that need it
This avoids that the mp4 muxer does a similar heuristic, adjusting
the timestamps in a way that the dash muxer doesn't know the actual
timestamps written to the file in the end. By making sure that the
mp4 muxer internal heuristic isn't applied, we know the exact
timestamps written to file, so that the timestamps in manifest match
the files.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:03 +02:00
Martin Storsjö
2889c5e167 movenc: Heuristically set the duration of the last sample in a fragment if not set
Even if this is a guess, it is way better than writing a zero duration
of the last sample in a fragment (because if the duration is zero,
the first sample of the next fragment will have the same timestamp
as the last sample in the previous one).

Since we normally don't require libavformat muxer users to set
the duration field in AVPacket, we probably can't strictly require
it here either, so don't log this as a strict warning, only as info.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:26:52 +02:00
Martin Storsjö
8dc72eeaf6 udp: Fix crashes after adding AVOptions
Add a missing AVClass member, check whether localaddr is null.
(Previously, localaddr was always a local stack buffer, while it
now also can be an avoption string which can be null.)

This fixes crashes when not passing any localaddr parameter, since
66028b7ba.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:25:22 +02:00
Andreas Cadhalpun
b61cb61ab8 mxfenc: don't try to write footer without header
This fixes a crash, when trying to mux h264 into mxf_opatom.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Previous version reviewed-by: tomas.hardin@codemill.se
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 02:20:30 +01:00
Michael Niedermayer
c5c09501f9 avformat/aiffdec: do not fail if header parser hits EOF
Based on patch by Martin Vignali <martin.vignali@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 01:44:14 +01:00
Michael Niedermayer
ae81e8a9c5 avformat/aiffdec: Stop header parsing once a non header packet is reached
Fix Ticket3530

Based-on debuging work by Martin Vignali <martin.vignali@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 01:39:47 +01:00
Clément Bœsch
d2009c77fb avfilter/vf_colormatrix: fix yuv420p threading, second try
Now seems to work fine with different combinations of odd/even heights
and odd/even number of threads.
2015-03-19 00:03:29 +01:00
Michael Niedermayer
b1fbe29e51 avcodec/mjpegdec: Support 31111100 sampling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 23:28:43 +01:00
Michael Niedermayer
e15455891b avcodec/mjpegdec: Change upscale_* to an array instead of a bitmask
This allows storing integer factors instead of just 0 and 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 23:13:44 +01:00
Michael Niedermayer
ee648903f5 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/mkv: Ignore ff_isom_write_hvcc() return value as the mov muxer does.
  lavc/dts: Do not set bitrate for DTS-HD Master and High Resolution.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 21:24:35 +01:00
Michael Niedermayer
b3818c47d8 Merge commit '8692d74b7364b405d7939c0ed347e8a2815193a7'
* commit '8692d74b7364b405d7939c0ed347e8a2815193a7':
  mov: Add option to keep exact packet sequence after seeking

Conflicts:
	libavformat/isom.h
	libavformat/mov.c
	libavformat/version.h

See: 414d6547f3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 21:15:18 +01:00
Carl Eugen Hoyos
7a5356c728 lavf/mkv: Ignore ff_isom_write_hvcc() return value as the mov muxer does.
This change allows remuxing hevc from mpeg-ts to Matroska.
2015-03-18 20:35:26 +01:00
Carl Eugen Hoyos
7f1ea38868 lavc/dts: Do not set bitrate for DTS-HD Master and High Resolution.
Fixes ticket #4375.

Reviewed-by: Hendrik Leppkes
2015-03-18 20:34:35 +01:00
Micah Galizia
c59654d67d avformat/http: replace cookies with updated values instead of appending forever
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 19:53:26 +01:00
James Cowgill
f8323744a0 mips/float_dsp: fix vector_fmul_window_mips on mips64
Commit dfa9208074 ("mips/float_dsp: fix a bug in vector_fmul_window_mips")
fixed vector_fmul_window_mips by unrolling the loop only 4 times, but also
removed the outer C loop and replaced it with assembly branches and pointer
arithmetic. When submitting my 64-bit porting patch I missed this new
assembly which also needed porting.

This patch fixes a bus error in the fate-float-dsp test when run on 64-bit
mips.

Signed-off-by: James Cowgill <james410@cowgill.org.uk>
Reviewed-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 19:08:02 +01:00
Derek Buitenhuis
414d6547f3 mov: Add option to keep exact packet sequence after seeking
The current behavior may produce a different sequence of packets
after seeking, compared to demuxing linearly from the beginning.
This is because the MOV demuxer seeks in each stream individually,
based on timestamp, which may set each stream at a slightly different
position than if the file would have been read sequentially.

This makes implementing certain operations, such as segmenting,
quite hard, and slower than need be.

Therefore, add an option which retains the same packet sequence
after seeking, as when a file is demuxed linearly.
2015-03-18 14:30:07 +00:00
Derek Buitenhuis
8692d74b73 mov: Add option to keep exact packet sequence after seeking
The current behavior may produce a different sequence of packets
after seeking, compared to demuxing linearly from the beginning.
This is because the MOV demuxer seeks in each stream individually,
based on timestamp, which may set each stream at a slightly different
position than if the file would have been read sequentially.

This makes implementing certain operations, such as segmenting,
quite hard, and slower than need be.

Therefore, add an option which retains the same packet sequence
after seeking, as when a file is demuxed linearly.
2015-03-18 14:28:56 +00:00
Michael Niedermayer
fbb9ef5b17 avfilter/vf_lut3d: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 12:32:56 +01:00
Michael Niedermayer
ee17295d10 avfilter/vf_il: Change enums to int, which are accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 12:32:56 +01:00
Michael Niedermayer
67e1562228 avfilter/vf_histogram: Change enum to int, which is accessed via AVOption as int
This fixes depending on implementation defined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 12:32:56 +01:00
Clément Bœsch
304fdfe9f3 lavfi: add showwavespic filter
This is a variant of showwaves. It is implemented as a different filter
so that the user is not allowed to use meaningless options which belong
to showwaves (such as rate).

Major edits done by Stefano Sabatini, from a patch by ubitux.

See thread:
From: Clément Bœsch <u@pkh.me>
To: ffmpeg-devel@ffmpeg.org
Date: Wed, 24 Dec 2014 15:03:26 +0100
Subject: [FFmpeg-devel] [PATCH] avfilter/showwaves: add single_pic option
2015-03-18 12:19:08 +01:00
Michael Niedermayer
0f16dfda50 Replace PixelFormats which sneaked in over time or where forgotten by AVPixelFormats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 01:18:40 +01:00
Michael Niedermayer
4fae556322 Merge commit '58a840e21577a2168843487a98cb2cea44b5a94a'
* commit '58a840e21577a2168843487a98cb2cea44b5a94a':
  Replace a few leftover instances of enum PixelFormat with enum AVPixelFormat

See: ac627b3d38
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-18 01:09:35 +01:00
James Almer
bf2bd5b807 avcodec/ac3dec_fixed: fix compilation when ac3dec is disabled
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-17 19:25:55 -03:00
Michael Niedermayer
0b961423ee avcodec/aacsbr: Replace impossible condition by assert
bits can have a value of 0 or 1 they are never -1 or otherwise negative

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 22:55:59 +01:00
Martin Storsjö
58a840e215 Replace a few leftover instances of enum PixelFormat with enum AVPixelFormat
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-17 23:53:33 +02:00
Michael Niedermayer
ae3d2afd46 Merge commit '6289706b35d1b030258bba54cc27bb6d2c04bc9b'
* commit '6289706b35d1b030258bba54cc27bb6d2c04bc9b':
  fate: Move tdsc to the appropriate screen capture file

Conflicts:
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-17 21:58:16 +01:00