summaryrefslogtreecommitdiff
path: root/ffmpeg.c
Commit message (Collapse)AuthorAge
* ffmpeg: Initialize two stack variables.Carl Eugen Hoyos2017-03-21
| | | | Avoids reading from uninitialized memory, regression since af1761f7
* ffmpeg: don't unnecessarily use a deprecated API functionwm42017-03-21
| | | | | Since we've disabled side data merging in ffmpeg.c, this really changes nothing.
* ffmpeg: set the encoding framerate when the output is CFRAnton Khirnov2017-03-17
| | | | | | (cherry picked from Libav commit d10102d23c9467d4eb84f58e0cd12be284b982f6) Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
* Merge commit 'e46a6fb7732a7caef97a916a4f765ec0f779d195'Clément Bœsch2017-03-15
|\ | | | | | | | | | | | | | | | | | | | | | | * commit 'e46a6fb7732a7caef97a916a4f765ec0f779d195': avconv: Check that muxing_queue exists before reading from it Mostly noop. This was fixed in FFmpeg in 7f7c494a3. The merge makes the cosmetics match but does not include the weird av_log(). Merged-by: Clément Bœsch <cboesch@gopro.com>
* | Merge commit 'b0f36a0043d76436cc7ab8ff92ab99c94595d3c0'Clément Bœsch2017-03-12
|\| | | | | | | | | | | | | * commit 'b0f36a0043d76436cc7ab8ff92ab99c94595d3c0': avconv: stop using setpts for input framerate forced with -r Merged-by: Clément Bœsch <u@pkh.me>
* | ffmpeg: remove unnecessary hack for decoders which refuse to drainwm42017-03-06
| | | | | | | | Now the previous commit takes care of this instead.
* | ffmpeg: delay processing of subtitles before filters are initializedwm42017-03-03
| | | | | | | | | | | | | | If a subtitle packet came before the first video frame could be fully decoded, the subtitle packet would get discarded. This puts the subtitle into a queue instead, and processes it once the attached filter graph is initialized.
* | ffmpeg_cuvid: adapt for recent filter graph initialization changesTimo Rothenpieler2017-03-03
| |
* | ffmpeg: restructure sending EOF to filtersAnton Khirnov2017-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Be more careful when an input stream encounters EOF when its filtergraph has not been configured yet. The current code would immediately mark the corresponding output streams as finished, while there may still be buffered frames waiting for frames to appear on other filtergraph inputs. This should fix the random FATE failures for complex filtergraph tests after a3a0230a9870b9018dc7415ae5872784d524cfe5 This merges Libav commit 94ebf55. It was previously skipped. This is the last filter init related Libav commit that was skipped, so this also removes the commits from doc/libav-merge.txt. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | ffmpeg: move flushing the queued frames to configure_filtergraph()Anton Khirnov2017-03-03
| | | | | | | | | | | | | | | | | | This is a more appropriate place for it, and will also be useful in the following commit. This merges Libav commit d2e56cf. It was previously skipped. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | ffmpeg: init filtergraphs only after we have a frame on each inputAnton Khirnov2017-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes sure the actual stream parameters are used, which is important mainly for hardware decoding+filtering cases, which would previously require various weird workarounds to handle the fact that a fake software graph has to be constructed, but never used. This should also improve behaviour in rare cases where avformat_find_stream_info() does not provide accurate information. This merges Libav commit a3a0230. It was previously skipped. The code in flush_encoders() which sets up a "fake" format wasn't in Libav. I'm not sure if it's a good idea, but it tends to give behavior closer to the old one in certain corner cases. The vp8-size-change gives different result, because now the size of the first frame is used. libavformat reported the size of the largest frame for some reason. The exr tests now use the sample aspect ratio of the first frame. For some reason libavformat determines 0/1 as aspect ratio, while the decoder returns the correct one. The ffm and mxf tests change the field_order values. I'm assuming another libavformat/decoding mismatch. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | ffmpeg: do packet ts rescaling in write_packet()Anton Khirnov2017-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will be useful in the following commit, after which the muxer timebase is not always available when encoding. This merges Libav commit 3e265ca. It was previously skipped. There are some changes with how/when the mux_timebase field is set, because the Libav approach often causes a too imprecise time base to be set. This is hard, because the muxer's write_header function can readjust the timebase, at which point we might already have encoded packets buffered. (It might be better to buffer them after the encoder, instead of after all the timestamp handling logic before muxing.) The two FATE tests change because the output time base is raised for subtitles. (Needed to avoid certain rounding issues in other cases.) Includes a minor merge fix by Mark Thompson, and avconv: Move rescale to stream timebase before monotonisation also by Mark Thompson <sw@jkqxz.net>. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | ffmpeg: make sure packets put into the muxing FIFO are refcountedwm42017-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some callers (like do_subtitle_out()) call this with an AVPacket that is not refcounted. This can cause undefined behavior. Calling av_packet_move_ref() does not make a packet refcounted if it isn't yet. (And it can't be made to, because it always succeeds, and can't return ENOMEM.) Call av_packet_ref() instead to make sure it's refcounted. I couldn't find a case that is fixed by this with the current code. But it will fix the fate-pva-demux test with the later patches applied. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | ffmpeg: Add a linebreak to an error message.Carl Eugen Hoyos2017-02-27
| |
* | ffmpeg: Remove redundant null checkMichael Niedermayer2017-02-06
| | | | | | | | | | | | Fixes CID1396245 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | ffmpeg: Add a missing line break when requesting a sample.Carl Eugen Hoyos2017-02-02
| |
* | ffmpeg.c: Add output file index and stream index to vstats file.Sasi Inguva2017-01-27
| | | | | | | | | | Signed-off-by: Sasi Inguva <isasi@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | ffmpeg: pass output stream duration as a hint to the muxerTobias Rapp2017-01-19
| | | | | | | | | | Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | ffmpeg: Add -time_base option to hint the time baseMichael Bradshaw2017-01-14
| | | | | | | | | | Signed-off-by: Michael Bradshaw <mjbshaw@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | ffmpeg: use buffersink accessors.Nicolas George2017-01-12
| |
* | ffmpeg: remove stop_encoding variable and related code, it is dead / unused codeMichael Niedermayer2016-12-28
| | | | | | | | | | | | | | Fixes: CID1396243 Reviewed-by: compn <tempn@mi.rr.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | ffmpeg: Check avcodec_parameters_to_context() for failureMichael Niedermayer2016-12-26
| | | | | | | | | | | | Fixes CID1396241 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | ffmpeg: assert return value is initializedTobias Rapp2016-12-01
| | | | | | | | | | Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | ffmpeg: factor out sending frame to filtersClément Bœsch2016-11-18
| | | | | | | | | | Video doesn't exit ffmpeg on error anymore, and audio now prints an error.
* | ffmpeg: remove dead code out of the video filter loopClément Bœsch2016-11-18
| | | | | | | | | | | | It makes no sense for this code to be inside the video filter loop, and the frame sample aspect ratio is even set unconditionally a few lines above.
* | Merge commit 'b55566db4c51d920a6496455bb30a608e5a50a41'Hendrik Leppkes2016-11-14
|\| | | | | | | | | | | | | | | | | | | * commit 'b55566db4c51d920a6496455bb30a608e5a50a41': avconv: use avcodec_parameters_copy() with streamcopy The fate-aac-autobsf-adtstoasc changes from writing an audio bitdepth based on the sample format, which is now available. Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | Merge commit '50722b4f0cbc5940e9e6e21d113888436cc89ff5'Hendrik Leppkes2016-11-13
|\| | | | | | | | | | | | | * commit '50722b4f0cbc5940e9e6e21d113888436cc89ff5': avconv: decouple configuring filtergraphs and setting output parameters Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | Merge commit 'ba7397baef796ca3991fe1c921bc91054407c48b'Hendrik Leppkes2016-11-13
|\| | | | | | | | | | | | | * commit 'ba7397baef796ca3991fe1c921bc91054407c48b': avconv: factor out initializing stream parameters for encoding Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | ffmpeg: add newline to avformat_write_header error messageMarton Balint2016-11-13
| | | | | | | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Marton Balint <cus@passwd.hu>
* | ffmpeg: don't overwrite av_bsf_receive_packet return value before checking itJames Almer2016-11-05
| | | | | | | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* | ffmpeg: Warn if thousands of frames are duplicated.Carl Eugen Hoyos2016-11-04
| | | | | | | | Fixes ticket #5193.
* | ffmpeg: Fix bsf corrupting merged side dataMichael Niedermayer2016-11-04
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '722ec3eb35bc152ce91d0a4502eca0df1c0086d0'Hendrik Leppkes2016-11-03
|\| | | | | | | | | | | | | * commit '722ec3eb35bc152ce91d0a4502eca0df1c0086d0': avconv: decouple configuring filtergraphs and setting input parameters Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | doc: fix spelling errorsAndreas Cadhalpun2016-10-21
| | | | | | | | | | | | | | | | Thanks to Mathieu Malaterre <malat@debian.org> for reporting the Que/Queue typo. (https://bugs.debian.org/839542) Reviewed-by: Lou Logan <lou@lrcd.com> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
* | ffmpeg: remove unused ist parameter in do_subtitle_out()Clément Bœsch2016-10-16
| |
* | ffmpeg: Use av_fifo_freep() to avoid stale pointersMichael Niedermayer2016-10-14
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | ffmpeg_cleanup: fix crash with unrecognized codecJames Zern2016-10-14
| | | | | | | | | | | | | | | | since: 3e5e5bd Merge commit '398f015f077c6a2406deffd9e37ff34b9c7bb3bc' Signed-off-by: James Zern <jzern@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '398f015f077c6a2406deffd9e37ff34b9c7bb3bc'Hendrik Leppkes2016-10-08
|\| | | | | | | | | | | | | * commit '398f015f077c6a2406deffd9e37ff34b9c7bb3bc': avconv: buffer the packets written while the muxer is not initialized Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | ffmpeg: explicitly write headers for files with no streamsHendrik Leppkes2016-10-07
| | | | | | | | | | Recent changes to ffmpeg.c tied output file init to stream init, which broke stream-less files, specifically ffmetadata output.
* | Merge commit '1c169782cae6c5c430ff62e7d7272dc9d0e8d527'Hendrik Leppkes2016-10-07
|\| | | | | | | | | | | | | * commit '1c169782cae6c5c430ff62e7d7272dc9d0e8d527': avconv: explicitly postpone writing the header until all streams are initialized Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | Merge commit 'beb62dac629603eb074a44c44389c230b5caac7c'Hendrik Leppkes2016-10-07
|\| | | | | | | | | | | | | * commit 'beb62dac629603eb074a44c44389c230b5caac7c': Use AVFrame.pts instead of deprecated pkt_pts. Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | ffmpeg: remove unused and errorneous AVFrame timestamp checkHendrik Leppkes2016-10-07
| | | | | | | | | | | | Decoders have previously not used AVFrame.pts, and with the upcoming deprecation of pkt_pts (in favor of pts), this would lead to an errorneous interpration of timestamps.
* | ffmpeg: don't reconfigure terminal if we're not taking input from stdinRodger Combs2016-10-06
| |
* | ffmpeg: use new encode APIwm42016-10-01
| |
* | ffmpeg: use new decode APIwm42016-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a bit messy, mainly due to timestamp handling. decode_video() relied on the fact that it could set dts on a flush/drain packet. This is not possible with the old API, and won't be. (I think doing this was very questionable with the old API. Flush packets should not contain any information; they just cause a FIFO to be emptied.) This is replaced with checking the best_effort_timestamp for AV_NOPTS_VALUE, and using the suggested DTS in the drain case. The modified tests (fate-cavs and others) still fails due to dropping the last frame. This happens because the timestamp of the last frame goes backwards (ffprobe -show_frames shows the same thing). I suspect that this "worked" due to the best effort timestamp logic picking the DTS over the decreasing PTS. Since this logic is in libavcodec (where it probably shouldn't be), this can't be easily fixed. The timestamps of the cavs samples are weird anyway, so I chose not to fix it. Another strange thing is the timestamp handling in the video path of process_input_packet (after the decode_video() call). It looks like the code to increase next_dts and next_pts should be run every time a frame is decoded - but it's needed even if output is skipped.
* | ffmpeg: move subframe warning to libavcodecwm42016-10-01
| | | | | | | | | | | | | | | | | | | | | | With the new decode API, doing this in ffmpeg.c is impractical. There was resistance against removing the warning, so put it into libavcodec. Not bothering with reducing the warning to verbose log level for subsequent wanrings. The warning should be rare, and only happen when developing new codecs for the old API. Includes a change suggested by Michael Niedermayer.
* | ffmpeg: pass the hwaccel frames context to the decoderAnton Khirnov2016-09-29
| |
* | Merge commit '6ed0f70f97c882813199b3bafd724ceeb43659de'James Almer2016-09-28
|\| | | | | | | | | | | | | | | | | | | * commit '6ed0f70f97c882813199b3bafd724ceeb43659de': avconv: factor out initializing stream parameters for streamcopy Conflicts: ffmpeg.c Merged-by: James Almer <jamrial@gmail.com>
* | ffmpeg: stop using AVStream.codec on stream copyJames Almer2016-09-27
| | | | | | | | | | | | | | | | | | | | | | | | This commit is based on commit 35c8580 from Anton Khirnov <anton@khirnov.net> which was skipped in b8945c4. The avcodec_copy_context() call in the encode path is left in place for now as AVStream.codec is apparently still required even after porting ffmpeg to the new bsf API. Tested-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* | ffmpeg: fix memleak of encoder options AVDictionary on failureJames Almer2016-09-25
| | | | | | | | | | Reviewed-by: Josh de Kock <josh@itanimul.li> Signed-off-by: James Almer <jamrial@gmail.com>