Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
f6d952f5
Commit
f6d952f5
authored
May 27, 2012
by
Matthieu Bouron
Committed by
Michael Niedermayer
Jun 06, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mxfenc: write optional field dominance flag in picture description
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
93147daf
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
5 deletions
+18
-5
mxfenc.c
libavformat/mxfenc.c
+14
-1
mxf
tests/ref/lavf/mxf
+3
-3
mxf_d10
tests/ref/lavf/mxf_d10
+1
-1
No files found.
libavformat/mxfenc.c
View file @
f6d952f5
...
...
@@ -73,6 +73,7 @@ typedef struct {
const
UID
*
codec_ul
;
int
order
;
///< interleaving order if dts are equal
int
interlaced
;
///< whether picture is interlaced
int
field_dominance
;
///< tff=1, bff=2
int
temporal_reordering
;
AVRational
aspect_ratio
;
///< display aspect ratio
int
closed_gop
;
///< gop is closed, used in mpeg-2 frame parsing
...
...
@@ -284,6 +285,7 @@ static const MXFLocalTagPair mxf_local_tag_batch[] = {
{
0x3208
,
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x05
,
0x01
,
0x0B
,
0x00
,
0x00
,
0x00
}},
/* Display Height */
{
0x320E
,
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x01
,
0x01
,
0x01
,
0x00
,
0x00
,
0x00
}},
/* Aspect Ratio */
{
0x3201
,
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x01
,
0x01
,
0x02
,
0x04
,
0x01
,
0x06
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
}},
/* Picture Essence Coding */
{
0x3212
,
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x01
,
0x01
,
0x02
,
0x04
,
0x01
,
0x03
,
0x01
,
0x06
,
0x00
,
0x00
,
0x00
}},
/* Field Dominance (Opt) */
// CDCI Picture Essence Descriptor
{
0x3301
,
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x01
,
0x01
,
0x02
,
0x04
,
0x01
,
0x05
,
0x03
,
0x0A
,
0x00
,
0x00
,
0x00
}},
/* Component Depth */
{
0x3302
,
{
0x06
,
0x0E
,
0x2B
,
0x34
,
0x01
,
0x01
,
0x01
,
0x01
,
0x04
,
0x01
,
0x05
,
0x01
,
0x05
,
0x00
,
0x00
,
0x00
}},
/* Horizontal Subsampling */
...
...
@@ -789,8 +791,11 @@ static void mxf_write_cdci_common(AVFormatContext *s, AVStream *st, const UID ke
int
stored_height
=
(
st
->
codec
->
height
+
15
)
/
16
*
16
;
int
display_height
;
int
f1
,
f2
;
unsigned
desc_size
=
size
+
8
+
8
+
8
+
8
+
8
+
8
+
5
+
16
+
sc
->
interlaced
*
4
+
12
+
20
;
if
(
sc
->
interlaced
&&
sc
->
field_dominance
)
desc_size
+=
5
;
mxf_write_generic_desc
(
s
,
st
,
key
,
size
+
8
+
8
+
8
+
8
+
8
+
8
+
5
+
16
+
sc
->
interlaced
*
4
+
12
+
20
);
mxf_write_generic_desc
(
s
,
st
,
key
,
desc_size
);
mxf_write_local_tag
(
pb
,
4
,
0x3203
);
avio_wb32
(
pb
,
st
->
codec
->
width
);
...
...
@@ -852,6 +857,12 @@ static void mxf_write_cdci_common(AVFormatContext *s, AVStream *st, const UID ke
mxf_write_local_tag
(
pb
,
16
,
0x3201
);
avio_write
(
pb
,
*
sc
->
codec_ul
,
16
);
if
(
sc
->
interlaced
&&
sc
->
field_dominance
)
{
mxf_write_local_tag
(
pb
,
1
,
0x3212
);
avio_w8
(
pb
,
sc
->
field_dominance
);
}
}
static
void
mxf_write_cdci_desc
(
AVFormatContext
*
s
,
AVStream
*
st
)
...
...
@@ -1328,6 +1339,8 @@ static int mxf_parse_mpeg2_frame(AVFormatContext *s, AVStream *st,
st
->
codec
->
level
=
pkt
->
data
[
i
+
2
]
>>
4
;
}
else
if
(
i
+
5
<
pkt
->
size
&&
(
pkt
->
data
[
i
+
1
]
&
0xf0
)
==
0x80
)
{
// pict coding ext
sc
->
interlaced
=
!
(
pkt
->
data
[
i
+
5
]
&
0x80
);
// progressive frame
if
(
sc
->
interlaced
)
sc
->
field_dominance
=
1
+
!
(
pkt
->
data
[
i
+
4
]
&
0x80
);
// top field first
break
;
}
}
else
if
(
c
==
0x1b8
)
{
// gop
...
...
tests/ref/lavf/mxf
View file @
f6d952f5
785e38ddd2466046f30aa36399b8f8fa
*./tests/data/lavf/lavf.mxf
4cc269e1d2066fac03a3d7466f011c8e
*./tests/data/lavf/lavf.mxf
525881 ./tests/data/lavf/lavf.mxf
./tests/data/lavf/lavf.mxf CRC=0x4ace0849
ccaa42c75e653f71604fd28c7c83722d
*./tests/data/lavf/lavf.mxf
87eb6e0e51d31c8ffa414d02672edfa0
*./tests/data/lavf/lavf.mxf
537657 ./tests/data/lavf/lavf.mxf
./tests/data/lavf/lavf.mxf CRC=0x9b928d6b
c78207030d57b48295b089916849d50d
*./tests/data/lavf/lavf.mxf
52c5b74ecfdc48bd77d79a6bbe62d2de
*./tests/data/lavf/lavf.mxf
525881 ./tests/data/lavf/lavf.mxf
./tests/data/lavf/lavf.mxf CRC=0x4ace0849
tests/ref/lavf/mxf_d10
View file @
f6d952f5
0d72247067569901a2e351586ddc0b82
*./tests/data/lavf/lavf.mxf_d10
93237916962c1ecacc8ae3b9e97481fb
*./tests/data/lavf/lavf.mxf_d10
5330989 ./tests/data/lavf/lavf.mxf_d10
./tests/data/lavf/lavf.mxf_d10 CRC=0x4474d480
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