diff mbox

[FFmpeg-devel] h264_ps: validate chroma sample location

Message ID 284d2f58-99bf-13d4-b774-6258039660e8@googlemail.com
State New
Headers show

Commit Message

Andreas Cadhalpun Jan. 26, 2017, 12:45 a.m. UTC
On 07.01.2017 01:41, Michael Niedermayer wrote:
> On Fri, Jan 06, 2017 at 11:33:13PM +0100, Andreas Cadhalpun wrote:
>> On 06.01.2017 22:47, Kieran Kunhya wrote:
>>> On Fri, 6 Jan 2017 at 20:44 Andreas Cadhalpun <
>>> andreas.cadhalpun@googlemail.com> wrote:
>>>
>>>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
>>>> ---
>>>>  libavcodec/h264_ps.c | 4 ++++
>>>>  1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
>>>> index 8218e3a010..089bfc650a 100644
>>>> --- a/libavcodec/h264_ps.c
>>>> +++ b/libavcodec/h264_ps.c
>>>> @@ -181,6 +181,10 @@ static inline int decode_vui_parameters(GetBitContext
>>>> *gb, AVCodecContext *avctx
>>>>      if (get_bits1(gb)) {
>>>>          /* chroma_sample_location_type_top_field */
>>>>          avctx->chroma_sample_location = get_ue_golomb(gb) + 1;
>>>> +        if (!av_chroma_location_name(avctx->chroma_sample_location)) {
>>>> +            av_log(avctx, AV_LOG_WARNING, "Invalid chroma sample location
>>>> %d, setting to unspecified\n", avctx->chroma_sample_location);
>>>> +            avctx->chroma_sample_location = AVCHROMA_LOC_UNSPECIFIED;
>>>> +        }
>>>>
>>>>
>>> Is there a way to long only once, this seems like it could spam the user
>>> full of these warnings.
>>
>> One could add a field like shown_chroma_loc_warning to SPS, but I think
>> that would be a bit too much overhead for this.
>> Alternatively, one could drop the log message entirely. (Wrong color
>> primaries etc. aren't logged either...)
> 
> I think making it a "normally not displayed" log level would be a
> better choice than removing it entirely

OK, I reduced it to AV_LOG_VERBOSE.

Best regards,
Andreas
diff mbox

Patch

From 5874739904fa8f13be03faee27e4bb2ac061258f Mon Sep 17 00:00:00 2001
From: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Date: Fri, 6 Jan 2017 21:36:39 +0100
Subject: [PATCH] h264_ps: validate chroma sample location

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
---
 libavcodec/h264_ps.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
index 8218e3a010..474eaf0d2d 100644
--- a/libavcodec/h264_ps.c
+++ b/libavcodec/h264_ps.c
@@ -181,6 +181,10 @@  static inline int decode_vui_parameters(GetBitContext *gb, AVCodecContext *avctx
     if (get_bits1(gb)) {
         /* chroma_sample_location_type_top_field */
         avctx->chroma_sample_location = get_ue_golomb(gb) + 1;
+        if (!av_chroma_location_name(avctx->chroma_sample_location)) {
+            av_log(avctx, AV_LOG_VERBOSE, "Invalid chroma sample location %d, setting to unspecified\n", avctx->chroma_sample_location);
+            avctx->chroma_sample_location = AVCHROMA_LOC_UNSPECIFIED;
+        }
         get_ue_golomb(gb);  /* chroma_sample_location_type_bottom_field */
     }
 
-- 
2.11.0