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
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
Hide 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