Commit Graph

267 Commits

Author SHA1 Message Date
Michael Niedermayer 33650e0e42 avformat/mpegtsenc: Do not create invalid files from annex b streams without SPS/PPS
use global headers to create SPS/PPS when they are available

Fixes Ticket4248

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-12 23:13:15 +01:00
Matt Oliver 22504396fe avformat/mpegtsenc: Fix build with msvc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-03 15:15:50 +01:00
Michael Niedermayer c348a42dcc Revert "avformat/mpegtsenc: Change the service_type field to enum"
This isnt safe due to AVOption accessing this field as int
i just realized a moment after pushing

This reverts commit 0935453e84.
2015-02-02 22:30:56 +01:00
Michael Niedermayer 0935453e84 avformat/mpegtsenc: Change the service_type field to enum
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-02 22:15:39 +01:00
dhead666 48e36f8a12 libavformat/mpegtsenc: allow to set service_type in sdt
This adds an option to set the service type in mpegts as defined in ETSI 300 468.

I added what I believe are the most useful service types as pre defined values,
the others can be sent by using their hexdecimal form directly (e.g. -mpegts_service_type digital_radio, -mpegts_service_type 0x07).

I've been using this patch in order to pipe internet radio stream (originally as HLS/m3u8) from ffmpeg to tvheadend,
when the service type set right tvheadend recognize the mpegts stream as a radio channel.

The patch in its original form was written by linuxstb from freenode's hts channel which allowed me pushing it upstream.

This close issue 4118.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-02 22:02:26 +01:00
Michael Niedermayer f7a4589b36 avformat/mpegtsenc: Use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-21 19:25:17 +01:00
Michael Niedermayer 6b0f54ddc7 Merge commit 'e2ce16392205d8efe9143329ed3fb5fcb15498fa'
* commit 'e2ce16392205d8efe9143329ed3fb5fcb15498fa':
  mpegts: Support running the write_trailer function without an AVIOContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-20 00:33:40 +01:00
Martin Storsjö e2ce163922 mpegts: Support running the write_trailer function without an AVIOContext
If opening and closing dynamic buffers as AVIOContext, we may
not have any AVIOContext available when wanting to close and
deallocate the muxer. Allow calling write_trailer despite this.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-12-19 23:13:04 +02:00
Michael Niedermayer d76adfae9c Merge commit '8f8caca2242e1fe05f37493cfabcd3f4de198550'
* commit '8f8caca2242e1fe05f37493cfabcd3f4de198550':
  Add support for BDAV/m2ts-mode muxing

Conflicts:
	libavformat/mpegtsenc.c

See: 09a858da7d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 22:42:35 +01:00
Florent Le Coz 2e0935965b Drop the unofficial extension prefix for MPEG and MPEG-TS formats
As per the RFCs:
http://tools.ietf.org/html/rfc3555#page-38
http://tools.ietf.org/html/rfc3003

CC: libav-stable@libav.org
2014-12-02 15:28:22 +00:00
Fredrik Axelsson 8f8caca224 Add support for BDAV/m2ts-mode muxing
Signed-off-by: Fredrik Axelsson <fraxbe@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-02 15:28:22 +00:00
Jean-Baptiste Mardelle 7319a47c7e mpegtsenc: recognize .mts as MPEG Transport Stream 2014-12-02 15:28:22 +00:00
dedicatedbroadcastsolutions 873dac50f5 avformat/mpegtsenc: change the min value for mpegts_start_pid to allow ATSC PIDs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-19 00:49:18 +01:00
Michael Niedermayer 3726d07a2a Merge commit '28816050e47b6dba430a52e429d21a864cffda8e'
* commit '28816050e47b6dba430a52e429d21a864cffda8e':
  lavf: Set the stream time base hint properly for chained muxers

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 02:51:08 +02:00
Martin Storsjö 28816050e4 lavf: Set the stream time base hint properly for chained muxers
This avoids warnings about using the codec time base as time
base hint.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-06 23:30:52 +03:00
Michael Niedermayer aaeae281a8 avformat/mpegtsenc: More verbose warning messages in case of missing video ES startcodes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-16 03:56:37 +02:00
Moritz Barsnick 66d02d3ca6 align and correct messages regarding bitstream filters
The messages regarding the recommended use of bitstream filters are somewhat different.
This also adds the ":v" stream specifier to "-bsf h264_mp4toannexb".

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-19 20:18:01 +02:00
Michael Niedermayer fb33bff990 Merge commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39'
* commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39':
  cosmetics: Write NULL pointer equality checks more compactly

Conflicts:
	cmdutils.c
	ffmpeg_opt.c
	ffplay.c
	libavcodec/dvbsub.c
	libavcodec/dvdsubdec.c
	libavcodec/dvdsubenc.c
	libavcodec/dxa.c
	libavcodec/libxvid_rc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/rv10.c
	libavcodec/tiffenc.c
	libavcodec/utils.c
	libavcodec/vc1dec.c
	libavcodec/zmbv.c
	libavdevice/v4l2.c
	libavformat/matroskadec.c
	libavformat/movenc.c
	libavformat/sdp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 21:00:50 +02:00
Michael Niedermayer 1d7544b752 Merge commit 'e8049af1325dd59a51546c15b2e71a0f578e9d27'
* commit 'e8049af1325dd59a51546c15b2e71a0f578e9d27':
  mpegts: Do not try to write a PMT larger than SECTION_SIZE

Conflicts:
	libavformat/mpegtsenc.c

See: 842b6c14bc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 02:13:46 +02:00
Luca Barbato e8049af132 mpegts: Do not try to write a PMT larger than SECTION_SIZE
Prevent out of array writes.

Similar to what Michael Niedermayer did to address the same issue.

Bug-Id: CVE-2014-2263
CC: libav-stable@libav.org

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-13 12:43:26 -07:00
Carl Eugen Hoyos fddea3f074 Check for hevc startcode when muxing into mpeg-ts. 2014-08-12 08:48:20 +02:00
Michael Niedermayer d123d9abef Merge commit '8dca0877e3e1457e9ec79ffa1ead1135aabb791c'
* commit '8dca0877e3e1457e9ec79ffa1ead1135aabb791c':
  mpegts: Return proper error code on invalid input data

Conflicts:
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 20:34:28 +02:00
Nidhi Makhijani 8dca0877e3 mpegts: Return proper error code on invalid input data
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-10 07:24:30 -07:00
Diego Biurrun 454697603e mpegts: Use av_free() to free memory allocated by av_strdup() 2014-08-08 03:12:57 -07:00
Michael Niedermayer 92a28e9f56 avformat/mpegtsenc: Use av_freep() for pids
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:04:32 +02:00
Michael Niedermayer 31eaecfee9 avformat/mpegtsenc: Free services array completely on failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:04:23 +02:00
Michael Niedermayer 12b59e57f3 avformat/mpegtsenc: Use correct deallocation code on failure of pids array allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:02:10 +02:00
Michael Niedermayer 5f8300afc6 mpegtsenc: Check dynarray_add() for failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:02:10 +02:00
Michael Niedermayer 92deb28945 avformat/mpegtsenc: use the correct deallocation functions
Found-by: Carl Eugen Hoyos <ce@hoyos.ws>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 23:01:51 +02:00
Michael Niedermayer efcf1fcad3 Merge commit '5b220e1e19c17b202d83d9be0868d152109ae8f0'
* commit '5b220e1e19c17b202d83d9be0868d152109ae8f0':
  mpegts: Fix memory leaks and related crashes in mpegs_write_header()

Conflicts:
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 22:11:37 +02:00
Michael Niedermayer 3224a319c0 Merge commit 'f8ab9f2fe3730a0e8c3c1eb7c486f7c0041fb3fc'
* commit 'f8ab9f2fe3730a0e8c3c1eb7c486f7c0041fb3fc':
  mpegts: Avoid unnecessary variable shadowing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 22:06:06 +02:00
Michael Niedermayer 066d776501 Merge commit '6d6bd3a3db24747ae5e10716f4782129c38951f6'
* commit '6d6bd3a3db24747ae5e10716f4782129c38951f6':
  mpegts: Drop some unnecessary parentheses

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 21:42:34 +02:00
Michael Niedermayer ec0b08d20b Merge commit 'b7b1bf9166ac3102c401295fdd5d4933c512aa50'
* commit 'b7b1bf9166ac3102c401295fdd5d4933c512aa50':
  mpegts: K&R formatting cosmetics

Conflicts:
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 21:16:06 +02:00
Diego Biurrun 5b220e1e19 mpegts: Fix memory leaks and related crashes in mpegs_write_header() 2014-08-07 07:52:17 -07:00
Diego Biurrun f8ab9f2fe3 mpegts: Avoid unnecessary variable shadowing 2014-08-07 07:52:17 -07:00
Diego Biurrun 6d6bd3a3db mpegts: Drop some unnecessary parentheses 2014-08-07 07:52:17 -07:00
Diego Biurrun b7b1bf9166 mpegts: K&R formatting cosmetics 2014-08-07 07:48:54 -07:00
Michael Niedermayer 94d4f9d405 Merge commit '89616408e38ac7257e36976723df0e23d6ee1157'
* commit '89616408e38ac7257e36976723df0e23d6ee1157':
  mpegts: Define the section length with a constant

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 13:45:26 +02:00
Femi Adeyemi-Ejeye 2601a9447e mpegts: Add HEVC definitions
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-05 11:30:50 +02:00
Luca Barbato 89616408e3 mpegts: Define the section length with a constant
The specification says the value is expressed in 10 bits including
the 4-byte CRC.
2014-08-04 22:22:54 +02:00
Michael Niedermayer 6cdf409884 avformat/mpegtsenc: do not flush after everything
there is flushing code in the avformat core that does this in a more
controlled way.

Fixes ticket2748

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 18:10:04 +02:00
Michael Niedermayer ac293b6685 Merge commit '194be1f43ea391eb986732707435176e579265aa'
* commit '194be1f43ea391eb986732707435176e579265aa':
  lavf: switch to AVStream.time_base as the hint for the muxer timebase

Conflicts:
	doc/APIchanges
	libavformat/filmstripenc.c
	libavformat/movenc.c
	libavformat/mxfenc.c
	libavformat/oggenc.c
	libavformat/swf.h
	libavformat/version.h
	tests/ref/lavf/mkv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 19:49:17 +02:00
Anton Khirnov 194be1f43e lavf: switch to AVStream.time_base as the hint for the muxer timebase
Previously, AVStream.codec.time_base was used for that purpose, which
was quite confusing for the callers. This change also opens the path for
removing AVStream.codec.

The change in the lavf-mkv test is due to the native timebase (1/1000)
being used instead of the default one (1/90000), so the packets are now
sent to the crc muxer in the same order in which they are demuxed
(previously some of them got reordered because of inexact timestamp
conversion).
2014-06-18 15:12:34 +02:00
Michael Niedermayer aff0912da5 Merge commit 'f121dbd9f76031d7f6d56261be2f14937a19d2dd'
* commit 'f121dbd9f76031d7f6d56261be2f14937a19d2dd':
  mpegts: Provide an option to override the pcr period

Conflicts:
	doc/muxers.texi
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 23:55:57 +02:00
Michael Niedermayer 2d99b4041f Merge commit '3f7e94eccd1c0d64679f2c4eda8bb942a158dfac'
* commit '3f7e94eccd1c0d64679f2c4eda8bb942a158dfac':
  mpegts: Move the option section to the bottom

Conflicts:
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 23:27:16 +02:00
Luca Barbato f121dbd9f7 mpegts: Provide an option to override the pcr period
Certain hardware demuxer have specific restrictions for PCR periodicity.
2014-06-10 22:05:44 +02:00
Luca Barbato 3f7e94eccd mpegts: Move the option section to the bottom
Makes it consistent with the rest of the formats and ease usage
of macros constants for the defaults.
2014-06-10 22:05:44 +02:00
Florent Le Coz fdcb2873e1 Fix the mime types for MPEG and MPEG-TS formats
As per the RFCs:
http://tools.ietf.org/html/rfc3555#page-38
http://tools.ietf.org/html/rfc3003
2014-05-22 23:34:59 +02:00
Michael Niedermayer 6552e23d56 avformat/mpegtsenc: fix dts for chained muxing aac in mpegts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 16:30:46 +02:00
Aman Gupta 72fed6d122 avformat/mpegtsenc: fix minor typo in omit_video_pes_length description
Signed-off-by: Aman Gupta <ffmpeg@tmm1.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 03:20:00 +02:00