aboutsummaryrefslogtreecommitdiffhomepage
path: root/common/encode_lavc.h
Commit message (Collapse)AuthorAge
* encode: get rid of the output packet queueGravatar wm42018-05-03
| | | | | | | | | | | | Until recently, ao_lavc and vo_lavc started encoding whenever the core happened to send them data. Since audio and video are not initialized at the same time, and the muxer was not necessarily opened when the first encoder started to produce data, the resulting packets were put into a queue. As soon as the muxer was opened, the queue was flushed. Change this to make the core wait with sending data until all encoders are initialized. This has the advantage that we don't need to queue up the packets.
* encode: rewrite half of itGravatar wm42018-04-29
| | | | | | | | | | | | | The main change is that we wait with opening the muxer ("writing headers") until we have data from all streams. This fixes race conditions at init due to broken assumptions in the old code. This also changes a lot of other stuff. I found and fixed a few API violations (often things for which better mechanisms were invented, and the old ones are not valid anymore). I try to get away from the public mutex and shared fields in encode_lavc_context. For now it's still needed for some timestamp-related fields, but most are gone. It also removes some bad code duplication between audio and video paths.
* encode: some more cleanupsGravatar wm42018-04-29
|
* encode: simplify colorspace settingGravatar wm42018-04-20
| | | | | This was also refactored at some point, and is now unnecessarily roundabout.
* encode: remove some unused functionsGravatar wm42018-04-20
|
* encode_lavc: move from GPL 2+ to LGPL 2.1+.Gravatar Rudolf Polzer2017-06-13
|
* encode_lavc: Migrate to codecpar API.Gravatar Rudolf Polzer2016-04-11
|
* Update license headersGravatar Marcin Kurczewski2015-04-13
| | | | Signed-off-by: wm4 <wm4@nowhere>
* encode: make option struct localGravatar wm42014-06-11
| | | | Similar to previous commits.
* encode_lavc: copy metadata to output fileGravatar Alessandro Ghedini2014-03-30
| | | | | | | | Closes #684 Signed-off-by: wm4 <wm4@nowhere> Includes some minor cosmetic changes additional to the original PR.
* encode: add lockingGravatar wm42014-03-09
| | | | | | | | | | Since the AO will run in a thread, and there's lots of shared state with encoding, we have to add locking. One case this doesn't handle correctly are the encode_lavc_available() calls in ao_lavc.c and vo_lavc.c. They don't do much (and usually only to protect against doing --ao=lavc with normal playback), and changing it would be a bit messy. So just leave them.
* encode: don't access ao->ptsGravatar wm42014-03-07
| | | | | | | | | | This field will be moved out of the ao struct. The encoding code was basically using an invalid way of accessing this field. Since the AO will be moved into its own thread too and will do its own buffering, the AO and the playback core might not even agree which sample a PTS timestamp belongs to. Add some extrapolation code to handle this case.
* encode_lavc: mp_msg conversionsGravatar wm42013-12-21
| | | | Miss two mp_msg calls, because these conflict with future commits.
* Split mpvcore/ into common/, misc/, bstr/Gravatar wm42013-12-17