Commit Graph

251 Commits

Author SHA1 Message Date
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
goodthanks
c9cfd45838 avformat/mpegtsenc: Allow DTS audio copy to TS streams
This doesn't allow encoding of DTS or TrueHD. It just sets the correct
stream ID in the TS output file when a DTS or TrueHD audio stream is copied.

Fixes ticket #1398

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 14:24:29 +02:00
Michael Niedermayer
66e30a2e65 avformat/mpegtsenc: check avformat_new_stream() return
Fixes CID1206645
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 22:08:37 +02:00
Reimar Döffinger
3bd7a7149f Add missing ';'.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-22 20:44:31 +02:00
Michael Niedermayer
f1c48c3a4d avformat/mpegtsenc: make the pes packet length omission optional
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 16:11:12 +02:00
Graham Booker
60fcc19b90 avformat/mpegtsenc: Changed Video PES packet length to 0.
The rational for this is another issue that plex has exposed.  When it is
conducting a transcode of video to HLS for streaming, my father noticed
artifacts when played on his GoogleTV (NSZ-GT1).  He sent me a test file
and I reproduced it on my device of the same model.  It is important to
note that the artifacts were not present when streaming to VLC or QuickTime
Player.  I copied the command-line that plex used, and conducted all of the
following tests using FFmpeg git.

Transcode to HLS: artifacts on playback
Transcode to TS: playback is fine
Cat HLS segments into a single TS: playback is fine
Segment single TS file to segments: artifacts on playback
Segment single TS file to segments using Apple's HLS segmenter: playback is
fine

At this point I carefully examined the differences between Apple's HLS
segmenter output and FFmpeg's.  Among the considerable differences, I
noticed that the video PES packets always had a 0 length.  So I continued:

Transcode to HLS using FFmpeg with 0 length PES packets: playback is fine.
Segment single TS to segments with 0 length PES packets: playback is fine.

All failures mentioned are only on the GTV since it is the only player on
which I could reproduce artifacts.  I only tested the GTV, VLC, and
QuickTime Player though, so my test case is limited.  I do not know if
other players exhibit this issue.

Since it was useful last time, I have uploaded the test file as
hls_pes_packet_length.m4v along with its associated txt file which contains
the transcode command-line that was used.

Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 16:05:25 +02:00
Michael Niedermayer
337f74868c avformat/mpegtsenc: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 13:51:48 +02:00
Peter Ross
e61973db6c avformat/mpegtsenc: move startcode validity check to ff_check_h264_startcode
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 16:36:22 +02:00
olugbone
b2880a3de9 avformat/mpegtsenc: fix HEVC MPEG TS stream type
Allowing HEVC video using TS stream type 0x24

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 15:44:04 +01:00
Michael Niedermayer
842b6c14bc avformat/mpegtsenc: Check data array size in mpegts_write_pmt()
Prevents out of array writes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 14:14:12 +01:00
mrlika
af786236cc mpegts muxer: DVB subtitles multiple languages support
* restore multiple languages data from extradata to PMT table
* setting correctly hearing empaired subtitling type

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 13:43:57 +01:00
Serhii Marchuk
2ebee19e1e mpegts muxer: restore PMT table of DVB teletext from extradata
* Using extradata by TS muxer to correctly restore PMT table
* PES_header_data_length should be always 0x24 for DVB teletext,
  according to DVB standard

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:07:40 +01:00
Serhii Marchuk
f8051bd31a mpegts muxer: Change the default subtitle language to "und"
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:01:37 +01:00
Stefano Sabatini
a2e78161ce lavf/mpegtsenc: fix weird indent 2014-01-21 20:08:36 +01:00
Serhii Marchuk
c917cde9cc mpegts muxer, DVB subtitles encoder: common DVB subtitles payload
Improved DVB subtitles encoder to generate AVPacket.data in the same
format as generates MPEGTS demuxer + DVB subtitles parser. So now single
format of DVB subtitles data is used across all the components of FFmpeg:
only subtitles payload WITHOUT 0x20 0x00 bytes at the beginning and 0xFF
trailing byte.

Improved MPEGTS muxer to support format of DVB subtitles in
AVPacket.data described above: while muxing we add two bytes 0x20 0x00 to
the beginning of and 0xFF to the end of DVB subtitles payload.

The patch fixes DVB subtitle copy problems: tickets #2989 fully and #2024
partly.

Signed-off-by: Clément Bœsch <u@pkh.me>
2014-01-12 16:40:52 +01:00
Andrey Utkin
b7ed18b9bd mpegtsenc: add option tables_version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-03 12:44:53 +02:00
Timothy Gu
a9bbf59be7 cosmetics: Fix "dont" "wont" "doesnt" typos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-06-29 02:31:16 +02:00