Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							3d01996b24 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: change processing order in fg_finalise_bindings()  
						
						... 
						
						
						
						First bind all inputs in all filtergraphs, only then check that all
outputs are bound.
Needed by the following commit. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							243a51490a 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: only store complex filtergraphs in global array  
						
						... 
						
						
						
						Store simple filtergraphs in the stream they feed. Keeping the two
separate will be useful in following commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							d74cbcb963 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: drop OutputFilter.ost  
						
						... 
						
						
						
						All remaining code accessing it only needs to know whether this
filtergraph output has been bound or not. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							f2c919252d 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: accept encoder thread count through OutputFilterOptions  
						
						... 
						
						
						
						Stop digging through encoder options manually.
Will allow decoupling filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							bfeb751171 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_mux: drop OutputFile.format  
						
						... 
						
						
						
						It is no longer used outside of the muxing code (where we can access the
muxer directly). 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							5b0589c8c3 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_mux: drop OutputFile.shortest  
						
						... 
						
						
						
						It is no longer needed outside of of_open() and its children. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							a4c940c86a 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: move most of -apad logic to the muxer  
						
						... 
						
						
						
						The decision whether -apad actually does anything is made based on muxer
properties, and so more properly belongs there. Filtering code only
receives the result. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							a2892dbe06 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass trim parameters through OutputFilterOptions  
						
						... 
						
						
						
						Do not read them from OutputStream directly.
Will allow decoupling filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							83304f7c1f 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass autoscale through OutputFilterOptions  
						
						... 
						
						
						
						Do not read it from OutputStream directly.
Will allow decoupling filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							b8e6802023 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass sws/swr opts through OutputFilterOptions  
						
						... 
						
						
						
						Do not read them from OutputStream directly.
Will allow decoupling filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							fc6354c39c 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: add an AVClass to OutputFilter  
						
						... 
						
						
						
						Use it for logging where appropriate, avoid logging to OutputStream as
we do not own it.
This is a step towards decoupling filtering from encoding. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							da80e0b077 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: accept a caller-provided output name  
						
						... 
						
						
						
						Do not construct it from OutputStream manually.
Will allow decoupling filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							82c7c21b18 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: drop OutputStream.is_cfr  
						
						... 
						
						
						
						It is used in a single place in the filtering code, so it is better to
inline it there. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							509afedaaf 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass vsync method through OutputFilterOptions  
						
						... 
						
						
						
						Do not read it from OutputStream directly.
Will allow decoupling filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							bc206ed1b3 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: stop accessing encoder AVCodecContext  
						
						... 
						
						
						
						Pass all the necessary value through OutputFilterOptions.
Will allow decoupling filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							17702c5f7b 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: move the MJPEG format selection hack to muxer setup  
						
						... 
						
						
						
						That, if anywhere, is a more appropriate place for it. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							9d5bf2d69e 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass enc_timebase through OutputFilterOptions  
						
						... 
						
						
						
						Reduces the need to access OutputStream, which will allow decoupling
filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							e903c31fd1 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass keep_pix_fmt through OutputFilterOptions  
						
						... 
						
						
						
						Reduces the need to access OutputStream, which will allow decoupling
filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							b3864e7a08 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass ts offset through OutputFilterOptions  
						
						... 
						
						
						
						Reduces the need to access OutputFile, which will allow decoupling
filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							8e35e33d42 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: stop accessing AVCodecContext.codec  
						
						... 
						
						
						
						Instead pass the encoder through a newly-added output options struct,
analogous to previously added input options.
Will allow decoupling filtering from encoding in future commits. 
						
						
					 
					
						2024-04-09 10:34:18 +02:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							a69cedb6a6 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_demux: make InputStream.autorotate private  
						
						... 
						
						
						
						It is no longer accessed outside of ffmpeg_demux. 
						
						
					 
					
						2024-03-28 08:40:11 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							0edbd00ccf 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_{demux,dec}: pass -bitexact through DecoderFlags  
						
						... 
						
						
						
						Avoids abusing AV_DICT_MULTIKEY and relying on undocumented AVDictionary
ordering behaviour. 
						
						
					 
					
						2024-03-28 08:40:01 +01:00 
						 
				 
			
				
					
						
							
							
								James Almer 
							
						 
					 
					
						
						
						
						
							
						
						
							0963ef4996 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: remove prototype for non existent function  
						
						... 
						
						
						
						Signed-off-by: James Almer <jamrial@gmail.com> 
						
						
					 
					
						2024-03-25 23:23:27 -03:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							a9193f7b7d 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: add loopback decoding  
						
						... 
						
						
						
						This allows to send an encoder's output back to decoding and feed the
result into a complex filtergraph. 
						
						
					 
					
						2024-03-13 08:01:27 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							2ee9362419 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: remove unncessary casts for *_thread() return values  
						
						... 
						
						
						
						These functions used to be passed directly to pthread_create(), which
required them to return void*. This is no longer the case, so they can
return a plain int. 
						
						
					 
					
						2024-03-13 08:01:15 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							f5d03b972c 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: simplify propagating fallback parameters from decoders to filters  
						
						... 
						
						
						
						Current callstack looks like this:
* ifilter_bind_ist() (filter) calls ist_filter_add() (demuxer);
* ist_filter_add() opens the decoder, and then calls
  dec_add_filter() (decoder);
* dec_add_filter() calls ifilter_parameters_from_dec() (i.e. back into
  the filtering code) in order to give post-avcodec_open2() parameters
  to the filter.
This is unnecessarily complicated. Pass the parameters as follows
instead:
* dec_init() (which opens the decoder) returns post-avcodec_open2()
  parameters to its caller (i.e. the demuxer) in a parameter-only
  AVFrame
* the demuxer passes these parameters to the filter in
  InputFilterOptions, together with other filter options 
						
						
					 
					
						2024-03-13 08:01:15 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							7b51523f12 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_opt: merge init_complex_filters() and check_filter_outputs()  
						
						... 
						
						
						
						The first of these binds inputs of complex filtergraphs to demuxer
streams (with a misleading comment claiming it *creates* complex
filtergraphs).
The second ensures that all filtergraph outputs are connected to an
encoder.
Merge them into a single function, which simplifies the ffmpeg_filter
API, is shorter, and will also be useful in following commits.
Also, rename misleadingly-named init_input_filter() to
fg_complex_bind_input(). 
						
						
					 
					
						2024-03-13 08:01:15 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							c4de5778bc 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: factor opening the decoder out of dec_open()  
						
						... 
						
						
						
						Rename dec_open to dec_init(), as it is more descriptive of its new
purpose.
Will be useful in following commits, which will add a new path for
opening decoders. 
						
						
					 
					
						2024-03-13 08:01:15 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							e48055fdce 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: remove options deprecated before 6.0  
						
						
						
						
					 
					
						2024-03-01 16:51:11 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							6b6815b1c8 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: move subtitle helpers to ffmpeg_dec, their only user  
						
						
						
						
					 
					
						2024-02-21 10:31:27 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							826cfd9997 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass framerate through InputFilterOptions  
						
						... 
						
						
						
						Rather than read it directly from InputStream.
This is a step towards avoiding the assumption that filtergraph inputs
are always fed by demuxers. 
						
						
					 
					
						2024-02-21 10:27:20 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							fef3052df3 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass autorotate/reinit flags through InputFilterOptions  
						
						... 
						
						
						
						Rather than read them directly from InputStream.
This is a step towards avoiding the assumption that filtergraph inputs
are always fed by demuxers. 
						
						
					 
					
						2024-02-21 10:27:20 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							6315f78e0c 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: pass sub2video canvas size through InputFilterOptions  
						
						... 
						
						
						
						Rather than read them directly from InputStream.
This is a step towards avoiding the assumption that filtergraph inputs
are always fed by demuxers. 
						
						
					 
					
						2024-02-21 10:27:20 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							bd3c1c194b 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: accept a name from its upstream input  
						
						... 
						
						
						
						Do not construct the name manually from input file/stream indices.
This is a step towards avoiding the assumption that filtergraph inputs
are always fed by demuxers. 
						
						
					 
					
						2024-02-21 10:27:20 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							8f592eb35f 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_filter: compute input trim start/end in demuxer  
						
						... 
						
						
						
						The computation is based on demuxer properties, so that is the more
appropriate place for it. Filter code just receives the desired
start time/duration. 
						
						
					 
					
						2024-02-21 10:27:20 +01:00 
						 
				 
			
				
					
						
							
							
								Andreas Rheinhardt 
							
						 
					 
					
						
						
						
						
							
						
						
							44620ade25 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_mux_init: Fix attachment_filename use-after-free  
						
						... 
						
						
						
						The filename is freed with the OptionsContext and therefore
there will be a use-after-free when reporting the filename
in print_stream_maps(). So create a copy of the string.
This is a regression since 8aed3911fc454e79697e183660bf30d31334a64b.
fate-lavf-mkv_attachment exhibits it (and reports a random nonsense
filename here), but this does not make the test fail (not even with
valgrind; only with ASAN, as it aborts on use-after-free).
Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> 
						
						
					 
					
						2024-02-18 18:09:33 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							093be1fb06 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: cosmetics, vertically align Input{File,Stream}  
						
						
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							f4b76a1d6a 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: make InputStream.decoder_opts private to demuxer  
						
						... 
						
						
						
						It is no longer used outside of ffmpeg_demux. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							01c71b78eb 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: make InputStream.decoding_needed private to demuxer  
						
						... 
						
						
						
						It is no longer used outside of ffmpeg_demux. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							0d00e2e2f7 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: eliminate all remaining InputStream uses  
						
						... 
						
						
						
						Previously, the demuxer would register decoder with the scheduler, using
InputStream as opaque, and pass the scheduling index to the decoder.
Now the registration is done by the decoder itself, using DecoderPriv as
opaque, and the scheduling index is returned to demuxer from dec_open().
decoder_thread() then no longer needs to be accessed from outside of
ffmpeg_dec and can be made static. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							fe3be6f78f 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: stop passing InputStream to dec_open()  
						
						
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							1b2c539a0f 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: pass AVCodecParameters through DecoderOpts  
						
						... 
						
						
						
						Do not retrieve it from InputStream directly.
This is a step towards decoupling Decoder and InputStream. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							b3d1916ba0 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: pass AVCodec through DecoderOpts  
						
						... 
						
						
						
						Do not retrieve it from InputStream directly.
This is a step towards decoupling Decoder and InputStream. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							097f9ddbe9 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: pass decoder name through DecoderOpts  
						
						... 
						
						
						
						Do not build it from InputStream values.
This is a step towards decoupling Decoder and InputStream. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							9ba4bc87e6 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: pass top_field_first through DecoderOpts  
						
						... 
						
						
						
						Do not read it from InputStream directly.
This is a step towards decoupling Decoder and InputStream. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							9702817662 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: pass input timebase through DecoderOpts  
						
						... 
						
						
						
						Do not read it from AVStream directly.
This is a step towards decoupling Decoder and InputStream. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							052c83e356 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: pass forced/estimated framerate though DecoderOpts  
						
						... 
						
						
						
						Stop reading them from InputStream.
This is a step towards decoupling Decoder and InputStream. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							e0a6cb07b2 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: move flags to DecoderOpts  
						
						... 
						
						
						
						Will be useful in the following commit. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							4bdffec814 
							
						 
					 
					
						
						
							
							fftools/ffmpeg_dec: pass hwaccel options to the decoder in a separate struct  
						
						... 
						
						
						
						Stop reading them from InputStream.
This is a step towards decoupling Decoder and InputStream. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00 
						 
				 
			
				
					
						
							
							
								Anton Khirnov 
							
						 
					 
					
						
						
						
						
							
						
						
							a3a9c4ae66 
							
						 
					 
					
						
						
							
							fftools/ffmpeg: move hwaccel_retrieve_data() from ffmpeg_hw to ffmpeg_dec  
						
						... 
						
						
						
						This function is decoding-only and has no interaction with the rest of
ffmpeg_hw. It thus belongs more properly in ffmpeg_dec. 
						
						
					 
					
						2024-01-30 09:52:00 +01:00