[FFmpeg-devel] [PATCH 3/4] dpx: abort if encrypted

Reimar Döffinger Reimar.Doeffinger at gmx.de
Wed Aug 13 18:46:48 CEST 2014


On 13.08.2014, at 13:48, Paul B Mahol <onemda at gmail.com> wrote:
> On 8/13/14, Christophe Gisquet <christophe.gisquet at gmail.com> wrote:
>> ---
>> libavcodec/dpx.c | 9 +++++++++
>> 1 file changed, 9 insertions(+)
>> 
>> diff --git a/libavcodec/dpx.c b/libavcodec/dpx.c
>> index 8cd7d73..2ad7527 100644
>> --- a/libavcodec/dpx.c
>> +++ b/libavcodec/dpx.c
>> @@ -108,6 +108,15 @@ static int decode_frame(AVCodecContext *avctx,
>>         av_log(avctx, AV_LOG_ERROR, "Invalid data start offset\n");
>>         return AVERROR_INVALIDDATA;
>>     }
>> +
>> +    // Check encryption
>> +    buf = avpkt->data + 660;
>> +    ret = read32(&buf, endian);
>> +    if (ret != 0xFFFFFFFF) {
>> +        avpriv_report_missing_feature(avctx, "Encryption");
>> +        return AVERROR_PATCHWELCOME;
>> +    }
>> +
>>     // Need to end in 0x304 offset from start of file
>>     buf = avpkt->data + 0x304;
>>     w = read32(&buf, endian);
> 
> Does dpx encoder needs modification too?

More specifically: how certain is it this value is always correct?
Failing to play an unencrypted file just because of a wrong flag (or even a single-bit corruption!) seems worse to me than trying to play an encrypted file.
I.e. shouldn't this rather just be a warning than hard failure?


More information about the ffmpeg-devel mailing list