diff mbox

[FFmpeg-devel] lavc/qsvenc: set pict_type to be I for IDR frames.

Message ID 1544174718-23181-1-git-send-email-zhong.li@intel.com
State Accepted
Headers show

Commit Message

Zhong Li Dec. 7, 2018, 9:25 a.m. UTC
Signed-off-by: Zhong Li <zhong.li@intel.com>
---
 libavcodec/qsvenc.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Carl Eugen Hoyos Dec. 7, 2018, 2:27 p.m. UTC | #1
2018-12-07 10:25 GMT+01:00, Zhong Li <zhong.li@intel.com>:
> Signed-off-by: Zhong Li <zhong.li@intel.com>
> ---
>  libavcodec/qsvenc.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
> index aa7f347..8289a32 100644
> --- a/libavcodec/qsvenc.c
> +++ b/libavcodec/qsvenc.c
> @@ -1378,10 +1378,11 @@ int ff_qsv_encode(AVCodecContext *avctx,
> QSVEncContext *q,
>          new_pkt.size = bs->DataLength;
>
>          if (bs->FrameType & MFX_FRAMETYPE_IDR ||
> -            bs->FrameType & MFX_FRAMETYPE_xIDR)
> +            bs->FrameType & MFX_FRAMETYPE_xIDR) {
>              new_pkt.flags |= AV_PKT_FLAG_KEY;
> -
> -        if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType &
> MFX_FRAMETYPE_xI)
> +            pict_type = AV_PICTURE_TYPE_I;

> +        }
> +        else if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType &
> MFX_FRAMETYPE_xI)

Please merge these lines.

Carl Eugen
Zhong Li Dec. 12, 2018, 6:13 a.m. UTC | #2
> > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index

> > aa7f347..8289a32 100644

> > --- a/libavcodec/qsvenc.c

> > +++ b/libavcodec/qsvenc.c

> > @@ -1378,10 +1378,11 @@ int ff_qsv_encode(AVCodecContext *avctx,

> > QSVEncContext *q,

> >          new_pkt.size = bs->DataLength;

> >

> >          if (bs->FrameType & MFX_FRAMETYPE_IDR ||

> > -            bs->FrameType & MFX_FRAMETYPE_xIDR)

> > +            bs->FrameType & MFX_FRAMETYPE_xIDR) {

> >              new_pkt.flags |= AV_PKT_FLAG_KEY;

> > -

> > -        if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType &

> > MFX_FRAMETYPE_xI)

> > +            pict_type = AV_PICTURE_TYPE_I;

> 

> > +        }

> > +        else if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType

> &

> > MFX_FRAMETYPE_xI)

> 

> Please merge these lines.

> 

> Carl Eugen


Sorry, I haven't seen any line can be merged. 
The only way I think something like this:
If (MFX_FRAMETYPE_I || MFX_FRAMETYPE_xI || MFX_FRAMETYPE_IDR || MFX_FRAMETYPE_xIDR)
   pict_type = AV_PICTURE_TYPE_I;
   if (MFX_FRAMETYPE_IDR || MFX_FRAMETYPE_xIDR)
       new_pkt.flags |= AV_PKT_FLAG_KEY;
else if ...
Jun Zhao Dec. 12, 2018, 6:40 a.m. UTC | #3
On Wed, Dec 12, 2018 at 2:13 PM Li, Zhong <zhong.li@intel.com> wrote:
>
> > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index
> > > aa7f347..8289a32 100644
> > > --- a/libavcodec/qsvenc.c
> > > +++ b/libavcodec/qsvenc.c
> > > @@ -1378,10 +1378,11 @@ int ff_qsv_encode(AVCodecContext *avctx,
> > > QSVEncContext *q,
> > >          new_pkt.size = bs->DataLength;
> > >
> > >          if (bs->FrameType & MFX_FRAMETYPE_IDR ||
> > > -            bs->FrameType & MFX_FRAMETYPE_xIDR)
> > > +            bs->FrameType & MFX_FRAMETYPE_xIDR) {
> > >              new_pkt.flags |= AV_PKT_FLAG_KEY;
> > > -
> > > -        if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType &
> > > MFX_FRAMETYPE_xI)
> > > +            pict_type = AV_PICTURE_TYPE_I;
> >
> > > +        }
> > > +        else if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType
> > &
> > > MFX_FRAMETYPE_xI)
> >
> > Please merge these lines.
> >
> > Carl Eugen
>
> Sorry, I haven't seen any line can be merged.
> The only way I think something like this:
> If (MFX_FRAMETYPE_I || MFX_FRAMETYPE_xI || MFX_FRAMETYPE_IDR || MFX_FRAMETYPE_xIDR)
>    pict_type = AV_PICTURE_TYPE_I;
>    if (MFX_FRAMETYPE_IDR || MFX_FRAMETYPE_xIDR)
>        new_pkt.flags |= AV_PKT_FLAG_KEY;
> else if ...
I think carl's comment means mege:
> +        }
> +        else if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType &
like } else if (xxx)
Zhong Li Dec. 12, 2018, 7:07 a.m. UTC | #4
> On Wed, Dec 12, 2018 at 2:13 PM Li, Zhong <zhong.li@intel.com> wrote:

> >

> > > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index

> > > > aa7f347..8289a32 100644

> > > > --- a/libavcodec/qsvenc.c

> > > > +++ b/libavcodec/qsvenc.c

> > > > @@ -1378,10 +1378,11 @@ int ff_qsv_encode(AVCodecContext

> *avctx,

> > > > QSVEncContext *q,

> > > >          new_pkt.size = bs->DataLength;

> > > >

> > > >          if (bs->FrameType & MFX_FRAMETYPE_IDR ||

> > > > -            bs->FrameType & MFX_FRAMETYPE_xIDR)

> > > > +            bs->FrameType & MFX_FRAMETYPE_xIDR) {

> > > >              new_pkt.flags |= AV_PKT_FLAG_KEY;

> > > > -

> > > > -        if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType &

> > > > MFX_FRAMETYPE_xI)

> > > > +            pict_type = AV_PICTURE_TYPE_I;

> > >

> > > > +        }

> > > > +        else if (bs->FrameType & MFX_FRAMETYPE_I ||

> bs->FrameType

> > > &

> > > > MFX_FRAMETYPE_xI)

> > >

> > > Please merge these lines.

> > >

> > > Carl Eugen

> >

> > Sorry, I haven't seen any line can be merged.

> > The only way I think something like this:

> > If (MFX_FRAMETYPE_I || MFX_FRAMETYPE_xI || MFX_FRAMETYPE_IDR ||

> MFX_FRAMETYPE_xIDR)

> >    pict_type = AV_PICTURE_TYPE_I;

> >    if (MFX_FRAMETYPE_IDR || MFX_FRAMETYPE_xIDR)

> >        new_pkt.flags |= AV_PKT_FLAG_KEY; else if ...

> I think carl's comment means mege:

> > +        }

> > +        else if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType

> &

> like } else if (xxx)


Got it. Thanks. Will update.
diff mbox

Patch

diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index aa7f347..8289a32 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -1378,10 +1378,11 @@  int ff_qsv_encode(AVCodecContext *avctx, QSVEncContext *q,
         new_pkt.size = bs->DataLength;
 
         if (bs->FrameType & MFX_FRAMETYPE_IDR ||
-            bs->FrameType & MFX_FRAMETYPE_xIDR)
+            bs->FrameType & MFX_FRAMETYPE_xIDR) {
             new_pkt.flags |= AV_PKT_FLAG_KEY;
-
-        if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType & MFX_FRAMETYPE_xI)
+            pict_type = AV_PICTURE_TYPE_I;
+        }
+        else if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType & MFX_FRAMETYPE_xI)
             pict_type = AV_PICTURE_TYPE_I;
         else if (bs->FrameType & MFX_FRAMETYPE_P || bs->FrameType & MFX_FRAMETYPE_xP)
             pict_type = AV_PICTURE_TYPE_P;