mirror of
https://github.com/librempeg/librempeg
synced 2024-11-22 18:49:58 +00:00
avformat/mxfdec: optimize probing
about 71 times faster Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
6b4f58d448
commit
a26e83da6c
@ -47,6 +47,7 @@
|
||||
#include "libavutil/avassert.h"
|
||||
#include "libavutil/mathematics.h"
|
||||
#include "libavcodec/bytestream.h"
|
||||
#include "libavutil/intreadwrite.h"
|
||||
#include "libavutil/timecode.h"
|
||||
#include "avformat.h"
|
||||
#include "internal.h"
|
||||
@ -2456,10 +2457,19 @@ static int mxf_probe(AVProbeData *p) {
|
||||
|
||||
/* Must skip Run-In Sequence and search for MXF header partition pack key SMPTE 377M 5.5 */
|
||||
end -= sizeof(mxf_header_partition_pack_key);
|
||||
for (; bufp < end; bufp++) {
|
||||
if (IS_KLV_KEY(bufp, mxf_header_partition_pack_key))
|
||||
return AVPROBE_SCORE_MAX;
|
||||
|
||||
for (; bufp < end;) {
|
||||
if (!((bufp[13] - 1) & 0xF2)){
|
||||
if (AV_RN32(bufp ) == AV_RN32(mxf_header_partition_pack_key ) &&
|
||||
AV_RN32(bufp+ 4) == AV_RN32(mxf_header_partition_pack_key+ 4) &&
|
||||
AV_RN32(bufp+ 8) == AV_RN32(mxf_header_partition_pack_key+ 8) &&
|
||||
AV_RN16(bufp+12) == AV_RN16(mxf_header_partition_pack_key+12))
|
||||
return AVPROBE_SCORE_MAX;
|
||||
bufp ++;
|
||||
} else
|
||||
bufp += 10;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user