avformat/mxfenc: move content package rates and timebase combinations to a separate struct
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
27a8146990
commit
f69154b2c4
@ -131,25 +131,25 @@ int ff_mxf_decode_pixel_layout(const char pixel_layout[16], enum AVPixelFormat *
|
||||
return -1;
|
||||
}
|
||||
|
||||
static const AVRational mxf_time_base[] = {
|
||||
{ 1001, 24000 },
|
||||
{ 1, 24},
|
||||
{ 1001, 30000 },
|
||||
{ 1001, 60000 },
|
||||
{ 1, 25 },
|
||||
{ 1, 50 },
|
||||
{ 1, 60 },
|
||||
{ 0, 0}
|
||||
};
|
||||
|
||||
static const int mxf_content_package_rates[] = {
|
||||
3, 2, 7, 13, 4, 10, 12,
|
||||
/**
|
||||
* See SMPTE 326M-2000 Section 7.2 Content package rate
|
||||
* MXFContentPackageRate->rate is bits b5..b0.
|
||||
*/
|
||||
static const MXFContentPackageRate mxf_content_package_rates[] = {
|
||||
{ 2, { 1, 24 } },
|
||||
{ 3, { 1001, 24000 } },
|
||||
{ 4, { 1, 25 } },
|
||||
{ 7, { 1001, 30000 } },
|
||||
{ 10, { 1, 50 } },
|
||||
{ 12, { 1, 60 } },
|
||||
{ 13, { 1001, 60000 } },
|
||||
{0}
|
||||
};
|
||||
|
||||
int ff_mxf_get_content_package_rate(AVRational time_base)
|
||||
{
|
||||
for (int i = 0; mxf_time_base[i].num; i++)
|
||||
if (!av_cmp_q(time_base, mxf_time_base[i]))
|
||||
return mxf_content_package_rates[i];
|
||||
for (int i = 0; mxf_content_package_rates[i].rate; i++)
|
||||
if (!av_cmp_q(time_base, mxf_content_package_rates[i].tb))
|
||||
return mxf_content_package_rates[i].rate;
|
||||
return 0;
|
||||
}
|
||||
|
@ -59,6 +59,11 @@ enum MXFFrameLayout {
|
||||
SegmentedFrame,
|
||||
};
|
||||
|
||||
typedef struct MXFContentPackageRate {
|
||||
int rate;
|
||||
AVRational tb;
|
||||
} MXFContentPackageRate;
|
||||
|
||||
typedef struct KLVPacket {
|
||||
UID key;
|
||||
int64_t offset;
|
||||
|
Loading…
x
Reference in New Issue
Block a user