smoothstreamingenc: Simplify code by removing a redundant variable

Signed-off-by: Martin Storsjö <martin@martin.st>
movenc: Adjust edit lists to trim out parts of tracks with negative pts

This makes sure that audio preroll for e.g. AAC is signaled correctly.

Previously we only wrote the edit list correctly if we had negative
dts but started with pts == 0 (e.g. for video with B-frames).

Signed-off-by: Martin Storsjö <martin@martin.st>
movenc: Add some comments explaining subtle details in writing the edit lists

Signed-off-by: Martin Storsjö <martin@martin.st>
movenc: Write edit lists for fragmented files as well, if necessary

This is necessary to get the right timestamp offset for content
that starts with dts != 0.

This currently only helps when writing fragmented files with a non-empty
moov atom. When writing an empty moov atom, we don't have any packets
yet, so we don't know the starting dts for the tracks.

Signed-off-by: Martin Storsjö <martin@martin.st>
movenc: Print a warning for an unhandled case of nonzero start dts with empty_moov

Signed-off-by: Martin Storsjö <martin@martin.st>
movenc: Simplify code by using an existing local pointer

Signed-off-by: Martin Storsjö <martin@martin.st>
icecast: Do not use chunked post

Icecast uses HTTP 1.0 while Libav uses HTTP 1.1 and enables by
default chunked post.

Icecast actually forwards the HTTP chunk headers to the listener
as part of the media stream (without the chunk encoding HTTP headers)
causing the players to lose sync.

Disabling the option is enough to feed icecast properly.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Merge commit '8bef43388132b53f59a6e90add18900a3bb4cc60'

* commit '8bef43388132b53f59a6e90add18900a3bb4cc60':
  smoothstreamingenc: Simplify code by removing a redundant variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '72f801619a1ae91969fee9a7d72519422433c998'

* commit '72f801619a1ae91969fee9a7d72519422433c998':
  movenc: Adjust edit lists to trim out parts of tracks with negative pts

Conflicts:
	libavformat/movenc.c

See: 66b45d8f7a1bfba1065286361ab571cb9cfd87c6
See: 14fd34d73bb0bcb227b62506fb51d63751c9b190
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '95ee4e2ce774e0339632d067161596bf3dadfc72'

* commit '95ee4e2ce774e0339632d067161596bf3dadfc72':
  movenc: Add some comments explaining subtle details in writing the edit lists

Merged-by: Michael Niedermayer <michaelni@gmx.at>
fate: add test for vp90-2-trac3849.webm

Regression test for the bug from trac ticket #3849 fixed in commit 14e30255

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
Merge commit 'dbb472cb2f2f799295a12b4922a6a8be2cccfdee'

* commit 'dbb472cb2f2f799295a12b4922a6a8be2cccfdee':
  movenc: Write edit lists for fragmented files as well, if necessary

Conflicts:
	libavformat/movenc.c

The default for writing EDTS for fragmented mp4 is left at disabled
this can be overridden via command line with -use_editlist
but EDTS + fragments still does not fully work, which is why it is
left disabled by default

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'dad12ce452a9d69c0d9d53c375003947d5f1b02e'

* commit 'dad12ce452a9d69c0d9d53c375003947d5f1b02e':
  movenc: Print a warning for an unhandled case of nonzero start dts with empty_moov

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'e44ee1eb8db7393e9d43207c2e1812720e292e6d'

* commit 'e44ee1eb8db7393e9d43207c2e1812720e292e6d':
  movenc: Simplify code by using an existing local pointer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '76c70e33d2244a688832f03b53862eb5d9ad3b01'

* commit '76c70e33d2244a688832f03b53862eb5d9ad3b01':
  icecast: Do not use chunked post

Merged-by: Michael Niedermayer <michaelni@gmx.at>
libpostproc: support grayscale

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
avfilter/vf_pp: support AV_PIX_FMT_GRAY8

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
mov.c: allow reading fragment start dts/pts from fragmented mp4

This introduces a new option to the mov demuxer: -use_mfra_for
(pts|dts). When it's given and moofs and a MFRA are present, the MFRA's
TFRAs are read for fragment start times.

Unfortunately some programs that produce fragmented mp4s use the TFRA
time field for dts and some for pts. There is no realistic way to detect
which is the case, hence the responsibility is punted onto the user.
This also means that no behavioural change is enabled by default - you
must pass either dts or pts for anything to happen.

Without this change, timestamps for some discontinuous fragmented mp4 are
wrong, and cause audio/video desync and are not usable for generating
HLS.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/libtwolame: fix null pointer dereference

Signed-off-by: Paul B Mahol <onemda@gmail.com>
avformat/mov: fix mix of declaration and statement

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>