[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