[FFmpeg-devel] [PATCH] avformat/mpegts: recognizes and export private streams

Wolfgang Lorenz wl-chmw at gmx.de
Fri Jun 12 22:06:43 CEST 2015


Am Fri, 12 Jun 2015 15:53:41 +0200
schrieb Michael Niedermayer <michaelni at gmx.at>:

> On Fri, Jun 12, 2015 at 12:38:19PM +0200, Wolfgang Lorenz wrote:
> > Am Fri, 12 Jun 2015 00:12:37 +0200
> > schrieb Wolfgang Lorenz <wl-chmw at gmx.de>:
> > 
> > > Am Thu, 11 Jun 2015 23:11:37 +0200
> > > schrieb Michael Niedermayer <michaelni at gmx.at>:
> > > 
> > > > On Thu, Jun 11, 2015 at 10:59:23PM +0200, Wolfgang Lorenz wrote:
> > > > > Hi Micheal,
> > > > > 
> > > > > Am Wed, 10 Jun 2015 23:40:10 +0200
> > > > > schrieb Michael Niedermayer <michaelni at gmx.at>:
> > > > > 
> > > > > > Based on patch by Wolfgang Lorenz <wl-chmw at gmx.de>
> > > > > > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> > > > > > ---
> > > > > >  libavformat/mpegts.c |    7 +++++++
> > > > > >  1 file changed, 7 insertions(+)
> > > > > > 
> > > > > > diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
> > > > > > index eff6819..7b35d7f 100644
> > > > > > --- a/libavformat/mpegts.c
> > > > > > +++ b/libavformat/mpegts.c
> > > > > > @@ -835,6 +835,13 @@ static int mpegts_set_stream_info(AVStream *st, PESContext *pes,
> > > > > >          st->codec->codec_id  = old_codec_id;
> > > > > >          st->codec->codec_type = old_codec_type;
> > > > > >      }
> > > > > > +    if ((st->codec->codec_id == AV_CODEC_ID_NONE || st->request_probe == 1) &&
> > > > > > +        !avcodec_is_open(st->codec) &&
> > > > > > +        stream_type ==  6) {
> > > > > > +        st->codec->codec_type = AVMEDIA_TYPE_DATA;
> > > > > > +        st->codec->codec_id   = AV_CODEC_ID_BIN_DATA;
> > > > > > +        st->request_probe = 1;
> > > > > > +    }
> > > > > >  
> > > > > >      return 0;
> > > > > >  }
> > > > > 
> > > > > First things first: It's breaking fate-acodec-s302m for me.
> > > > 
> > > > make sure you use latest git master of ffmpeg, there was a commit
> > > > rather recently that is needed
> > > 
> > > Sorry, I had missed that. fate-acodec-s302m is passing now. I haven't
> > > waited until all tests finished, but I think it will be all right.
> > > 
> > > > if that doesnt work with your file then please provide that file
> > > > 
> > > > 
> > > > [...]
> > > > > If in your patch the request_probe value is set to a higher value, like
> > > > > e.g. 10, avformat_find_stream_info() behaves nicely and I do not need
> > > > > to reset the value manually. fate-acodec-s302m is still broken, though.
> > > > 
> > > > yes, the value will need finetuning, whats the more or less lowest
> > > > that results in 100% reliable detection ?
> > > 
> > > My test case is already happy with a value as low as 2. I can not test
> > > much more right now, though. I don't really feel good, with having such
> > > a low threshold. Maybe the number could be made configurable? (I always
> > > like configurable ;-) ).
> > 
> > Okay, I think it doesn't make much sense, to make this threshold
> > configurable. On the other hand, I'm not a friend of just blindly
> > choosing some number, that coincidently passes all tests. I like
> > choosing numbers, that come with a reason. So, how about assigning
> > AVPROBE_SCORE_STREAM_RETRY? The number is already predefined. Any
> > codec beating this threshold with a higher score is considered to have
> > a strong enough probing value, to automatically disable any further
> > probing. Aaand it coincidently passes all tests.
> 
> applied patch with some increased threshold,
> using AVPROBE_SCORE_STREAM_RETRY as is would break detection of
> any format "asking" fo retrying so a lower value is better if it
> works

All right. Thank you!
  Wolfgang
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150612/ae0bd1f3/attachment.asc>


More information about the ffmpeg-devel mailing list