1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-13 21:28:01 +02:00
Commit Graph

2221 Commits

Author SHA1 Message Date
Sasi Inguva
54f8ac199f lavf/mov.c: Don't correct edit list start to zero, when we can't find a frame before edit list start.
After c2a8f0fcbe this can happen on normal edit lists starting on a B-frame.

Signed-off-by: Sasi Inguva <isasi@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-11-14 21:02:31 +01:00
John Stebbins
57a422ea4c fate/mov: add test for overlapping fragments
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-11-14 20:49:07 +01:00
James Almer
b125822d1d Merge commit 'ec0f4fa17ce29cf01d4def21041b0b87f7e3105d'
* commit 'ec0f4fa17ce29cf01d4def21041b0b87f7e3105d':
  FATE: add a test for the H.264 sample fixed by 7c4f6f6

Merged-by: James Almer <jamrial@gmail.com>
2017-11-11 18:37:54 -03:00
Sasi Inguva
bc50961731 lavf/mov.c: Parse upto 2 keyframes after the edit list end in mov_fix_index.
Partially fixes t/6699.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-11-11 14:15:15 +01:00
Michael Niedermayer
b197d83ca3 avformat/utils: Look at the first 3 frames if timestamps indicate frame reorder but decoder delay does not
Fixes: Ticket6487

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-11-11 14:15:15 +01:00
James Almer
0ff8f0b7b4 Merge commit '5be9939b46a6a4d3860a1b1a872aa50897095970'
* commit '5be9939b46a6a4d3860a1b1a872aa50897095970':
  fate: Add cinepak encoder vsynth tests

See d7f62f033c

Merged-by: James Almer <jamrial@gmail.com>
2017-11-07 18:35:34 -03:00
Martin Vignali
ad784e0cb6 fate/utvideo : add test for decoding and encoding 2017-11-07 00:52:58 +01:00
Sasi Inguva
c2a8f0fcbe lavf/mov.c: Refine edit list start seek, based on PTS computed from CTTS.
Partially fixes t/6699.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-11-04 05:05:03 +01:00
Carl Eugen Hoyos
9d0b42bce5 fate: Fix fitsdec-gbrap16 test on big-endian hardware. 2017-11-04 00:47:37 +01:00
Jonas Licht
59ad504696 libavformat/mov.c: use calculated dts offset when seeking in streams
Subtract the calculated dts offset from the requested timestamp before
seeking. This fixes an error "Error while filtering: Operation not
permitted" observed with a short file which contains only one key frame
and starts with negative timestamps.

Then, av_index_search_timestamp() returns a valid negative timestamp,
but mov_seek_stream bails out with AVERROR_INVALIDDATA.

Fixes ticket #6139.

Signed-off-by: Jonas Licht <jonas.licht@fem.tu-ilmenau.de>
Signed-off-by: Peter Große <pegro@friiks.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-30 01:09:40 +01:00
Carl Eugen Hoyos
4ccc1ef2a3 fate: Add bitexact flag to the invalid-elst test.
Fixes fate-mov-invalid-elst-entry-count on a ppc system.
2017-10-29 23:10:02 +01:00
Marton Balint
859144fb1f fate: change fate-ffmpeg-attached_pics to encode to pcm_s16le
Previously alac encoder was used, from a first glance I thought it is bitexact,
but it turns out it is using floating point arithmetic as well, so probably it
is not. Fixes fate failures on mingw32/64.

Signed-off-by: Marton Balint <cus@passwd.hu>
2017-10-28 21:35:57 +02:00
Sasi Inguva
8013753113 lavf/mov.c: Fix parsing of edit list atoms with invalid elst entry count.
Signed-off-by: Sasi Inguva <isasi@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-28 20:24:04 +02:00
James Almer
3c4c092774 Merge commit '4d4d7cf9d539a053f531f662a972b23d335738eb'
* commit '4d4d7cf9d539a053f531f662a972b23d335738eb':
  fmvc: Add FATE tests

Merged-by: James Almer <jamrial@gmail.com>
2017-10-27 21:16:18 -03:00
Marton Balint
61e25ab0bf fate: add fate test for ticket #6375
Signed-off-by: Marton Balint <cus@passwd.hu>
2017-10-27 00:33:56 +02:00
Marton Balint
cbcb8f5a22 fate: add fate test for ticket #6603
Signed-off-by: Marton Balint <cus@passwd.hu>
2017-10-27 00:33:56 +02:00
Tobias Rapp
a07ac93023 avformat/wavenc: skip writing incorrect peak-of-peaks position value
According to EBU tech 3285 supplement 3 the dwPosPeakOfPeaks field
should contain the absolute position to the maximum audio sample value,
but the current implementation writes the relative peak frame index
instead.

Fix the issue by writing the "unknown" value (-1) for now until the
feature is implemented correctly.

Previous version reviewed-by: Peter Bubestinger <p.bubestinger@av-rd.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2017-10-26 08:29:41 +02:00
Zhong Li
7e294a1f09 fate: add a test for mpeg2 issue of ticket #6677
Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-25 00:18:41 +02:00
Mateusz
f192f2f061 swscale: more accurate DITHER_COPY macro for full and limited range
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-23 23:00:05 +02:00
James Almer
69b5ce64d2 Merge commit '07a2b155949eb267cdfc7805f42c7b3375f9c7c5'
* commit '07a2b155949eb267cdfc7805f42c7b3375f9c7c5':
  Bump major versions of all libraries

A few API deprecated ~2 years ago or more are also postponed here for
varying reasons.

FF_API_LOWRES:
Since this functionality depends on AVStream->codec, i figure the two can
be removed at the same time in the next bump or so.

FF_API_AVCTX_TIMEBASE:
Couldn't get this one to work. Not just libavcodec but apparently also
libavformat and ffmpeg.c expect AVCodecContext->time_base to be set for
decoding. Upon removal some tests report a different generic stream time
base (like 1/25), and others lose packet duration values. I guess it's
somehow tied to the AVStream->codec clusterfuck.
It can be dealt with alongside FF_API_LAVF_AVCTX in the next bump.

FF_API_OLD_FILTER_OPTS_ERROR:
This one is meant to remain after FF_API_OLD_FILTER_OPTS is removed.
Its purpose is displaying the corrected command line using the new syntax
as a suggestion as part of the error message.

Merged-by: James Almer <jamrial@gmail.com>
2017-10-21 14:57:53 -03:00
Dale Curtis
a5fd8aa45b avformat/mov: Set start_pad correctly in mov_fix_index()
Sets the correct start padding value when an edit list is present.

A new fate test is added, fate-mov-440hz-10ms, to ensure this is
handled correctly.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Sasi Inguva <isasi-at-google.com@ffmpeg.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-21 03:12:43 +02:00
Anton Khirnov
ec0f4fa17c FATE: add a test for the H.264 sample fixed by 7c4f6f6 2017-10-19 16:38:51 +02:00
James Almer
7293248239 Merge commit 'b57a95d0147beae746db1c1223d100447f42dced'
* commit 'b57a95d0147beae746db1c1223d100447f42dced':
  cfhd: Add FATE tests

Merged-by: James Almer <jamrial@gmail.com>
2017-10-18 11:11:44 -03:00
Mark Thompson
809b0402dc cbs: Add some read/write tests
Use the appropriate metadata filter for each codec - in the absence of any
options to modify the stream, the output bitstream should be identical to
the input (though the output file may differ in padding).

All tests use conformance bitstreams, the MPEG-2 streams are newly added
from the conformance test streams
<http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_13818-4_2004_Conformance_Testing/Video/>

(cherry picked from commit 3cae7f8b9b)
(cherry picked from commit fbd63170bc)
2017-10-17 20:56:30 +01:00
James Almer
17ba9e123f fate: update fate-api reference files after 71e2ec017a
Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-09 22:46:07 -03:00
James Almer
9e009ee312 Merge commit 'e1a6d63c7eeff2f0ec8173546357bfaa9deecea4'
* commit 'e1a6d63c7eeff2f0ec8173546357bfaa9deecea4':
  fate: Rename WMV8_DRM decoder tests to WMV3_DRM

Merged-by: James Almer <jamrial@gmail.com>
2017-10-03 23:36:25 -03:00
Carl Eugen Hoyos
9ba9c08aab fate: Add a test for latm-in-dvb auto-detection, ticket #6657. 2017-10-03 23:15:07 +02:00
Michael Niedermayer
ef973bd98d avformat/mxfenc: Fix labels for IEC PAL DV 420 2017-10-03 18:34:37 +02:00
James Almer
b591329c3a Merge commit '8e4d4efc67e154fdffd65964a7cfeef740320827'
* commit '8e4d4efc67e154fdffd65964a7cfeef740320827':
  fate: Add another SVQ3 test to increase coverage

Also included a fix from da8093f712.

The demuxer option "-ignore_editlist 1 " is temporarily added to the
test as well, to workaround a regression in the edit list mov parsing
code.

Merged-by: James Almer <jamrial@gmail.com>
2017-10-02 18:23:48 -03:00
Brian Matherly
876dada0b5 avcodec/hevc_sei: Support HEVC paired fields.
Correctly set the interlaced_frame and top_field_first fields when pic_struct
indicates paired fields.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-09-30 03:44:59 +02:00
Martin Storsjö
5455a44aa5 movenc-test: Add tests for negative cts offsets
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-09-28 18:15:45 +02:00
Tobias Rapp
bee01ee2ba fate: add tests for psnr and ssim filter
Metadata filter output is passed through an Awk script comparing floats
against reference values with specified "fuzz" tolerance to account for
architectural differences (e.g. x86-32 vs. x86-64).

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2017-09-27 15:58:49 +02:00
Mark Thompson
3cae7f8b9b cbs: Add some read/write tests
Use the appropriate metadata filter for each codec - in the absence of any
options to modify the stream, the output bitstream should be identical to
the input (though the output file may differ in padding).

All tests use conformance bitstreams, the MPEG-2 streams are newly added
from the conformance test streams
<http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_13818-4_2004_Conformance_Testing/Video/>
2017-09-26 23:33:36 +01:00
Thomas Mundt
40bfaa190c avfilter/interlace: add support for 10 and 12 bit
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-23 16:19:58 -03:00
Tobias Rapp
147bface1a fate: add mxf_dv25/dvcpro50 regression tests
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2017-09-18 08:56:52 +02:00
Thomas Mundt
4492237e33 fate: add tinterlace lowpass filtering tests
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-17 23:41:00 -03:00
Thomas Mundt
a7f6bfdc18 avfilter/interlace: prevent over-sharpening with the complex low-pass filter
The complex vertical low-pass filter slightly over-sharpens the picture. This becomes visible when several transcodings are cascaded and the error potentises, e.g. some generations of HD->SD SD->HD.
To prevent this behaviour the destination pixel must not exceed the source pixel when the average of the pixels above and below is less than the source pixel. And the other way around.

Tested and approved in a visual transcoding cascade test by video professionals.
SSIM/PSNR test with the first generation of an HD->SD file as a reference against the 6th generation(3 x SD->HD HD->SD):
Results without the patch:
SSIM Y:0.956508 (13.615881) U:0.991601 (20.757750) V:0.993004 (21.551382) All:0.974405 (15.918463)
PSNR y:31.838009 u:48.424280 v:48.962711 average:34.759466 min:31.699297 max:40.857847
Results with the patch:
SSIM Y:0.970051 (15.236232) U:0.991883 (20.905857) V:0.993174 (21.658049) All:0.981290 (17.279202)
PSNR y:34.412108 u:48.504454 v:48.969496 average:37.264644 min:34.310637 max:42.373392

Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-09-15 22:40:21 +02:00
Thierry Foucu
eea64ef4cf vf_fps: when reading EOF, using current_pts to duplicate the last frame if needed.
Fix ticket #2674
Tested with examples from ticket 2674.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-09-15 02:24:31 +02:00
Michael Niedermayer
de03eb622d avformat/mxfenc: Correct the Sample rate for PCM outside D10
Based on mail from IRT

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-09-12 19:24:25 +02:00
Tobias Rapp
d47159a42d fate: add test for asetnsamples filter with padding disabled
Adds another test for asetnsamples filter where padding of the last
frame is switched off. Renames the existing test to make the difference
obvious.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2017-09-08 08:54:20 +02:00
Tobias Rapp
912b6af26e ffprobe: use consistent string for unspecified color_range value
Makes the handling of unspecified/unknown color_range values on stream
level consistent to the value used on frame level.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2017-09-07 13:26:44 +02:00
Tobias Rapp
b7101151b3 fate: add tests for some video source filters
Adds FATE tests for the previously untested allrgb, allyuv, rgbtestsrc,
smptebars, smptehdbars and yuvtestsrc filters.

Also adds a test for testsrc2 filter with rgb+alpha.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2017-08-31 11:48:15 +02:00
Martin Vignali
2fcf47e2d1 fate/pixlet : add test for rgb
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-31 02:53:11 +02:00
Paras Chadha
9d99f0afbe FATE: Add FITS tests
Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
2017-08-30 12:13:02 +02:00
pkviet
e0436ddaa4 ffmpeg options: Enable trailing ? for map_channel
The -map option allows for a trailing ? so that an error is not thrown if
the input stream does not exist.
This capability is extended to the map_channel option.
This allows a ffmpeg command not to break if an input channel does not
exist, which can be of use (for instance, scripts processing audio
channels with sources having unset number of audio channels).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-25 23:41:11 +02:00
Dale Curtis
37e8edc9f5 avformat/mov: Fix trampling of ctts during seeks when sidx support is enabled.
When sidx box support is enabled, the code will skip reading all
trun boxes (each containing ctts entries for samples inthat box).

If seeks are attempted before all ctts values are known, the old
code would dump ctts entries into the wrong location. These are
then used to compute pts values which leads to out of order and
incorrectly timestamped packets.

This patch fixes ctts processing by always using the index returned
by av_add_index_entry() as the ctts_data index. When the index gains
new entries old values are reshuffled as appropriate.

This approach makes sense since the mov demuxer is already relying
on the mapping of AVIndex entries to samples for correct demuxing.

As a result of this all ctts entries are now 1-count. A followup
change will be submitted to remove support for > 1 count entries
which will simplify seeking.

Notes for future improvement:
Probably there are other boxes (stts, stsc, etc) that are impacted
by this issue... this patch only attempts to fix ctts since it
completely breaks packet timestamping.

This patch continues using an array for the ctts data, which is not
the most ideal given the rearrangement that needs to happen (via
memmove as new entries are read in). Ideally AVIndex and the ctts
data would be set-type structures so addition is always worst case
O(lg(n)) instead of the O(n^2) that exists now; this slowdown is
noticeable during seeks.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-24 11:02:22 +02:00
Mark Thompson
4c0588b456 mpeg2enc: Don't mark all streams as component video
Since there is no information about the source format, "unspecified"
is the correct value to write here.

All tests using the MPEG-2 encoder are updated, as this changes the
header on all outputs.
2017-08-20 15:14:37 +01:00
Marton Balint
366e6bfc51 fate: add overlay filter tests with alpha
Signed-off-by: Marton Balint <cus@passwd.hu>
2017-08-16 22:00:35 +02:00
Vittorio Giovara
1460408703 Add single precision planar RGB pixel formats
Add a pixel format flag to identify this family.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-08-15 15:26:20 +02:00
Sasi Inguva
e7e1fbc49b lavf/movenc.c: Set sgpd and sbgp atoms to represent decoder delay for AAC.
According to https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFAppenG/QTFFAppenG.html and ISO-IEC-14496-12 Section 10.1.1.1 and 10.1.1.3

Signed-off-by: Sasi Inguva <isasi@google.com>
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-10 02:43:53 +02:00