[FFmpeg-devel] [PATCH]lavc/x264: Improve level setting

Carl Eugen Hoyos cehoyos at ag.or.at
Tue Jan 12 14:10:08 CET 2016


On Tuesday 12 January 2016 01:55:30 pm Michael Niedermayer wrote:
> On Mon, Jan 11, 2016 at 10:58:55AM +0100, Carl Eugen Hoyos wrote:
> > Hi!
> >
> > I guess that attached patch fixes the additional issue in ticket #3307.
> >
> > Please comment, Carl Eugen
> >
> >  libx264.c |    2 ++
> >  1 file changed, 2 insertions(+)
> > cea8163693a2a78b9dc2d1929082e7c76ac542ac  patchx264level.diff
> > diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
> > index 88406a3..c1e52a1 100644
> > --- a/libavcodec/libx264.c
> > +++ b/libavcodec/libx264.c
> > @@ -559,6 +559,8 @@ static av_cold int X264_init(AVCodecContext *avctx)
> >
> >          if (!strcmp(x4->level, "1b")) {
> >              level_id = 9;

> > +        } else if (atoi(x4->level) > 9) {

Should be "> 8".

> > +            level_id = atoi(x4->level);
>
> this should check that teres no "tail" after the integer

For which command line will this make a difference?
I didn't find one...

New patch attached, Carl Eugen
-------------- next part --------------
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 88406a3..abb6985 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -559,6 +559,8 @@ static av_cold int X264_init(AVCodecContext *avctx)
 
         if (!strcmp(x4->level, "1b")) {
             level_id = 9;
+        } else if (av_strtod(x4->level, &tail) > 8.0 && !*tail) {
+            level_id = atoi(x4->level);
         } else if (strlen(x4->level) <= 3){
             level_id = av_strtod(x4->level, &tail) * 10 + 0.5;
             if (*tail)


More information about the ffmpeg-devel mailing list