Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-07-07ffmpeg: Fix typos in the comment for decode() ("." vs. "->")Wan-Teh Chang
pkt is a pointer, so it should be dereferenced with the -> operator. Signed-off-by: Wan-Teh Chang <wtc@google.com> Reviewed-by: Steven Liu <lingjiujianke@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-24ffmpeg: Flush output BSFs when encode reaches EOFMark Thompson
Before this, output bitstream filters would never see EOF and therefore would not be able to flush any delayed packets. (cherry picked from commit f64d1100a54d12c78ce436181bb64229c56da6b3)
2017-06-20ffmpeg: remove misleading and incorrect warning messageswm4
It is wrong/incorrect in two aspects: 1. The pixel format is not enough to guarantee that the resulting file will be any more compatible with media players. 2. Media players not supporting higher profiles are not necessarily outdated (in fact this is simply an arrogant statement that libavcodec can handle these particular features). You could add that there are plenty of other ways to produce widely incompatible files with ffmpeg, and these don't show any warnings. What we really want to do here is defaulting to codec profiles that have wide compatibility, such as main/high for h264. Also, if an encoder does not accept certain pixfmts, we should automatically convert them to a pixfmt the encoder can accept. But the existing message certainly is not appropriate. It also works for 2 specific encoders only. Extending it for other cases would result in a lot of special cases, so this is not the right place.
2017-06-15ffmpeg: Generic device setupMark Thompson
Not yet enabled for any hwaccels. (cherry picked from commit d2e6dd32a445b5744a51d090c0822dbd7e434592) (cherry picked from commit 9203aac22874c7259e155b7d00f1f33bb1355129)
2017-05-25ffmpeg: remove bsf extradata propagation hackJames Almer
The offending bitstream filter was fixed, so this is no longer needed. Signed-off-by: James Almer <jamrial@gmail.com>
2017-05-10ffmpeg: add enc_time_base optionerankor
add a per-stream option for setting the encoder timebase. the following values are allowed: 0 - for video, use 1/frame_rate, for audio use 1/sample_rate (this is the default) -1 - match the input timebase (when possible) >0 - set the timebase to provided number Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-05-02ffmpeg: count packets when queuedMuhammad Faiz
Because write_packet() fakely writes packets to muxer by queueing them when muxer hasn't been initialized, it should also increment frame_number fakely. This is required because code in do_streamcopy() rely on frame_number. Should fix Ticket6227 Reviewed-by: James Almer <jamrial@gmail.com> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2017-04-23ffmpeg: do not report EOF on filters as an error.Nicolas George
Also print the error message in case of real error.
2017-04-23ff*: do not use AVFrame accessorMuhammad Faiz
Reviewed-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2017-04-22ffmpeg; check return code of avcodec_send_frame when flushing encodersMarton Balint
Fixes Coverity CID 1404841. Signed-off-by: Marton Balint <cus@passwd.hu>
2017-04-18ffmpeg: Clear fifo pointer on deallocationMichael Niedermayer
Not leaving stale pointers is more robust Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-08ffmpeg: use av_stream_new_side_data() in init_output_streamJames Almer
2017-04-07ffmpeg: use av_stream_new_side_data()James Almer
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-07ffmpeg: Change duration to int64_tMichael Niedermayer
It is assigned from 64bit input in some branches and used with 64bit timestamps This thus fixes a potential integer truncation Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-03ffmpeg: make transcode_init_done atomic.Ronald S. Bultje
Should fix tsan warnings in fate-fifo-muxer-h264/wav: WARNING: ThreadSanitizer: data race (pid=26552) Write of size 4 at 0x000001e0d7c0 by main thread: #0 transcode_init src/ffmpeg.c:3761 (ffmpeg+0x00000050ca1c) [..] Previous read of size 4 at 0x000001e0d7c0 by thread T1: #0 decode_interrupt_cb src/ffmpeg.c:460 (ffmpeg+0x0000004fde19)
2017-03-30ffmpeg: Fix avframe memleakMichael Niedermayer
Fixes CID1401674 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-03-30Merge commit 'e3fb74f7f9a8f1895381355f40c92cac3c1023d9'Matthieu Bouron
* commit 'e3fb74f7f9a8f1895381355f40c92cac3c1023d9': lavfi: Always propagate hw_frames_ctx through links Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-03-29Fix all -Wformat warnings raised by DJGPPClément Bœsch
2017-03-27avformat, ffmpeg: deprecate old rotation APIwm4
The old "API" that signaled rotation as a metadata value has been replaced by DISPLAYMATRIX side data quite a while ago. There is no reason to make muxers/demuxers/API users support both. In addition, the metadata API is dangerous, as user tags could "leak" into it, creating unintended features or bugs. ffmpeg CLI has to be updated to use the new API. In particular, we must not allow to leak the "rotate" tag into the muxer. Some muxers will catch this properly (like mov), but others (like mkv) can add it as generic tag. Note applications, which use libavformat and assume the old rotate API, will interpret such "rotate" user tags as rotate metadata (which it is not), and incorrectly rotate the video. The ffmpeg/ffplay tools drop the use of the old API for muxing and demuxing, as all muxers/demuxers support the new API. This will mean that the tools will not mistakenly interpret per-track "rotate" user tags as rotate metadata. It will _not_ be treated as regression. Unfortunately, hacks have been added, that allow the user to override rotation by setting metadata explicitly, e.g. via -metadata:s:v:0 rotate=0 See references to trac #4560. fate-filter-meta-4560-rotate0 tests this. It's easier to adjust the hack for supporting it than arguing for its removal, so ffmpeg CLI now explicitly catches this case, and essentially replaces the "rotate" value with a display matrix side data. (It would be easier for both user and implementation to create an explicit option for rotation.) When the code under FF_API_OLD_ROTATE_API is disabled, one FATE reference file has to be updated (because "rotate" is not exported anymore). Tested-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2017-03-26ffmpeg: stop using deprecated codec flagsJames Almer
Signed-off-by: James Almer <jamrial@gmail.com>
2017-03-22Merge commit '27085d1b47c3741cc0fac284c916127c4066d049'Clément Bœsch
* commit '27085d1b47c3741cc0fac284c916127c4066d049': avconv: only retry decoding on actual decoding errors Merged-by: Clément Bœsch <u@pkh.me>
2017-03-21ffmpeg: Initialize two stack variables.Carl Eugen Hoyos
Avoids reading from uninitialized memory, regression since af1761f7
2017-03-21ffmpeg: don't unnecessarily use a deprecated API functionwm4
Since we've disabled side data merging in ffmpeg.c, this really changes nothing.
2017-03-17ffmpeg: set the encoding framerate when the output is CFRAnton Khirnov
(cherry picked from Libav commit d10102d23c9467d4eb84f58e0cd12be284b982f6) Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2017-03-15Merge commit 'e46a6fb7732a7caef97a916a4f765ec0f779d195'Clément Bœsch
* 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>
2017-03-12Merge commit 'b0f36a0043d76436cc7ab8ff92ab99c94595d3c0'Clément Bœsch
* commit 'b0f36a0043d76436cc7ab8ff92ab99c94595d3c0': avconv: stop using setpts for input framerate forced with -r Merged-by: Clément Bœsch <u@pkh.me>
2017-03-06ffmpeg: remove unnecessary hack for decoders which refuse to drainwm4
Now the previous commit takes care of this instead.
2017-03-03ffmpeg: delay processing of subtitles before filters are initializedwm4
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.
2017-03-03ffmpeg_cuvid: adapt for recent filter graph initialization changesTimo Rothenpieler
2017-03-03ffmpeg: restructure sending EOF to filtersAnton Khirnov
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>
2017-03-03ffmpeg: move flushing the queued frames to configure_filtergraph()Anton Khirnov
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>
2017-03-03ffmpeg: init filtergraphs only after we have a frame on each inputAnton Khirnov
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>
2017-03-03ffmpeg: do packet ts rescaling in write_packet()Anton Khirnov
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>
2017-03-03ffmpeg: make sure packets put into the muxing FIFO are refcountedwm4
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>
2017-02-27ffmpeg: Add a linebreak to an error message.Carl Eugen Hoyos
2017-02-06ffmpeg: Remove redundant null checkMichael Niedermayer
Fixes CID1396245 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-02-02ffmpeg: Add a missing line break when requesting a sample.Carl Eugen Hoyos
2017-01-28ffmpeg.c: Add output file index and stream index to vstats file.Sasi Inguva
Signed-off-by: Sasi Inguva <isasi@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-01-19ffmpeg: pass output stream duration as a hint to the muxerTobias Rapp
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-01-14ffmpeg: Add -time_base option to hint the time baseMichael Bradshaw
Signed-off-by: Michael Bradshaw <mjbshaw@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-01-12ffmpeg: use buffersink accessors.Nicolas George
2016-12-28ffmpeg: remove stop_encoding variable and related code, it is dead / unused codeMichael Niedermayer
Fixes: CID1396243 Reviewed-by: compn <tempn@mi.rr.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-26ffmpeg: Check avcodec_parameters_to_context() for failureMichael Niedermayer
Fixes CID1396241 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-01ffmpeg: assert return value is initializedTobias Rapp
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-11-18ffmpeg: factor out sending frame to filtersClément Bœsch
Video doesn't exit ffmpeg on error anymore, and audio now prints an error.
2016-11-18ffmpeg: remove dead code out of the video filter loopClément Bœsch
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.
2016-11-14Merge commit 'b55566db4c51d920a6496455bb30a608e5a50a41'Hendrik Leppkes
* 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>
2016-11-13Merge commit '50722b4f0cbc5940e9e6e21d113888436cc89ff5'Hendrik Leppkes
* commit '50722b4f0cbc5940e9e6e21d113888436cc89ff5': avconv: decouple configuring filtergraphs and setting output parameters Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-13Merge commit 'ba7397baef796ca3991fe1c921bc91054407c48b'Hendrik Leppkes
* commit 'ba7397baef796ca3991fe1c921bc91054407c48b': avconv: factor out initializing stream parameters for encoding Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-13ffmpeg: add newline to avformat_write_header error messageMarton Balint
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Marton Balint <cus@passwd.hu>