# HG changeset patch # User michael # Date 1096827705 0 # Node ID fbc9b13c35cddf089a08a971003c89dda080c19a # Parent b832a27355ec0aa812808bc5f6830aa1ce7e61f7 AVOutputFormat mpeg2dvd_mux and int is_dvd from the dvd patch by (Paul Curtis ) diff -r b832a27355ec -r fbc9b13c35cd mpeg.c --- a/mpeg.c Sun Oct 03 12:58:14 2004 +0000 +++ b/mpeg.c Sun Oct 03 18:21:45 2004 +0000 @@ -60,6 +60,7 @@ int is_mpeg2; int is_vcd; int is_svcd; + int is_dvd; int64_t last_scr; /* current system clock */ double vcd_padding_bitrate; //FIXME floats @@ -94,6 +95,7 @@ static AVOutputFormat mpeg1vcd_mux; static AVOutputFormat mpeg2vob_mux; static AVOutputFormat mpeg2svcd_mux; +static AVOutputFormat mpeg2dvd_mux; static int put_pack_header(AVFormatContext *ctx, uint8_t *buf, int64_t timestamp) @@ -251,7 +253,8 @@ s->packet_number = 0; s->is_vcd = (ctx->oformat == &mpeg1vcd_mux); s->is_svcd = (ctx->oformat == &mpeg2svcd_mux); - s->is_mpeg2 = (ctx->oformat == &mpeg2vob_mux || ctx->oformat == &mpeg2svcd_mux); + s->is_mpeg2 = (ctx->oformat == &mpeg2vob_mux || ctx->oformat == &mpeg2svcd_mux || ctx->oformat == &mpeg2dvd_mux); + s->is_dvd = (ctx->oformat == &mpeg2dvd_mux); if (s->is_vcd || s->is_svcd) s->packet_size = 2324; /* VCD/SVCD packet size */ @@ -1512,7 +1515,19 @@ mpeg_mux_end, }; - +/* Same as mpeg2vob_mux except the 'is_dvd' flag is set to produce NAV pkts */ +static AVOutputFormat mpeg2dvd_mux = { + "dvd", + "MPEG2 PS format (DVD VOB)", + "video/mpeg", + "dvd", + sizeof(MpegMuxContext), + CODEC_ID_MP2, + CODEC_ID_MPEG2VIDEO, + mpeg_mux_init, + mpeg_mux_write_packet, + mpeg_mux_end, +}; #endif //CONFIG_ENCODERS @@ -1535,6 +1550,7 @@ av_register_output_format(&mpeg1vcd_mux); av_register_output_format(&mpeg2vob_mux); av_register_output_format(&mpeg2svcd_mux); + av_register_output_format(&mpeg2dvd_mux); #endif //CONFIG_ENCODERS av_register_input_format(&mpegps_demux); return 0;