[FFmpeg-devel] [PATCH 1/2] avformat/dv: allow returning damaged audio

Michael Niedermayer michael at niedermayer.cc
Tue Aug 4 00:16:16 EEST 2020


On Mon, Aug 03, 2020 at 10:38:21PM +0200, Marton Balint wrote:
> 
> 
> On Sun, 2 Aug 2020, Dave Rice wrote:
> 
> > 
> > 
> > > On Aug 1, 2020, at 5:26 PM, Marton Balint <cus at passwd.hu> wrote:
> > > 
> > > 
> > > 
> > > On Sat, 1 Aug 2020, Michael Niedermayer wrote:
> > > 
> > > > On Sat, Aug 01, 2020 at 07:28:53PM +0200, Marton Balint wrote:
> > > > > 
> > > > > 
> > > > > On Sat, 1 Aug 2020, Michael Niedermayer wrote:
> > > > > 
> > > > > > Fixes: Ticket8762
> > > > > > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > > > > > ---
> > > > > > libavformat/dv.c | 49 +++++++++++++++++++++++++++++++++++++++++-------
> > > > > > 1 file changed, 42 insertions(+), 7 deletions(-)
> > > > > 
> > > > > If "dv remux loses sync", then the timestamps should be fixed, not
> > > > > additional packets should be generated based on previously read packet data
> > > > > (which is a fragile approach to begin with, e.g. what if the first frame is
> > > > > the corrupt one?).
> > > > 
> > > > Ticket8762 is about stream copy, so if no packets are returned for audio
> > > > but are for video and just timestamps are updated this would at least on
> > > > its own probably not work that well.
> > > 
> > > If the timestamps are good, a good player should be able to play it
> > > correctly, even if audio stream is sparse.
> > > 
> > > None of the demuxers generate packets because the timestamps are not
> > > continous, I just don't think it would be consistent if DV suddenly
> > > started to do this. E.g. what if the user wants to drop video with
> > > no audio?
> > 
> > In practice, when dv frames with video and no audio are interleaved
> > within a dv stream that otherwise has both, it is because the playback
> > videotape player of the dv tape is in pause mode or the tape is damaged.
> > These frames most common are filled with only video dif blocks that note
> > concealment (so the image is a copy of a prior image) and the audio
> > source pack metadata is missing, but the paylock of the audio dif blocks
> > are filled with error code so they would decode as silence.
> 
> But if the audio source pack metadata is missing, then how can you determine
> the audio settings? 

> Or the number of samples the errornous frame contains
> (e.g. 1600 v.s 1602)?

some testcase would be useful here where this is done clearly wrong currently


[...]

> Also maybe setting the CORRUPT packet flag should be done in this case?

yes was thinking that too, that should be in the next revision

[....]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The greatest way to live with honor in this world is to be what we pretend
to be. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20200803/60e1f925/attachment.sig>


More information about the ffmpeg-devel mailing list