- 26 May, 2016 2 commits
-
-
Anton Khirnov authored
-
Andrey Turkin authored
avcodec_copy_context() didn't handle hw_frames_ctx references correctly which could cause crashes. Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
- 25 May, 2016 4 commits
-
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Martin Storsjö authored
This is only used for logging a human readable codec name for debugging. Signed-off-by: Martin Storsjö <martin@martin.st>
-
- 24 May, 2016 2 commits
-
-
Diego Biurrun authored
-
Francois Cartegnie authored
Signed-off-by: Diego Biurrun <diego@biurrun.de>
-
- 23 May, 2016 5 commits
-
-
Anton Khirnov authored
-
Anton Khirnov authored
We cannot deprecate it until the new parser API is in place, because of the way libavformat works. But the majority of the users can already simply replace it with avcodec_free_context(), which will simplify the transition once it is finally deprecated.
-
Anton Khirnov authored
This function is supposed to "reset" a codec context to a clean state so that it can be opened again. The only reason it exists is to allow using AVStream.codec as a decoding context (after it was already opened/used/closed by avformat_find_stream_info()). Since that behaviour is now deprecated, there is no reason for this function to exist anymore.
-
Anton Khirnov authored
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.
-
Anton Khirnov authored
Describe the new AVCodecParameters API.
-
- 22 May, 2016 5 commits
-
-
Luca Barbato authored
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>
-
Diego Biurrun authored
It will not be provided by the new bit reader anyway.
-
Diego Biurrun authored
-
Diego Biurrun authored
This fixes compilation with the libavcodec version bumped to 58.
-
Anton Khirnov authored
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>
-
- 19 May, 2016 22 commits
-
-
Anton Khirnov authored
Based on a patch by Agatha Hu <ahu@nvidia.com>
-
Philip Langdale authored
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>
-
Anton Khirnov authored
-
Timo Rothenpieler authored
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>
-
Anton Khirnov authored
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>.
-
Anton Khirnov authored
hwcontext_cuda.h includes cuda.h, so this will allow building nvenc without depending on cuda.h
-
Anton Khirnov authored
Bump the API version requirement to 6. Based on a patch by Agatha Hu <ahu@nvidia.com>.
-
Anton Khirnov authored
Based on a patch by Agatha Hu <ahu@nvidia.com>.
-
Timo Rothenpieler authored
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>
-
Timo Rothenpieler authored
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
Anton Khirnov authored
Based on a patch by Philip Langdale <philipl@overt.org>
-
Timo Rothenpieler authored
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
Anton Khirnov authored
-
Anton Khirnov authored
-
Derek Buitenhuis authored
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
Anton Khirnov authored
Print them as a subsection of the external library section, in line with what is done for the help text in the previous commit.
-
Anton Khirnov authored
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.
-
Anton Khirnov authored
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.
-
Anton Khirnov authored
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.
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Diego Biurrun authored
-