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
cc38ca67
Commit
cc38ca67
authored
Mar 01, 2013
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avcodec/utils: use AVFrame accessor functions
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
30806ddc
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
26 deletions
+28
-26
utils.c
libavcodec/utils.c
+28
-26
No files found.
libavcodec/utils.c
View file @
cc38ca67
...
...
@@ -549,14 +549,14 @@ void ff_init_buffer_info(AVCodecContext *s, AVFrame *frame)
{
if
(
s
->
pkt
)
{
frame
->
pkt_pts
=
s
->
pkt
->
pts
;
frame
->
pkt_pos
=
s
->
pkt
->
pos
;
frame
->
pkt_duration
=
s
->
pkt
->
duration
;
frame
->
pkt_size
=
s
->
pkt
->
size
;
av_frame_set_pkt_pos
(
frame
,
s
->
pkt
->
pos
)
;
av_frame_set_pkt_duration
(
frame
,
s
->
pkt
->
duration
)
;
av_frame_set_pkt_size
(
frame
,
s
->
pkt
->
size
)
;
}
else
{
frame
->
pkt_pts
=
AV_NOPTS_VALUE
;
frame
->
pkt_pos
=
-
1
;
frame
->
pkt_duration
=
0
;
frame
->
pkt_size
=
-
1
;
av_frame_set_pkt_pos
(
frame
,
-
1
)
;
av_frame_set_pkt_duration
(
frame
,
0
)
;
av_frame_set_pkt_size
(
frame
,
-
1
)
;
}
frame
->
reordered_opaque
=
s
->
reordered_opaque
;
...
...
@@ -571,7 +571,7 @@ void ff_init_buffer_info(AVCodecContext *s, AVFrame *frame)
frame
->
sample_rate
=
s
->
sample_rate
;
frame
->
format
=
s
->
sample_fmt
;
frame
->
channel_layout
=
s
->
channel_layout
;
frame
->
channels
=
s
->
channels
;
av_frame_set_channels
(
frame
,
s
->
channels
)
;
break
;
}
}
...
...
@@ -714,11 +714,11 @@ void avcodec_get_frame_defaults(AVFrame *frame)
frame
->
pts
=
frame
->
pkt_dts
=
frame
->
pkt_pts
=
frame
->
best_effort_timestamp
=
AV_NOPTS_VALUE
;
frame
->
pkt_duration
=
0
;
frame
->
pkt_pos
=
-
1
;
frame
->
pkt_size
=
-
1
;
frame
->
pkt_pts
=
AV_NOPTS_VALUE
;
av_frame_set_best_effort_timestamp
(
frame
,
AV_NOPTS_VALUE
)
;
av_frame_set_pkt_duration
(
frame
,
0
)
;
av_frame_set_pkt_pos
(
frame
,
-
1
)
;
av_frame_set_pkt_size
(
frame
,
-
1
)
;
frame
->
key_frame
=
1
;
frame
->
sample_aspect_ratio
=
(
AVRational
)
{
0
,
1
};
frame
->
format
=
-
1
;
/* unknown */
...
...
@@ -1650,13 +1650,13 @@ static int add_metadata_from_side_data(AVCodecContext *avctx, AVFrame *frame)
while
(
side_metadata
<
end
)
{
const
uint8_t
*
key
=
side_metadata
;
const
uint8_t
*
val
=
side_metadata
+
strlen
(
key
)
+
1
;
int
ret
=
av_dict_set
(
&
frame
->
metadata
,
key
,
val
,
0
);
int
ret
=
av_dict_set
(
ff_frame_get_metadatap
(
frame
)
,
key
,
val
,
0
);
if
(
ret
<
0
)
break
;
side_metadata
=
val
+
strlen
(
val
)
+
1
;
}
end
:
avctx
->
metadata
=
frame
->
metadata
;
avctx
->
metadata
=
av_frame_get_metadata
(
frame
)
;
return
ret
;
}
...
...
@@ -1692,7 +1692,7 @@ int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi
picture
->
pkt_dts
=
avpkt
->
dts
;
if
(
!
avctx
->
has_b_frames
){
picture
->
pkt_pos
=
avpkt
->
pos
;
av_frame_set_pkt_pos
(
picture
,
avpkt
->
pos
)
;
}
//FIXME these should be under if(!avctx->has_b_frames)
/* get_buffer is supposed to set frame parameters */
...
...
@@ -1716,9 +1716,10 @@ int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi
if
(
*
got_picture_ptr
){
avctx
->
frame_number
++
;
picture
->
best_effort_timestamp
=
guess_correct_pts
(
avctx
,
picture
->
pkt_pts
,
picture
->
pkt_dts
);
av_frame_set_best_effort_timestamp
(
picture
,
guess_correct_pts
(
avctx
,
picture
->
pkt_pts
,
picture
->
pkt_dts
));
}
}
else
ret
=
0
;
...
...
@@ -1813,15 +1814,16 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx,
if
(
ret
>=
0
&&
*
got_frame_ptr
)
{
avctx
->
frame_number
++
;
frame
->
pkt_dts
=
avpkt
->
dts
;
frame
->
best_effort_timestamp
=
guess_correct_pts
(
avctx
,
frame
->
pkt_pts
,
frame
->
pkt_dts
);
av_frame_set_best_effort_timestamp
(
frame
,
guess_correct_pts
(
avctx
,
frame
->
pkt_pts
,
frame
->
pkt_dts
));
if
(
frame
->
format
==
AV_SAMPLE_FMT_NONE
)
frame
->
format
=
avctx
->
sample_fmt
;
if
(
!
frame
->
channel_layout
)
frame
->
channel_layout
=
avctx
->
channel_layout
;
if
(
!
frame
->
channels
)
frame
->
channels
=
avctx
->
channels
;
if
(
!
av_frame_get_channels
(
frame
)
)
av_frame_set_channels
(
frame
,
avctx
->
channels
)
;
if
(
!
frame
->
sample_rate
)
frame
->
sample_rate
=
avctx
->
sample_rate
;
}
...
...
@@ -1850,8 +1852,8 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx,
frame
->
pkt_pts
+=
diff_ts
;
if
(
frame
->
pkt_dts
!=
AV_NOPTS_VALUE
)
frame
->
pkt_dts
+=
diff_ts
;
if
(
frame
->
pkt_duration
>=
diff_ts
)
frame
->
pkt_duration
-=
diff_ts
;
if
(
av_frame_get_pkt_duration
(
frame
)
>=
diff_ts
)
av_frame_set_pkt_duration
(
frame
,
av_frame_get_pkt_duration
(
frame
)
-
diff_ts
)
;
}
else
{
av_log
(
avctx
,
AV_LOG_WARNING
,
"Could not update timestamps for skipped samples.
\n
"
);
}
...
...
@@ -1875,7 +1877,7 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx,
* extended_data are doing it correctly */
if
(
*
got_frame_ptr
)
{
planar
=
av_sample_fmt_is_planar
(
frame
->
format
);
channels
=
frame
->
channels
;
channels
=
av_frame_get_channels
(
frame
)
;
if
(
!
(
planar
&&
channels
>
AV_NUM_DATA_POINTERS
))
frame
->
extended_data
=
frame
->
data
;
}
else
{
...
...
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