[FFmpeg-devel] [PATCH 1/3] nutdec: fix infinite resync loops

Michael Niedermayer michaelni at gmx.at
Wed May 20 17:50:43 CEST 2015


On Wed, May 20, 2015 at 04:34:49PM +0200, Andreas Cadhalpun wrote:
> On 20.05.2015 02:00, Michael Niedermayer wrote:
> > On Wed, May 20, 2015 at 12:49:49AM +0200, Andreas Cadhalpun wrote:
> >> nut->last_syncpoint_pos doesn't necessarily change between resync
> >> attempts, so find_any_startcode can return the same startcode again.
> >>
> >> Thus remember where the last resync happened and don't try to resync
> >> before that.
> >>
> >> This can't be done locally in nut_read_packet, because this wouldn't
> >> prevent infinite resync loops, where after the resync a packet is
> >> returned and while reading a following packet the resync happens again.
> >>
> >> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> >> ---
> >>  libavformat/nut.h    | 1 +
> >>  libavformat/nutdec.c | 3 ++-
> >>  2 files changed, 3 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/libavformat/nut.h b/libavformat/nut.h
> >> index 943081c..0c678a5 100644
> >> --- a/libavformat/nut.h
> >> +++ b/libavformat/nut.h
> >> @@ -102,6 +102,7 @@ typedef struct NUTContext {
> >>      unsigned int max_distance;
> >>      unsigned int time_base_count;
> >>      int64_t last_syncpoint_pos;
> >> +    int64_t last_resync_pos;
> > 
> > i think this and possibly some other fields must be reset on seeking
> > otherwise resync after seeking could break
> 
> Attached patch resets last_resync_pos in read_seek.

> I'm not sure if last_syncpoint_pos also has to be reset or if the

fixed last_syncpoint_pos

thanks

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When the tyrant has disposed of foreign enemies by conquest or treaty, and
there is nothing more to fear from them, then he is always stirring up
some war or other, in order that the people may require a leader. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150520/02e8d73b/attachment.asc>


More information about the ffmpeg-devel mailing list