These allow getting the absolute start timestamp of a fragment
without reading preceding timestamps. This fixes sync between
tracks if starting from fragments in different streams that don't
align exactly.
This also is a prerequisite for producing DASH content.
Signed-off-by: Martin Storsjö <martin@martin.st>
E-AC-3 samples should contain 6 audio blocks, so concatenate syncframes
in order to achieve this.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e44ee1eb8db7393e9d43207c2e1812720e292e6d':
movenc: Simplify code by using an existing local pointer
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* 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>
* 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>
* commit '95ee4e2ce774e0339632d067161596bf3dadfc72':
movenc: Add some comments explaining subtle details in writing the edit lists
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '72f801619a1ae91969fee9a7d72519422433c998':
movenc: Adjust edit lists to trim out parts of tracks with negative pts
Conflicts:
libavformat/movenc.c
See: 66b45d8f7a
See: 14fd34d73b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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>
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>
Support only one independent substream right now, and only syncframes
containing 6 blocks.
Fixes part of ticket #3074
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4d55e9de27894ddfb337b28cd7aa6d14a12666d2':
vc1: Split bits used in libavformat into a separate header
Conflicts:
libavformat/movenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The messages regarding the recommended use of bitstream filters are somewhat different.
This also adds the ":v" stream specifier to "-bsf h264_mp4toannexb".
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'da9cc22d5bd5f59756c2037b02966376da2cf323':
movenc: add track title to tracks
Conflicts:
libavformat/movenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f90729699db9ede2bef2b28000f1795dab1b8996':
mov: Do not group tracks if more than one is enabled per type
Conflicts:
libavformat/movenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '194be1f43ea391eb986732707435176e579265aa':
lavf: switch to AVStream.time_base as the hint for the muxer timebase
Conflicts:
doc/APIchanges
libavformat/filmstripenc.c
libavformat/movenc.c
libavformat/mxfenc.c
libavformat/oggenc.c
libavformat/swf.h
libavformat/version.h
tests/ref/lavf/mkv
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Previously, AVStream.codec.time_base was used for that purpose, which
was quite confusing for the callers. This change also opens the path for
removing AVStream.codec.
The change in the lavf-mkv test is due to the native timebase (1/1000)
being used instead of the default one (1/90000), so the packets are now
sent to the crc muxer in the same order in which they are demuxed
(previously some of them got reordered because of inexact timestamp
conversion).
* commit 'cf6977712c9e5abe6dc55289f6322ccbf10321a9':
movenc: write avg_frame_rate as the framerate, not the codec timebase
Merged-by: Michael Niedermayer <michaelni@gmx.at>