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
5a9ee315
Commit
5a9ee315
authored
Oct 09, 2011
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mpegenc/mpegtsenc: add muxrate private options.
Deprecate AVFormatContext.mux_rate.
parent
c10731e7
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
48 additions
and
3 deletions
+48
-3
avformat.h
libavformat/avformat.h
+6
-1
mpegenc.c
libavformat/mpegenc.c
+32
-1
mpegtsenc.c
libavformat/mpegtsenc.c
+5
-1
options.c
libavformat/options.c
+2
-0
version.h
libavformat/version.h
+3
-0
No files found.
libavformat/avformat.h
View file @
5a9ee315
...
...
@@ -736,7 +736,12 @@ typedef struct AVFormatContext {
/* av_seek_frame() support */
int64_t
data_offset
;
/**< offset of the first packet */
int
mux_rate
;
#if FF_API_MUXRATE
/**
* use mpeg muxer private options instead
*/
attribute_deprecated
int
mux_rate
;
#endif
unsigned
int
packet_size
;
int
preload
;
int
max_delay
;
...
...
libavformat/mpegenc.c
View file @
5a9ee315
...
...
@@ -20,7 +20,9 @@
*/
#include "libavutil/fifo.h"
#include "libavutil/log.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavcodec/put_bits.h"
#include "avformat.h"
#include "mpeg.h"
...
...
@@ -56,6 +58,7 @@ typedef struct {
}
StreamInfo
;
typedef
struct
{
const
AVClass
*
class
;
int
packet_size
;
/* required packet size */
int
packet_number
;
int
pack_header_freq
;
/* frequency (in packets^-1) at which we send pack headers */
...
...
@@ -416,9 +419,12 @@ static int mpeg_mux_init(AVFormatContext *ctx)
video_bitrate
+=
codec_rate
;
}
#if FF_API_MUXRATE
if
(
ctx
->
mux_rate
){
s
->
mux_rate
=
(
ctx
->
mux_rate
+
(
8
*
50
)
-
1
)
/
(
8
*
50
);
}
else
{
}
else
#endif
if
(
!
s
->
mux_rate
)
{
/* we increase slightly the bitrate to take into account the
headers. XXX: compute it exactly */
bitrate
+=
bitrate
*
5
/
100
;
...
...
@@ -1227,7 +1233,23 @@ static int mpeg_mux_end(AVFormatContext *ctx)
return
0
;
}
#define OFFSET(x) offsetof(MpegMuxContext, x)
#define E AV_OPT_FLAG_ENCODING_PARAM
static
const
AVOption
options
[]
=
{
{
"muxrate"
,
NULL
,
OFFSET
(
mux_rate
),
AV_OPT_TYPE_INT
,
{
0
},
0
,
INT_MAX
,
E
},
{
NULL
},
};
#define MPEGENC_CLASS(flavor)\
static const AVClass flavor ## _class = {\
.class_name = #flavor " muxer",\
.item_name = av_default_item_name,\
.version = LIBAVUTIL_VERSION_INT,\
.option = options,\
};
#if CONFIG_MPEG1SYSTEM_MUXER
MPEGENC_CLASS
(
mpeg
)
AVOutputFormat
ff_mpeg1system_muxer
=
{
.
name
=
"mpeg"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"MPEG-1 System format"
),
...
...
@@ -1239,9 +1261,11 @@ AVOutputFormat ff_mpeg1system_muxer = {
.
write_header
=
mpeg_mux_init
,
.
write_packet
=
mpeg_mux_write_packet
,
.
write_trailer
=
mpeg_mux_end
,
.
priv_class
=
&
mpeg_class
,
};
#endif
#if CONFIG_MPEG1VCD_MUXER
MPEGENC_CLASS
(
vcd
)
AVOutputFormat
ff_mpeg1vcd_muxer
=
{
.
name
=
"vcd"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"MPEG-1 System format (VCD)"
),
...
...
@@ -1252,9 +1276,11 @@ AVOutputFormat ff_mpeg1vcd_muxer = {
.
write_header
=
mpeg_mux_init
,
.
write_packet
=
mpeg_mux_write_packet
,
.
write_trailer
=
mpeg_mux_end
,
.
priv_class
=
&
vcd_class
,
};
#endif
#if CONFIG_MPEG2VOB_MUXER
MPEGENC_CLASS
(
vob
)
AVOutputFormat
ff_mpeg2vob_muxer
=
{
.
name
=
"vob"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"MPEG-2 PS format (VOB)"
),
...
...
@@ -1266,11 +1292,13 @@ AVOutputFormat ff_mpeg2vob_muxer = {
.
write_header
=
mpeg_mux_init
,
.
write_packet
=
mpeg_mux_write_packet
,
.
write_trailer
=
mpeg_mux_end
,
.
priv_class
=
&
vob_class
,
};
#endif
/* Same as mpeg2vob_mux except that the pack size is 2324 */
#if CONFIG_MPEG2SVCD_MUXER
MPEGENC_CLASS
(
svcd
)
AVOutputFormat
ff_mpeg2svcd_muxer
=
{
.
name
=
"svcd"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"MPEG-2 PS format (VOB)"
),
...
...
@@ -1282,11 +1310,13 @@ AVOutputFormat ff_mpeg2svcd_muxer = {
.
write_header
=
mpeg_mux_init
,
.
write_packet
=
mpeg_mux_write_packet
,
.
write_trailer
=
mpeg_mux_end
,
.
priv_class
=
&
svcd_class
,
};
#endif
/* Same as mpeg2vob_mux except the 'is_dvd' flag is set to produce NAV pkts */
#if CONFIG_MPEG2DVD_MUXER
MPEGENC_CLASS
(
dvd
)
AVOutputFormat
ff_mpeg2dvd_muxer
=
{
.
name
=
"dvd"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"MPEG-2 PS format (DVD VOB)"
),
...
...
@@ -1298,5 +1328,6 @@ AVOutputFormat ff_mpeg2dvd_muxer = {
.
write_header
=
mpeg_mux_init
,
.
write_packet
=
mpeg_mux_write_packet
,
.
write_trailer
=
mpeg_mux_end
,
.
priv_class
=
&
dvd_class
,
};
#endif
libavformat/mpegtsenc.c
View file @
5a9ee315
...
...
@@ -88,6 +88,7 @@ static const AVOption options[] = {
offsetof
(
MpegTSWrite
,
pmt_start_pid
),
AV_OPT_TYPE_INT
,
{.
dbl
=
0x1000
},
0x1000
,
0x1f00
,
AV_OPT_FLAG_ENCODING_PARAM
},
{
"mpegts_start_pid"
,
"Set the first pid."
,
offsetof
(
MpegTSWrite
,
start_pid
),
AV_OPT_TYPE_INT
,
{.
dbl
=
0x0100
},
0x0100
,
0x0f00
,
AV_OPT_FLAG_ENCODING_PARAM
},
{
"muxrate"
,
NULL
,
offsetof
(
MpegTSWrite
,
mux_rate
),
AV_OPT_TYPE_INT
,
{
1
},
0
,
INT_MAX
,
AV_OPT_FLAG_ENCODING_PARAM
},
{
NULL
},
};
...
...
@@ -539,7 +540,10 @@ static int mpegts_write_header(AVFormatContext *s)
service
->
pcr_pid
=
ts_st
->
pid
;
}
ts
->
mux_rate
=
s
->
mux_rate
?
s
->
mux_rate
:
1
;
#if FF_API_MUXRATE
if
(
s
->
mux_rate
)
ts
->
mux_rate
=
s
->
mux_rate
;
#endif
if
(
ts
->
mux_rate
>
1
)
{
service
->
pcr_packet_period
=
(
ts
->
mux_rate
*
PCR_RETRANS_TIME
)
/
...
...
libavformat/options.c
View file @
5a9ee315
...
...
@@ -74,7 +74,9 @@ static const AVClass *format_child_class_next(const AVClass *prev)
static
const
AVOption
options
[]
=
{
{
"probesize"
,
"set probing size"
,
OFFSET
(
probesize
),
AV_OPT_TYPE_INT
,
{.
dbl
=
5000000
},
32
,
INT_MAX
,
D
},
#if FF_API_MUXRATE
{
"muxrate"
,
"set mux rate"
,
OFFSET
(
mux_rate
),
AV_OPT_TYPE_INT
,
{.
dbl
=
DEFAULT
},
0
,
INT_MAX
,
E
},
#endif
{
"packetsize"
,
"set packet size"
,
OFFSET
(
packet_size
),
AV_OPT_TYPE_INT
,
{.
dbl
=
DEFAULT
},
0
,
INT_MAX
,
E
},
{
"fflags"
,
NULL
,
OFFSET
(
flags
),
AV_OPT_TYPE_FLAGS
,
{.
dbl
=
DEFAULT
},
INT_MIN
,
INT_MAX
,
D
|
E
,
"fflags"
},
{
"ignidx"
,
"ignore index"
,
0
,
AV_OPT_TYPE_CONST
,
{.
dbl
=
AVFMT_FLAG_IGNIDX
},
INT_MIN
,
INT_MAX
,
D
,
"fflags"
},
...
...
libavformat/version.h
View file @
5a9ee315
...
...
@@ -89,5 +89,8 @@
#ifndef FF_API_FILESIZE
#define FF_API_FILESIZE (LIBAVFORMAT_VERSION_MAJOR < 54)
#endif
#ifndef FF_API_MUXRATE
#define FF_API_MUXRATE (LIBAVFORMAT_VERSION_MAJOR < 54)
#endif
#endif
/* AVFORMAT_VERSION_H */
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