[FFmpeg-devel] [PATCH v3] avformat/rtpdec_rfc4175: Fix incorrect copy_offset calculation

Jacob Siddall kobe at live.com.au
Tue Aug 6 08:42:22 EEST 2019


> On Mon, Aug 05, 2019 at 06:05:29PM +0100, Kieran Kunhya wrote:
> > On Mon, 5 Aug 2019 at 17:10, Michael Niedermayer <michael at niedermayer.cc>
> > wrote:
> >
> > > On Thu, Jun 27, 2019 at 06:06:22AM +0000, Jacob Siddall wrote:
> > > > The previous calculation code did not account for the fact that the
> > > > copy_offset for the start of the frame array is at index 0, yet the
> > > > scan line number from the rfc4175 RTP header starts at 1.
> > > > This caused 2 issues to appear:
> > > > - The first scan line was being copied into the array where the second
> > > >   scan line should be. This caused the resulting video to have a green
> > > >   line at the top of it.
> > > > - Since the packet containing the last scan line would fail the
> > > >   calculation, the packet with the RTP marker would not be processed
> > > >   which caused a log message saying "Missed previous RTP marker" to be
> > > >   outputted for each frame.
> > > >
> > > > Signed-off-by: Jacob Siddall <kobe at live.com.au>
> > > > ---
> > > > Changes in v2:
> > > >   - Don't handle packet if the line number is less than 1
> > > >
> > > > Section 12 in the VSF technical recommendation TR-03 specifies that the
> > > > video scan line numbers should start at 1.
> > > >
> > > http://www.videoservicesforum.org/download/technical_recommendations/VSF_TR-03_2015-11-12.pdf
> > >
> > >
> > SMPTE 2110-20 says line numbers start at 0. (Yes there are 3 different
> > "standards" for handling the line number because of the geniuses in the
> > broadcast industry).
> 
> Jacob, can you look into this ?
> 
> should i revert until this is fixed?
> 
> Thanks

Michael, yes lets revert this commit for now and come up with a better
solution that can cater for both starting line number cases.

I think we could handle this in 1 of 2 ways:
1. Add some sort of flag which allows overriding of the value which line
   numbers start from.
   We could leave the default as line numbering starting from 0 (how the
   previous code worked). If the flag is set, then the line numbering 
   starts from 1.
2. Add code which detects what the value of the first line number is and
   use that value for any future processing. This could work by assuming
   line numbering starts at 1 until it sees a frame with line 0. This 
   value would reside in  memory so if ffmpeg is restarted, the line 
   number detection would re-run.

What are your thoughts on this?

> On Mon, Aug 05, 2019 at 06:05:29PM +0100, Kieran Kunhya wrote:
> SMPTE 2110-20 says line numbers start at 0. (Yes there are 3 different
> "standards" for handling the line number because of the geniuses in the
> broadcast industry).

Kieran can you send me the pdf on SMPTE 2110-20? I can't seem to find
where to access it that's not behind a paywall.

Also do you know what the 3 different "standards" are?

Jacob


More information about the ffmpeg-devel mailing list