diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-08-26 14:04:39 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-08-26 14:05:07 +0200 |
commit | cf0e8e7ad4881d816546e0391c0e8256cbaa29dc (patch) | |
tree | 551b9ae009e696c5602e947102aa9e6d000e0d09 /libavformat | |
parent | ba650ea11825fdf7df479313bfca2a1003ffd90e (diff) | |
parent | 4e9e6fa99f3ff83cedbf6c378d62065ae419a3b9 (diff) | |
download | ffmpeg-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.h | 1 | ||||
-rw-r--r-- | libavformat/mpegenc.c | 13 |
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; } |