[FFmpeg-devel] [PATCH] In get_video_frame(), use frame->pkt_pts rather than the deprecated reordered_opaque API, which is deprecated for this specific use.

Stefano Sabatini stefano.sabatini-lala
Thu Jan 27 21:28:24 CET 2011


On date Thursday 2011-01-27 15:39:35 +0100, Stefano Sabatini encoded:
> On date Wednesday 2011-01-26 19:25:34 -0500, Alexander Strange encoded:
> > 
> > On Jan 26, 2011, at 7:15 PM, Stefano Sabatini wrote:
> > 
> > > On date Saturday 2011-01-22 20:54:29 +0100, Michael Niedermayer encoded:
> > >> On Sat, Jan 22, 2011 at 06:29:01PM +0100, Stefano Sabatini wrote:
> > >>> On date Sunday 2011-01-16 19:29:00 +0100, Michael Niedermayer encoded:
> > >>>> On Sun, Jan 16, 2011 at 06:41:12PM +0100, Stefano Sabatini wrote:
> > >>>>> ---
> > >>>>> ffplay.c |    5 ++---
> > >>>>> 1 files changed, 2 insertions(+), 3 deletions(-)
> > >>>> 
> > >>>> ok if you added a av_log and diffed the output to make sure the values stay the
> > >>>> same.
> > >>> 
> > >>> With the attached patch:
> > >>> 
> > >>> $ ffplay -loglevel debug slow.flv -nostats
> > >>> [...]
> > >>> pkt_pts:0 reordered_opaque:0
> > >>> pkt_pts:1201 reordered_opaque:1201
> > >>> pkt_pts:1235 reordered_opaque:1235
> > >>> pkt_pts:1268 reordered_opaque:1268
> > >>> pkt_pts:1301 reordered_opaque:1301
> > >>> pkt_pts:1335 reordered_opaque:1335
> > >>> pkt_pts:1368 reordered_opaque:1368
> > >>> pkt_pts:1401 reordered_opaque:1401
> > >>> pkt_pts:1435 reordered_opaque:1435
> > >>> pkt_pts:1468 reordered_opaque:1468
> > >>> pkt_pts:1502 reordered_opaque:1502
> > >>> 
> > >>> $ ffplay -loglevel debug -f video4linux2 /dev/video0 -nostats
> > >>> [...]
> > >>> pkt_pts:0 reordered_opaque:1295716878360213
> > >>> pkt_pts:0 reordered_opaque:1295716878392241
> > >>> pkt_pts:0 reordered_opaque:1295716878424240
> > >>> pkt_pts:0 reordered_opaque:1295716878460225
> > >>> pkt_pts:0 reordered_opaque:1295716878492244
> > >>> pkt_pts:0 reordered_opaque:1295716878524256
> > >>> pkt_pts:0 reordered_opaque:1295716878560294
> > >>> pkt_pts:0 reordered_opaque:1295716878600246
> > >>> pkt_pts:0 reordered_opaque:1295716878648249
> > >>> pkt_pts:0 reordered_opaque:1295716878708263
> > >>> pkt_pts:0 reordered_opaque:1295716878780285
> > >>> pkt_pts:0 reordered_opaque:1295716878848275
> > >>> pkt_pts:0 reordered_opaque:1295716878940307
> > >>> pkt_pts:0 reordered_opaque:1295716879040322
> > >>> pkt_pts:0 reordered_opaque:1295716879160314
> > >>> pkt_pts:0 reordered_opaque:1295716879300289
> > >>> pkt_pts:0 reordered_opaque:1295716879460302
> > >>> pkt_pts:0 reordered_opaque:1295716879640305
> > >>> pkt_pts:0 reordered_opaque:1295716879832292
> > >>> 
> > >>> I noticed the problem today when debugging the movie source, I can see in
> > >>> avcodec_decode_video2() that the pkt_dts is set:
> > >>>        picture->pkt_dts= avpkt->dts;
> > >>> 
> > >>> but not pkt_pts.
> > >>> 
> > >>> I'll have a further look.
> > >> 
> > >> raw_decode() doesnt use get_buffer() i guess and thus pkt_pts isnt passed
> > >> over. Change raw_decode to pass it (1 line) is one possible fix.
> > > 
> > > Tried with ffmpeg this time, make test gives alot of errors.
> > > 
> > > Too tired to check now though, and maybe I'm too tired and so I missed
> > > something obvious...
> > 
> > Pass pkt_pts through in raw.c (rawdec.c?) in the same way reordered_opaque is passed through.
> > 
> > I posted an equivalent patch to the one you attached in the mt thread, but they're the same so it doesn't matter which is applied.
> 
> Check patch, this fixes the raw decoder but not make test (errors with
> many decoders, first is asv1/asv2).
> 
> Did you already fix it in your branch? Anyway I'm going to check it
> out...

Patch updated, it depends on the rawdec.c patch.
-- 
FFmpeg = Fiendish and Fucking Muttering Pure Entertaining Gorilla



More information about the ffmpeg-devel mailing list