MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / dash_parse_prft

Function dash_parse_prft

libavformat/dashenc.c:1915–1939  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1913}
1914
1915static int dash_parse_prft(DASHContext *c, AVPacket *pkt)
1916{
1917 OutputStream *os = &c->streams[pkt->stream_index];
1918 AVProducerReferenceTime *prft;
1919 size_t side_data_size;
1920
1921 prft = (AVProducerReferenceTime *)av_packet_get_side_data(pkt, AV_PKT_DATA_PRFT, &side_data_size);
1922 if (!prft || side_data_size != sizeof(AVProducerReferenceTime) || (prft->flags && prft->flags != 24)) {
1923 // No encoder generated or user provided capture time AVProducerReferenceTime side data. Instead
1924 // of letting the mov muxer generate one, do it here so we can also use it for the manifest.
1925 prft = (AVProducerReferenceTime *)av_packet_new_side_data(pkt, AV_PKT_DATA_PRFT,
1926 sizeof(AVProducerReferenceTime));
1927 if (!prft)
1928 return AVERROR(ENOMEM);
1929 prft->wallclock = av_gettime();
1930 prft->flags = 24;
1931 }
1932 if (os->first_pts == AV_NOPTS_VALUE) {
1933 os->producer_reference_time = *prft;
1934 if (c->target_latency_refid < 0)
1935 c->target_latency_refid = pkt->stream_index;
1936 }
1937
1938 return 0;
1939}
1940
1941static int dash_write_packet(AVFormatContext *s, AVPacket *pkt)
1942{

Callers 1

dash_write_packetFunction · 0.85

Calls 3

av_packet_get_side_dataFunction · 0.85
av_packet_new_side_dataFunction · 0.85
av_gettimeFunction · 0.85

Tested by

no test coverage detected