aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-08-26 14:04:39 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-08-26 14:05:07 +0200
commitcf0e8e7ad4881d816546e0391c0e8256cbaa29dc (patch)
tree551b9ae009e696c5602e947102aa9e6d000e0d09 /libavformat
parentba650ea11825fdf7df479313bfca2a1003ffd90e (diff)
parent4e9e6fa99f3ff83cedbf6c378d62065ae419a3b9 (diff)
downloadffmpeg-cf0e8e7ad4881d816546e0391c0e8256cbaa29dc.tar.gz
Merge commit '4e9e6fa99f3ff83cedbf6c378d62065ae419a3b9'
* commit '4e9e6fa99f3ff83cedbf6c378d62065ae419a3b9': mpeg: Write H264 streams at offset 2 Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/mpeg.h1
-rw-r--r--libavformat/mpegenc.c13
2 files changed, 10 insertions, 4 deletions
diff --git a/libavformat/mpeg.h b/libavformat/mpeg.h
index 55f9e0cb51..b43517c30a 100644
--- a/libavformat/mpeg.h
+++ b/libavformat/mpeg.h
@@ -40,6 +40,7 @@
#define AUDIO_ID 0xc0
#define VIDEO_ID 0xe0
+#define H264_ID 0xe2
#define AC3_ID 0x80
#define DTS_ID 0x88
#define LPCM_ID 0xa0
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index e4c9995d79..d3af9e1ea7 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -301,7 +301,7 @@ static int get_system_header_size(AVFormatContext *ctx)
static av_cold int mpeg_mux_init(AVFormatContext *ctx)
{
MpegMuxContext *s = ctx->priv_data;
- int bitrate, i, mpa_id, mpv_id, mps_id, ac3_id, dts_id, lpcm_id, j;
+ int bitrate, i, mpa_id, mpv_id, h264_id, mps_id, ac3_id, dts_id, lpcm_id, j;
AVStream *st;
StreamInfo *stream;
int audio_bitrate;
@@ -337,6 +337,7 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx)
ac3_id = AC3_ID;
dts_id = DTS_ID;
mpv_id = VIDEO_ID;
+ h264_id = H264_ID;
mps_id = SUB_ID;
lpcm_id = LPCM_ID;
@@ -388,7 +389,10 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx)
s->audio_bound++;
break;
case AVMEDIA_TYPE_VIDEO:
- stream->id = mpv_id++;
+ if (st->codec->codec_id == AV_CODEC_ID_H264)
+ stream->id = h264_id++;
+ else
+ stream->id = mpv_id++;
if (st->codec->rc_buffer_size)
stream->max_buffer_size = 6 * 1024 + st->codec->rc_buffer_size / 8;
else {
@@ -424,7 +428,8 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx)
st = ctx->streams[i];
stream = (StreamInfo *)st->priv_data;
- if (st->codec->rc_max_rate || stream->id == VIDEO_ID)
+ if (st->codec->rc_max_rate ||
+ st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
codec_rate = st->codec->rc_max_rate;
else
codec_rate = st->codec->bit_rate;
@@ -436,7 +441,7 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx)
if ((stream->id & 0xe0) == AUDIO_ID)
audio_bitrate += codec_rate;
- else if (stream->id == VIDEO_ID)
+ else if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
video_bitrate += codec_rate;
}