souphttpsrc: Need ability to exclude HTTP Range header and set content size
Submitted by Lori Anderson
Need to be able to disable the inclusion of the range header by souphttpsrc. The HTTP Range header is not allowed for dtcp encyrpted content. Also the HTTP Range header interferes with the usage of TimeSeekRange.dlna.org and Playspeed.dlna.org headers. The Range header should not be included when these other headers are added or for dtcp encrypted content. The proper headers will be added by the dlnasrc element which is a "manager" type element and will set the "exclude-range-header" property on souphttpsrc. The souphttpsrc will still use the starting byte position and all the same logic should be performed by souphttpsrc and basesrc,
The attached patch creates a boolean property "exclude-range-header" which specifies if the Range header should be included. The default is false. When false, souphttpsrc will include the Range header as it does currently. When this property is set to true, souphttpsrc will formulate the HTTP request as it does now except it will not include the Range header. It will be the responsibility of the dlnasrc "manager" element to do this.
If the HTTP Range header is not included, souphttpsrc will not be able to determine the size of the content. The ability to set the content size is needed when the Range header is not included. This patch adds the ability to set the content size through the "content-size" property. The dlnasrc "manager" element will set the size as necessary such as for dtcp/ip encrypted content.