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
45f86128
Commit
45f86128
authored
Aug 17, 2011
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avconv: reindent.
parent
ea065176
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
109 additions
and
109 deletions
+109
-109
avconv.c
avconv.c
+109
-109
No files found.
avconv.c
View file @
45f86128
...
...
@@ -1579,137 +1579,137 @@ static int output_packet(InputStream *ist, int ist_index,
/* if output time reached then transcode raw format,
encode packets and output them */
for
(
i
=
0
;
i
<
nb_ostreams
;
i
++
)
{
OutputFile
*
of
=
&
output_files
[
ost_table
[
i
].
file_index
];
int
frame_size
;
OutputFile
*
of
=
&
output_files
[
ost_table
[
i
].
file_index
];
int
frame_size
;
ost
=
&
ost_table
[
i
];
if
(
ost
->
source_index
!=
ist_index
)
continue
;
ost
=
&
ost_table
[
i
];
if
(
ost
->
source_index
!=
ist_index
)
continue
;
if
(
of
->
start_time
&&
ist
->
pts
<
of
->
start_time
)
continue
;
if
(
of
->
start_time
&&
ist
->
pts
<
of
->
start_time
)
continue
;
if
(
of
->
recording_time
!=
INT64_MAX
&&
av_compare_ts
(
ist
->
pts
,
AV_TIME_BASE_Q
,
of
->
recording_time
+
of
->
start_time
,
(
AVRational
){
1
,
1000000
})
>=
0
)
{
ost
->
is_past_recording_time
=
1
;
continue
;
}
if
(
of
->
recording_time
!=
INT64_MAX
&&
av_compare_ts
(
ist
->
pts
,
AV_TIME_BASE_Q
,
of
->
recording_time
+
of
->
start_time
,
(
AVRational
){
1
,
1000000
})
>=
0
)
{
ost
->
is_past_recording_time
=
1
;
continue
;
}
#if CONFIG_AVFILTER
if
(
ist
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_VIDEO
&&
ost
->
input_video_filter
)
{
AVRational
sar
;
if
(
ist
->
st
->
sample_aspect_ratio
.
num
)
sar
=
ist
->
st
->
sample_aspect_ratio
;
else
sar
=
ist
->
st
->
codec
->
sample_aspect_ratio
;
av_vsrc_buffer_add_frame
(
ost
->
input_video_filter
,
&
picture
,
ist
->
pts
,
sar
);
}
frame_available
=
ist
->
st
->
codec
->
codec_type
!=
AVMEDIA_TYPE_VIDEO
||
!
ost
->
output_video_filter
||
avfilter_poll_frame
(
ost
->
output_video_filter
->
inputs
[
0
]);
while
(
frame_available
)
{
AVRational
ist_pts_tb
;
if
(
ist
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_VIDEO
&&
ost
->
output_video_filter
)
get_filtered_video_frame
(
ost
->
output_video_filter
,
&
picture
,
&
ost
->
picref
,
&
ist_pts_tb
);
if
(
ost
->
picref
)
ist
->
pts
=
av_rescale_q
(
ost
->
picref
->
pts
,
ist_pts_tb
,
AV_TIME_BASE_Q
);
if
(
ist
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_VIDEO
&&
ost
->
input_video_filter
)
{
AVRational
sar
;
if
(
ist
->
st
->
sample_aspect_ratio
.
num
)
sar
=
ist
->
st
->
sample_aspect_ratio
;
else
sar
=
ist
->
st
->
codec
->
sample_aspect_ratio
;
av_vsrc_buffer_add_frame
(
ost
->
input_video_filter
,
&
picture
,
ist
->
pts
,
sar
);
}
frame_available
=
ist
->
st
->
codec
->
codec_type
!=
AVMEDIA_TYPE_VIDEO
||
!
ost
->
output_video_filter
||
avfilter_poll_frame
(
ost
->
output_video_filter
->
inputs
[
0
]);
while
(
frame_available
)
{
AVRational
ist_pts_tb
;
if
(
ist
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_VIDEO
&&
ost
->
output_video_filter
)
get_filtered_video_frame
(
ost
->
output_video_filter
,
&
picture
,
&
ost
->
picref
,
&
ist_pts_tb
);
if
(
ost
->
picref
)
ist
->
pts
=
av_rescale_q
(
ost
->
picref
->
pts
,
ist_pts_tb
,
AV_TIME_BASE_Q
);
#endif
os
=
output_files
[
ost
->
file_index
].
ctx
;
os
=
output_files
[
ost
->
file_index
].
ctx
;
/* set the input output pts pairs */
//ost->sync_ipts = (double)(ist->pts + input_files[ist->file_index].ts_offset - start_time)/ AV_TIME_BASE;
/* set the input output pts pairs */
//ost->sync_ipts = (double)(ist->pts + input_files[ist->file_index].ts_offset - start_time)/ AV_TIME_BASE;
if
(
ost
->
encoding_needed
)
{
av_assert0
(
ist
->
decoding_needed
);
switch
(
ost
->
st
->
codec
->
codec_type
)
{
case
AVMEDIA_TYPE_AUDIO
:
do_audio_out
(
os
,
ost
,
ist
,
decoded_data_buf
,
decoded_data_size
);
break
;
case
AVMEDIA_TYPE_VIDEO
:
if
(
ost
->
encoding_needed
)
{
av_assert0
(
ist
->
decoding_needed
);
switch
(
ost
->
st
->
codec
->
codec_type
)
{
case
AVMEDIA_TYPE_AUDIO
:
do_audio_out
(
os
,
ost
,
ist
,
decoded_data_buf
,
decoded_data_size
);
break
;
case
AVMEDIA_TYPE_VIDEO
:
#if CONFIG_AVFILTER
if
(
ost
->
picref
->
video
&&
!
ost
->
frame_aspect_ratio
)
ost
->
st
->
codec
->
sample_aspect_ratio
=
ost
->
picref
->
video
->
pixel_aspect
;
if
(
ost
->
picref
->
video
&&
!
ost
->
frame_aspect_ratio
)
ost
->
st
->
codec
->
sample_aspect_ratio
=
ost
->
picref
->
video
->
pixel_aspect
;
#endif
do_video_out
(
os
,
ost
,
ist
,
&
picture
,
&
frame_size
,
same_quant
?
quality
:
ost
->
st
->
codec
->
global_quality
);
if
(
vstats_filename
&&
frame_size
)
do_video_stats
(
os
,
ost
,
frame_size
);
break
;
case
AVMEDIA_TYPE_SUBTITLE
:
do_subtitle_out
(
os
,
ost
,
ist
,
&
subtitle
,
pkt
->
pts
);
break
;
default
:
abort
();
}
}
else
{
AVFrame
avframe
;
//FIXME/XXX remove this
AVPacket
opkt
;
int64_t
ost_tb_start_time
=
av_rescale_q
(
of
->
start_time
,
AV_TIME_BASE_Q
,
ost
->
st
->
time_base
);
do_video_out
(
os
,
ost
,
ist
,
&
picture
,
&
frame_size
,
same_quant
?
quality
:
ost
->
st
->
codec
->
global_quality
);
if
(
vstats_filename
&&
frame_size
)
do_video_stats
(
os
,
ost
,
frame_size
);
break
;
case
AVMEDIA_TYPE_SUBTITLE
:
do_subtitle_out
(
os
,
ost
,
ist
,
&
subtitle
,
pkt
->
pts
);
break
;
default
:
abort
();
}
}
else
{
AVFrame
avframe
;
//FIXME/XXX remove this
AVPacket
opkt
;
int64_t
ost_tb_start_time
=
av_rescale_q
(
of
->
start_time
,
AV_TIME_BASE_Q
,
ost
->
st
->
time_base
);
av_init_packet
(
&
opkt
);
av_init_packet
(
&
opkt
);
if
((
!
ost
->
frame_number
&&
!
(
pkt
->
flags
&
AV_PKT_FLAG_KEY
))
&&
!
copy_initial_nonkeyframes
)
if
((
!
ost
->
frame_number
&&
!
(
pkt
->
flags
&
AV_PKT_FLAG_KEY
))
&&
!
copy_initial_nonkeyframes
)
#if !CONFIG_AVFILTER
continue
;
continue
;
#else
goto
cont
;
goto
cont
;
#endif
/* no reencoding needed : output the packet directly */
/* force the input stream PTS */
/* no reencoding needed : output the packet directly */
/* force the input stream PTS */
avcodec_get_frame_defaults
(
&
avframe
);
ost
->
st
->
codec
->
coded_frame
=
&
avframe
;
avframe
.
key_frame
=
pkt
->
flags
&
AV_PKT_FLAG_KEY
;
avcodec_get_frame_defaults
(
&
avframe
);
ost
->
st
->
codec
->
coded_frame
=
&
avframe
;
avframe
.
key_frame
=
pkt
->
flags
&
AV_PKT_FLAG_KEY
;
if
(
ost
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_AUDIO
)
audio_size
+=
data_size
;
else
if
(
ost
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_VIDEO
)
{
video_size
+=
data_size
;
ost
->
sync_opts
++
;
}
if
(
ost
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_AUDIO
)
audio_size
+=
data_size
;
else
if
(
ost
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_VIDEO
)
{
video_size
+=
data_size
;
ost
->
sync_opts
++
;
}
opkt
.
stream_index
=
ost
->
index
;
if
(
pkt
->
pts
!=
AV_NOPTS_VALUE
)
opkt
.
pts
=
av_rescale_q
(
pkt
->
pts
,
ist
->
st
->
time_base
,
ost
->
st
->
time_base
)
-
ost_tb_start_time
;
else
opkt
.
pts
=
AV_NOPTS_VALUE
;
if
(
pkt
->
dts
==
AV_NOPTS_VALUE
)
opkt
.
dts
=
av_rescale_q
(
ist
->
pts
,
AV_TIME_BASE_Q
,
ost
->
st
->
time_base
);
else
opkt
.
dts
=
av_rescale_q
(
pkt
->
dts
,
ist
->
st
->
time_base
,
ost
->
st
->
time_base
);
opkt
.
dts
-=
ost_tb_start_time
;
opkt
.
duration
=
av_rescale_q
(
pkt
->
duration
,
ist
->
st
->
time_base
,
ost
->
st
->
time_base
);
opkt
.
flags
=
pkt
->
flags
;
//FIXME remove the following 2 lines they shall be replaced by the bitstream filters
if
(
ost
->
st
->
codec
->
codec_id
!=
CODEC_ID_H264
&&
ost
->
st
->
codec
->
codec_id
!=
CODEC_ID_MPEG1VIDEO
&&
ost
->
st
->
codec
->
codec_id
!=
CODEC_ID_MPEG2VIDEO
)
{
if
(
av_parser_change
(
ist
->
st
->
parser
,
ost
->
st
->
codec
,
&
opkt
.
data
,
&
opkt
.
size
,
data_buf
,
data_size
,
pkt
->
flags
&
AV_PKT_FLAG_KEY
))
opkt
.
destruct
=
av_destruct_packet
;
}
else
{
opkt
.
data
=
data_buf
;
opkt
.
size
=
data_size
;
}
opkt
.
stream_index
=
ost
->
index
;
if
(
pkt
->
pts
!=
AV_NOPTS_VALUE
)
opkt
.
pts
=
av_rescale_q
(
pkt
->
pts
,
ist
->
st
->
time_base
,
ost
->
st
->
time_base
)
-
ost_tb_start_time
;
else
opkt
.
pts
=
AV_NOPTS_VALUE
;
write_frame
(
os
,
&
opkt
,
ost
->
st
->
codec
,
ost
->
bitstream_filters
);
ost
->
st
->
codec
->
frame_number
++
;
ost
->
frame_number
++
;
av_free_packet
(
&
opkt
);
if
(
pkt
->
dts
==
AV_NOPTS_VALUE
)
opkt
.
dts
=
av_rescale_q
(
ist
->
pts
,
AV_TIME_BASE_Q
,
ost
->
st
->
time_base
);
else
opkt
.
dts
=
av_rescale_q
(
pkt
->
dts
,
ist
->
st
->
time_base
,
ost
->
st
->
time_base
);
opkt
.
dts
-=
ost_tb_start_time
;
opkt
.
duration
=
av_rescale_q
(
pkt
->
duration
,
ist
->
st
->
time_base
,
ost
->
st
->
time_base
);
opkt
.
flags
=
pkt
->
flags
;
//FIXME remove the following 2 lines they shall be replaced by the bitstream filters
if
(
ost
->
st
->
codec
->
codec_id
!=
CODEC_ID_H264
&&
ost
->
st
->
codec
->
codec_id
!=
CODEC_ID_MPEG1VIDEO
&&
ost
->
st
->
codec
->
codec_id
!=
CODEC_ID_MPEG2VIDEO
)
{
if
(
av_parser_change
(
ist
->
st
->
parser
,
ost
->
st
->
codec
,
&
opkt
.
data
,
&
opkt
.
size
,
data_buf
,
data_size
,
pkt
->
flags
&
AV_PKT_FLAG_KEY
))
opkt
.
destruct
=
av_destruct_packet
;
}
else
{
opkt
.
data
=
data_buf
;
opkt
.
size
=
data_size
;
}
#if CONFIG_AVFILTER
cont
:
frame_available
=
(
ist
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_VIDEO
)
&&
ost
->
output_video_filter
&&
avfilter_poll_frame
(
ost
->
output_video_filter
->
inputs
[
0
]);
if
(
ost
->
picref
)
avfilter_unref_buffer
(
ost
->
picref
);
write_frame
(
os
,
&
opkt
,
ost
->
st
->
codec
,
ost
->
bitstream_filters
);
ost
->
st
->
codec
->
frame_number
++
;
ost
->
frame_number
++
;
av_free_packet
(
&
opkt
);
}
#if CONFIG_AVFILTER
cont
:
frame_available
=
(
ist
->
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_VIDEO
)
&&
ost
->
output_video_filter
&&
avfilter_poll_frame
(
ost
->
output_video_filter
->
inputs
[
0
]);
if
(
ost
->
picref
)
avfilter_unref_buffer
(
ost
->
picref
);
}
#endif
}
...
...
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