1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-03-08 22:39:44 +02:00

20889 Commits

Author SHA1 Message Date
Hendrik Leppkes
3e9d676192 spdifenc: support ac3 core+eac3 dependent streams
Such streams are found on Blu-ray, and identified as EAC3 type in
avformat, while the bitstream of the core stream is actually a pure AC3
frame.

Adjust the parsing accordingly, since AC3 frames always hold 6 blocks
and the numblkscod syntax element is not present.
2018-04-11 11:37:05 +02:00
Bela Bodecs
9825f77ac7 avformat/hlsenc: fix handling of delete_segments when %v is present
When var_stream_map option is used, %v must appear either in segment
name template or in the directory path. This latter case currently is
not handled and delete_segments flag of hls_flags is broken now. This
patch fix this. The root cause of the bug was that HLSSegment struct
only stores the final filename part, but not the final directory path.
Most of the cases, final path info is unneded, It only necessary when
you want to delete old segments (e.g in case of live streaming).
Without variant streams it was unnecessary to store the final directory
path, because all segment were stored into the same directory. But
introducing %v in directory names either require to store the final
directory path into HLSSegment or associate segments with their variant
streams to be able deleting them later. I have choosen the second
solution and introduced a variant index data member into the segment
struct.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Signed-off-by: Steven Liu <lq@onvideo.cn>
2018-04-11 11:15:54 +08:00
Timo Teräs
62c1cfcc35 avformat/movenc: use correct iTunes copyright atom
Support for writing copyright metadata was added in commit bed4fc54c9
for 3GP, MOV and iTunes metadata. 3GP and MOV cases are formally
specified. However, iTunes format does not have specification, and
it seems to have been assumed that it would use the same atom as
MOV (both being Apple formats).

However, Apple uses 'cprt' atom for iTunes metadata (do note that
the iTunes 'cprt' encoding is generic iTunes ItemList atom, not
the 3GP 'cprt' encoding. These are also inside different parent
atoms).

Most references trying to document iTunes atoms mention only
the 'cprt' tag. See:
 - http://atomicparsley.sourceforge.net/mpeg-4files.html
 - http://mutagen.readthedocs.io/en/latest/api/mp4.html

Same applies to other software supporting this tag. Most of them
encode and decode only the 'cprt' atom.

ffmpeg mov demuxer supports both atoms in this context. There are
few pieces of other software that support similarly both 'cprt' and
the incorrect '\251cpy' atom in this context. I believe they do it in
order to read the ffmpeg encoded incorrect copyright atom.

In light of the above this changes the copyright atom to 'cprt' as
it seems to be supported univerally and is the correct atom to use.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-11 02:42:41 +02:00
Misty De Meo
d64183ea5d Sega FILM: set dts and duration when demuxing
Reviewed-by: Kyle Swanson <k@ylo.ph>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-10 02:36:11 +02:00
Carl Eugen Hoyos
4d1d7263d8 lavf/segafilmenc: Do not mix variable declaration and code.
Fixes two warnings: ISO C90 forbids mixed declarations and code
2018-04-10 00:50:01 +02:00
James Almer
9703b7d05f avformat/matroskadec: reference the existing data buffer when creating packets
Newly allocated data buffers (wavpack, prores, compressed buffers)
are padded to meet the requirements of AVPacket.

About 10x speed up in matroska_parse_frame().

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-06 21:14:50 -03:00
James Almer
b8e75a2a08 avformat/matroskadec: factor the prores packet parsing code out
Simplifies code in matroska_parse_frame(). This is in preparation for
the following patch.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-06 21:14:50 -03:00
James Almer
a61886650b avformat/matroskadec: use refcounted buffers in EbmlBin
Data in EbmlBin objects is never changed after being read from the
input file (save for two specific cases with encoded CodePrivate), so
using AVBufferRef we can prevent unnecessary copy of data by instead
creating new references to said constant data.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-06 21:14:49 -03:00
Carl Eugen Hoyos
233f52fd25 lavf/amr: Stricter heuristic for auto-detection.
Fixes ticket .
2018-04-06 00:21:22 +02:00
Misty De Meo
187ff5a108 Add Sega FILM muxer
Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-04-05 22:04:30 +01:00
Jacob Trimble
b08c132a9c avformat/mov: Fix parsing of tfdt when using sample descriptors.
Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-05 20:10:24 +02:00
Timo Teräs
53688b62ca avformat/movenc: add rtp_hinting_needed() helper function
This is shared test and this simplifies code a bit. Follow up
commit will have additional tests for this function.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-04 19:09:28 +02:00
James Almer
4f55b94663 avformat/matroskadec: address some more missing AVPacket frees
Fixes memleaks.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-04 13:53:12 -03:00
James Almer
2f0e0deadc avformat/matroskadec: address a missing AVPacket free
Fixes memleaks.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-04 10:54:14 -03:00
James Almer
d95f15b14d avformat/mp3enc: use AVPacketList helper functions to queue packets
Simplifies code.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-04 00:15:39 -03:00
James Almer
15ca8311e6 avformat/ttaenc: use AVPacketList helper functions to queue packets
Simplifies code.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-04 00:15:38 -03:00
James Almer
78b96be758 avformat/matroskadec: use AVPacketList to queue packets
It's more robust and efficient.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-04 00:15:38 -03:00
James Almer
58ce4fdeae avformat/utils: optimize ff_packet_list_free()
Don't constantly overwrite the list's head pointer.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-04 00:15:38 -03:00
James Almer
3a4d74c1ff avformat/utils: make AVPacketList helper functions shared
Based on a patch by Luca Barbato.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-04 00:15:37 -03:00
Jun Zhao
51e3010575 lavf/hls: Remove the dead code in parse_playlist()
Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Reviewed-by: Steven Liu <lq@onvideo.cn>
2018-04-04 11:04:56 +08:00
Jun Zhao
c6c20249e7 avformat/options_table: Change the seek2any location in opt table.
Change the seek2any location in avformat_options to make code more
readable.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-02 23:27:51 +02:00
Paul B Mahol
46129b4044 avformat/rmdec: make use of avio_get_str()
Also do not set empty metadata.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-04-02 22:44:26 +02:00
Marton Balint
37d472a906 avformat/concatdec: only set output stream index before returning packet
Fixes ticket .

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-04-02 20:41:53 +02:00
James Almer
02ae52db87 avformat/utils: use av_packet_make_refcounted to ensure packets are ref counted
Simplifies code, while also fixing a potential leak of side data in pkt.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-02 00:37:51 -03:00
Josh de Kock
e0f3228686 lavf/img2dec: use new iteration API
Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-04-02 03:26:22 +01:00
Josh de Kock
89029bd2c7 lav*,tests: remove several register_all calls
avdevice_register_all() is still required to register devices into
lavf (this is required due to lavd being somewhat of a hack).

Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-04-02 03:26:22 +01:00
Josh de Kock
d1221f3351 lavf/format: use const AVInputFormat for iteration
Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-04-02 03:26:22 +01:00
Josh de Kock
85bf89885a Revert "avformat/format: temporarily use old next api"
This reverts commit 909e00ae816df9b6a05b1c4d0cafb794d4d0ca28.

There is no need to use the old API anymore as the new API now
behaves in the same way (treating devices as formats when loaded).

Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-04-02 03:26:22 +01:00
Josh de Kock
db85d657fa lavf/allformats: remove left-over index decrement
Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-04-02 02:18:21 +01:00
Josh de Kock
42d26145e9 lavf: move avpriv function definition to internal.h
Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-04-02 02:16:14 +01:00
Paul B Mahol
0995641202 avformat/mpeg: add missing check
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-04-01 21:08:16 +02:00
Paul B Mahol
1f7705e5b1 avformat/mpeg: fix logic failure
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-04-01 20:58:48 +02:00
Paul B Mahol
7643e27528 avformat/mpeg: fix detection and demuxing of raw AC3 in mpegps
Fixes .

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-04-01 20:53:43 +02:00
Paul B Mahol
52e97814a1 avformat/mpeg: fix PCM-DVD mis-detection as MLP
Fixes .

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-04-01 20:43:54 +02:00
Timo Teräs
8c980b1c92 avformat/mov: parse multiple iTunes cover images
Multiple cover images are supported by having multiple data atoms
inside the covr atom. AtomicParsley and mutagen amongst others
support and document this construct.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-01 02:58:51 +02:00
Josh de Kock
65452bcd64 lavd: remove linked lists
Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-03-31 23:26:31 +01:00
Josh de Kock
d8ae40611b Revert "lavd: add new API for iterating input and output devices"
This reverts commit 0fd475704e871ef3a535947596a012894bae3cbd.

Revert "lavd: fix iterating of input and output devices"

This reverts commit ce1d77a5e7cebce11074bf6f9e38ad6da37338ff.

Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-03-31 23:26:31 +01:00
James Almer
a123e576a4 Merge commit 'a2fc8dbae85339d1b418d296f2982b6c04c53c57'
* commit 'a2fc8dbae85339d1b418d296f2982b6c04c53c57':
  Add Haivision SRT protocol

Merged-by: James Almer <jamrial@gmail.com>
2018-03-29 21:56:19 -03:00
Paul B Mahol
a8a751ce9a avformat/mpc8: do not return error on stream end
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-03-29 20:46:36 +02:00
James Almer
cbd5e737fe Merge commit '44a1731011e87fbf4180d026aefb8bfe85d8c7dc'
* commit '44a1731011e87fbf4180d026aefb8bfe85d8c7dc':
  ivf: Support VP9 and AV1 as well

See e8f0a463b0d27a4d74c0d9f1857e72a8033d1069

Merged-by: James Almer <jamrial@gmail.com>
2018-03-28 15:46:59 -03:00
Sven Dueking
a2fc8dbae8 Add Haivision SRT protocol
The protocol requires libsrt (https://github.com/Haivision/srt) to be
installed

Signed-off-by: Sven Dueking <sven.dueking@nablet.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2018-03-28 16:16:41 +02:00
sanilraut
10d008f0fd avformat/dashdec: Support signaling of last segment number
Last segment indicated by mpd is not parsed.
Example stream: http://dash.akamaized.net/dash264/TestCasesIOP41/LastSegmentNumber/1/manifest_last_segment_num.mpd

This patch supports parsing of Supplemental Descriptor with @schemeIdUri set to http://dashif.org/guide-
lines/last-segment-number with the @value set to the last segment number.

Reviewed-by: Steven Liu <lq@onvideo.cn>
2018-03-28 19:52:27 +08:00
Timo Rothenpieler
3914c8e0e6 avformat/hlsenc: initialize saveptrs
av_strtok calls strspn on a non-NULL *saveptr, so not NULL initializing
it is an issue.
Fixes CID 

Reviewed-by: Karthick Jeyapal <kjeyapal@akamai.com>
Signed-off-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-03-27 06:56:27 +08:00
Gyan Doshi
cfe1a9d311 avformat/segafilm - fix keyframe detection and set packet flags
Streams from a Segafilm cpk file can't be streamcopied because
keyframe flag isn't correctly set in stream index and
said flag is never conveyed to the packet

Fixes 

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-26 16:03:13 -03:00
James Almer
3eff98c927 avformat/rtpenc_chain: use the proper function to free AVFormatContext
Fixes ticket 

Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-26 00:52:39 -03:00
Michael Niedermayer
eb60b9d3aa avformat/mov: Move +1 in check to avoid hypothetical overflow in add_ctts_entry()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-26 02:16:48 +02:00
Jan Ekström
5b31dd1c6b avformat/hlsenc: use stream's maximum bit rate as fall-back advertised rate
Enables having proper bit rate values being written into the master
playlist in case of hard-constrained VBR where the maximum bit
rate utilized is known before hand.

Does the same thing as movenc.c, for example.

Signed-off-by: Jan Ekström <jan.ekstrom@aminocom.com>
2018-03-25 01:07:10 +02:00
Sasi Inguva
829aebf95d lavf/utils.c: Don't compute start_time from DISCARD packets for video.
Signed-off-by: Sasi Inguva <isasi@isasi.mtv.corp.google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-24 03:11:08 +01:00
Courtland Idstrom
65616bc191 lavf/movenc: write track title metadata for mov files
Track title (atom 'name') is a well defined user data atom for mov files. Existing code (for mp4) only writes title metadata if present.

Relevant reference docs:

  https://developer.apple.com/library/content/documentation/QuickTime/Reference/QTRef_AtomsResources/Content/QTRef_AtomsResources4.html#//apple_ref/doc/uid/TP40004285-DontLinkChapterID_1--udta-
  https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-63839
2018-03-22 20:59:16 +02:00
Bela Bodecs
1b45e6db22 avformat/unix: fix handling of EOF in case of SOCK_STREAM.
When recv() returns 0 in case of SOCK_STREAM type, it means EOF and with
this patch returns value accordingly.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
2018-03-21 19:02:06 +01:00