mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
avformat/utils: support more AVC Intra formats without SPS/PPS header
add support for AVC Intra 50 720p and 1080p without SPS/PPS header in mxf and mov demuxers. I got the SPS/PPS tables from libbmx. Reviewed-by: tomas.hardin@codemill.se Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
a0528d9ddd
commit
1700fa013e
@ -4272,6 +4272,21 @@ int ff_generate_avci_extradata(AVStream *st)
|
||||
0x00, 0x00, 0x00, 0x01, 0x68, 0xce, 0x33, 0x48,
|
||||
0xd0
|
||||
};
|
||||
static const uint8_t avci50_1080p_extradata[] = {
|
||||
// SPS
|
||||
0x00, 0x00, 0x00, 0x01, 0x67, 0x6e, 0x10, 0x28,
|
||||
0xa6, 0xd4, 0x20, 0x32, 0x33, 0x0c, 0x71, 0x18,
|
||||
0x88, 0x62, 0x10, 0x19, 0x19, 0x86, 0x38, 0x8c,
|
||||
0x44, 0x30, 0x21, 0x02, 0x56, 0x4e, 0x6f, 0x37,
|
||||
0xcd, 0xf9, 0xbf, 0x81, 0x6b, 0xf3, 0x7c, 0xde,
|
||||
0x6e, 0x6c, 0xd3, 0x3c, 0x05, 0xa0, 0x22, 0x7e,
|
||||
0x5f, 0xfc, 0x00, 0x0c, 0x00, 0x13, 0x8c, 0x04,
|
||||
0x04, 0x05, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00,
|
||||
0x00, 0x03, 0x00, 0x32, 0x84, 0x00, 0x00, 0x00,
|
||||
// PPS
|
||||
0x00, 0x00, 0x00, 0x01, 0x68, 0xee, 0x31, 0x12,
|
||||
0x11
|
||||
};
|
||||
static const uint8_t avci50_1080i_extradata[] = {
|
||||
// SPS
|
||||
0x00, 0x00, 0x00, 0x01, 0x67, 0x6e, 0x10, 0x28,
|
||||
@ -4305,6 +4320,21 @@ int ff_generate_avci_extradata(AVStream *st)
|
||||
0x00, 0x00, 0x00, 0x01, 0x68, 0xce, 0x31, 0x12,
|
||||
0x11
|
||||
};
|
||||
static const uint8_t avci50_720p_extradata[] = {
|
||||
// SPS
|
||||
0x00, 0x00, 0x00, 0x01, 0x67, 0x6e, 0x10, 0x20,
|
||||
0xa6, 0xd4, 0x20, 0x32, 0x33, 0x0c, 0x71, 0x18,
|
||||
0x88, 0x62, 0x10, 0x19, 0x19, 0x86, 0x38, 0x8c,
|
||||
0x44, 0x30, 0x21, 0x02, 0x56, 0x4e, 0x6f, 0x37,
|
||||
0xcd, 0xf9, 0xbf, 0x81, 0x6b, 0xf3, 0x7c, 0xde,
|
||||
0x6e, 0x6c, 0xd3, 0x3c, 0x0f, 0x01, 0x6e, 0xff,
|
||||
0xc0, 0x00, 0xc0, 0x01, 0x38, 0xc0, 0x40, 0x40,
|
||||
0x50, 0x00, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00,
|
||||
0x06, 0x48, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// PPS
|
||||
0x00, 0x00, 0x00, 0x01, 0x68, 0xee, 0x31, 0x12,
|
||||
0x11
|
||||
};
|
||||
|
||||
const uint8_t *data = NULL;
|
||||
int size = 0;
|
||||
@ -4318,11 +4348,19 @@ int ff_generate_avci_extradata(AVStream *st)
|
||||
size = sizeof(avci100_1080i_extradata);
|
||||
}
|
||||
} else if (st->codec->width == 1440) {
|
||||
data = avci50_1080i_extradata;
|
||||
size = sizeof(avci50_1080i_extradata);
|
||||
if (st->codec->field_order == AV_FIELD_PROGRESSIVE) {
|
||||
data = avci50_1080p_extradata;
|
||||
size = sizeof(avci50_1080p_extradata);
|
||||
} else {
|
||||
data = avci50_1080i_extradata;
|
||||
size = sizeof(avci50_1080i_extradata);
|
||||
}
|
||||
} else if (st->codec->width == 1280) {
|
||||
data = avci100_720p_extradata;
|
||||
size = sizeof(avci100_720p_extradata);
|
||||
} else if (st->codec->width == 960) {
|
||||
data = avci50_720p_extradata;
|
||||
size = sizeof(avci50_720p_extradata);
|
||||
}
|
||||
|
||||
if (!size)
|
||||
|
Loading…
Reference in New Issue
Block a user