I've been working on making chromium work with system (unmodified and
installed) ffmpeg, and there is some code currently using internal-only
API, which is not available in that case:

https://chromium.googlesource.com/chromium/src/+/a6912725c190eebf472d78a44d8fd247751e9a07/media/filters/ffmpeg_demuxer.cc#1188

Do you have suggestions what could be done to do what above code is doing
without need to access the internal parts?

For convenience, I'm also pasting the snippet of code below:

  const AVFormatInternal* internal = format_context->internal;
  if (internal && internal->packet_buffer &&
      format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
    struct AVPacketList* packet_buffer = internal->packet_buffer;
    while (packet_buffer != internal->packet_buffer_end) {
      DCHECK_LT(static_cast<size_t>(packet_buffer->pkt.stream_index),
                start_time_estimates.size());
      const AVStream* stream =
          format_context->streams[packet_buffer->pkt.stream_index];
      if (packet_buffer->pkt.pts != static_cast<int64_t>(AV_NOPTS_VALUE)) {
        const base::TimeDelta packet_pts =
            ConvertFromTimeBase(stream->time_base, packet_buffer->pkt.pts);
        if (packet_pts < start_time_estimates[stream->index])
          start_time_estimates[stream->index] = packet_pts;
      }
      packet_buffer = packet_buffer->next;
    }
  }

Paweł

-- 

Paweł Hajdan, Jr. |  Software Engineer |  phaj...@google.com
Google Poland sp. z o.o.
ul. Emilii Plater 53, 00-113 Warszawa
Sąd Rejonowy dla m. st. Warszawy w Warszawie,
XII Wydział Gospodarczy Krajowego Rejestru Sądowego, KRS 0000240611.
NIP: 525-23-44-078, Kapitał zakładowy Spółki 400 000, 00 zł.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to