All pastes #3226312 Raw Edit

Something

public unlisted cpp v1 · immutable
#3226312 ·published 2015-10-30 10:13 UTC
rendered paste body
    while (pkt.size > 0) {        AVFrame* frame = av_frame_alloc();        int got_frame = 0;        int bytes_used = avcodec_decode_audio4(input_codec_context, frame, &got_frame, &pkt);        if (bytes_used < 0) {            LOG4CXX_ERROR(logger, "Error decoding audio packet: " + std::to_string(bytes_used));            // Do not attempt to continue decoding the audio frame - decoder will crash            pkt.size = 0;            got_frame = 0;        } else {            pkt.size -= bytes_used;            pkt.data += bytes_used;            // Remove packet DTS/PTS settings to not confuse the decoder on next passes            pkt.dts = pkt.pts = AV_NOPTS_VALUE;        }        if (got_frame) {            frame->pts = av_frame_get_best_effort_timestamp(frame);            LOG4CXX_TRACE(logger, "Frame [" + std::to_string(frame->nb_samples) + "] Timestamp " + std::to_string(frame->pts));            decoded_frames.push_back(std::make_shared<RawFrame>(frame, input_time_base));        }        av_frame_free(&frame);        if (bytes_used <= 0) break;    }