mirror of https://git.ffmpeg.org/ffmpeg.git
mxf: Read field dominance flag
And export the information in field_order. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
parent
7d56f2fffc
commit
c716624853
|
@ -134,6 +134,9 @@ typedef struct {
|
|||
int width;
|
||||
int height; /* Field height, not frame height */
|
||||
int frame_layout; /* See MXFFrameLayout enum */
|
||||
#define MXF_TFF 1
|
||||
#define MXF_BFF 2
|
||||
int field_dominance;
|
||||
int channels;
|
||||
int bits_per_sample;
|
||||
unsigned int component_depth;
|
||||
|
@ -830,6 +833,9 @@ static int mxf_read_generic_descriptor(void *arg, AVIOContext *pb, int tag, int
|
|||
descriptor->aspect_ratio.num = avio_rb32(pb);
|
||||
descriptor->aspect_ratio.den = avio_rb32(pb);
|
||||
break;
|
||||
case 0x3212:
|
||||
descriptor->field_dominance = avio_r8(pb);
|
||||
break;
|
||||
case 0x3301:
|
||||
descriptor->component_depth = avio_rb32(pb);
|
||||
break;
|
||||
|
@ -1507,6 +1513,19 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
|
|||
* It's also for compatibility with the old behavior. */
|
||||
case SeparateFields:
|
||||
case MixedFields:
|
||||
switch (descriptor->field_dominance) {
|
||||
case MXF_TFF:
|
||||
st->codec->field_order = AV_FIELD_TT;
|
||||
break;
|
||||
case MXF_BFF:
|
||||
st->codec->field_order = AV_FIELD_BB;
|
||||
break;
|
||||
default:
|
||||
avpriv_request_sample(mxf->fc,
|
||||
"Field dominance %d support",
|
||||
descriptor->field_dominance);
|
||||
break;
|
||||
}
|
||||
/* Turn field height into frame height. */
|
||||
st->codec->height *= 2;
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue