On Sat, 7 Mar 2020, Michael Niedermayer wrote:

On Thu, Mar 05, 2020 at 10:56:28PM +0100, Marton Balint wrote:
The packet durations might not be set properly which can cause the MXF muxer
to write more than one packet of a stream to an edit unit messing up the
constant byte per element index...

Also use nb_samples directly to calculate dts of audio packets because adding
packet durations might not be precise.

Signed-off-by: Marton Balint <c...@passwd.hu>
---
 libavformat/audiointerleave.c | 12 +++++++++---
 libavformat/audiointerleave.h |  3 ++-
 libavformat/gxfenc.c          |  2 +-
 libavformat/mxfenc.c          |  2 +-
 4 files changed, 13 insertions(+), 6 deletions(-)

This doesnt feel correct

Either case
A. The durations are correct but not what the muxer wants
then changing them at the muxer level could lead to AV sync issues and
wrong timestamps, something which the application should have dealt with
by frame duplication / frame drops or other

B. The durations are just wrong
then changing them at the muxer level will leave the calling application
with incorrect values potentially causing all kinds of problems.

Maybe iam missing something but isnt this just fixing the issue when the
durtations are wrong in a very special way ?

It is the same "special" way that is used for audio. We ignore incoming DTS and duration, and make up our own.

Yes, it can cause A-V sync issues is somebody wants to push VFR video or sparse audio data, that is not allowed in the MXF muxer.

Maybe we should hard reject streams if there is a difference between the calculated and the incoming DTS? I have a feeling that such measure would broke a lot of existing command lines...

Regards,
Marton
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to