X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=kaeru.cpp;h=b3a9bb3e43f92e09501198cd54c190d3a5579538;hb=refs%2Fheads%2Fmjpeg;hp=4ae8b137c75d94ba132c419d80a8a4241395dc74;hpb=b973bd3828a729a7a2c12bba4e4927300987dd23;p=nageru diff --git a/kaeru.cpp b/kaeru.cpp index 4ae8b13..b3a9bb3 100644 --- a/kaeru.cpp +++ b/kaeru.cpp @@ -31,6 +31,8 @@ BasicStats *global_basic_stats = nullptr; QuittableSleeper should_quit; MuxMetrics stream_mux_metrics; +namespace { + int write_packet(void *opaque, uint8_t *buf, int buf_size, AVIODataMarkerType type, int64_t time) { static bool seen_sync_markers = false; @@ -47,13 +49,15 @@ int write_packet(void *opaque, uint8_t *buf, int buf_size, AVIODataMarkerType ty if (type == AVIO_DATA_MARKER_HEADER) { stream_mux_header.append((char *)buf, buf_size); - httpd->set_header(stream_mux_header); + httpd->set_header(HTTPD::MAIN_STREAM, stream_mux_header); } else { - httpd->add_data((char *)buf, buf_size, type == AVIO_DATA_MARKER_SYNC_POINT, time, AVRational{ AV_TIME_BASE, 1 }); + httpd->add_data(HTTPD::MAIN_STREAM, (char *)buf, buf_size, type == AVIO_DATA_MARKER_SYNC_POINT, time, AVRational{ AV_TIME_BASE, 1 }); } return buf_size; } +} // namespace + unique_ptr create_mux(HTTPD *httpd, AVOutputFormat *oformat, X264Encoder *x264_encoder, AudioEncoder *audio_encoder) { AVFormatContext *avctx = avformat_alloc_context(); @@ -171,7 +175,9 @@ int main(int argc, char *argv[]) } global_flags.num_cards = 1; // For latency metrics. +#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(58, 9, 100) av_register_all(); +#endif avformat_network_init(); HTTPD httpd;