Add User Requested Decoder

Add user option for decoder
This commit is contained in:
Mr-DaveDev
2019-10-28 22:30:30 -06:00
committed by Mr-Dave
parent 6033120053
commit 5d88fe68bb
23 changed files with 259 additions and 184 deletions

View File

@@ -873,6 +873,12 @@
<td align="left"></td>
<td align="left"><a href="#native_language" >native_language</a></td>
</tr>
<tr>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"><a href="#netcam_decoder" >netcam_decoder</a></td>
</tr>
<tr>
<td align="left"></td>
<td align="left"></td>
@@ -1643,9 +1649,10 @@
<td bgcolor="#edf4f9" ><a href="#netcam_url" >netcam_url</a> </td>
<td bgcolor="#edf4f9" ><a href="#netcam_highres" >netcam_highres</a> </td>
<td bgcolor="#edf4f9" ><a href="#netcam_userpass" >netcam_userpass</a> </td>
<td bgcolor="#edf4f9" ><a href="#netcam_keepalive" >netcam_keepalive</a> </td>
<td bgcolor="#edf4f9" ><a href="#netcam_decoder" >netcam_decoder</a> </td>
</tr>
<tr>
<td bgcolor="#edf4f9" ><a href="#netcam_keepalive" >netcam_keepalive</a> </td>
<td bgcolor="#edf4f9" ><a href="#netcam_proxy" >netcam_proxy</a> </td>
<td bgcolor="#edf4f9" ><a href="#netcam_tolerant_check" >netcam_tolerant_check</a> </td>
<td bgcolor="#edf4f9" ><a href="#netcam_use_tcp" >netcam_use_tcp</a> </td>
@@ -3051,6 +3058,25 @@
To use no authentication simply remove this option. Digest authentication is only available for rtsp/rtmp cameras.
<p></p>
<h3><a name="netcam_decoder"></a> netcam_decoder </h3>
<p></p>
<ul>
<li> Type: String</li>
<li> Range / Valid values: Max 4095 characters</li>
<li> Default: Not defined</li>
</ul>
<p></p>
The user requested decoder to use for rtsp/rtmp cameras. Motion will try to open the camera using the decoder
specified by this parameter. If it not successful, it will usually fall back to the default decoder. This
option may improve performance in certain situations for certain platforms and cameras. Users can find the
names of the decoders on their system by going to a command prompt and typing <code>ffmpeg -formats</code> and
looking for the name of the decoder with a 'D' next to it and correlating this with the type of image
provided from the camera. Note that not all decoders will work with all cameras. If the camera does not
open using the requested decoder, specify a different decoder or leave this parameter empty to use the default.
Additionally, ffmpeg will only list out the decoders that it was compiled to support. Additional decoders
may be available if ffmpeg is compiled from source.
<p></p>
<h3><a name="netcam_keepalive"></a> netcam_keepalive </h3>
<p></p>
<ul>

View File

@@ -492,6 +492,19 @@ Format is in user:password format when both a user name and password are require
.RE
.RE
.TP
.B netcam_decoder
.RS
.nf
Values: User specified string
Default: Not Defined
Description:
.fi
.RS
User requested decoder to use for network cameras.
.RE
.RE
.TP
.B netcam_keepalive
.RS

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 11:59-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 11:59-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -222,6 +222,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2573,27 +2577,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:00-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -222,6 +222,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2573,27 +2577,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:00-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:01-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -225,6 +225,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2578,27 +2582,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:02-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:02-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:02-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:02-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -222,6 +222,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2573,27 +2577,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:03-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:03-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:03-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 10:15-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-12-17 06:35+0100\n"
"Last-Translator: Dusan Mikulas <dmkil22@gmail.com>\n"
"Language-Team: Dusan Mikulas <dmkil22@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2576,27 +2580,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:04-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.x\n"
"Report-Msgid-Bugs-To: https://motion-project.github.io\n"
"POT-Creation-Date: 2019-09-28 09:39-0600\n"
"POT-Creation-Date: 2019-10-27 22:19-0600\n"
"PO-Revision-Date: 2018-10-13 12:04-0600\n"
"Last-Translator: MrDave <MotionMrDave@gmail.com>\n"
"Language-Team: MrDave <MotionMrDave@gmail.com>\n"
@@ -221,6 +221,10 @@ msgstr ""
msgid "netcam_use_tcp"
msgstr ""
#: src/conf.c
msgid "netcam_decoder"
msgstr ""
#: src/conf.c
msgid "mmalcam_name"
msgstr ""
@@ -2572,27 +2576,22 @@ msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: av_find_best_stream: %s,Interrupt %s"
msgid "%s: %s: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_find_decoder: Failed,Interrupt %s"
msgid "%s: %s: Failed,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_alloc_context3: Failed,Interrupt %s"
msgid "%s: Ignoring user requested decoder %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_parameters_to_context: %s,Interrupt %s"
msgstr ""
#: src/netcam_rtsp.c
#, c-format
msgid "%s: avcodec_open2: %s,Interrupt %s"
msgid "%s: Using decoder %s"
msgstr ""
#: src/netcam_rtsp.c

View File

@@ -68,6 +68,7 @@ struct config conf_template = {
.netcam_proxy = NULL,
.netcam_tolerant_check = FALSE,
.netcam_use_tcp = TRUE,
.netcam_decoder = NULL,
.mmalcam_name = NULL,
.mmalcam_control_params = NULL,
@@ -498,6 +499,15 @@ config_param config_params[] = {
WEBUI_LEVEL_ADVANCED
},
{
"netcam_decoder",
"# User requested decoder for netcam.",
0,
CONF_OFFSET(netcam_decoder),
copy_string,
print_string,
WEBUI_LEVEL_ADVANCED
},
{
"mmalcam_name",
"# Name of mmal camera (e.g. vc.ril.camera for pi camera).",
0,
@@ -3186,6 +3196,7 @@ static void config_parms_intl(){
MOTION_LOG(DBG, TYPE_ALL, NO_ERRNO,"%s:%s","netcam_proxy",_("netcam_proxy"));
MOTION_LOG(DBG, TYPE_ALL, NO_ERRNO,"%s:%s","netcam_tolerant_check",_("netcam_tolerant_check"));
MOTION_LOG(DBG, TYPE_ALL, NO_ERRNO,"%s:%s","netcam_use_tcp",_("netcam_use_tcp"));
MOTION_LOG(DBG, TYPE_ALL, NO_ERRNO,"%s:%s","netcam_decoder",_("netcam_decoder"));
MOTION_LOG(DBG, TYPE_ALL, NO_ERRNO,"%s:%s","mmalcam_name",_("mmalcam_name"));
MOTION_LOG(DBG, TYPE_ALL, NO_ERRNO,"%s:%s","mmalcam_control_params",_("mmalcam_control_params"));
MOTION_LOG(DBG, TYPE_ALL, NO_ERRNO,"%s:%s","width",_("width"));

View File

@@ -53,6 +53,7 @@ struct config {
const char *netcam_proxy;
int netcam_tolerant_check;
int netcam_use_tcp;
char *netcam_decoder;
const char *mmalcam_name;
const char *mmalcam_control_params;

View File

@@ -1291,6 +1291,19 @@ static int motion_init(struct context *cnt)
if (cnt->conf.width < 64) cnt->conf.width = 64;
if (cnt->conf.height < 64) cnt->conf.height = 64;
if (cnt->conf.netcam_decoder != NULL){
cnt->netcam_decoder = mymalloc(strlen(cnt->conf.netcam_decoder)+1);
retcd = snprintf(cnt->netcam_decoder,strlen(cnt->conf.netcam_decoder)+1
,"%s",cnt->conf.netcam_decoder);
if (retcd < 0){
free(cnt->netcam_decoder);
cnt->netcam_decoder = NULL;
}
} else {
cnt->netcam_decoder = NULL;
}
/* set the device settings */
cnt->video_dev = vid_start(cnt);
@@ -1722,6 +1735,11 @@ static void motion_cleanup(struct context *cnt) {
dbse_deinit(cnt);
if (cnt->netcam_decoder){
free(cnt->netcam_decoder);
cnt->netcam_decoder = NULL;
}
}
static void mlp_mask_privacy(struct context *cnt){

View File

@@ -453,6 +453,7 @@ struct context {
int stream_count;
char hostname[PATH_MAX];
char *netcam_decoder;
int sql_mask;

View File

@@ -329,11 +329,36 @@ static int netcam_rtsp_decode_packet(struct rtsp_context *rtsp_data){
return frame_size;
}
static void netcam_rtsp_decoder_error(struct rtsp_context *rtsp_data, int retcd, const char* fnc_nm){
char errstr[128];
if (retcd < 0){
av_strerror(retcd, errstr, sizeof(errstr));
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: %s: %s,Interrupt %s")
,rtsp_data->cameratype,fnc_nm, errstr, rtsp_data->interrupted ? _("True"):_("False"));
} else {
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: %s: Failed,Interrupt %s"),rtsp_data->cameratype
,fnc_nm, rtsp_data->interrupted ? _("True"):_("False"));
}
if (rtsp_data->decoder_nm != NULL){
MOTION_LOG(NTC, TYPE_NETCAM, NO_ERRNO
,_("%s: Ignoring user requested decoder %s"),rtsp_data->cameratype
,rtsp_data->decoder_nm);
free(rtsp_data->cnt->netcam_decoder);
rtsp_data->cnt->netcam_decoder = NULL;
rtsp_data->decoder_nm = NULL;
}
}
static int netcam_rtsp_open_codec(struct rtsp_context *rtsp_data){
#if (LIBAVFORMAT_VERSION_MAJOR >= 58) || ((LIBAVFORMAT_VERSION_MAJOR == 57) && (LIBAVFORMAT_VERSION_MINOR >= 41))
int retcd;
char errstr[128];
AVStream *st;
AVCodec *decoder = NULL;
@@ -341,46 +366,46 @@ static int netcam_rtsp_open_codec(struct rtsp_context *rtsp_data){
retcd = av_find_best_stream(rtsp_data->format_context, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0);
if ((retcd < 0) || (rtsp_data->interrupted)){
av_strerror(retcd, errstr, sizeof(errstr));
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: av_find_best_stream: %s,Interrupt %s")
,rtsp_data->cameratype, errstr, rtsp_data->interrupted ? _("True"):_("False"));
netcam_rtsp_decoder_error(rtsp_data, retcd, "av_find_best_stream");
return -1;
}
rtsp_data->video_stream_index = retcd;
st = rtsp_data->format_context->streams[rtsp_data->video_stream_index];
decoder = avcodec_find_decoder(st->codecpar->codec_id);
if (rtsp_data->decoder_nm != NULL){
decoder = avcodec_find_decoder_by_name(rtsp_data->decoder_nm);
if (decoder == NULL) {
netcam_rtsp_decoder_error(rtsp_data, 0, "avcodec_find_decoder_by_name");
} else {
MOTION_LOG(NTC, TYPE_NETCAM, NO_ERRNO,_("%s: Using decoder %s")
,rtsp_data->cameratype,rtsp_data->decoder_nm);
}
}
if (decoder == NULL) {
decoder = avcodec_find_decoder(st->codecpar->codec_id);
}
if ((decoder == NULL) || (rtsp_data->interrupted)){
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: avcodec_find_decoder: Failed,Interrupt %s")
,rtsp_data->cameratype, rtsp_data->interrupted ? _("True"):_("False"));
netcam_rtsp_decoder_error(rtsp_data, 0, "avcodec_find_decoder");
return -1;
}
rtsp_data->codec_context = avcodec_alloc_context3(decoder);
if ((rtsp_data->codec_context == NULL) || (rtsp_data->interrupted)){
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: avcodec_alloc_context3: Failed,Interrupt %s")
,rtsp_data->cameratype, rtsp_data->interrupted ? _("True"):_("False"));
netcam_rtsp_decoder_error(rtsp_data, 0, "avcodec_alloc_context3");
return -1;
}
retcd = avcodec_parameters_to_context(rtsp_data->codec_context, st->codecpar);
if ((retcd < 0) || (rtsp_data->interrupted)) {
av_strerror(retcd, errstr, sizeof(errstr));
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: avcodec_parameters_to_context: %s,Interrupt %s")
,rtsp_data->cameratype, errstr, rtsp_data->interrupted ? _("True"):_("False"));
netcam_rtsp_decoder_error(rtsp_data, retcd, "avcodec_alloc_context3");
return -1;
}
retcd = avcodec_open2(rtsp_data->codec_context, decoder, NULL);
if ((retcd < 0) || (rtsp_data->interrupted)){
av_strerror(retcd, errstr, sizeof(errstr));
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: avcodec_open2: %s,Interrupt %s")
,rtsp_data->cameratype, errstr, rtsp_data->interrupted ? _("True"):_("False"));
netcam_rtsp_decoder_error(rtsp_data, retcd, "avcodec_open2");
return -1;
}
@@ -388,7 +413,6 @@ static int netcam_rtsp_open_codec(struct rtsp_context *rtsp_data){
#else
int retcd;
char errstr[128];
AVStream *st;
AVCodec *decoder = NULL;
@@ -396,10 +420,7 @@ static int netcam_rtsp_open_codec(struct rtsp_context *rtsp_data){
retcd = av_find_best_stream(rtsp_data->format_context, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0);
if ((retcd < 0) || (rtsp_data->interrupted)){
av_strerror(retcd, errstr, sizeof(errstr));
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: av_find_best_stream: %s,Interrupt %s")
,rtsp_data->cameratype, errstr, rtsp_data->interrupted ? _("True"):_("False"));
netcam_rtsp_decoder_error(rtsp_data, retcd, "av_find_best_stream");
return -1;
}
rtsp_data->video_stream_index = retcd;
@@ -408,17 +429,12 @@ static int netcam_rtsp_open_codec(struct rtsp_context *rtsp_data){
rtsp_data->codec_context = st->codec;
decoder = avcodec_find_decoder(rtsp_data->codec_context->codec_id);
if ((decoder == NULL) || (rtsp_data->interrupted)) {
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: avcodec_find_decoder: Failed,Interrupt %s")
,rtsp_data->cameratype, rtsp_data->interrupted ? _("True"):_("False"));
return -1;
netcam_rtsp_decoder_error(rtsp_data, 0, "avcodec_find_decoder");
return -1;
}
retcd = avcodec_open2(rtsp_data->codec_context, decoder, NULL);
if ((retcd < 0) || (rtsp_data->interrupted)){
av_strerror(retcd, errstr, sizeof(errstr));
MOTION_LOG(ERR, TYPE_NETCAM, NO_ERRNO
,_("%s: avcodec_open2: %s,Interrupt %s")
,rtsp_data->cameratype, errstr, rtsp_data->interrupted ? _("True"):_("False"));
netcam_rtsp_decoder_error(rtsp_data, retcd, "avcodec_open2");
return -1;
}
@@ -982,6 +998,8 @@ static void netcam_rtsp_set_parms (struct context *cnt, struct rtsp_context *rts
rtsp_data->handler_finished = TRUE;
rtsp_data->first_image = TRUE;
rtsp_data->reconnect_count = 0;
rtsp_data->decoder_nm = cnt->netcam_decoder;
rtsp_data->cnt = cnt;
snprintf(rtsp_data->threadname, 15, "%s",_("Unknown"));

View File

@@ -79,6 +79,8 @@ struct rtsp_context {
struct timeval frame_prev_tm; /* The time set before calling the av functions */
struct timeval frame_curr_tm; /* Time during the interrupt to determine duration since start*/
struct config *conf; /* Pointer to conf parms of parent cnt*/
char *decoder_nm; /* User requested decoder */
struct context *cnt;
char threadname[16]; /* The thread name*/
int threadnbr; /* The thread number */