mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-01-06 22:25:36 +01:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: bitstream: Properly promote av_reverse values before shifting. libavutil/swscale: YUV444P10/YUV444P9 support. H.264: Fix high bit depth explicit biweight h264: Fix 10-bit H.264 x86 chroma v loopfilter asm. Replace DEBUG_SEEK/DEBUG_SI + av_log combinations by av_dlog. Update copyright year for ac3enc_opts_template.c. adts: Adjust frame size mask to follow the specification. movenc: Add RTP muxer/hinter options movenc: Pass the RTP AVFormatContext to the SDP generation rtspenc: Add RTP muxer options rtspenc: Add an AVClass for setting muxer specific options rtpenc_chain: Pass the rtpflags options through to the chained muxer rtpenc: Declare the rtp flags private AVOptions in rtpenc.h sdp: Reindent after the previous commit rtpenc: MP4A-LATM payload support avoptions: Add an av_opt_flag_is_set function for inspecting flag fields sdp: Allow passing an AVFormatContext to the SDP generation mov: Fix wrong timestamp generation for fragmented movies that have time offset caused by the first edit list entry. mpeg12: more advanced ffmpeg mpeg2 aspect guessing code. swscale: split YUYV output out of yuv2packed[12X]_c(). Conflicts: doc/APIchanges libavcodec/Makefile libavcodec/h264dsp_template.c libavcodec/mpeg12.c libavformat/aacdec.c libavformat/avidec.c libavformat/internal.h libavformat/movenc.c libavformat/rtpenc.c libavformat/rtpenc_latm.c libavformat/sdp.c libavformat/version.h libavutil/avutil.h libavutil/pixfmt.h libswscale/swscale.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
#include "libavutil/base64.h"
|
||||
#include "libavutil/dict.h"
|
||||
#include "libavutil/parseutils.h"
|
||||
#include "libavutil/opt.h"
|
||||
#include "libavcodec/xiph.h"
|
||||
#include "libavcodec/mpeg4audio.h"
|
||||
#include "avformat.h"
|
||||
@@ -301,7 +302,8 @@ xiph_fail:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int latm_context2profilelevel(AVCodecContext *c) {
|
||||
static int latm_context2profilelevel(AVCodecContext *c)
|
||||
{
|
||||
/* MP4A-LATM
|
||||
* The RTP payload format specification is described in RFC 3016
|
||||
* The encoding specifications are provided in ISO/IEC 14496-3 */
|
||||
@@ -329,7 +331,8 @@ static int latm_context2profilelevel(AVCodecContext *c) {
|
||||
return profile_level;
|
||||
}
|
||||
|
||||
static char *latm_context2config(AVCodecContext *c) {
|
||||
static char *latm_context2config(AVCodecContext *c)
|
||||
{
|
||||
/* MP4A-LATM
|
||||
* The RTP payload format specification is described in RFC 3016
|
||||
* The encoding specifications are provided in ISO/IEC 14496-3 */
|
||||
@@ -364,7 +367,7 @@ static char *latm_context2config(AVCodecContext *c) {
|
||||
return config;
|
||||
}
|
||||
|
||||
static char *sdp_write_media_attributes(char *buff, int size, AVCodecContext *c, int payload_type, int flags)
|
||||
static char *sdp_write_media_attributes(char *buff, int size, AVCodecContext *c, int payload_type, AVFormatContext *fmt)
|
||||
{
|
||||
char *config = NULL;
|
||||
|
||||
@@ -399,7 +402,8 @@ static char *sdp_write_media_attributes(char *buff, int size, AVCodecContext *c,
|
||||
payload_type, config ? config : "");
|
||||
break;
|
||||
case CODEC_ID_AAC:
|
||||
if (flags & AVFMT_FLAG_MP4A_LATM) {
|
||||
if (fmt && fmt->oformat->priv_class &&
|
||||
av_opt_flag_is_set(fmt->priv_data, "rtpflags", "latm")) {
|
||||
config = latm_context2config(c);
|
||||
if (!config)
|
||||
return NULL;
|
||||
@@ -523,7 +527,7 @@ static char *sdp_write_media_attributes(char *buff, int size, AVCodecContext *c,
|
||||
return buff;
|
||||
}
|
||||
|
||||
void ff_sdp_write_media(char *buff, int size, AVCodecContext *c, const char *dest_addr, const char *dest_type, int port, int ttl, int flags)
|
||||
void ff_sdp_write_media(char *buff, int size, AVCodecContext *c, const char *dest_addr, const char *dest_type, int port, int ttl, AVFormatContext *fmt)
|
||||
{
|
||||
const char *type;
|
||||
int payload_type;
|
||||
@@ -546,7 +550,7 @@ void ff_sdp_write_media(char *buff, int size, AVCodecContext *c, const char *des
|
||||
av_strlcatf(buff, size, "b=AS:%d\r\n", c->bit_rate / 1000);
|
||||
}
|
||||
|
||||
sdp_write_media_attributes(buff, size, c, payload_type, flags);
|
||||
sdp_write_media_attributes(buff, size, c, payload_type, fmt);
|
||||
}
|
||||
|
||||
int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size)
|
||||
@@ -596,7 +600,7 @@ int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size)
|
||||
ff_sdp_write_media(buf, size,
|
||||
ac[i]->streams[j]->codec, dst[0] ? dst : NULL,
|
||||
dst_type, (port > 0) ? port + j * 2 : 0, ttl,
|
||||
ac[i]->flags);
|
||||
ac[i]);
|
||||
if (port <= 0) {
|
||||
av_strlcatf(buf, size,
|
||||
"a=control:streamid=%d\r\n", i + j);
|
||||
@@ -612,7 +616,7 @@ int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size)
|
||||
return AVERROR(ENOSYS);
|
||||
}
|
||||
|
||||
void ff_sdp_write_media(char *buff, int size, AVCodecContext *c, const char *dest_addr, const char *dest_type, int port, int ttl, int flags)
|
||||
void ff_sdp_write_media(char *buff, int size, AVCodecContext *c, const char *dest_addr, const char *dest_type, int port, int ttl, AVFormatContext *fmt)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user