media: allegro: start a GOP with an IDR frame
authorMichael Tretter <m.tretter@pengutronix.de>
Mon, 16 Mar 2020 15:26:25 +0000 (16:26 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 20 Mar 2020 08:11:50 +0000 (09:11 +0100)
When creating a channel, freq_idr defines the number of frames between
IDR frames in the coded stream. In V4L2, the period between IDR frames
shall be taken from the GOP_SIZE control.

Set the IDR frame frequency equal to the GOP size and let every GOP
start with an IDR frame.

Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/allegro-dvt/allegro-core.c

index 62ba9ba64bbace6cf8787d5cb48096a99f776606..3b2e970c13ac06badc580d0e6c8c86b75cf9e766 100644 (file)
@@ -390,7 +390,7 @@ struct mcu_msg_create_channel {
 
        /* gop param */
        u32 gop_ctrl_mode;
-       u32 freq_ird;
+       u32 freq_idr;
        u32 freq_lt;
        u32 gdr_mode;
        u16 gop_length;
@@ -1115,7 +1115,7 @@ static int allegro_mcu_send_create_channel(struct allegro_dev *dev,
        msg.rate_control_option = 0x00000000;
 
        msg.gop_ctrl_mode = 0x00000000;
-       msg.freq_ird = 0x7fffffff;
+       msg.freq_idr = channel->gop_size;
        msg.freq_lt = 0;
        msg.gdr_mode = 0x00000000;
        msg.gop_length = channel->gop_size;