[FFmpeg-devel] [PATCH 1/4] avcodec/proresdec2: change profile only if it is unknown

Paul B Mahol onemda at gmail.com
Fri Dec 7 11:28:09 EET 2018


On 12/7/18, Michael Niedermayer <michael at niedermayer.cc> wrote:
> On Wed, Dec 05, 2018 at 09:22:48PM +0100, Paul B Mahol wrote:
>> Signed-off-by: Paul B Mahol <onemda at gmail.com>
>> ---
>>  libavcodec/proresdec2.c | 51 ++++++++++++++++++++++-------------------
>>  1 file changed, 27 insertions(+), 24 deletions(-)
>>
>> diff --git a/libavcodec/proresdec2.c b/libavcodec/proresdec2.c
>> index 8581d797fb..80a76bbba1 100644
>> --- a/libavcodec/proresdec2.c
>> +++ b/libavcodec/proresdec2.c
>> @@ -140,32 +140,35 @@ static av_cold int decode_init(AVCodecContext
>> *avctx)
>>@@ -140,6 +140,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
>>
>>     avctx->bits_per_raw_sample = 10;
>>
>>+    if (avctx->profile == FF_PROFILE_UNKNOWN) {
>>         switch (avctx->codec_tag) {
>>         case MKTAG('a','p','c','o'):
>>             avctx->profile = FF_PROFILE_PRORES_PROXY;
>>@@ -155,16 +156,18 @@ static av_cold int decode_init(AVCodecContext
>> *avctx)
>>             break;
>>         case MKTAG('a','p','4','h'):
>>             avctx->profile = FF_PROFILE_PRORES_4444;
>>-        avctx->bits_per_raw_sample = 12;
>>             break;
>>         case MKTAG('a','p','4','x'):
>>             avctx->profile = FF_PROFILE_PRORES_XQ;
>>-        avctx->bits_per_raw_sample = 12;
>>             break;
>>         default:
>>-        avctx->profile = FF_PROFILE_UNKNOWN;
>>             av_log(avctx, AV_LOG_WARNING, "Unknown prores profile %d\n",
>> avctx->codec_tag);
>>         }
>>+    }
>>+
>>+    if (avctx->profile == FF_PROFILE_PRORES_XQ ||
>>+        avctx->profile == FF_PROFILE_PRORES_4444)
>>+        avctx->bits_per_raw_sample = 12;
>
> with this it would be possible to have 12bit output while the profile
> is set to one having 10bits and vice versa ?

No, and neither with previous code.

> maybe the profile should only be left if it is compatible with the
> decoder output

I do not follow.


More information about the ffmpeg-devel mailing list