|
|
|
@ -28,13 +28,13 @@ |
|
|
|
|
#include "libavutil/bprint.h" |
|
|
|
|
#include "libavutil/dict.h" |
|
|
|
|
#include "libavutil/internal.h" |
|
|
|
|
#include "libavutil/intreadwrite.h" |
|
|
|
|
#include "libavutil/opt.h" |
|
|
|
|
#include "libavutil/pixfmt.h" |
|
|
|
|
#include "libavutil/thread.h" |
|
|
|
|
#include "libavutil/time.h" |
|
|
|
|
|
|
|
|
|
#include "libavcodec/bsf.h" |
|
|
|
|
#include "libavcodec/bytestream.h" |
|
|
|
|
#include "libavcodec/internal.h" |
|
|
|
|
#include "libavcodec/packet_internal.h" |
|
|
|
|
|
|
|
|
@ -1007,57 +1007,6 @@ int avformat_network_deinit(void) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int ff_add_param_change(AVPacket *pkt, int32_t channels, |
|
|
|
|
uint64_t channel_layout, int32_t sample_rate, |
|
|
|
|
int32_t width, int32_t height) |
|
|
|
|
{ |
|
|
|
|
uint32_t flags = 0; |
|
|
|
|
int size = 4; |
|
|
|
|
uint8_t *data; |
|
|
|
|
if (!pkt) |
|
|
|
|
return AVERROR(EINVAL); |
|
|
|
|
|
|
|
|
|
#if FF_API_OLD_CHANNEL_LAYOUT |
|
|
|
|
FF_DISABLE_DEPRECATION_WARNINGS |
|
|
|
|
if (channels) { |
|
|
|
|
size += 4; |
|
|
|
|
flags |= AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT; |
|
|
|
|
} |
|
|
|
|
if (channel_layout) { |
|
|
|
|
size += 8; |
|
|
|
|
flags |= AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT; |
|
|
|
|
} |
|
|
|
|
FF_ENABLE_DEPRECATION_WARNINGS |
|
|
|
|
#endif |
|
|
|
|
if (sample_rate) { |
|
|
|
|
size += 4; |
|
|
|
|
flags |= AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE; |
|
|
|
|
} |
|
|
|
|
if (width || height) { |
|
|
|
|
size += 8; |
|
|
|
|
flags |= AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS; |
|
|
|
|
} |
|
|
|
|
data = av_packet_new_side_data(pkt, AV_PKT_DATA_PARAM_CHANGE, size); |
|
|
|
|
if (!data) |
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
bytestream_put_le32(&data, flags); |
|
|
|
|
#if FF_API_OLD_CHANNEL_LAYOUT |
|
|
|
|
FF_DISABLE_DEPRECATION_WARNINGS |
|
|
|
|
if (channels) |
|
|
|
|
bytestream_put_le32(&data, channels); |
|
|
|
|
if (channel_layout) |
|
|
|
|
bytestream_put_le64(&data, channel_layout); |
|
|
|
|
FF_ENABLE_DEPRECATION_WARNINGS |
|
|
|
|
#endif |
|
|
|
|
if (sample_rate) |
|
|
|
|
bytestream_put_le32(&data, sample_rate); |
|
|
|
|
if (width || height) { |
|
|
|
|
bytestream_put_le32(&data, width); |
|
|
|
|
bytestream_put_le32(&data, height); |
|
|
|
|
} |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream *stream, AVFrame *frame) |
|
|
|
|
{ |
|
|
|
|
AVRational undef = {0, 1}; |
|
|
|
|