summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* lavc: deprecate avcodec_copy_context()Anton Khirnov2016-05-23
| | | | | | | | | Since AVCodecContext contains a lot of complex state, copying a codec context is not a well-defined operation. The purpose for which it is typically used (which is well-defined) is copying the stream parameters from one codec context to another. That is now possible with through the AVCodecParameters API. Therefore, there is no reason for avcodec_copy_context() to exist.
* lavf: update muxing doxyAnton Khirnov2016-05-23
| | | | Describe the new AVCodecParameters API.
* mp3: Make the extrasize explicitLuca Barbato2016-05-22
| | | | | | | | | Initialize the bit buffer with the correct size (amount of bits that will be read) instead of relying on the bitstream reader overreading the correct values. Signed-off-by: Luca Barbato <lu_zero@gentoo.org> Signed-off-by: Diego Biurrun <diego@biurrun.de>
* get_bits: Drop some TRACE-level debug codeDiego Biurrun2016-05-22
| | | | It will not be provided by the new bit reader anyway.
* dump: Drop unused variableDiego Biurrun2016-05-22
|
* avconv: Use more precise deprecation ifdefsDiego Biurrun2016-05-22
| | | | This fixes compilation with the libavcodec version bumped to 58.
* avconv: stop using AVStream.codecAnton Khirnov2016-05-22
| | | | | | | | It is now only used by the av_parser_change() call during streamcopy, so allocate a special AVCodecContext instance for this case. This instance should go away when the new parser API is finished. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* nvenc: allow setting the number of slicesAnton Khirnov2016-05-19
| | | | Based on a patch by Agatha Hu <ahu@nvidia.com>
* nvenc: De-compensate aspect ratio compensation of DVD-like content.Philip Langdale2016-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For reasons we are not privy to, nvidia decided that the nvenc encoder should apply aspect ratio compensation to 'DVD like' content, assuming that the content is not BT.601 compliant, but needs to be BT.601 compliant. In this context, that means that they make the following, questionable, assumptions: 1) If the input dimensions are 720x480 or 720x576, assume the content has an active area of 704x480 or 704x576. 2) Assume that whatever the input sample aspect ratio is, it does not account for the difference between 'physical' and 'active' dimensions. From these assumptions, they then conclude that they can 'help', by adjusting the sample aspect ratio by a factor of 45/44. And indeed, if you wanted to display only the 704 wide active area with the same aspect ratio as the full 720 wide image - this would be the correct adjustment factor, but what if you don't? And more importantly, what if you're used to lavc not making this kind of adjustment at encode time - because none of the other encoders do this! And, what if you had already accounted for BT.601 and your input had the correct attributes? Well, it's going to apply the compensation anyway! So, if you take some content, and feed it through nvenc repeatedly, it will keep scaling the aspect ratio every time, stretching your video out more and more and more. So, clearly, regardless of whether you want to apply bt.601 aspect ratio adjustments or not, this is not the way to do it. With any other lavc encoder, you would do it as part of defining your input parameters or do the adjustment at playback time, and there's no reason by nvenc should be any different. This change adds some logic to undo the compensation that nvenc would otherwise do. nvidia engineers have told us that they will work to make this compensation mechanism optional in a future release of the nvenc SDK. At that point, we can adapt accordingly. Signed-off-by: Philip Langdale <philipl@overt.org> Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* nvenc: list the major contributors in the copyright headerAnton Khirnov2016-05-19
|
* configure: Don't require nonfree for nvencTimo Rothenpieler2016-05-19
| | | | | | | | As the nvEncodeApi.h header is now MIT licensed, this can be dropped. The loaded CUDA and NVENC libraries are part of the nvidia driver, and thus count as system libraries. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* nvenc: drop the hard dependency on CUDAAnton Khirnov2016-05-19
| | | | | | | | The code needs only a few definitions from cuda.h, so define them directly when CUDA is not enabled. CUDA is still required for accepting HW frames as input. Based on the code by Timo Rothenpieler <timo@rothenpieler.org>.
* nvenc: only support HW frames when CUDA is enabledAnton Khirnov2016-05-19
| | | | | hwcontext_cuda.h includes cuda.h, so this will allow building nvenc without depending on cuda.h
* nvenc: write the VUI signal properties for HEVCAnton Khirnov2016-05-19
| | | | | | Bump the API version requirement to 6. Based on a patch by Agatha Hu <ahu@nvidia.com>.
* nvenc: only write the VUI signal type fields if they are setAnton Khirnov2016-05-19
| | | | Based on a patch by Agatha Hu <ahu@nvidia.com>.
* nvenc: Generate bufferingPeriod/pictureTiming SEITimo Rothenpieler2016-05-19
| | | | | | | For some unknown reason enabling these causes proper CBR padding, so as there are no known downsides just always enable them in CBR mode. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* nvenc: Delay frame output to increase encoding speedTimo Rothenpieler2016-05-19
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* nvenc: add support for lossless encodingAnton Khirnov2016-05-19
| | | | Based on a patch by Philip Langdale <philipl@overt.org>
* nvenc: Generate AUD NAL units for better compatiblityTimo Rothenpieler2016-05-19
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* nvenc: fix the rc option definitionsAnton Khirnov2016-05-19
|
* Add release notes for 12.Anton Khirnov2016-05-19
|
* mjpegdec: Properly fail on malloc failureDerek Buitenhuis2016-05-19
| | | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* configure: move the hardware accel libs' entries in the configure outputAnton Khirnov2016-05-19
| | | | | Print them as a subsection of the external library section, in line with what is done for the help text in the previous commit.
* configure: move the hardware accel libs' entries in the help textAnton Khirnov2016-05-19
| | | | | | | | | Group them in a subsection of the external library section. That should make them easier to find and understand how they fit in the scheme of things. Also, rewrite the description text in a similar way as in the previous commit.
* configure: improve the help text for external librariesAnton Khirnov2016-05-19
| | | | | | | | | Add a more accurate description of what the switches actually do (i.e. allow using the given library, not enabling the corresponding codecs etc.). Replace the library descriptions, in many cases boilerplate text without useful information, with a short summary of what the library does.
* lavc: revert the Makefile part of 330177bAnton Khirnov2016-05-19
| | | | | | | There is no real advantage to listing some codecs or subsystems separately simply because they are somehow "hw-accelerated", on the contrary it makes them harder to find than in a plain alphabetically ordered list.
* xtea-test: Use struct allocation functions from the APIDiego Biurrun2016-05-19
|
* blowfish-test: Use struct allocation functions from the APIDiego Biurrun2016-05-19
|
* blowfish-test: Return different values for different errorsDiego Biurrun2016-05-19
|
* movenc: Write 'loci' geotag metadata for 3gp and mp4Martin Storsjö2016-05-19
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc: Factorize a function for finding a metadata entry and the associated ↵Martin Storsjö2016-05-19
| | | | | | language Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc: Write ?xyz geotag metadata for mov filesMichael Niedermayer2016-05-19
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: Also export loci altitudeMichael Niedermayer2016-05-19
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: Append place name instead of overwriting for lociMichael Niedermayer2016-05-19
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: Fix parsing short lociMichael Niedermayer2016-05-19
| | | | | | | | | | Previously, we required the minimum number of bytes required for the full box. Don't strictly require the astronomical body and additional notes fields, but do require an altitude field (which currently isn't parsed). This matches the initial length check at the start of the function (which doesn't know about the variable length place field). Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: Print reason of loci parsing failureMichael Niedermayer2016-05-19
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: Add a comment referring to the standard that defines the loci boxMartin Storsjö2016-05-19
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc: Add a missed constMartin Storsjö2016-05-18
| | | | | | | This was missed in e1eb0fc9601, when ff_interleaved_peek was changed to include const during the evolution of the patch. Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc: Add a test for VFR with b-frames, with a duration change at a ↵Martin Storsjö2016-05-18
| | | | | | fragment end Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc: Use packets in interleaving queues for the duration at the end of ↵Martin Storsjö2016-05-18
| | | | | | | | | | | | | | fragments As long as caller only writes packets using av_interleaved_write_frame with no manual flushing, this should allow us to always have accurate durations at the end of fragments, since there should be at least one queued packet in each stream (except for the stream where the current packet is being written, but if the muxer itself does the cutting of fragments, it also has info about the next packet for that stream). Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc-test: Test write_data_typeMartin Storsjö2016-05-18
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* matroskaenc: Provide output bytestream markersMartin Storsjö2016-05-18
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc: Provide output bytestream markers for fragmented contentMartin Storsjö2016-05-18
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* flvenc: Provide output bytestream markersMartin Storsjö2016-05-18
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* avio: Allow custom IO users to get labels for the output bytestreamMartin Storsjö2016-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | This allows callers with avio write callbacks to get the bytestream positions that correspond to keyframes, suitable for live streaming. In the simplest form, a caller could expect that a header is written to the bytestream during the avformat_write_header, and the data output to the avio context during e.g. av_write_frame corresponds exactly to the current packet passed in. When combined with av_interleaved_write_frame, and with muxers that do buffering (most muxers that do some sort of fragmenting or clustering), the mapping from input data to bytestream positions is nontrivial. This allows callers to get directly information about what part of the bytestream is what, without having to resort to assumptions about the muxer behaviour. One keyframe/fragment/block can still be split into multiple (if they are larger than the aviocontext buffer), which would call the callback with e.g. AVIO_DATA_MARKER_SYNC_POINT, followed by AVIO_DATA_MARKER_UNKNOWN for the second time it is called with the following data. Signed-off-by: Martin Storsjö <martin@martin.st>
* avprobe: Print stereo3d informationVittorio Giovara2016-05-17
|
* stereo3d: Add API to get name from value or value from nameVittorio Giovara2016-05-17
| | | | Use it in av_dump_format() instead of a huge switch case.
* lavf: Raw G.729 demuxerVladimir Voroshilov2016-05-17
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* fate: Update fate-lavf-ts after commit 393596f9d5Martin Storsjö2016-05-17
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* tools: Port to codec parameters APIDiego Biurrun2016-05-17
|