Re: [PATCH v2 09/10] media: vicodec: add a flag FWHT_FL_P_FRAME to fwht header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dafna,

On 2/15/19 2:05 PM, Dafna Hirschfeld wrote:
> Add the flag 'FWHT_FL_P_FRAME' to indicate that
> the frame is a p-frame so it needs the previous buffer
> as a reference frame. This is needed for the stateless
> codecs.
> 
> Signed-off-by: Dafna Hirschfeld <dafna3@xxxxxxxxx>
> ---
>  drivers/media/platform/vicodec/codec-fwht.h      | 1 +
>  drivers/media/platform/vicodec/codec-v4l2-fwht.c | 2 ++
>  2 files changed, 3 insertions(+)
> 
> diff --git a/drivers/media/platform/vicodec/codec-fwht.h b/drivers/media/platform/vicodec/codec-fwht.h
> index eab4a97aa132..c2b1f3cc9fed 100644
> --- a/drivers/media/platform/vicodec/codec-fwht.h
> +++ b/drivers/media/platform/vicodec/codec-fwht.h
> @@ -76,6 +76,7 @@
>  #define FWHT_FL_CHROMA_FULL_HEIGHT	BIT(7)
>  #define FWHT_FL_CHROMA_FULL_WIDTH	BIT(8)
>  #define FWHT_FL_ALPHA_IS_UNCOMPRESSED	BIT(9)
> +#define FWHT_FL_P_FRAME			BIT(10)

I thought about this some more and I think we need two changes here:

1) invert the flag, so rename it to FWHT_FL_I_FRAME. It makes more sense
   to signal an I frame than it is to signal a P frame (there are a lot
   more P frames than I frames)

2) this requires that the version of the codec will have to be updated.
   So a stateless decoder can only handle version 3 and up.

It also means for the stateless decoder that the version number should be
part of struct v4l2_ctrl_fwht_params so the driver can reject older versions.

If possible, can you make a patch for vicodec for the current master that
implements these two changes? It would be desirable to get this in for 5.1.

Regards,

	Hans

>  
>  /* A 4-values flag - the number of components - 1 */
>  #define FWHT_FL_COMPONENTS_NUM_MSK	GENMASK(18, 16)
> diff --git a/drivers/media/platform/vicodec/codec-v4l2-fwht.c b/drivers/media/platform/vicodec/codec-v4l2-fwht.c
> index 40b1f4901fd3..1c20b5685201 100644
> --- a/drivers/media/platform/vicodec/codec-v4l2-fwht.c
> +++ b/drivers/media/platform/vicodec/codec-v4l2-fwht.c
> @@ -257,6 +257,8 @@ int v4l2_fwht_encode(struct v4l2_fwht_state *state, u8 *p_in, u8 *p_out)
>  		flags |= FWHT_FL_CR_IS_UNCOMPRESSED;
>  	if (encoding & FWHT_ALPHA_UNENCODED)
>  		flags |= FWHT_FL_ALPHA_IS_UNCOMPRESSED;
> +	if (encoding & FWHT_FRAME_PCODED)
> +		flags |= FWHT_FL_P_FRAME;
>  	if (rf.height_div == 1)
>  		flags |= FWHT_FL_CHROMA_FULL_HEIGHT;
>  	if (rf.width_div == 1)
> 




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux