diff mbox

[FFmpeg-devel,1/2] v4l_m2m: add missing AV_CODEC_CAP_DELAY flags

Message ID 20171214184808.25440-1-nfxjfg@googlemail.com
State Accepted
Commit 55eebf2a11d28146658565948d6649311f20c0e1
Headers show

Commit Message

wm4 Dec. 14, 2017, 6:48 p.m. UTC
This is pretty much a requirement for any codec that handles modern
codecs like h264, but it was missing. Potentially could lead to issues
like missing frames at the end of a stream.
---
Untested.
---
 libavcodec/v4l2_m2m_dec.c | 2 +-
 libavcodec/v4l2_m2m_enc.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Jorge Ramirez-Ortiz Dec. 14, 2017, 6:54 p.m. UTC | #1
On 12/14/2017 07:48 PM, wm4 wrote:
> This is pretty much a requirement for any codec that handles modern
> codecs like h264, but it was missing. Potentially could lead to issues
> like missing frames at the end of a stream.
> ---
> Untested.
hi,

please do not merge this (the capability was not missing, it just broke 
the codeca last time I tested it hence why it is not in the code).

I will look into this now (test/validate again); I also  have a couple 
of other things pending - in particular a patch that Mark Thompson sent 
me a couple of months back which is quite important (today we access 
free'd memory when we close the codec...we are lucky that the memory is 
not reused)

I have been off the radar doing some uboot work that couldnt be 
postponed. sorry about it. I am back on this now.

> ---
>   libavcodec/v4l2_m2m_dec.c | 2 +-
>   libavcodec/v4l2_m2m_enc.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/v4l2_m2m_dec.c b/libavcodec/v4l2_m2m_dec.c
> index c4ea20ea83..8308613978 100644
> --- a/libavcodec/v4l2_m2m_dec.c
> +++ b/libavcodec/v4l2_m2m_dec.c
> @@ -215,7 +215,7 @@ AVCodec ff_ ## NAME ## _v4l2m2m_decoder = { \
>       .receive_frame  = v4l2_receive_frame,\
>       .close          = ff_v4l2_m2m_codec_end,\
>       .bsfs           = bsf_name, \
> -    .capabilities   = AV_CODEC_CAP_HARDWARE, \
> +    .capabilities   = AV_CODEC_CAP_HARDWARE | AV_CODEC_CAP_DELAY, \
>       .wrapper_name   = "v4l2m2m", \
>   };
>   
> diff --git a/libavcodec/v4l2_m2m_enc.c b/libavcodec/v4l2_m2m_enc.c
> index f62ce7cdb5..7e88f4d2e6 100644
> --- a/libavcodec/v4l2_m2m_enc.c
> +++ b/libavcodec/v4l2_m2m_enc.c
> @@ -335,7 +335,7 @@ AVCodec ff_ ## NAME ## _v4l2m2m_encoder = { \
>       .send_frame     = v4l2_send_frame,\
>       .receive_packet = v4l2_receive_packet,\
>       .close          = ff_v4l2_m2m_codec_end,\
> -    .capabilities   = AV_CODEC_CAP_HARDWARE, \
> +    .capabilities   = AV_CODEC_CAP_HARDWARE | AV_CODEC_CAP_DELAY, \
>       .wrapper_name   = "v4l2m2m", \
>   };
>
wm4 Dec. 14, 2017, 7:02 p.m. UTC | #2
On Thu, 14 Dec 2017 19:54:26 +0100
Jorge Ramirez <jorge.ramirez-ortiz@linaro.org> wrote:

> On 12/14/2017 07:48 PM, wm4 wrote:
> > This is pretty much a requirement for any codec that handles modern
> > codecs like h264, but it was missing. Potentially could lead to issues
> > like missing frames at the end of a stream.
> > ---
> > Untested.  
> hi,
> 
> please do not merge this (the capability was not missing, it just broke 
> the codeca last time I tested it hence why it is not in the code).
> 
> I will look into this now (test/validate again); I also  have a couple 
> of other things pending - in particular a patch that Mark Thompson sent 
> me a couple of months back which is quite important (today we access 
> free'd memory when we close the codec...we are lucky that the memory is 
> not reused)
> 
> I have been off the radar doing some uboot work that couldnt be 
> postponed. sorry about it. I am back on this now.

Ah, OK. Patch 1/2 dropped then.
Jorge Ramirez-Ortiz Dec. 15, 2017, 11:46 a.m. UTC | #3
On 12/14/2017 07:54 PM, Jorge Ramirez wrote:
> On 12/14/2017 07:48 PM, wm4 wrote:
>> This is pretty much a requirement for any codec that handles modern
>> codecs like h264, but it was missing. Potentially could lead to issues
>> like missing frames at the end of a stream.
>> ---
>> Untested.

ok you can add tested-by me if needed.
is all ok.

thanks!


> hi,
>
> please do not merge this (the capability was not missing, it just 
> broke the codeca last time I tested it hence why it is not in the code).
>
> I will look into this now (test/validate again); I also  have a couple 
> of other things pending - in particular a patch that Mark Thompson 
> sent me a couple of months back which is quite important (today we 
> access free'd memory when we close the codec...we are lucky that the 
> memory is not reused)
>
> I have been off the radar doing some uboot work that couldnt be 
> postponed. sorry about it. I am back on this now.
>
>> ---
>>   libavcodec/v4l2_m2m_dec.c | 2 +-
>>   libavcodec/v4l2_m2m_enc.c | 2 +-
>>   2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavcodec/v4l2_m2m_dec.c b/libavcodec/v4l2_m2m_dec.c
>> index c4ea20ea83..8308613978 100644
>> --- a/libavcodec/v4l2_m2m_dec.c
>> +++ b/libavcodec/v4l2_m2m_dec.c
>> @@ -215,7 +215,7 @@ AVCodec ff_ ## NAME ## _v4l2m2m_decoder = { \
>>       .receive_frame  = v4l2_receive_frame,\
>>       .close          = ff_v4l2_m2m_codec_end,\
>>       .bsfs           = bsf_name, \
>> -    .capabilities   = AV_CODEC_CAP_HARDWARE, \
>> +    .capabilities   = AV_CODEC_CAP_HARDWARE | AV_CODEC_CAP_DELAY, \
>>       .wrapper_name   = "v4l2m2m", \
>>   };
>>   diff --git a/libavcodec/v4l2_m2m_enc.c b/libavcodec/v4l2_m2m_enc.c
>> index f62ce7cdb5..7e88f4d2e6 100644
>> --- a/libavcodec/v4l2_m2m_enc.c
>> +++ b/libavcodec/v4l2_m2m_enc.c
>> @@ -335,7 +335,7 @@ AVCodec ff_ ## NAME ## _v4l2m2m_encoder = { \
>>       .send_frame     = v4l2_send_frame,\
>>       .receive_packet = v4l2_receive_packet,\
>>       .close          = ff_v4l2_m2m_codec_end,\
>> -    .capabilities   = AV_CODEC_CAP_HARDWARE, \
>> +    .capabilities   = AV_CODEC_CAP_HARDWARE | AV_CODEC_CAP_DELAY, \
>>       .wrapper_name   = "v4l2m2m", \
>>   };
>
wm4 Dec. 21, 2017, 8:54 a.m. UTC | #4
On Fri, 15 Dec 2017 12:46:10 +0100
Jorge Ramirez <jorge.ramirez-ortiz@linaro.org> wrote:

> On 12/14/2017 07:54 PM, Jorge Ramirez wrote:
> > On 12/14/2017 07:48 PM, wm4 wrote:  
> >> This is pretty much a requirement for any codec that handles modern
> >> codecs like h264, but it was missing. Potentially could lead to issues
> >> like missing frames at the end of a stream.
> >> ---
> >> Untested.  
> 
> ok you can add tested-by me if needed.
> is all ok.
> 
> thanks!

Just checking: so I can apply the patch without further modifications?
Jorge Ramirez-Ortiz Dec. 21, 2017, 9:13 a.m. UTC | #5
On 12/21/2017 09:54 AM, wm4 wrote:
> On Fri, 15 Dec 2017 12:46:10 +0100
> Jorge Ramirez <jorge.ramirez-ortiz@linaro.org> wrote:
>
>> On 12/14/2017 07:54 PM, Jorge Ramirez wrote:
>>> On 12/14/2017 07:48 PM, wm4 wrote:
>>>> This is pretty much a requirement for any codec that handles modern
>>>> codecs like h264, but it was missing. Potentially could lead to issues
>>>> like missing frames at the end of a stream.
>>>> ---
>>>> Untested.
>> ok you can add tested-by me if needed.
>> is all ok.
>>
>> thanks!
> Just checking: so I can apply the patch without further modifications?

yes

> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
diff mbox

Patch

diff --git a/libavcodec/v4l2_m2m_dec.c b/libavcodec/v4l2_m2m_dec.c
index c4ea20ea83..8308613978 100644
--- a/libavcodec/v4l2_m2m_dec.c
+++ b/libavcodec/v4l2_m2m_dec.c
@@ -215,7 +215,7 @@  AVCodec ff_ ## NAME ## _v4l2m2m_decoder = { \
     .receive_frame  = v4l2_receive_frame,\
     .close          = ff_v4l2_m2m_codec_end,\
     .bsfs           = bsf_name, \
-    .capabilities   = AV_CODEC_CAP_HARDWARE, \
+    .capabilities   = AV_CODEC_CAP_HARDWARE | AV_CODEC_CAP_DELAY, \
     .wrapper_name   = "v4l2m2m", \
 };
 
diff --git a/libavcodec/v4l2_m2m_enc.c b/libavcodec/v4l2_m2m_enc.c
index f62ce7cdb5..7e88f4d2e6 100644
--- a/libavcodec/v4l2_m2m_enc.c
+++ b/libavcodec/v4l2_m2m_enc.c
@@ -335,7 +335,7 @@  AVCodec ff_ ## NAME ## _v4l2m2m_encoder = { \
     .send_frame     = v4l2_send_frame,\
     .receive_packet = v4l2_receive_packet,\
     .close          = ff_v4l2_m2m_codec_end,\
-    .capabilities   = AV_CODEC_CAP_HARDWARE, \
+    .capabilities   = AV_CODEC_CAP_HARDWARE | AV_CODEC_CAP_DELAY, \
     .wrapper_name   = "v4l2m2m", \
 };