<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/ffmpeg.git/tests/ref/lavf, branch master</title>
<subtitle>git.ffmpeg.org: ffmpeg.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/'/>
<entry>
<title>fftools/ffmpeg: rework audio-decode timestamp handling</title>
<updated>2023-05-02T08:59:24+00:00</updated>
<author>
<name>Anton Khirnov</name>
<email>anton@khirnov.net</email>
</author>
<published>2023-04-24T10:28:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=d85c6aba0cf27db2a6c4dfa3452cfb9c248d1b4a'/>
<id>d85c6aba0cf27db2a6c4dfa3452cfb9c248d1b4a</id>
<content type='text'>
Stop using InputStream.dts for generating missing timestamps for decoded
frames, because it contains pre-decoding timestamps and there may be
arbitrary amount of delay between input packets and output frames (e.g.
dependent on the thread count when frame threading is used). It is also
in AV_TIME_BASE (i.e. microseconds), which may introduce unnecessary
rounding issues.

New code maintains a timebase that is the inverse of the LCM of all the
samplerates seen so far, and thus can accurately represent every audio
sample. This timebase is used to generate missing timestamps after
decoding.

Changes the result of the following FATE tests
* pcm_dvd-16-5.1-96000
* lavf-smjpeg
* adpcm-ima-smjpeg
In all of these the timestamps now better correspond to actual frame
durations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Stop using InputStream.dts for generating missing timestamps for decoded
frames, because it contains pre-decoding timestamps and there may be
arbitrary amount of delay between input packets and output frames (e.g.
dependent on the thread count when frame threading is used). It is also
in AV_TIME_BASE (i.e. microseconds), which may introduce unnecessary
rounding issues.

New code maintains a timebase that is the inverse of the LCM of all the
samplerates seen so far, and thus can accurately represent every audio
sample. This timebase is used to generate missing timestamps after
decoding.

Changes the result of the following FATE tests
* pcm_dvd-16-5.1-96000
* lavf-smjpeg
* adpcm-ima-smjpeg
In all of these the timestamps now better correspond to actual frame
durations.
</pre>
</div>
</content>
</entry>
<entry>
<title>fftools/ffmpeg: propagate frame durations to packets when encoding</title>
<updated>2023-04-19T19:12:03+00:00</updated>
<author>
<name>Anton Khirnov</name>
<email>anton@khirnov.net</email>
</author>
<published>2023-04-14T09:16:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=c17e33c0589c64354d6daf2b19f0134329c9407f'/>
<id>c17e33c0589c64354d6daf2b19f0134329c9407f</id>
<content type='text'>
Remove now-obsolete code setting packet durations pre-muxing for CFR
encoded video.

Changes output in the following FATE tests:
* numerous adpcm tests
* ffmpeg-filter_complex_audio
* lavf-asf
* lavf-mkv
* lavf-mkv_attachment
* matroska-encoding-delay
  All of these change due to the fact that the output duration is now
  the actual input data duration and does not include padding added by
  the encoder.

* apng-osample: less wrong packet durations are now passed to the muxer.
  They are not entirely correct, because the first frame duration should
  be 3 rather than 2. This is caused by the vsync code and should be
  addressed later, but this change is a step in the right direction.
* tscc2-mov: last output frame has a duration of 11 rather than 1 - this
  corresponds to the duration actually returned by the demuxer.
* film-cvid: video frame durations are now 2 rather than 1 - this
  corresponds to durations actually returned by the demuxer and matches
  the timestamps.
* mpeg2-ticket6677: durations of some video frames are now 2 rather than
  1 - this matches the timestamps.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove now-obsolete code setting packet durations pre-muxing for CFR
encoded video.

Changes output in the following FATE tests:
* numerous adpcm tests
* ffmpeg-filter_complex_audio
* lavf-asf
* lavf-mkv
* lavf-mkv_attachment
* matroska-encoding-delay
  All of these change due to the fact that the output duration is now
  the actual input data duration and does not include padding added by
  the encoder.

* apng-osample: less wrong packet durations are now passed to the muxer.
  They are not entirely correct, because the first frame duration should
  be 3 rather than 2. This is caused by the vsync code and should be
  addressed later, but this change is a step in the right direction.
* tscc2-mov: last output frame has a duration of 11 rather than 1 - this
  corresponds to the duration actually returned by the demuxer.
* film-cvid: video frame durations are now 2 rather than 1 - this
  corresponds to durations actually returned by the demuxer and matches
  the timestamps.
* mpeg2-ticket6677: durations of some video frames are now 2 rather than
  1 - this matches the timestamps.
</pre>
</div>
</content>
</entry>
<entry>
<title>avformat/matroskaenc: support writing Dynamic HDR10+ packet side data</title>
<updated>2023-04-08T13:28:41+00:00</updated>
<author>
<name>James Almer</name>
<email>jamrial@gmail.com</email>
</author>
<published>2023-03-19T14:32:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=bda44f0f39e8ee646e54f15989d7845f4bf58d26'/>
<id>bda44f0f39e8ee646e54f15989d7845f4bf58d26</id>
<content type='text'>
Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>avformat/matroskaenc: write a MaxBlockAdditionID element</title>
<updated>2023-04-05T12:47:12+00:00</updated>
<author>
<name>James Almer</name>
<email>jamrial@gmail.com</email>
</author>
<published>2023-03-19T13:52:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=1c2a1e07500017c873a318fe2f49011f35c1f534'/>
<id>1c2a1e07500017c873a318fe2f49011f35c1f534</id>
<content type='text'>
A non zero value is mandatory for Matroska if the track has blocks with BlockAdditions.

Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A non zero value is mandatory for Matroska if the track has blocks with BlockAdditions.

Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>avformat/mxfenc: fix stored/sampled/displayed width/height</title>
<updated>2023-03-26T20:04:44+00:00</updated>
<author>
<name>Jerome Martinez</name>
<email>jerome@mediaarea.net</email>
</author>
<published>2023-01-14T12:32:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=174ca11d915c5258115b208285a232de94d6e14a'/>
<id>174ca11d915c5258115b208285a232de94d6e14a</id>
<content type='text'>
According to MXF specs the Stored Rectangle corresponds to the data which is
passed to the compressor and received from the decompressor, so they should
contain the width / height extended to the macroblock boundary.

In practice however width and height values rounded to the upper 16 multiples
are only seen when muxing MPEG formats. Therefore this patch changes stored
width and height values to unrounded for all non-MPEG formats, even macroblock
based ones.

For DNXHD the specs (ST 2019-4) explicitly indicates to use 1080 for 1088p.
For ProRes the specs (RDD 44) only refer to to ST 377-1 without precision but
no known commercial implementations are using rounded values.
DV is not using 16x16 macroblocks, so 16 rounding makes no sense.

The patch also fixes Sampled Width / Display Width to use unrounded values.

Signed-off-by: Marton Balint &lt;cus@passwd.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
According to MXF specs the Stored Rectangle corresponds to the data which is
passed to the compressor and received from the decompressor, so they should
contain the width / height extended to the macroblock boundary.

In practice however width and height values rounded to the upper 16 multiples
are only seen when muxing MPEG formats. Therefore this patch changes stored
width and height values to unrounded for all non-MPEG formats, even macroblock
based ones.

For DNXHD the specs (ST 2019-4) explicitly indicates to use 1080 for 1088p.
For ProRes the specs (RDD 44) only refer to to ST 377-1 without precision but
no known commercial implementations are using rounded values.
DV is not using 16x16 macroblocks, so 16 rounding makes no sense.

The patch also fixes Sampled Width / Display Width to use unrounded values.

Signed-off-by: Marton Balint &lt;cus@passwd.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>avformat/mxfenc: SMPTE RDD 48:2018 Amd 1:2022 support</title>
<updated>2023-03-25T18:28:36+00:00</updated>
<author>
<name>Jerome Martinez</name>
<email>jerome@mediaarea.net</email>
</author>
<published>2023-03-14T08:49:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=0fbae2178b4ffda298b10473aa6fe17ef524eff9'/>
<id>0fbae2178b4ffda298b10473aa6fe17ef524eff9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>avformat/oggenc: don't flush twice when the last packet is side data only</title>
<updated>2023-01-04T00:35:03+00:00</updated>
<author>
<name>James Almer</name>
<email>jamrial@gmail.com</email>
</author>
<published>2022-12-30T12:34:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=a781279871e45e4fa085aa6a05f8e38f24124c40'/>
<id>a781279871e45e4fa085aa6a05f8e38f24124c40</id>
<content type='text'>
Commit 18f24527eb accidentally made side data only packets be handled like a
flush request. Fix this regression by effectively ignoring them as was the
original intention.

Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 18f24527eb accidentally made side data only packets be handled like a
flush request. Fix this regression by effectively ignoring them as was the
original intention.

Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>avformat/oggenc: ignore empty packets</title>
<updated>2022-12-27T14:03:18+00:00</updated>
<author>
<name>James Almer</name>
<email>jamrial@gmail.com</email>
</author>
<published>2022-12-10T00:48:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=18f24527eb4b520585e55f922cdbc234aa9f0f18'/>
<id>18f24527eb4b520585e55f922cdbc234aa9f0f18</id>
<content type='text'>
Some encoders, like flac, can send side data only packets at the end.
Eventually, said extradata update should ideally be used to update the header
when writting to seekable output, but for now, ignore them.

Should fix the undefined behavior of passing NULL to memcpy().

Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some encoders, like flac, can send side data only packets at the end.
Eventually, said extradata update should ideally be used to update the header
when writting to seekable output, but for now, ignore them.

Should fix the undefined behavior of passing NULL to memcpy().

Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>avcodec/pnm: avoid mirroring PFM images vertically</title>
<updated>2022-12-27T13:41:25+00:00</updated>
<author>
<name>Leo Izen</name>
<email>leo.izen@gmail.com</email>
</author>
<published>2022-11-16T11:43:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=cd9dd0300639689630171893b3dfb6c9ba63a692'/>
<id>cd9dd0300639689630171893b3dfb6c9ba63a692</id>
<content type='text'>
PFM (aka Portable FloatMap) encodes its scanlines from bottom-to-top,
not from top-to-bottom, unlike other NetPBM formats. Without this
patch, FFmpeg ignores this exception and decodes/encodes PFM images
mirrored vertically from their proper orientation.

For reference, see the NetPBM tool pfmtopam, which encodes a .pam
from a .pfm, using the correct orientation (and which FFmpeg reads
correctly). Also compare ffplay to magick display, which shows the
correct orientation as well.

See: http://www.pauldebevec.com/Research/HDR/PFM/ and see:
https://netpbm.sourceforge.net/doc/pfm.html for descriptions of this
image format.

Signed-off-by: Leo Izen &lt;leo.izen@gmail.com&gt;
Reviewed-by: Anton Khirnov &lt;anton@khirnov.net&gt;
Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PFM (aka Portable FloatMap) encodes its scanlines from bottom-to-top,
not from top-to-bottom, unlike other NetPBM formats. Without this
patch, FFmpeg ignores this exception and decodes/encodes PFM images
mirrored vertically from their proper orientation.

For reference, see the NetPBM tool pfmtopam, which encodes a .pam
from a .pfm, using the correct orientation (and which FFmpeg reads
correctly). Also compare ffplay to magick display, which shows the
correct orientation as well.

See: http://www.pauldebevec.com/Research/HDR/PFM/ and see:
https://netpbm.sourceforge.net/doc/pfm.html for descriptions of this
image format.

Signed-off-by: Leo Izen &lt;leo.izen@gmail.com&gt;
Reviewed-by: Anton Khirnov &lt;anton@khirnov.net&gt;
Signed-off-by: James Almer &lt;jamrial@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fate: add QOI/XBM/XWD image2pipe tests</title>
<updated>2022-12-03T18:38:11+00:00</updated>
<author>
<name>Paul B Mahol</name>
<email>onemda@gmail.com</email>
</author>
<published>2022-12-03T18:30:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ffmpeg.git/commit/?id=1ba4f3c8668502957e15496fc8950f259da365ae'/>
<id>1ba4f3c8668502957e15496fc8950f259da365ae</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
