Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
d65aaf8e
Commit
d65aaf8e
authored
Jun 20, 2019
by
Baptiste Coudurier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avformat/mxfenc: simplify d-10 ul handling
parent
635a5c11
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
41 additions
and
69 deletions
+41
-69
mxfenc.c
libavformat/mxfenc.c
+41
-69
No files found.
libavformat/mxfenc.c
View file @
d65aaf8e
...
@@ -123,18 +123,8 @@ enum ULIndex {
...
@@ -123,18 +123,8 @@ enum ULIndex {
INDEX_MPEG2
=
0
,
INDEX_MPEG2
=
0
,
INDEX_AES3
,
INDEX_AES3
,
INDEX_WAV
,
INDEX_WAV
,
INDEX_D10_625_50_50_VIDEO
,
INDEX_D10_VIDEO
,
INDEX_D10_625_50_50_AUDIO
,
INDEX_D10_AUDIO
,
INDEX_D10_525_60_50_VIDEO
,
INDEX_D10_525_60_50_AUDIO
,
INDEX_D10_625_50_40_VIDEO
,
INDEX_D10_625_50_40_AUDIO
,
INDEX_D10_525_60_40_VIDEO
,
INDEX_D10_525_60_40_AUDIO
,
INDEX_D10_625_50_30_VIDEO
,
INDEX_D10_625_50_30_AUDIO
,
INDEX_D10_525_60_30_VIDEO
,
INDEX_D10_525_60_30_AUDIO
,
INDEX_DV
,
INDEX_DV
,
INDEX_DNXHD
,
INDEX_DNXHD
,
INDEX_JPEG2000
,
INDEX_JPEG2000
,
...
@@ -179,60 +169,16 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = {
...
@@ -179,60 +169,16 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = {
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x16
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x16
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x02
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x02
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
},
mxf_write_wav_desc
},
mxf_write_wav_desc
},
// D-10
625/50 PAL 50mb/s
// D-10
Video
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x01
,
0x01
},
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x01
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x05
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x05
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x01
},
mxf_write_cdci_desc
},
mxf_write_cdci_desc
},
// D-10 Audio
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x01
,
0x01
},
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x01
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x06
,
0x01
,
0x10
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x06
,
0x01
,
0x10
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x02
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x02
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
},
mxf_write_generic_sound_desc
},
mxf_write_generic_sound_desc
},
// D-10 525/60 NTSC 50mb/s
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x02
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x05
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x02
},
mxf_write_cdci_desc
},
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x02
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x06
,
0x01
,
0x10
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x02
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
},
mxf_write_generic_sound_desc
},
// D-10 625/50 PAL 40mb/s
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x03
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x05
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x03
},
mxf_write_cdci_desc
},
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x03
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x06
,
0x01
,
0x10
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x02
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
},
mxf_write_generic_sound_desc
},
// D-10 525/60 NTSC 40mb/s
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x04
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x05
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x04
},
mxf_write_cdci_desc
},
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x04
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x06
,
0x01
,
0x10
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x02
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
},
mxf_write_generic_sound_desc
},
// D-10 625/50 PAL 30mb/s
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x05
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x05
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x05
},
mxf_write_cdci_desc
},
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x05
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x06
,
0x01
,
0x10
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x02
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
},
mxf_write_generic_sound_desc
},
// D-10 525/60 NTSC 30mb/s
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x06
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x05
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x06
},
mxf_write_cdci_desc
},
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x06
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x06
,
0x01
,
0x10
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x02
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
},
mxf_write_generic_sound_desc
},
// DV
// DV
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x02
,
0x7F
,
0x01
},
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x02
,
0x7F
,
0x01
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x18
,
0x01
,
0x01
,
0x00
},
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x02
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x18
,
0x01
,
0x01
,
0x00
},
...
@@ -269,6 +215,24 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = {
...
@@ -269,6 +215,24 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = {
NULL
},
NULL
},
};
};
static
const
UID
mxf_d10_codec_uls
[]
=
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x01
},
// D-10 625/50 PAL 50mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x02
},
// D-10 525/50 NTSC 50mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x03
},
// D-10 625/50 PAL 40mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x04
},
// D-10 525/50 NTSC 40mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x05
},
// D-10 625/50 PAL 30mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x02
,
0x02
,
0x01
,
0x02
,
0x01
,
0x06
},
// D-10 525/50 NTSC 30mb/s
};
static
const
UID
mxf_d10_container_uls
[]
=
{
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x01
,
0x01
},
// D-10 625/50 PAL 50mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x02
,
0x01
},
// D-10 525/50 NTSC 50mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x03
,
0x01
},
// D-10 625/50 PAL 40mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x04
,
0x01
},
// D-10 525/50 NTSC 40mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x05
,
0x01
},
// D-10 625/50 PAL 30mb/s
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x04
,
0x01
,
0x01
,
0x01
,
0x0D
,
0x01
,
0x03
,
0x01
,
0x02
,
0x01
,
0x06
,
0x01
},
// D-10 525/50 NTSC 30mb/s
};
typedef
struct
MXFContext
{
typedef
struct
MXFContext
{
AVClass
*
av_class
;
AVClass
*
av_class
;
int64_t
footer_partition_offset
;
int64_t
footer_partition_offset
;
...
@@ -2491,6 +2455,7 @@ static int mxf_write_header(AVFormatContext *s)
...
@@ -2491,6 +2455,7 @@ static int mxf_write_header(AVFormatContext *s)
if
(
!
sc
)
if
(
!
sc
)
return
AVERROR
(
ENOMEM
);
return
AVERROR
(
ENOMEM
);
st
->
priv_data
=
sc
;
st
->
priv_data
=
sc
;
sc
->
index
=
-
1
;
if
(((
i
==
0
)
^
(
st
->
codecpar
->
codec_type
==
AVMEDIA_TYPE_VIDEO
))
&&
s
->
oformat
!=
&
ff_mxf_opatom_muxer
)
{
if
(((
i
==
0
)
^
(
st
->
codecpar
->
codec_type
==
AVMEDIA_TYPE_VIDEO
))
&&
s
->
oformat
!=
&
ff_mxf_opatom_muxer
)
{
av_log
(
s
,
AV_LOG_ERROR
,
"there must be exactly one video stream and it must be the first one
\n
"
);
av_log
(
s
,
AV_LOG_ERROR
,
"there must be exactly one video stream and it must be the first one
\n
"
);
...
@@ -2550,25 +2515,29 @@ static int mxf_write_header(AVFormatContext *s)
...
@@ -2550,25 +2515,29 @@ static int mxf_write_header(AVFormatContext *s)
mxf
->
cbr_index
=
1
;
mxf
->
cbr_index
=
1
;
if
(
s
->
oformat
==
&
ff_mxf_d10_muxer
)
{
if
(
s
->
oformat
==
&
ff_mxf_d10_muxer
)
{
int
ntsc
=
mxf
->
time_base
.
den
!=
25
;
int
ul_index
;
if
(
st
->
codecpar
->
codec_id
!=
AV_CODEC_ID_MPEG2VIDEO
)
{
if
(
st
->
codecpar
->
codec_id
!=
AV_CODEC_ID_MPEG2VIDEO
)
{
av_log
(
s
,
AV_LOG_ERROR
,
"error MXF D-10 only support MPEG-2 Video
\n
"
);
av_log
(
s
,
AV_LOG_ERROR
,
"error MXF D-10 only support MPEG-2 Video
\n
"
);
return
AVERROR
(
EINVAL
);
return
AVERROR
(
EINVAL
);
}
}
if
((
sc
->
video_bit_rate
==
50000000
)
&&
(
mxf
->
time_base
.
den
==
25
))
{
if
((
sc
->
video_bit_rate
==
50000000
)
&&
(
mxf
->
time_base
.
den
==
25
))
{
sc
->
index
=
INDEX_D10_625_50_50_VIDEO
;
ul_index
=
0
;
}
else
if
((
sc
->
video_bit_rate
==
49999840
||
sc
->
video_bit_rate
==
50000000
)
&&
(
mxf
->
time_base
.
den
!=
25
)
)
{
}
else
if
((
sc
->
video_bit_rate
==
49999840
||
sc
->
video_bit_rate
==
50000000
)
&&
ntsc
)
{
sc
->
index
=
INDEX_D10_525_60_50_VIDEO
;
ul_index
=
1
;
}
else
if
(
sc
->
video_bit_rate
==
40000000
)
{
}
else
if
(
sc
->
video_bit_rate
==
40000000
)
{
if
(
mxf
->
time_base
.
den
==
25
)
sc
->
index
=
INDEX_D10_625_50_40_VIDEO
;
ul_index
=
2
+
ntsc
;
else
sc
->
index
=
INDEX_D10_525_60_40_VIDEO
;
}
else
if
(
sc
->
video_bit_rate
==
30000000
)
{
}
else
if
(
sc
->
video_bit_rate
==
30000000
)
{
if
(
mxf
->
time_base
.
den
==
25
)
sc
->
index
=
INDEX_D10_625_50_30_VIDEO
;
ul_index
=
4
+
ntsc
;
else
sc
->
index
=
INDEX_D10_525_60_30_VIDEO
;
}
else
{
}
else
{
av_log
(
s
,
AV_LOG_ERROR
,
"error MXF D-10 only support 30/40/50 mbit/s
\n
"
);
av_log
(
s
,
AV_LOG_ERROR
,
"error MXF D-10 only support 30/40/50 mbit/s
\n
"
);
return
-
1
;
return
-
1
;
}
}
sc
->
codec_ul
=
&
mxf_d10_codec_uls
[
ul_index
];
sc
->
container_ul
=
&
mxf_d10_container_uls
[
ul_index
];
sc
->
index
=
INDEX_D10_VIDEO
;
sc
->
signal_standard
=
1
;
sc
->
signal_standard
=
1
;
sc
->
color_siting
=
0
;
sc
->
color_siting
=
0
;
sc
->
frame_size
=
(
int64_t
)
sc
->
video_bit_rate
*
sc
->
frame_size
=
(
int64_t
)
sc
->
video_bit_rate
*
...
@@ -2591,7 +2560,8 @@ static int mxf_write_header(AVFormatContext *s)
...
@@ -2591,7 +2560,8 @@ static int mxf_write_header(AVFormatContext *s)
st
->
codecpar
->
codec_id
!=
AV_CODEC_ID_PCM_S24LE
)
{
st
->
codecpar
->
codec_id
!=
AV_CODEC_ID_PCM_S24LE
)
{
av_log
(
s
,
AV_LOG_ERROR
,
"MXF D-10 only support 16 or 24 bits le audio
\n
"
);
av_log
(
s
,
AV_LOG_ERROR
,
"MXF D-10 only support 16 or 24 bits le audio
\n
"
);
}
}
sc
->
index
=
((
MXFStreamContext
*
)
s
->
streams
[
0
]
->
priv_data
)
->
index
+
1
;
sc
->
index
=
INDEX_D10_AUDIO
;
sc
->
container_ul
=
((
MXFStreamContext
*
)
s
->
streams
[
0
]
->
priv_data
)
->
container_ul
;
sc
->
frame_size
=
4
+
8
*
spf
[
0
].
samples_per_frame
[
0
]
*
4
;
sc
->
frame_size
=
4
+
8
*
spf
[
0
].
samples_per_frame
[
0
]
*
4
;
}
else
if
(
s
->
oformat
==
&
ff_mxf_opatom_muxer
)
{
}
else
if
(
s
->
oformat
==
&
ff_mxf_opatom_muxer
)
{
AVRational
tbc
=
av_inv_q
(
mxf
->
audio_edit_rate
);
AVRational
tbc
=
av_inv_q
(
mxf
->
audio_edit_rate
);
...
@@ -2638,7 +2608,7 @@ static int mxf_write_header(AVFormatContext *s)
...
@@ -2638,7 +2608,7 @@ static int mxf_write_header(AVFormatContext *s)
}
}
}
}
if
(
!
sc
->
index
)
{
if
(
sc
->
index
==
-
1
)
{
sc
->
index
=
mxf_get_essence_container_ul_index
(
st
->
codecpar
->
codec_id
);
sc
->
index
=
mxf_get_essence_container_ul_index
(
st
->
codecpar
->
codec_id
);
if
(
sc
->
index
==
-
1
)
{
if
(
sc
->
index
==
-
1
)
{
av_log
(
s
,
AV_LOG_ERROR
,
"track %d: could not find essence container ul, "
av_log
(
s
,
AV_LOG_ERROR
,
"track %d: could not find essence container ul, "
...
@@ -2647,8 +2617,10 @@ static int mxf_write_header(AVFormatContext *s)
...
@@ -2647,8 +2617,10 @@ static int mxf_write_header(AVFormatContext *s)
}
}
}
}
sc
->
codec_ul
=
&
mxf_essence_container_uls
[
sc
->
index
].
codec_ul
;
if
(
!
sc
->
codec_ul
)
sc
->
container_ul
=
&
mxf_essence_container_uls
[
sc
->
index
].
container_ul
;
sc
->
codec_ul
=
&
mxf_essence_container_uls
[
sc
->
index
].
codec_ul
;
if
(
!
sc
->
container_ul
)
sc
->
container_ul
=
&
mxf_essence_container_uls
[
sc
->
index
].
container_ul
;
memcpy
(
sc
->
track_essence_element_key
,
mxf_essence_container_uls
[
sc
->
index
].
element_ul
,
15
);
memcpy
(
sc
->
track_essence_element_key
,
mxf_essence_container_uls
[
sc
->
index
].
element_ul
,
15
);
sc
->
track_essence_element_key
[
15
]
=
present
[
sc
->
index
];
sc
->
track_essence_element_key
[
15
]
=
present
[
sc
->
index
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment