path: root/common/encode_lavc.h
Commit message (Collapse)AuthorAgeFilesLines
* encode: restore audio muxer timebase usewm42020-03-221-0/+4
| | | | | | Seems to crash hard if an error happens somewhere at init. Who cares. Part of #7524.
* encode: get rid of the output packet queuewm42018-05-031-1/+6
| | | | | | | | | | | | 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 itwm42018-04-291-54/+51
| | | | | | | | | | | | | 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 cleanupswm42018-04-291-2/+0
* encode: simplify colorspace settingwm42018-04-201-5/+0
| | | | | This was also refactored at some point, and is now unnecessarily roundabout.
* encode: remove some unused functionswm42018-04-201-4/+0
* encode_lavc: move from GPL 2+ to LGPL 2.1+.Rudolf Polzer2017-06-131-7/+8
* encode_lavc: Migrate to codecpar API.Rudolf Polzer2016-04-111-11/+22
* Update license headersMarcin Kurczewski2015-04-131-4/+3
| | | | Signed-off-by: wm4 <wm4@nowhere>
* encode: make option struct localwm42014-06-111-1/+1
| | | | Similar to previous commits.
* encode_lavc: copy metadata to output fileAlessandro Ghedini2014-03-301-0/+1
| | | | | | | | Closes #684 Signed-off-by: wm4 <wm4@nowhere> Includes some minor cosmetic changes additional to the original PR.
* encode: add lockingwm42014-03-091-0/+7
| | | | | | | | | | 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->ptswm42014-03-071-0/+3
| | | | | | | | | | 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 conversionswm42013-12-211-0/+2
| | | | Miss two mp_msg calls, because these conflict with future commits.
* Split mpvcore/ into common/, misc/, bstr/wm42013-12-171-0/+101