Commit Graph

29 Commits

Author SHA1 Message Date
Jan Sebechlebsky d46a8e30dc avformat/tee: Support arbitrary number of slaves
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
2016-06-25 23:34:26 +02:00
Jan Sebechlebsky 1bc83f6ea8 avformat/tee: Use ref instead copy in write_packet
Replace av_copy_packet and deprecated av_dup_packet by
creating reference using av_packet_ref.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-05-07 17:25:40 +02:00
Jan Sebechlebsky a3c877aca7 avformat/tee: Fix TeeSlave.bsfs pointer array size
TeeSlave.bsfs is array of pointers to AVBitStreamFilterContext,
so element size should be really size of a pointer, not size
of TeeSlave structure.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-05-07 17:24:15 +02:00
Jan Sebechlebsky 2063f3ed9c avformat/tee: Handling slave failure in tee muxer
Adds per slave option 'onfail' to the tee muxer allowing an output to
fail, so other slave outputs can continue.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-04-22 20:04:27 +02:00
Jan Sebechlebsky f9d7e9feec avformat/tee: Fix leaks in tee muxer when open_slave fails
In open_slave failure can happen before bsfs array is initialized,
close_slave must check that bsfs is not NULL before accessing
tee_slave->bsfs[i] element.

Slave muxer expects write_trailer to be called if it's
write_header suceeded (so resources allocated in write_header
are freed). Therefore if failure happens after successfull
write_header call, we must ensure that write_trailer of
that particular slave is called.

Some cleanups are made by Marton Balint.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-04-22 19:49:50 +02:00
Jan Sebechlebsky 2ea5ab6fc6 avformat/tee: Refactor close_slaves function in tee muxer
Closing single slave operation is pulled out into separate
function close_slave(TeeSlave*).
Both close_slave and close_slaves function are moved before
open_slave function.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-04-14 00:49:11 +02:00
Derek Buitenhuis 6f69f7a8bf Merge commit '9200514ad8717c63f82101dc394f4378854325bf'
* commit '9200514ad8717c63f82101dc394f4378854325bf':
  lavf: replace AVStream.codec with AVStream.codecpar

This has been a HUGE effort from:
    - Derek Buitenhuis <derek.buitenhuis@gmail.com>
    - Hendrik Leppkes <h.leppkes@gmail.com>
    - wm4 <nfxjfg@googlemail.com>
    - Clément Bœsch <clement@stupeflix.com>
    - James Almer <jamrial@gmail.com>
    - Michael Niedermayer <michael@niedermayer.cc>
    - Rostislav Pehlivanov <atomnuker@gmail.com>

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-10 20:59:55 +01:00
Derek Buitenhuis bc9a5965c8 Merge commit '9f61abc8111c7c43f49ca012e957a108b9cc7610'
This also deprecates our old duplicated callbacks.

* commit '9f61abc8111c7c43f49ca012e957a108b9cc7610':
  lavf: allow custom IO for all files

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-10 14:42:41 +00:00
Michael Niedermayer fe3fed0b14 Update demuxers and protocols for protocol whitelist support
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-02 04:16:50 +01:00
Rodger Combs 7a161b74ad lavf/tee: use lavf API for applying bitstream filters 2015-12-28 08:37:39 -06:00
Nicolas George 1acc90eaa5 lavf/tee: fix side data double free.
Similar to 33fefdb44.
Fix trac ticket #4921.

Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-13 09:41:41 +01:00
Hendrik Leppkes c2f861ca42 Replace remaining occurances of av_free_packet with av_packet_unref 2015-10-27 14:35:30 +01:00
Bela Bodecs 1f3a29e999 lavf/tee: allow multiple stream specifiers in select.
It makes possible to put multiple stream specifier into the select
option separated by comma.
eg. select=\'a:0,v\'

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Signed-off-by: Nicolas George <george@nsup.org>
2015-10-12 16:56:58 +02:00
Hendrik Leppkes 83a5df54ea Remove left-over FF_API_DESTRUCT_PACKET cruft 2015-09-05 16:51:53 +02:00
Andreas Cadhalpun c363843a53 add missing FF_API_DESTRUCT_PACKET guards
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-22 19:16:13 +02:00
Michael Niedermayer ef3a6a48b5 avformat/tee: Simplify code by using avio_closep()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-09 13:40:09 +01:00
Michael Niedermayer 2e6fdcb7f3 avformat/tee: flip assigment direction
Found-by: CSA
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 03:18:52 +02:00
Michael Niedermayer 68de2115ca avformat/tee: print errors for each failed bitstream filter
Fixes CID1108584

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 21:08:44 +02:00
Nicolas George c4e6024adc lavf/tee: fix leak of bsfs array. 2013-10-21 17:32:01 +02:00
Nicolas George 5a12142aca lavf/tee: fix leak of select option. 2013-10-21 17:32:01 +02:00
Nicolas George 59f809e992 lavf/tee: fix leak of strdup/strtoked buffer.
Fix CID 1108606.
2013-10-21 17:32:01 +02:00
Michael Niedermayer c4c3a3d580 vformat/tee: fix uninitialized use of ret
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-07 22:43:32 +02:00
Stefano Sabatini 0be3be9011 lavf/tee: copy metadata to output chained muxers 2013-08-23 12:27:09 +02:00
Stefano Sabatini eadb3ad758 lavf/tee: initialize ret in parse_bsfs()
Fix spurious failures.
2013-08-22 09:52:54 +02:00
Stefano Sabatini 5ae3563359 lavf/tee: add special select option 2013-08-21 17:44:35 +02:00
Stefano Sabatini faf7c35655 lavf/tee: add support for bitstream filtering
This allows to apply different bitstream filters to different outputs,
with no need to transcode.
2013-08-16 17:58:58 +02:00
Clément Bœsch 00f4998997 lavf/tee: pesudo → pseudo. 2013-06-06 20:29:38 +02:00
Michael Niedermayer 5f476cfe6e avformat/tee: add forgotten ret assignment
Fixes CID991840
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-19 15:09:10 +01:00
Nicolas George f43d09cd60 lavf: add tee pseudo-muxer. 2013-02-09 20:50:11 +01:00